Alioth Numbers for JRuby 1.0

Someone pointed out to me the other day that the Alioth "Compuer Language Benchmarks Game" (as they call it now) had started to include JRuby 1.0 in the results. And how do we fare? We're slower than Ruby 1.8.6! Hooray!
But not by much. Depending on your definition of "on...
Read More
2007-07-19 10:52:00 +0000

Groovy and JRuby Cooperating?

Can it be true? Of course it can!
Graeme Rocher blogs about a new feature in upcoming Groovy 1.1 beta 3: support for Ruby-style "method missing" hooks!...
Read More
2007-07-18 23:27:00 +0000

The Ever-Evolving JVM

John Rose, lead of the "invokedynamic" effort (Java Specification Request 292), has posted some exciting articles about the future of the JVM and a number of changes potentially for the next Java version. Among these is, of course, the dynamic invocation efforts, but these entries include information on non-local returns...
Read More
2007-07-15 19:16:00 +0000

More Compiler Strategy: Call Adapters and Stack-based Methods

Compilers are hard. But not so hard as people would have you believe.
I've committed an update that installs a CallAdapter for every compiled call site. CallAdapter is basically a small object that stores the following:method namemethod indexcall type (normal, functional, variable)As well as providing overloaded call() implementations for 1,...
Read More
2007-07-15 19:08:00 +0000

To Keyword Or Not To Keyword

One of the most attractive aspects of Ruby is the fact that it has relatively few sacred keywords. In most cases, things you'd expect to be keywords are actually methods, and you can wrap or hook their behavior and create amazing potential.
One perfect example of this is require. Because...
Read More
2007-07-13 05:19:00 +0000

Finding a JVM compilation strategy for Ruby's dynamic nature

In JRuby, we have a number of things we "decorate" the Java stack with for Ruby execution purposes. Put simply, we pass a bunch of extra context on the call stack for most method calls. At its most descriptive, making a method call passes the following along:
a ThreadContext object,...
Read More
2007-07-11 19:47:00 +0000

Understanding the JVM JIT and helping it along

I must apologize to my readers. I have been remiss in my blogging duties. I will be posting updates on the various events of the past month or so along with updates on JRuby progress and future events very soon. But for now, a technical divergence after a night of...
Read More
2007-07-06 10:13:00 +0000

Camping at O'Reilly

Rumors of my demise were greatly exaggerated!
I've been mostly MIA the past couple weeks, largely due to the Ruby Kaigi and related events in Tokyo and a short family trip this past week to Lake Michigan's eastern shore (warm sandy beaches and a much-welcomed rest). But I figured I'd...
Read More
2007-06-23 14:46:00 +0000

JRuby 1.0 Released!

We have finally released JRuby 1.0, based on the last release candidate, RC3. And what more is there to say? Not really a whole lot...It's almost entirely RC3, with one or two minor fixes added in. But it's really turned out to be an outstanding release, and already reports are...
Read More
2007-06-10 13:29:00 +0000

A Response to Ola's IronRuby Post

I'm not up for creative titles tonight. Hopefully you'll see this in your feed reader and click for a second opinion. Granted, I agree with Ola's IronRuby post on most points, but I disagree on a few key items. So let's dive in, shall we?
You managed to blog this...
Read More
2007-06-04 07:42:00 +0000

JRuby 1.0.0RC3 Released - And This Is It!

Tom posted the announcements already, but JRuby 1.0.0RC3 is out in the wild! This release is our most important yet, because we intend for this release to become JRuby 1.0. The only things that will change from now until a 1.0 final release later this week would be any showstopping...
Read More
2007-06-03 09:18:00 +0000

Creating a Field-Initializing 'new' Method

One thing often touted as a missing feature in Ruby is the lack of a constructor form that initializes fields. A few other languages have this feature, including for example Groovy, another JVM dynamic language. The general idea is that if you want to construct an object and initialize a...
Read More
2007-06-01 07:59:00 +0000

Adding Annotations to JRuby Using Ruby

I love how meta-programmable Ruby is.
JRuby doesn't support annotations because Ruby doesn't support annotations. So what! We can extend Ruby to add something like annotations:class JPABeandef self.inherited(clazz) @@annotations = {}enddef self.anno(annotation) @@last_annotation = annotationend...
Read More
2007-05-28 00:10:00 +0000

JVM Languages: The Future

I've started a Google Group for all those interested in the future of alternative languages (i.e. not Java) on the JVM. A number of you knew this was coming, and I've already invited folks that expressed an interest in my RedMonk Unconference session at JavaOne. The rest of you are...
Read More
2007-05-27 23:04:00 +0000

Foo Camp 2007

I've been invited to this year's Foo Camp. Since it sounds like a great time and there's a bunch of other folks going I'd like to talk to, I'm accepting the invitation. My purpose posting this entry is to let other campers know I'll be there and try to hook...
Read More
2007-05-27 00:10:00 +0000

The Final Bugs

We're within weeks of a final JRuby 1.0. We've pared down the bugs that we think we can or must fix for 1.0 and this email is a summary of the ones we need help with. So whatever time you can spare, please have a look and help resolve these.<br...
Read More
2007-05-22 08:14:00 +0000

Big Plans

I just came across this amusing entry from an old, now-defunct blog of mine on LiveJournal.
The last line pretty much says it all. I must have been really frustrated with my job at the time:Someone should pay me to sit at home and do great things.(If you don't get...
Read More
2007-05-14 06:59:00 +0000

JSR-292 Summit Wrap-Up

Today Tom and I met with fellow language implementers Oti Humbel, Charlie Groves, and Tobias Ivarsson to start discussions about JSR-292 (invokedynamic) with John Rose, longtime VM implementer and new spec lead. It was an excellent discussion, with John listening patiently to the implementation challenges we've had on JRuby and...
Read More
2007-05-10 07:22:00 +0000

"the solution is JRuby"

Big news today from ThoughtWorks Studios! Their collaborative development project management solution Mingle (think SourceForge, but pretty and usable) will be the first commercially-distributed Rails application to run on JRuby. Jon Tirsen summarizes the justification for this move in a Studios blog post.
The reasons are obvious ones to those...
Read More
2007-05-07 19:53:00 +0000

JRuby: The T-Shirt!

Yes, I've managed to secure a small order of JRuby t-shirts for giveaway at JavaOne and RailsConf. And they're pretty sweet, have a look at the logo on the front:
Read More
2007-05-02 18:27:00 +0000