[slimpl] How to help Slimpl

Larry Clapp larry at theclapp.org
Fri Feb 24 10:57:06 CST 2006


On Fri, Feb 24, 2006 at 07:55:48PM +0500, Dmitry Petukhov wrote:
> 2006/2/24, Larry Clapp <larry at theclapp.org>:
> > In another thread, also about the event issue, I said we could
> > just use all synchronous calls for the moment, and someone
> > objected (paraphrasing from memory), "What about when the debugger
> > pops up?"  I don't think that that, in and of itself, presents a
> > problem.  In general, you send an expression to Lisp, and it
> > either sends back a result or sends back a debug sequence.  It
> > doesn't just "pop up", as near as I can tell.
> 
> I said about 'debugger pops up'. It actually pops up when you write
> UncommonWeb app, and an error occurs while you interacting with your
> web application.

Okay, I'll keep that in mind.

> > The whole asynchronous calls thing only really comes up if you
> > have an expression that takes a long time to run, or "never
> > returns", like if you start a web server and only want it to come
> > back if it raises an error.  Maybe I can create a
> > "pseudo-synchronous" call, where I wait for a second for the
> > result, and then transform it to an asynchronous call.  Or
> > something like that.
> 
> When we can do async call, why even use synchronous ?

Well, keep in mind, I'm not saying synchronous *forever*, just *now*.
Nothing says we can't refine our approach once we get some basic
functionality working.

> But unfortunately, we don't have a decent mechanism for async call.
> I'm thinking of a separate process what sits between slime and
> slimpl and alert slimpl on events.

I guess that'd work; I don't think I understood before.  You want

  Vim <-> X <-> swank

where X functions strictly as a passthrough, and also prods Vim via
the server interface whenever it gets something from Swank.  Have I
got that right?

> I'll try to get a time to actually implement this, then we will see
> how practical it is. Need to dig more into slime code first, because
> i don't see where the rest of input data is discarded when large
> slime request is aborted in the middle.

I don't think Slime or Swank discard any data; I don't think such a
thing exists as "aborting in the middle".  Slime sends Swank a
complete request; Swank reads all of it as a string, and then does
read-from-string on it.  Swank doesn't throw anything away in the
sense of "aborting in mid-receive".  But maybe I've misunderstood you.

-- Larry



More information about the slimpl mailing list