Lisp HUG Maillist Archive

Re: Feature Request: ASDF included?

Unable to parse email body. Email id is 7621

Re: Feature Request: ASDF included?

If we *really* wanted to help newbies, we would stop releasing lisp libraries 
that use ASDF, defsystem, mk:defsystem, etc.

Lisp already has standard commands for compiling and loading.  Current 
hardware is so fast that re-compiling every file in a system takes 
insignificant amounts of time.

Just include an @make.lisp file that contains compile-file and load commands - 
perfectly readable by the newbie, and well-documented to boot.

Then, add a command to clear (re-initialize) the workspace so that newbies 
don't get stung by left-over experiments.

Fix the listener so that it tracks the current working directory (of the 
editor).

Fix the top level restart system in the newbie-listener so that newbies don't 
get confused by 1 : >, 2 : >, ..., when they make their first mistake.  I 
invariably see newbies reach double-digits before they figure out that they 
are expected to *perform* some essentially undocumented (from their 
perspective) action.

ASDF is the antithesis of what newbies need.

Simplify.

pt



Re: Feature Request: ASDF included?

On Mon, 4 Feb 2008 11:11:00 -0500, Paul Tarvydas <tarvydas@visualframeworksinc.com> wrote:

> If we *really* wanted to help newbies, we would stop releasing lisp
> libraries that use ASDF, defsystem, mk:defsystem, etc.

Apart from whether I think that's a good idea or not (more about that
below), how realistic is this given that there are already lots of
perfectly usable libraries out there that people might want to
utilize?  Your proposal reminds me a bit of the weekly "Let's change
the ANSI standard" thread on c.l.l... :)

> Current hardware is so fast that re-compiling every file in a system
> takes insignificant amounts of time.

For many systems that's probably true, but not for all.  I've spent a
good amount of 2007 working on a Lisp application where recompiling
every file took more than 15 minutes on modern 64-bit hardware.  The
guys there were desperately looking for ways to streamline their
system definitions in such a way that only the files that really
needed to be compiled were compiled.

Anyway, my impression is that ASDF is not so much about declaring
dependencies between the files in one library (what has to be compiled
in which order) but about declaring dependencies between different
libraries.  If you write a library A which depends on library B and C
one of which in turn depends on D then you just put B, C, and D in
some standard location and ASDF will find and load them for you.  You
don't have to teach your own load.lisp or make.lisp file where the
libraries are and you don't have to teach users of your code where
they have to put it.  And if someone wants to use your A and some
other library E which /also/ depends on C, he can actually use the
/same/ C in the /same/ location.  If both A and E used their own
load.lisp file and their own idiosyncratic way of organizing code,
then this would be very unlikely.

That's how this "open source" thing is supposed to work.  If you only
build big, monolithic systems that do everything on their own, that's
not an issue, obviously.


Updated at: 2020-12-10 08:44 UTC