moonjit / moonjit

Just-In-Time Compiler for the Lua Programming language. Fork of LuaJIT to continue development. This project does not have an active maintainer, see https://twitter.com/siddhesh_p/status/1308594269502885889?s=20 for more detail.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Windows binary is named luajit.exe

elliottslaughter opened this issue · comments

I've been playing with switching to Moonjit, and I noticed that when I build on Windows, the binary appears to be named luajit.exe (see below). Is this intentional? It seems to be at odds with the Linux/macOS build which use the name moonjit for the generated executable.

https://ci.appveyor.com/project/terralang/terra/builds/34073170/job/8fsot664k7jf5aju

Thanks.

The Linux binaries are named moonjit-<version> but the symlink continues to be called luajit. Likewise for the DSO, it's libluajit*.so. The intention is to stay compatible with luajit as long as we're not parting ways from it.

One of the goals for moonjit is to get proper Lua 5.2/5.3 support and when that happens I'll have to bump the soname version anyway. That seems like a good time to do a hard rename and name everything moonjit.

That's fine, I just wanted to confirm what the situation was. I'll leave it up to you whether to keep this issue open as a reminder or whether to close it.

.exe is a standard suffix for Windows executables. The GCC compiler which comes with Cygwin does this:

cat > foo.c << EOF
main(){puts("Hello, world!");}
EOF
gcc -o foo foo.c
ls -l foo.exe

This will show a fairly small foo.exe on a Windows system; cugwin has workarounds so that, when trying to run foo, it’s smart enough to look for foo.exe instead. When using clang, it generates the name foo, just like on Linux.

@samboy The issue I have is with the prefix not the suffix. On Linux/macOS, the binary is called moonjit. On Windows, it's called luajit.exe. Presumably it would be more consistent to call it moonjit.exe so the prefix is the same everywhere. Of course the suffix should match the standard for any particular system.

It's not really a huge deal either way, but it's one more special case I have to maintain in my build system.