Greetings,

I stumbled upon a curious facility of Boot and SPAD this evening.  I
do not recall, nor can I find, a reference to this in the list
archives or in any documentation.  Please correct me if I am wrong.

The facility is w.r.t identifiers.  An identifier such as FOO'BAR is
interpreted as meaning the symbol BAR in the package FOO.  Other
identifiers, such as 'FOO or FOO' do not communicate such a meaning.

The code which is responsible is the function
GET-BOOT-IDENTIFIER-TOKEN defined in bootlex.lisp.pamphlet.

Preliminary examination tells me that such identifiers are _not_
currently used in the extant Boot or Spad code.  I will perform
convincing tests once a local build cycle completes.

My opinion is that this is unused cruft which has no discernible
application.  In fact, it theoretically results in the generation of
non-portable code.  For example, several popular Lisp implementations
have introduced the notion of `package locks' to prevent against
unintended alteration of package symbols.  The identifier CL'FOO
results in FOO being interned in the COMMON-LISP package, which would
violate such a lock.  There are other examples.


I am curious if anyone has noticed this facility and/or sees a potential
use for it.


Sincerely,
Steve


  



_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to