Stephen Wilson <[EMAIL PROTECTED]> writes: | 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.
Since we have at least two versions of Boot around, you need to qualify your Boot by either "old" or "new" or variations thereof. | 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. That is old old syntax. Newer syntax in old Boot is FOO::BAR -- but it may require parenthesis in most cases because of the precedence of :: qhich does not make FOO::BAR a primary. New Boot (in src/boot) has gotten same syntax (::) recently (added by me). [...] | 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. Those are *bugs in Axiom* source code -- there are plenty of those around. Even if you remove the syntax CL'FOO, you'll find that existing Axiom codes uses other things like restart, etc. | I am curious if anyone has noticed this facility and/or sees a potential | use for it. I use the syntax FOO::BAR, but not FOO'BAR, for "package-call". New Boot treats FOO'BAR as a "single" identifier. --- Gaby _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
