POS, OOFS, CL v Scheme, etc.

David Gadbois gadbois@cyc.com
Tue, 13 May 1997 12:22:51 -0500 (CDT)


   From: hbaker@netcom.com (Henry G. Baker)
   Date: Tue, 13 May 1997 07:41:37 -0700 (PDT)

   For example, the LispM used 'stack groups' for its threads, and
   these turned out to be pretty 'heavy weight', due to the
   requirement to bind and rebind a bunch of shallow-bound 'special'
   variables.  I'm not sure that this is such a hot idea in 1997.
   Therefore, since CL was based substantially on the LispM model, I'm
   not so sure that CL itself can survive without change into 1997
   LispOS.

I was always amazed that they implemented dynamic binding that way.
But that is a low-level implementation decision you could alter
without effecting much else.  Things have changed:  Memory writes are
more expensive, coding style uses much less dynamic binding, and
threads are used much more widely.  I'd be willing to bet a beer that
a deep-binding approach will win.  Dereferencing dynamic bindings
would be much more expensive, but stack-group switching would be
considerably cheaper: Just save the old registers and restore the new
ones.

--David Gadbois