axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Boot/SPAD package syntax


From: Gabriel Dos Reis
Subject: Re: [Axiom-developer] Boot/SPAD package syntax
Date: 05 Jun 2007 00:32:41 -0500

Stephen Wilson <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]