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


    Date: Tue, 5 Mar 1991 12:00 EST
    From: Paul Collier <paul@taos.intel.com>

	    >The dumper is written in Zetalisp syntax and the LMFS package.

    My first thought also, but the attribute line for SYS:LMFS;DUMPER.LISP
    doesn't contain a syntax attribute, so I assumed (mistakenly) that it
    was using CL syntax. After receiving your reply, I did 

	    (package-describe 'lmfs)
    and saw the reference to ZL. 

Right.  The process of selecting a syntax and package is complex because
it attempts to heuristically handle old attribute lists compatibly, so 
that old source files (which pre-date Syntax info) do not have to be edited 
in order to make them continue to work.  See the doc section named
"File Attribute Lists" for details on how the heuristics work.

In this particular case, it's really just the package that is in issue,
not the syntax.  I probably shouldn't have mentioned Syntax because it's
something of a red herring in this context.  Even if the file had said 
 Syntax: Common-Lisp; Package: LMFS;
you still would have found GET to be ZL:GET, not LISP:GET.  (The main
visible difference would have been that \ rather than / would be the
reader escape character.)  The main reason why I mentioned Syntax originally
was only to emphasize that the selection of a particular dialect is 
usually done by selecting both its syntax and its package in lockstep.

There are a few cases where Syntax can interplay with packages.  For 
some info on these, I recommend these doc sections:

  "Set Packages" - contains info on format of Package attributes.
    The demand-created packages described here are created with
    options that are Syntax-relative. e.g., :colon-mode.

  "How the Common Lisp Developer Works" - the Syntax attribute
    was originally a special-purpose hack for separating Common-Lisp
    from Zetalisp.  Since then, we've had to do several more
    dialect separations and the mechanism has become more formalized.
    It is now used by Cloe and the CL Developer, and will one day be
    used for ANSI CL.  This doc section talks about some of the 
    details of how Syntaxes and packages interact.