Sketchy Plan

Brian Rice water at tunes.org
Tue Oct 25 11:20:25 PDT 2005


On Oct 25, 2005, at 10:01 AM, Tony Garnock-Jones wrote:

> OK, so if I were to proceed with trying to invert the control in  
> the current Slate system (making the REPL inferior to an event  
> loop), I'd probably start by working along these lines:
>
>  1. refine the bindings to socket(), connect(), bind(), listen(),
>     select() and friends. Or possibly bind to liboop or SDL_Net
>     instead.

liboop looks like a decent choice. SDL_Net binds us to SDL which is a  
bit annoying.

>  2. experiment with continuations in Slate. (What's their status,  
> BTW?)

Non-existent. We have efficient ensure: handling, but that's about  
it. Stack traversal does have a Slate-side API in mobius/vm/interp/ 
debug.slate.

>  3. test the socket code in isolation, using the REPL to start another
>     event loop, possibly with a nested REPL inside it.
>
>  4. all-at-once, remove the outer REPL and replace it with an event
>     driver loop.

I was going to try (4) but (3) does sound easier to test.

> (5. later, integrate the event loop with SDL's UI events.)
>
> Any comments?

These sound helpful. I will help in any way that I can.

> PS: I appear to be perenially confused about whether "main" or  
> "alpha" is the best branch to work on things like this from. Which  
> should I use?

If you contribute anything that's not on the periphery, then I'd  
prefer that you use main. After all, even if it is unstable, you can  
selectively not-pull or unpull patches that give you trouble. On the  
other hand, patches that are "darcs send"d to either repository are  
still useful, but I need people to tell me when it's for alpha as  
opposed to main.

--
-Brian




More information about the Slate mailing list