buildr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Spiewak <>
Subject JRuby AOT Compilation for All-in-One
Date Wed, 07 Apr 2010 18:23:24 GMT

This is a patch to run the JRuby ahead-of-time compiler against the
*entire*Ruby distribution and installed gems prior to zipping for
distribution.  The
motivations behind this are two-fold.  First, the resulting .class files are
substantially smaller than the original .rb files and so the size of the
distributable goes down.  More importantly though, AOT compilation imparts a
significant performance advantage, particularly when we can apply some
optimizations.  Unfortunately, documentation seems to be limited (read:
non-existant) where it comes to tuning the AOT compiler, so I had to just
guess based on what I know of its architecture.  The settings I am using are
the same ones I've been using with the regular JRuby JIT running Buildr for
more than six months, so I think they're fairly safe (and they do yield
substantial benefits).

The big problem I'm having is that the compiler always seems to return an
error.  It does compile everything (except for our buildr/java/bdd.rb and
one of Hoe's files, which cause internal exceptions), and it doesn't print
any errors, but regardless of what I do, the result always seems to be an
error code of 1.  Headius, if you're listening in lurk mode, we could use
some help here.  :-)

Hopefully this change will help streamline our all-in-one distribution and
maybe make it a compelling option even for those who are comfortable with
`gem install`.


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message