NG Lush and concurrency
Ralf Juengling <[email protected]> Thu, 30 Mar 2006 10:35:20 -0800 (PST)
| Newsgroups | gmane.lisp.lush.devel |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 17 Mar 2006, Leon Bottou wrote: > Let me describe the kind of design I had in mind. > > 1) Runtime support library. > - define the basic types. > - define a garbage collecting method. > > Here is a first attempt at that (that I reused for the djvu project). > <http://cvs.sourceforge.net/viewcvs.py/djvu/djvulibre-3.5/libdjvu/miniexp.h> > <http://cvs.sourceforge.net/viewcvs.py/djvu/djvulibre-3.5/libdjvu/miniexp.cpp> > and a proof that it can support a lisp system > <http://cvs.sourceforge.net/viewcvs.py/djvu/djvulibre-3.5/doc/minilisp/> > > Alas this is not good enough. The minivar system is too slow. > I think the support library should be largely implemented > as manipulations of a stack machine. > That would make the garbage collector a lot simpler. > That also facilitates step 2. > > 2) Define a bytecoded stack machine. > One of the opcodes is an escape that calls > an arbirary C function with natural C arguments. > > 3) Implement the interpreter as a converter from lisp-expressions to bytecode. > This can be written in lisp and converted to bytecode by bootstrapping. > Benefits: we can have lexical scoping right away. Multi-core architectures seem to be becoming the norm in desktop machines. To take advantage of multi-processor and multi-core architectures we need language constructs for expressing that certain operations may be carried out in parallel or change the semantics of existing operations where this can safely be done (many array operations may be carried out in parallel). On the one hand. On the other hand, a next generation lush runtime system should support parallel execution. How would that fit in here? Would we have multiple stack machines, running in different threads, plus a thread for the garbage collector, and a scheduler that assigns chunks of computations to idle stack machines? Ralf ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642