[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Order of evaluation in PUSH (& PUSHNEW)
In the original design discussions, we briefly considered leaving the
order of argument evaluation undefined in order to make life easier for
some future parallel version of Common Lisp. However, we felt that the
question of what should go into a parallel Lisp was an open research
issue (it still is). We decided that designing a good serial Lisp was
plenty hard enough, and that worrying about various half-baked ideas for
a parallel Lisp would be a distraction we didn't need. So the design
went forward with parallel processing explicitly excluded from the
design criteria; given that stance, tying down the order of evaluation
seemed to be a good idea for portability.
Even if we had left order of argument evaluation open, this change by
itself would only buy you a factor of two or so on the average, and
that's with no overhead for splitting and merging processes.