Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.
From: Erik Naggum <>
Date: 2000/11/07
Newsgroups: comp.lang.lisp
Message-ID: <>

* John Foderaro <>
| There's no question that ACL can run in Modern mode with
| readtable-case and *print-case* active.

  Then why do you destroy that functionality in "Modern" mode by
  default?  This is so irrational of you that I can no longer give you
  the benefit of the doubt as to your motives.

| On thing that's missing from your code is how to deal with fasl
| files.

  This may come as a shock to you, but symbol interning in fasl
  loading has nothing whatsoever to do with readtables.  I carefully
  did _not_ change the values of the variables *current-case-mode* and
  *current-case-mode-number* because those hold important information
  for the fasl writer and reader, namely the preferred case of
  symbols.  I fully recognize that you need to know that.

  If readtable-case is not a problem in :case-insensitive-upper, it
  cannot possibly be a problem in :case-insensitive-lower, either.

  I'm insulted by your implication that _I_ am carelessly breaking
  your already broken code.  There is nothing "missing" from my code,
  John.  Quit the goddamn FUD propaganda, will you?  I think I know
  your agenda, now: Destroy ANSI Common Lisp, by creating distrust in
  your own implementation of it.  This can _only_ backfire, John.

  There are no references to *forced-readtable-case-raw* in the fasl
  reader or writer, just for your information.  You could have checked
  that sooner than I could, and before you made your bogus "argument".

  What the hell do you think you're going to accomplish with all this
  nonsensical bullshit?  What are you _trying_ to accomplish?

| If readtable-case is active then you have to somehow encode that in
| the fasl files and let the fasl reader know about the current
| setting so it will do the right thing before interning symbols.

  This is so mind-bogglingly out of focus I can't imagine that you
  actually believe this nonsense yourself.

  The fasl reader needs to know whether the symbols are to be stored
  in lower-case or upper-case.  That has absofuckinglutely nothing to
  do with the readtable-case!  At least get your facts right before
  your propaganda machine runs _completely_ amok, will you?  Damn it,
  I think you're working hard to obfuscate the issues so much it is no
  longer possible to identify you as the culprit.

| As I've said my goal is to be able to load ANSI code into a Modern
| lisp and make it run with minimal porting effort and change to the
| code.

  Then why do you destroy standard functionality?  Why do you force
  people to find *force-readtable-case-raw* and if they want standard
  behavior?  Why do you at all _believe_ that code written with the
  tacit or explicit assumption that internal symbol case is upper-case
  will work when the internal symbol case is lower-case?  None of this
  makes any _sense_, John.

| This will encourage people to use Modern mode (or maybe I should say
| that it will not discourage them from using Modern mode).  The real
| test as to whether making readtable-case active in Modern mode is a
| good idea is whether it impacts the importing of ANSI code.

  I hope people are soundly discouraged from using "Modern" mode.

  Why do you have to engage in FUD propaganda against readtable-case?
  If people are using readtable-case, your destruction of its defined
  functionality would have impacted people severely, as it impacted me
  severely.  I still don't think you fully appreciate what this means.
  I think you are still supermyopically focusing on your own needs and
  basically saying "screw you" to everyone who does not share them.

  By re-enabling readtable-case, people get what they specify that
  they want.  You had to destroy the functionality of readtable-case
  because you wanted to lie about the internal case of symbol names.
  It's that lying that you should be severely punished for, because
  you are thereby doing the Common Lisp community a major disservice.

| I have no emotional attachment to the way things are currently done.
| It's just a program after all.  There are procedures for effecting
| changes in programs.

  I'm asking for an adjustment in your attitude towards the standard,
  from utter disrespect and disregard to respect and appreciation that
  it is a _baseline_, not something we take polls to see if you need
  to implement or not.  A faithful implementation of the standard
  means that people don't have to test for compliance all the time,
  which you force them into doing by signalling that Franz Inc only
  implements tha parts of the standard that people ask for in polls.
  I have been critical of Franz Inc's conformance track record for
  years, but I thought we had made some progress over those years,
  too.  You're showing me that there has been no progress at all.
  That is very, very disappointing and annoying, and I'm pissed as
  hell with you for destroying the trust I thought I was building
  towards you in particular and Franz Inc in general to actually
  deliver what I want, a conforming ANSI Common Lisp implementation.
  I _don't_ want "John Foderaro's special hacks Lisp du jour", and I
  _don't_ want to have to drum up public support for features in the
  standard that I would like to use before you implement them right.
  Netiher do I want to test _everything_ to see if you have done the
  basic features right.  I want to _trust_ the baseline so it can in
  fact work like a baseline.

  However, as long as you think you are doing everything right and do
  not listen to criticism, we shall have no reason to trust Franz Inc
  even to _strive_ to produce a conforming Common Lisp implementation
  and it is an _accident_ if it is, because you really want to be
  making a different kind of Lisp.  From all the assurances I have
  received from other people at Franz Inc, I thought this period of
  distrust was over, but you're doing a marvelous job of destroying
  that trust, too, John.  What's the next thing you don't like in the
  standard that you're going to break for us, huh?

  The main reason I still distrust CLISP is that its main author is a
  snotty bastard who thinks he knows much better than me what I want
  from a Common Lisp system, specifically that I _don't_ want a fully
  conforming system.  That's not only wrong, it means that I have no
  idea what he has and has not implemented to that specification, what
  he considers that he knows better and has done _differently_ just
  for kicks, etc.  as soon as I found out that he had a real agenda
  against the standard, I stopped using CLISP completely.  I don't
  know the story on the newer CLISP, as I have a hard time re-trusting
  people.   Now, that was no big loss at the time, but dropping
  Allegro CL because you are working hard to destroy three yaers'
  worth of work to build trust in your conformance to the standard
  would have a serious impact on my work at this time.  I'd rather not
  be forced into making that decision, but it is clear that we need to
  work on taming your personal animosity towards the standard so you
  do not cause random malfunction and disregard of defined smenatics,
  or some sort of "elective implementation" because polling people
  about feature X did not reach high enough numbers to cause you to
  implement it correctly.

  I'm not sure whether you take these things seriously at all, John,
  but if you continue with your agenda against the standard, you will
  cause serious problems for Franz Inc.  Breaking readtable-case in
  "Modern" mode was one of those staggeringly stupid moves that you
  should have thought very carefully about before making.  There's
  time to undo the damage, but the more you insist, the more work it
  will take to believe you won't destroy something else the next time.

  Does anyone remember where I parked Air Force One?
                                   -- George W. Bush