[Openmcl-devel] Semi-newbie questions
gb at clozure.com
Thu Apr 8 23:19:42 PDT 2004
On Thu, 8 Apr 2004, Cyrus Harmon wrote:
> On Apr 8, 2004, at 8:59 PM, Gary Byers wrote:
> > REQUIRE moved out of CL about 15 years ago, and then moved back in.
> > DEFSYSTEM is a horrible anacronism.
> Obviously this is not specifically on OpenMCL question, but since you
> made the claim... When you say DEFSYSTEM is a horrible anachronism, do
> you mean DEFSYSTEM in general including, say, the DEFSYSTEM that is
> part of ASDF or a particular DEFSYSTEM, say MK:DEFSYSTEM? What do you
> recommend instead of DEFSYSTEM?
Sorry. Not only did I mean to spell "anachronism" correctly, I meant to
say that MK:DEFSYSTEM is full of anachronisms (support for the
idiosyncrasies of old versions of a number of implementations.) It's
not really sure whether it can use keywords in an EVAL-WHEN, and when
it gets around to trying to redefine REQUIRE it needs about 7 lines
of conditionalization to determine what package the symbol REQUIRE
is in. I'd think that this kind of thing makes MK:DEFSYSTEM very
hard to maintain; it certainly makes it very hard to read and understand.
I'm not enough of a fan of (the idea of) DEFSYSTEM to have an opinion
on what variant is best. (I've never built a lisp package that was
more complicated to build than DEFSYSTEM utilities are to use.)
I think that most newer CL packages use ASDF, and the ASDF code that
I've looked at certainly seems more readable. I really don't know
how ASDF and MK:DEFSYSTEM compare in terms of features; I've never
seen either used to build systems with non-trivial dependencies, though
there may be obvious examples of this that I'm forgetting.
More information about the Openmcl-devel