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

Re: Compatible? with whom?



I very much agree with JONL that the exact internal semantics
of SOURCE-TRANS or COMPILER:OPTIMIZERS or whatever it is,
is fairly unimportant as long as the same basic feature is available.
Nobody would be writing something like
(PUSH #'(LAMBDA (FORM) ...) (GET 'FOO 'COMPILER:OPTIMIZERS)) 
in source code anyway.

Perhaps it would simplifiy things to PUNT the MACRO PROPERTY, at
least for the compiler? This would give the compiler less things to check
for.

As to the features of SOURCE-TRANS, I think it would be nice if the
property called got a second descriptive argument telling EVAL-FOR-VALUE
EVAL-FOR-EFFECT, EVAL-FOR-PREDICATE. Certainly the present Maclisp/NIL
implementation of PUSH/POP could use this info. Also, special mapping frobs,
some for value, some for effect, would not be needed. I have tried some
examples of this in "K", and it certainly cannot take the consing out of
(PROGN (DO ((L L (CDR L))(N NIL (CONS (F (CAR L) N))) ((NULL L) N)) NIL)

-gjc