It simply compiles a ruby interpreter and adds your code to the executable (as memfs).
The output is an executable that /interprets/ ruby code.
I talked to @ko1 last year after his presentation about AOT compiling for Ruby at RailsConf, and it seems like we were missing a piece of the puzzle at that time, which is to preserve the file system structure after compiling, in order to accommodate `__FILE__` and `require` calls. I achieved it now with the help of libsquash(https://github.com/pmq20/libsquash). So now in runtime every path that begins with `/__enclose_io_memfs__/` got redirected to the memory, and so are your project files.
I can understand that you're just starting on the project and don't want to discourage you in anu way. But it might help if you reflect your projects goals but also the current status in the readme :)
While serializing Ruby files in byte code might be a good idea (I don't know enought of the internals of MRI so I can't judge that), it's still not AOT compilation
They should probably mention that in the README because it is ambiguous and I thought it was a bytecode or binary compiler for Ruby at first.
Maybe the author should consider describing it as packager or something else.
And there it is, you're absolutely right this is not an AOT compiler.
I can't be the only one
<Product name>. <What it does>, that just works. Made by <name> in <city> with love.
And this solves that problem.