Re: Feature Request: ASDF included?
Unable to parse email body. Email id is 7621
Unable to parse email body. Email id is 7621
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
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.