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

Multithreaded Common Lisps



   Date:     Thu, 9 Mar 89 21:27:01 EST
   From: Phil Dykstra <phil@BRL.MIL>

   Rob,

   I was glad your note did go to cl-windows, I found the DELPHI common lisp
   remarks interesting.  You mentioned that it had:

	      - Multithread support for concurrency.  The Multithread
		primitives can also be used to implement semaphores, OCCAM
		channels and other typical concurrency schemes.  A small 
		amount of code can be written to emulate efficiently 
		the concurrency metaphors of other Lisps.  Delphi has 
		already implemented extensions to CLOS to allow the definition 
		of concurrent synchronizable atomic methods.

   Is there some emerging standard or proposed standards for concurrency
   control in Common Lisp?  I was toying with adding such to AKCL but I
   would rather not make up my own interface if there's an accepted one
   out there.

   - Phil

This may be a little off topic for cl-windows, but multi-thread
support is very handy for event driven window interfaces.  The MCC
DELI Window System interface (no relation to DELPHI) relies heavily on
multi-threading above the retagetable Window System Independent
Interface layer.

Most of the compiler vendors seem to be using the same stack group
based model found in the MIT Lisp Machine and descendants.  Lucid
doesn't export their stack groups, but the multi-thread interface is a
bare bones version of the MIT support,  Franz Allegro has very closely copied
the Lisp Machine interface.  I understand that Gold Hill has stack
group support - so the multi-thread interface should be easy to write.
KCL has been a noteable exception, which is one reason why DELPHI was
of interest.  The Xerox Interlisp based machines used a different
model - the spaghetti stack.  At MCC we wrote a multi-thread interface
module which paper over the syntactic differences between the
Symbolics, Lucid, and Franz Allegro compiler multi-thread interfaces.
Unfortunatly we chose a slightly different syntax from the MIT Lisp
Machine.  I don't have a details on what DELPHI has done, but I would
recommend the MIT semantics and syntax because:

1.  A large body of existing code uses it (ie any multi-process code
written for MIT flavor lisp machines).

2.  Already supported by multiple vendors (Franz, LMI/Gigamos,
    Symbolics, and TI with Lucid using the same semantic model).
    
;rob

  Robert C. Pettengill, MCC Software Technology Program
  P. O. Box 200195, Austin, Texas  78720
  ARPA:  rcp@mcc.com            PHONE:  (512) 338-3533
  UUCP:  {ihnp4,seismo,harvard,gatech,pyramid}!ut-sally!im4u!milano!rcp