Many questions!
On Tue, Oct 1, 2013 at 3:41 PM, Jon Zeppieri <[email protected]> wrote:
> - Are NotCompilableExceptions caught somewhere, allowing the
> interpreter to carry on? (I did a simple grep for this, but didn't
> find it.) Or was that code path not taken, at all?
NotCompileableException is caught by the JIT and used to leave a given
method in the interpreter. They can be logged with
-Xjit.logging.verbose=true (and -Xjit.logging=true will log
successes).
If you do not see the method fail to JIT, then the code path in
question was probably not taken.
I will say that the compiler size of keyword args is a little hacky
right now and probably well behind the interpreter. 2.0 has not been a
priority for us during the 1.7.x cycle.
> - Does AOT compilation not go through that code path that would throw
> the NotCompilableException?
AOT compilation should follow the same paths as JIT but fail hard when
NotCompilableException is thrown.
> - What is the state of the IR? My brief look suggests that currently
> the production compiler translates directly from the AST but that
> there is a separate, newer compiler pipeline that goes through the IR,
> and that pipeline can be turned on with a command-line switch but
> which is off by default.
The IR is produced by a compiler from the current AST. We have a fully
functional interpreter (unsure about 2.0 features) and a very partial
JIT from IR to JVM bytecode.
The current plan is that the IR will form the basis of JRuby 9000's runtime.
- Charlie
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email