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

[no subject]



Dear JONL -
   
   Thank you very much for your help.  Unfotunatley, in trying to make
use of it ZI seem to have made things worse, to such an extent that the system
itself pleaded with me to call you again.  I'd better show you what I'm 
doing - you'll probably see at a glance what horrors I'm perpetrating on your
long-suffering MacLisp:

   (declare (SETQ DEFMACRO-FOR-COMPILING 'T DEFMACRO-DISPLACE-CALL 'T)
            (special helplist))

   ;;; During loading, the tilde (~) readmacro allows the special comments
   ;;; in this file to be stored for later access by the APROPOS function.
   ;;; On the property-list of 'HELP, under the property 'COMMENTS, will
   ;;; be found a list of the comments, each element being a dotted pair
   ;;; of the unquoted part of the comment and the quoted part.

   (eval-when (compile load)
     (and (status feature COMPLR)
          (own-symbol DEFREADMACRO /~-readmacro)))   ;superstition...

(eval-when (eval load compile)
     (setq helplist nil)
     (defmacro defreadmacro (char &rest body)
       (let ((macro-name (symbolconc char '-readmacro)))
         (setsyntax char 'macro macro-name)
         `(defun ,macro-name () ,.body)))
     
     (defreadmacro /~
       (let* ((/^q t) (comment `(,(read) ,[atsign](read))))
         (push comment helplist)
         t)))

[atsign] intended to represent the symbol on this machine!

Then follows the comment itself:

~MSG "Simple formatter..."

...and the function it is supposed to describe - also a macro. Then,
a line I added in the belief that it was the kind of thing you were advising:

   (putprop 'help '#.helplist 'comments)

That's the end of the file.  I then tried to compile it:

;BKPT DATA   So I did:
$p
(COMMENT **ERROR** #75526 Unrecognizable datum __ Collecatoms in function FOO)
; %%%%%%%%%%%%%%%%%%%%COMPILER ERRO(R - CALL JONL%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;BKPT BARF

Ugh, what have I done?  Sorry to bother you with this again so soon.  I would
have flogged on with it on my own except for what the machine said just there.

As to your other valuable help - yes, I had just about reached the same
conclusion regarding how to  re-use "compiled" macros.  I just hoped,
(we are riddled with superstition here) that there might be a clever way
around the problem.    We seem to have the May '82 version of STRING, but
I'll check that the dates are right. And Lord alone knows what happened
to any notes you included with the source tapes - such things go
through many administrative hands before reaching poor hackers like us!

Thank you again, anyway.

Tony.