From: Marco M. <ma...@ac...> - 2007-06-28 10:44:25
|
William Harold Newman wrote: > On Thu, Jun 28, 2007 at 01:51:32AM +0100, Marco Monteiro wrote: >> [The changes are divided in 2 email because the patch is more that 40kb.] >> >> The attached patch changes the code to facilitate a possible future >> implementation of modern mode Lisp. Each change is of one of: > > I'm not very enthusiastic about this. Of course I see the value to > those users who need to run code portably both under SBCL and under > Allegro and who also choose to configure Allegro in its nonportable > modern mode. However, safe cheap trivial changes though they are, they > also seem to come with a global requirement that SBCL's code continue > to conform to the ANSI-Standard-as-revised-by-Allegro in order to > avoid code rot. Enforcing that seems to involve manual tedium or extra > automated checks at compile time. > > We do already have checks like that for a narrower definition of > allowed whitespace than ANSI uses, for noncritical reasons like > improving CVS diff signal/noise ratio. So it's not completely > impractical or out of the question that a noncritical reason like > supporting more dialects of CL could justify this change. But it's not > clear to me that modern mode is something we should be working to > support. The patch doesn't seem completely out of the question, but my > snap reaction to this is more like "convince me" than "OK." To make SBCL code base support modern mode in a non-hackish way would be a big undertaking and not worth the work. I'm not advocating it. SBCL is and should continue to be a good CL compiler. Besides, almost no one wants or needs modern mode in SBCL. The code in Brian Downing's response to your email almost works. To really make it work, you need my patch and some additional, small but more intrusive changes, like declaring that some functions cannot be inlined, etc. Some 300 additional lines of code and you can have modern mode. But this is an hack, and should not be included in the code base. The changes in my patch allow such an hack to work and to be maintained outside the SBCL source tree. The changes are trivial enough that they should not cause any trouble to anyone. And the maintenance of the hack outside the source tree would be much easier, which is always good (for me, at least). Please, apply. :) Marco |