[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
lossage after lossage
- To: TONYH at MIT-AI
- Subject: lossage after lossage
- From: George J. Carrette <GJC at MIT-MC>
- Date: Sun, 31 Oct 82 21:04:00 GMT
- Cc: BUG-LISP at MIT-MC
- Original-date: 31 October 1982 16:04-EST
It doesn't help to be superstitious about Maclisp. In fact, it helps a lot
to keep things as simple as possible, not using a feature unless you
really understand what it is doing. Here is what I recommend:
(1) In one file, put your "compile-time" environment. This includes
macros and readmacros, and special declarations, e.g.
(defun help-comment-readmacro ()
(push (cons (read) (read)) helplist))
(setsyntax #/~ 'macro 'help-comment-readmacro)
(defmacro helplist-begin ()
(setq helplist ())
(defmacro helplist-end ()
`(defprop help ,helplist comments))
;; Note that I didn't bother with defining a fancy DEFREADMACRO, since
;; it just isn't worth the trouble.
(2) Then your source-file would look like :
(eval-when (eval compile)
(or (get 'macros 'version) (load "macrofile")))
.... stuff stuff stuff ...
(3) Do not use the Maclisp string package. It is has proven to
be completely unreliable. An alternative, which has been used in a text
editor written in maclisp, is in "GJC;CHAR >" on MIT-MC.
Someday a reasonable string may be released as part of the Maclisp
distribution, until then you should be able to get by fine with
something like "GJC;CHAR >"
Note that this file should be loaded at COMPILE and RUNTIME,
since it includes declarations, readmacros, and code.