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

Re: #-, #+



For what it is worth, Interlisp has settled more or less on s-expression 
conditionalizations for environment-dependent operations; that is, there
are functions (SYSTEMTYPE), (COMPILEMODE) ... which return the current
values for the system you are running in, and then one writes
(SELECTQ (SYSTEMTYPE)
	((TENEX TOPS-20) Interlisp-10 code)
	(D Interlisp-D code)
	(VAX Interlisp-VAX code)
	(J Interlisp-Jericho code)
	etc.)

Of course, the compiler can turn SYSTEMTYPE into a constant and
optimizes away all but the relevant case. This means
that there is no need for any special-purpose code walkers or whatever.

There have been a few cases where #+ and #- would have given better
control (e.g., in compiler declarations, which don't get evaluated)
but for the most part, the fact that there isn't a separate syntax is
an overriding advantage.