[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
constant folding/smashing
re: >From what I read in CLtL, the semantic model of symbols DOES consider
them to have modifiable components: ...
I think you are confusing YOUR semantics of CL (which may be
widespread (Moon seems to share your view of SYMBOLs as being
componentles)s) with the semantics actually described in CLtL.
Lisp has been around longer than Common Lisp. There are many places where
CLtL makes a stab at clarifying the generally-understood semantics, and
fails. This notion (of CLtL being "in error" at times) is not just a
"confusion" that moon and I share, but a serious topic that the X3J13
Cleanup subcommittee is addressing.
Lest anyone get the wrong impression from what I've just said, let me
add that I find CLtL one of the truly impressive documents in Computer
Science. I can hardly praise it highly enough. It just isn't 100%
perfect.
re: If this "capability of implementation" [read-only constants] is so
important, why are so few implementations taking advantage of it?
. . . What implementations DO put constants in RO space?
Lucid Common Lisp, for one. Because of efficiency questions, you
will not actually have the "read-only" constant put into a write-protected
area of memory until after a subsequent "DISKSAVE". On Unix hosts,
this typically means re-ordering the image so that all the constants
and other read-only stuff are in the text segment. Maybe some of the
other implementations you tried and failed on do the same thing, and
you just didn't look at them after the corresponding "world dump".
re: I hope CLtL would clean-up EQUAL to mean "collapsable" rather than
subject the poor Lisp novice to yet another slightly-different
equality predicate.
Thank you for your opinion. I used the word COALESCABLEP rather than
"collapsable"; I should hope that whatever notion is acceptable to the
X3J13 committee will imply "substitution of one similar, but non-EQ, datum
for another" rather than "utter collapse" of a particular structure.
-- JonL --