lua-users home
lua-l archive

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


Stackless's 'tasklets' weigh only a few kilobytes a piece; what does a lua coroutine weigh?

Stackless, going from my limited understanding here, is not 'actually stackless' at all -- but by manipulating the C stack, allows dynamic switching between (arbitrary?) frames.  I have read that lua is 'literally stackless', and does not use a C stack at all... correct?  Please, scientists and engineers, tell me what this means to me...

Stackless has 'channels' which allow for 'communicating sequential processes', and provide a very useful scheduling paradigm that (seems to) blend nicely with the default 'round robin' behaviour of the stackless scheduler; does lua provide an answer to this? If not, would'nt it be fairly trivial to implement?

Stackless has access to Python's massive standard library, plus a huge 'commonwealth' of contributed code to use besides; where lua does not appear so well endowed yet... this has intimidated me for a while, and kept lua 'on the back-burner', but is it really much of a problem, since apparently it's an easy matter to use all of that nice Python code from lua anyway?
(If I start using 'lunaticpython', with stackless, will I get the best of both worlds? Or just a big headache?)

Regarding speed, vm size, ease of embedding and extending, and simplicity, lua is the clear winner, right?

What about stability? Stackless seems to 'hang tough' as a stand-alone, even a *long-running* process; how does lua compare there?

Really, please share your opinion if you can. And please 'reply to all' so that both lists can see, and hopefully inspire some dialog (I tend to forget to 'reply to all' when I mean to ;-).

Want to insult me or whatever personally? Do that here: phoenix@burninglabs.com.
(And spam me as well, thou evil crawlers... I archive every one, just for pleasure! ;-)

Thanks!


On Thu, Apr 23, 2009 at 11:15 AM, David Ludwig <dludwig@pobox.com> wrote:
Stackless Python is a modified version of Python that supports, among
other things, coroutines.  Normal Python has limited support for
yielding, but only within generator functions.  At least, that's my
understanding of things there.  :-)

- David

On Thu, Apr 23, 2009 at 11:03 AM, Javier Guerra <javier@guerrag.com> wrote:
> why stackless?  python is python, i don't see any significant
> difference between those implementations when comparing to Lua