this post was submitted on 18 Jun 2023
2 points (100.0% liked)

lisp

158 readers
1 users here now

Discussions on the LISP programming language

founded 1 year ago
MODERATORS
 

On my show this week I am looking at a few people's Common Lisp mathematical packages (including mine).

So far, I am the only one I am seeing using :package-inferred-system . François-René Rideau 's style guide https://github.com/fare/asdf/blob/master/doc/best_practices.md#package_inferred simply echoes the ASDF manual on it (or vice versa) as a thing you could do.

The practical difference I have found is recompiling and reloading changed files within one lisp image using :force t

(asdf:operate 'asdf:load-op "my-system/src/changed-package-file" :force t)

Instead of restarting my lisp. (without force, an already loaded package won't be recompiled and reloaded, it will just be left alone)

To some extent it is also an encouragement to use the feature rich uiop:define-package and corrollary support for understanding dependencies between files/packages in a given asdf system, though uiop:define-package can be subbed for 'defpackage without using :package-inferred-system .

What's your call / experience here ?

top 1 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

You can use :force t without package inferred systems. If you want to force just a single file, you can just load it. I find that package inferred systems is a nasty tight coupling of packages, systems, and directory structure (files). These 3 things are all perfectly happy being loosely coupled.