[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: LuaJIT 1.1.5 issue/bug?
- From: Mike Pall <mikelu-1003@...>
- Date: Wed, 24 Mar 2010 03:28:26 +0100
Tim Mensch wrote:
> OK, I'll be sure to include that in the docs. I will consider shifting
> to 2.x later, though I'm not sure that it will actually work as well for
> us: The alternate C stacks in LuaJIT 1.x mean that people can suspend
> their coroutines from within their C functions, and with C functions on
> the stack. I assume that won't work in LuaJIT 2.x because of the new way
> things work? Or am I wrong?
You're right. You can still yield across pcall(), metamethods,
iterators etc. in LuaJIT 2.x, since the VM has special provisions
for these.
But LuaJIT 2.x coroutines don't need (or get) an extra C stack and
are very lightweight. So while this solves the coroutine overhead
problem (one of the main complaints about how LuaJIT 1.x worked),
you can no longer yield/resume 'true' C frames in your own code.
If you make heavy use of this particular feature of LuaJIT 1.x,
you're effectively blocking your upgrade path. If possible, avoid
promoting it.
--Mike