- From: Mike Pall <mikelj-2511@xxxxxxx>
- To: luajit@xxxxxxxxxxxxx
- Date: Wed, 12 Nov 2025 21:24:01 +0100
Sergey Kaplun wrote:
[...] there is no information on the current status of the v3.0 version.
Well, the status page says 'TBA'. But, of course, you're right.
Maybe I should have explained my general take on the evolution of
LuaJIT.
First, v2.1 is not going away. It's actively maintained, it gets
incremental improvements, many people use it for their projects,
and it does what they expect it to do.
Granted, though it might be painful, I could probably implement
half of the things on my wishlist in the current VM architecture,
bump it to v2.2 and call it a day. But that doesn't help to resolve
the other half _and_ I'd have to maintain yet another branch.
That's why I've come to the conclusion that it would be a better
investment of my time to go big on v3.0 and rearchitect it. This
comes at a much greater risk, of course. Any competent manager
ought to fire me on the spot. Luckily, I'm self-employed, I'm
doing Open Source, and I'm doing it 'because I can'.
LuaJIT v1.0 mainly came to light, because I knew I could pull it off
in a couple of weeks. LuaJIT v2.0 was brewing in my mind for a couple
of years until I found the right mix of unconventional ideas _and_
I was sure I could pull it off. Only then did I start to write it.
BTW: I guess I somehow missed to celebrate the 20-year anniversary
of LuaJIT this summer.
My general approach to (re)architecting such a complex project is
to treat it like a giant puzzle. In the best case I can recycle
pieces from previous projects, just like LuaJIT v2.x recycled DynASM
from LuaJIT v1.x. Most other pieces can be based on tried and true
solutions from papers or other projects, i.e. non-original research.
And then there are the weird, the misfit, the unproven pieces, i.e.
original research.
Yet another time I do not plan to go along well-trodden paths for
LuaJIT v3.0. Which means the latter type of pieces dominates the
time spent on this project.
Right now, I'm still at the stage where I think hard about all of
the options and conduct many small experiments. The main goal
being to verify or falsify my preconceptions about some pieces.
And where and how they might fit into the whole puzzle. Although
this means writing quite a bit of code, it's only a secondary
concern whether this ends up in the finished product.
Furthermore, I'm quite interested in
contributing to this new version, but I've failed to find any ways to
join the development.
See, there's the problem. I don't know how to involve others in
the process I'm currently going through -- at this stage of
development.
I'm really bad and slow at writing prose. And I do not feel
confident in releasing experimental throw-away code out of context
and without accompanying comments. A piece is worth little without
the rest of the puzzle.
I guess you have to have some patience.
--Mike
- Follow-Ups:
- Re: Question about LuaJIT v3.0 status
- From: Alex Shpilkin
- Re: Question about LuaJIT v3.0 status
- From: demetri
- Re: Question about LuaJIT v3.0 status
- From: Spar
- Re: Question about LuaJIT v3.0 status
- From: Sergey Kaplun
- Re: Question about LuaJIT v3.0 status
- References:
- Question about LuaJIT v3.0 status
- From: Sergey Kaplun
- Question about LuaJIT v3.0 status
Other related posts:
- » Question about LuaJIT v3.0 status- Sergey Kaplun
- » Re: Question about LuaJIT v3.0 status - Mike Pall
- » Re: Question about LuaJIT v3.0 status- Alex Shpilkin
- » Re: Question about LuaJIT v3.0 status- demetri
- » Re: Question about LuaJIT v3.0 status- Spar
- » Re: Question about LuaJIT v3.0 status- Mike Pall
- » Re: Question about LuaJIT v3.0 status- Mike Pall
- » Re: Question about LuaJIT v3.0 status- Mike Pall
- » Re: Question about LuaJIT v3.0 status- Sergey Kaplun