Subject: Re: When to recompile/reeval?
From: Erik Naggum <>
Date: 17 Oct 2002 21:49:44 +0000
Newsgroups: comp.lang.lisp
Message-ID: <>

* William Newman
| Gack.

  That was a particularly depressing opening.

| Thus I was particularly annoyed and provoked by Erik's comparisons to
| CLISP and gcl above.

  In /addition/ to being egoistically concerned with your own feelings, how
  about also considering how annoyed and provoked I was when I noticed that
  SBCL had removed this crucial feature from CMUCL.  I have come to rely on
  the interpreted behavior of macros in Allegro CL because I have 

| there seems to be the suggestion that SBCL has been backsliding away from
| ANSI-specified behavior which supports incremental development.

  You know, I consider ANSI compliance the baseline.  It is in my view quite
  irrelevant when arguing for a particular implementation over another.  It
  would be like marketing books with "now conforming to standard spelling
  and grammar" on the cover.  In other words, I do not look for compliance,
  I expect it, the same way I expect people to think and get annoyed when
  they do, instead of applauding them if they do like the touchy-feely guys.

| So while SBCL may have ditched support for extras that Erik likes very
| much ("crucial element", check) please do not go away with the impression
| that we mess up ANSI-specified basics like being able the redefinition of
| class instances mentioned above.

  I do not think there were any grounds to think that the annoyances of one
  implementation would be contagious just because it was juxtaposed to
  another implementation, so I do not believe anyone would go away with
  that impression, but had I known you were nervous about compliance, I
  would not have antagonized you on that aspect.  As far as I am concerned,
  CMUCL (and hence SBCL, which I have only recently installed for fun)
  stands head and shoulders above the other no-cost alternatives.

| Erik: You stand out from the crowd by being unusually smart,
| knowledgeable, articulate, prominent, opinionated, and undiplomatic, but
| you are by no means the first person to criticize SBCL for not supporting
| a favorite allowed-by-ANSI extension or idiosyncrasy, and you probably
| won't be the last.

  On my list of impressions that I want people to go away with are being
  unusually smart, knowledgeable, articulate, prominent, opinionated, and
  undiplomatic, but I have no intention of being remembered as the first or
  last person to criticize SBCL, so I mark that down as one success.  :)

| If I understand correctly, you want macro redefinition DWIM in interpreted
| code, so that as long as you don't COMPILE-FILE or COMPILE, you don't
| need to think about rebuilding the world from scratch when you redefine a
| macro.


| That does sound like handy behavior, and it's certainly deliciously dynamic.

  Great that we see this the same way.

| If there were a clean and simple way to make it happen, we might well do it.

  Very good!  If you find that it is easier to keep a record of compiled
  functions that used a particular macro and report this upon redefinition
  of the macro in a way that could be used to recompile functions as needed,
  that would be even better because it would allow for automated tools to
  create patches and would influence the system-building features.

| Also, I suspect that you may be writing from incomplete knowledge [...]

  I started to learn Common Lisp for real (after on-and-off use and toying
  for at least a decade) in 1994 with CMUCL, but got my hands on Allegro CL
  and found that it was really remarkably different and so much better than
  CMUCL for software development.  I have stayed with it since, thanks in
  large part to the great people at Franz Inc.

Erik Naggum, Oslo, Norway 

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.