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

Re: -*- line

Many messages about this subject have been very confused.  It
would take more time than I can afford to answer everyone
personally and point-by-point.  Other messages on this topic
have been cogent and correct, and so I will be repeating
some things people have said.

No, the -*- line is not a relic from ITS EMACS.  ITS EMACS
introduced the simple use of -*- to express the major mode.
I invented the generalization into property lists, in
response to ITS's lack of a property list feature in the file
system.  I introduced it SPECIFICALLY for Lisp.  I INTENTIONALLY
did not use a Lisp-like syntax.  The application in question
was for the Package property.

It is impossible to modify ITS to put in file property lists.
100% out of the question; don't even think about it.

File property lists have nothing whatsoever to do with Lisp.
There is abolutely no reason for them to be in Lisp-like syntax.
If we had ALGOL or SNOBOL-4 on ITS, they would use file property
lists too.

The syntax of file property lists is extremely simple to the
point of being near-trivial.  If you have trouble parsing
them, then you cannot program your way out of a paper bag.
Furthermore, once a parser has been written for a given language system,
it is written, once and for all, and anyone can use it.  Such
code exists in the Lisp Machine and in Emacs; nobody ever has
two write the parser again.  Writing one for Maclisp would
be an easy task for any reasonably competent Maclisp programmer.

The current implementation of file property lists has the
extremely winning property that you can edit them without
having to learn a whole new bunch of file system commands,
all of which would probably have to get implemted in DDT, EMACS,
ZWEI, et. al.  They get saved with backup tapes.  They get coied
when the file gets copied, and this fact is OBVIOUS (nobody needs
to wonder whether or not they get copied along with the file,
to wonder whether, like the creation date, they are might not
be considered part of the contents of the file).

The Package property is used for several things, not all of which I can
reconstruct right now.  Indeed, you can get this information from the
package declaration.  However, it is useful for error-checking to have
the information in the file as well, and it is also useful so taht you
can read in a file without necessarily pre-loading the package
declaration, in simple cases.

I think the file property list works the right way.
I see no reason for changing anything about it.