gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] Re: General GCL quesions


From: Chris Hall
Subject: [Gcl-devel] Re: General GCL quesions
Date: 13 Apr 2004 23:25:12 -1000
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Camm Maguire <address@hidden> writes:

> Greetings!
> 
> > > I think it is a question of priorities.  Most would
> > > rather us improve
> > > ansi compliance first, no?
> > 
> >  Yes, yes. If people really need some type of
> > multi-tasking cooperative multi-tasking is reasonable
> > easy to implement in lisp.
> > 

ANSI first, yes, yes, yes, pleeeeaaaase, yes. ;-)

Even though I'm also interested in CLTL1, and just today found the
section in Paul Graham's "ANSI Common Lisp" that outlines some of the
major differences between CLTL1 and ANSI Lisp.  *Woot!*  Should be a
big help in trying to use CLOCC w/GCL. 8-D

> >  
> > 
> > > >  That said, python's twisted matrix has managed to
> > > > implement database multiple io in a single thread
> > > > (including database io) perhaps it would be 
> > > > possible to port this. 
> > >
> > > This should be possible with select.  I've 
> > > actually written a C
> > > library that can multiplex web page sockets, 
> > > and might integrate this 
> > > into GCL at some point if there is interest.
> > 

In the mean time, would you be willing to share this?  I was going to
search for a C select-based event handler (?), but if yours already
works w/GCL . . . plus, it might help me get up to speed on the C
interface.

I agree with what you said elsewhere about GCL being a compiler and
not integrating too much into it.  I know that CMUCL/SBCL basically
ship with their respective approaches to a facility for
multi-processing, but hasn't this also lead to porting problems for
them?  E.g., IIRC, CMUCL's only works on Linux/*nix(?).

With GCL's much wider portability and smaller (I assume) development
team, perhaps it might be better simply to put a reference
implementation and API out, and let those that need it port it to the
needed platform(s).

FTR, I've used Twisted a fair amount, and also poked around 'under the
hood' a fair bit - Twisted appears to use a framework-managed thread
pool for it's supplied DB functionality.  Everything *else* is handled
either via select (network, mostly) and their 'Deferred' object for
co-operative multi-processing.

Twisted's 'Deferred' and associated 'Errback' objects seem to be an
essential part of a large part of their framework (esp. Woven) and
provide a convenient, framework-managed callback mechanism.  There is
also a framework equivalent of 'yield' for long-running computations
to use so that they may play nicely with others.

Twisted also supplies different select 'engines', including one for
GTK, IIRC.  And I definitely intend to use Twisted code as reference
material in my quest for web apps in GCL.

> 
> -- 
> Camm Maguire                                          address@hidden
> ==========================================================================
> "The earth is but one country, and mankind its citizens."  --  Baha'u'llah

-- 
We learn from history that we do not learn from history.
-- Georg Friedrich Wilhelm Hegel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]