libera/#commonlisp - IRC Chatlog
Search
13:08:37
jackdaniel
say that I have a tree-like structure built on back references from children i.e a class child has a slot parent (but not the other way around). I can programmatically compute each parent's children
13:10:26
scymtym
beach: the client i'm using as Brucio-61 was originally derived from Beirc but there is very little left of that code. Brucio-61 is online more than this account because the CL client is better at reconnecting than ERC (at least for my networking circumstances)
13:15:04
jackdaniel
create the root and its children (with children having the parent initialized to the root)
13:17:53
Bike
when you dump a parent, do you want to dump its children as well, even though they're just computable from the parent rather than stored ini t?
13:18:53
jackdaniel
this is really baked by a database, that's why the parent doesn't have points to its children (only the other way around)
13:21:26
Bike
if you have a database object including both parentss and children, would it make more sense to dump that?
13:22:09
Bike
i'm just not sure how the children are accessible from the parent at all, i guess. if you compute them more than once does that make new children each time? or are they cached in the database or something?
13:22:51
jackdaniel
I have an access to the database via postmodern. I can do sql queries etc, regarding caching it is rather irrelevant here (I'm not that interested in identity either way)
13:23:15
jackdaniel
generally I can do (find-instances 'children :parent my-parent) and that will magically return all of them
13:24:15
jackdaniel
I could potentially make an initarg that doesn't save the slot but rather fixes the parent in children in initialize-instance
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 :)