[asdf-devel] ASDF:LOAD-SYS

Robert Goldman rpgoldman at sift.info
Tue Jun 2 12:48:01 UTC 2009

Christophe Rhodes wrote:
> Robert Goldman <rpgoldman at sift.info> writes:
>> Yes, I know that the user can do this him/herself, but given that the
>> user inevitably will want to add the commands 
> I'm sorry, but "inevitably" is not the right word.  
>> seems to me a strong argument for doing it.  After all, libraries
>> are supposed to save work, not make it!
> But the work has already been done: support for loading ASDF systems
> without any new ASDF operator is already present in Cusp, Slime, CCL,
> SBCL, Allegro-like REPLs, LW-ADD-ONS and almost certainly other
> development environments.
>> While Kenny's review of his first experience with ASDF was, perhaps,
>> unhelpfully inflammatory, I do agree with the central thesis that it's
>> too hard to use ASDF out of the box and that we should make it easier.
> Is it too hard to load a system, or too hard to write a system
> definition?  If the former, will that actually be addressed by
> changing (to the newbie) one cryptic incantation for another, or would
> the effort be better spent working on other barriers to entry?
> Look, I don't have a veto; you guys will end up doing what you want
> anyway.  I would like to say that I think it's a mistake; that Kenny's
> (and others') public complaints aren't going to go away as a result of
> this change; that people will still find it weird and odd; and that
> the loss of generality in the interface will eventually come and bite.
> (Though perhaps not before ASDF gets replaced by a newly-named
> mostly-backwards-compatible successor; here's hoping).

Point of clarification:  no one is talking about replacing the existing
operate and OOS interfaces with a less general one.  All we are talking
about doing is providing an easy api function that covers the most
common cases in a way that's simple to use for a newbie.

So the first few times you type the command at a repl you can just do

(asdf:load-system 'foo)

instead of

(asdf:oos 'asdf:load-op 'foo)

Later on, if one prefers, one can go to using asdf:oos directly.

I agree about the alternative support on the different platforms, but
that makes for difficulties for the learner.  In particular, now the
learner needs to search outside the asdf documentation to find out how
to load.  I certainly agree that, for example, if one is using SLIME,
one will be happier when one has learned the slime command (and the same
for other environment-specific commands).  On the other hand, as one who
moves back and forth between different environments (lisp
implemenations, ELI and SLIME, development workstations), I find myself
falling back on the functions quite a bit.

This addition seems to me to do no harm to anyone.  At worst, it will be
useless.  At best, it will help people starting up with ASDF.


More information about the asdf-devel mailing list