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

* 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.

  Precisely.

| 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           http://www.beltwaybuzz.com/Story%20Four.htm

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