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 ?

  • @charje@lemmy.ml
    link
    fedilink
    2
    edit-2
    10 months 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.