
Moonjit – Fork of LuaJIT to Continue Development - xvilka
https://github.com/moonjit/moonjit
======
as-j
I really hope this gains traction. i use Lua in a professional setting on an
smaller embedded Linux system. Lua's memory requirements, ability to bind with
C, and developer speed really works well for this project.

But it feels like a strain on the Lua community to have LuaJIT essentially
"stuck" with Lua 5.1. Many projects seem to have taken a long time to move on
and start moving forward to 5.2, or 5.3 which were released in 2011 and 2015
respectively. LuaJIT is so impressive it feels unfortunate to leave that
community behind and move forward.

When we evaluated Lua, and which Lua version to go forward to this was our key
points:

1\. LuaJIT was abour twice as fast for us. 2\. LuaJIT has nice C
integration/binding. 3\. LuaJIT was no longer maintained/developed/etc and was
now ~10 years out of date wrt to the core language. 4\. Lua is being used in
non-performant areas, we have C when we need performance. 5\. Integers and
bitwise from 5.3 operations are important for us. 6\. Overall the changes in
5.2 and 5.3 are good language improvements.

We ended up going with Lua 5.3 due to ongoing development, and for us it
ticked all the boxes. But it would amazing to have the options to use LuaJIT,
and to encourage everyone to move forward instead of being stuck on 5.1.

~~~
upofadown
Lua 5.3 is technically a language fork as basic functions now have new
behaviour. So you would still have to decide even if LuaJIT did not exist. The
thing with LuaJIT is a symptom, not a cause.

------
diego_moita
There are so many forks of LuaJIT going on (raptorjit, luavela, moonjit,
openresty's luajit 2, shine, ... The bad thing is that each one tries to fix a
different issue: compatibility with new versions of the language, eliminate
the 2 Gb limit, make more maintainable code, add extensions for web
handling,...

And then, some of them introduce new problems such as limiting the number of
available platforms.

~~~
siddhesh
FWIW, if RaptorJIT had not ripped out arm64, I would have ended up
recommending replacing Luajit with RaptorJIT in Fedora and not bothered with
forking moonjit.

~~~
microcolonel
Indeed, I've been looking at writing a new backend (ambitious and foolish,
many have tried, I know), so I was looking for the hottest fork, but RaptorJIT
specifically guts most of the backends, and the other forks were not really
doing anything.

~~~
lukego
RaptorJIT has a mostly finished port of the bytecode interpreter to C. That
should make new arches /much/ easier to support because you don't have to
hand-code a VM in asm, only write a JIT assembler backend. Check it out at
[https://github.com/raptorjit/raptorjit/pull/254](https://github.com/raptorjit/raptorjit/pull/254)

Current status is that it passed the LuaJIT test suite but that's not 100%
coverage and it doesn't call into the JIT yet.

~~~
microcolonel
What sort of performance have you been getting?

------
byefruit
Still amazes me that Mike Pall was a pseudonym. I'd really love to understand
what they do for a day job.

Luajit is a brilliant project.

~~~
nnx
“Mike Pall was a pseudonym”

Any source on this??

~~~
tyingq
Some pointers:
[https://news.ycombinator.com/item?id=18765514](https://news.ycombinator.com/item?id=18765514)

~~~
phpnode
if you google "AFLG C64" you'll see historical references to the author, one
"M. Pall". I think your link indicates the exact opposite of what you're
suggesting - that "Mike Pall" is his real name and that it was the "other
stuff" that was published under a pseudonym.

~~~
est31
IDK why this myth of him being a pen name persists.

As you pointed out, he publicly denied those claims.

He also put his postal address onto the luajit homepage. And it adds up with
his history at the University of Karlsruhe. You can find pointers that he was
actually there in 1994, from old websites that survived the decades. His
Karlsruhe e-mail address is even still being credited in linux's
net/ipv4/tcp.c. The best proof I found that he's an individual is him being
credited as supervisor of an academic Dipl. Inf. thesis that's still available
on the wayback machine:
[https://web.archive.org/web/20000919224408/http://andy.rz.un...](https://web.archive.org/web/20000919224408/http://andy.rz.uni-
karlsruhe.de/~andy/WWW.ps.gz)

I doubt that joking goes so far that you are mentioning a pen name on a thesis
front page. In addition to the front page containing his name, the thesis also
contains screenshots of websites the wayback machine hasn't caught in time
that contain his name.

------
rurban
Btw, LuaJIT is certainly not dead. Mike Pall just recently added lots of
commits.
[https://repo.or.cz/w/luajit-2.0.git](https://repo.or.cz/w/luajit-2.0.git)

~~~
jpfr
This has to be upvoted more! There was already a lot of talk about LuaJit
being unmaintainted last year. When Mike Pall was even more active.

~~~
Rochus
Right. People prefer to post bullshit instead (e.g. that Pall was no real
person, Lua 5.3 being superior, and the like).

~~~
rurban
Mike is a real person from Munich, but his name is certainly not Pall. That's
what they mean. The rest is bullshit: 5.3 being superior, and such.

~~~
Rochus
What makes you believe his name is not Pall? I have other information.

------
taosx
I remember a project with a similar philosophy:`
[https://github.com/raptorjit/raptorjit](https://github.com/raptorjit/raptorjit)

~~~
xvilka
RaptorJIT seems doesn't care about compatibility.

------
vok
LuaJIT uses DynASM, which is also stuck (e.g. no AVX-512). It would be great
to see DynASM development continue.

~~~
rurban
This is not needed, almost nobody uses that, not even in intrinsics. Due to
CPU downclocking. Only the recent AMD/Arm/Power SHA extensions might be useful
to be added.

------
bsaul
i’ve always read about how the lua jit was a technolical marvel ( without
understanding why but that’s another topic). If that’s the case, then how come
it isnt’t maintained anymore ?

~~~
tom_mellior
At the time I'm writing this, the latest commit in
[https://github.com/LuaJIT/LuaJIT](https://github.com/LuaJIT/LuaJIT) was 26
minutes ago. There has also been a constant stream of commits over the last
months (I didn't check further), but no frantic activity. Almost all commits
in the moonjit history also seem to be be cherry-picks of these LuaJIT
commits.

So calling LuaJIT unmaintained, and saying that moonjit "continues
development" both seem a bit exaggerated to me.

~~~
fsfod
The last time Mike Paul pushed anything is almost a year ago until two weeks
ago based on the two RSS feeds I use. The Git commit dates could be unreliable
from either cherry-pick shenanigans or him just not bothering to push the
changes until two weeks ago.

~~~
acqq
Maybe compare your feeds with:

[https://github.com/LuaJIT/LuaJIT/commits/v2.1](https://github.com/LuaJIT/LuaJIT/commits/v2.1)

I see quite regular commits there?

------
shaggie76
The tragedy is that no game console vendor I'm aware of will let you use JIT
codegen due to security concerns.

------
Rochus
Tried to find out something about your roadmap. Would be helpful if you could
add additional information somewhere. Is this a continuation of LuaJIT 2.1 or
2.0? What short and longterm goals do you have? Why did you choose a new name
for it?

------
gautamcgoel
Really glad to see someone taking up the mantle! My dream Lua would support
multicore parallelism and arbitrary precision arithmetic out of the box.

