chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] Async IO (was Re: libcurl?)


From: Peter Keller
Subject: Re: [Chicken-users] Async IO (was Re: libcurl?)
Date: Wed, 5 Oct 2005 11:16:23 -0500
User-agent: Mutt/1.4.2.1i

On Wed, Oct 05, 2005 at 09:29:57AM -0000, Thomas Chust wrote:
> What should be rather easy though, is to implement such a message passing  
> system between forked processes, because they always share code segments  
> -- you wouldn't even have to map code pointers to and from anything,  
> because they would just be the same.

Well, how about this. 

1. Implement a message passing distributed communication system with scheme.
2. Design and implement a distributed interpreter for scheme on top of it.

(What the form of a distributed interpreter looks like is ignored right now,
I'm just assuming it can be constructed.)

Of course, this affects performance since scheme is now being interpreted
(nothing stops a just in time-like compilation method though...), however,
it grants you an abstraction layer between the application codebase and
emulator.

So, this grants you a few things:

1. Hard separation of the application scheme dialect(which could be a known
        scheme dialect) from the emulator dialect. 

2. Allows analysis of the application scheme dialect for distributed purposes.
        This allows explicit or implict concurrency. (E.G., emulator
        notices a purely functional (loop ... ) construct, ships it to
        another machine with the bindings it needs for execution.

3. Debugging layer can be created in the distributed emulator that can
        actually know what is going on.

4. You can make real decisions about how I/O is going to function.

With this method, you can work out the problems of continuation
serialization in the scheme emulator.  Or, if you decide to become tied
to someone's implementation, like say Chicken, the emulator for Chicken
can simply extend the Chicken dialect to support the distributed features
you need.

Once a new distributed dialect of scheme is finalized, then decisions about
what can be emulated and what can be natively compiled can be made.

-pete




reply via email to

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