So yeah, the compiler's done, it can compile ahead-of-time to binary
files you can load and run and all that. Currently the extension for
those files is .class, but that's started to bother me a bit.
Here's the deal...it's not "really" a Java class file. You can't load
the class it contains and instantiate it normally and start calling
methods. It's just a bag of methods and runtime junk for the compiled
code. There will be an eventual compiler that can produce things more
like normal class files, but this isn't it.
I'm also planning a modification to the load sequence that will allow
loading these compiled format files directly out of load path, rather
than requiring classpath changes. So if you compile some/dir/foo.rb to
some/dir/foo.class, the load sequence will see the compiled version and
load that.
Because the loading of these compiled files requires a JRuby runtime and
extra logic to launch them correctly, I'm starting to think that naming
them .class isn't appropriate. They're really a custom format/layout for
JRuby that just happens to use the Java class file format and bytecode.
Beyond that, they're JRuby-specific.
So what would you all say to having the compiler produce a different
extension, like .rbj for "ruby compiled to Java bytecode"? I think it
better reflects the actual format and the way the files should be used,
and it would basically eliminate the chance of someone confusing this
for a normal Java class and intentionally (or accidentally) using it in
their own Java code.
Thoughts?
- Charlie
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email