libera/#commonlisp - IRC Chatlog
Search
16:07:42
Equill
ASDF doesn't allow for declaring whether a system is an application or a library, or some secret third thing. I really should have considered that before being excited that I can write something to walk an app's dependencies and automagically connect everything in the database.
16:11:58
Equill
I'm starting to actually use Syscat in anger, it being a single-source-of-truth. In it, I distinguish between applications and libraries, because it makes sense to have applications run on hosts, but not libraries. However, it's handy to be able to trace an application's dependencies, hence libraries also being a thing in there.
16:13:32
Equill
My immediate exercise is to trace all Syscat's own dependencies, and their licenses, so I can make sure I haven't set myself up for licensing incompatibility.
16:14:35
Equill
Syscat is an application I wrote; it's name is short for the System Catalogue. It's designed to keep track of everything in your IT environment - applications, hosts, people, network connections, the lot.
16:15:59
pjb
I see. Well, indeed, there's no formal data about what an application is. You'll have to fetch each project, and read the documentation. Often, the lisp code can be used as well as library and as application, even from the REPL. Sometimes, there will be a makefile or some other script to generate a stand-alone "application" or executable.
16:16:16
jackdaniel
the distinction between an application and a library in common lisp is blurry at best. perhaps when the system is not dependent on would count as a fair heuristic
16:16:53
Equill
That's exactly what I completely forgot to account for, in my excitement at the idea of traversing ASDF dependencies.
16:16:57
jackdaniel
another one (from a declarative sense) you could tell that asdf does not treat it as a program when it doesn't have program-op defined
16:17:45
jackdaniel
sure, but mind that some systems may play dual role, and while it may have program-op you still may be using it solely for its library utility
16:18:52
Equill
I tend to write applications as libraries with an entry-point myself, so... damn. You're right: it makes less sense to pre-categorise a piece of software, and more sense to tag it afterwards as having one or more characteristics (application, library, whatever).
16:19:35
pjb
Furthermore, there are projects where a single body of code will be used both as an library and as SEVERAL applications!
16:20:08
pjb
If you want to reify an application (or deliverable) thing, it won't be 1-1 with asdf systems.
16:20:37
Equill
Oh, man. There's that, too, and I'll have to think about how to actually represent both of those situations.
16:21:17
Equill
This is one of those moments I'm *incredibly* glad I took the easy way and wrote an engine you configure, instead of hard-coding all these as API endpoints.
16:22:11
Equill
I'll just go mull over how best to represent this. Thanks, everybody; this has been incredibly valuable.
16:22:51
Equill
I knew that making it comprehensive would be a challenge; I had no idea how many philosophical conundra it would involve :)