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

Reply via email to