Groovy 1.1-rc-1 released

The Groovy development team and the G2One company are pleased to announce the release of Groovy 1.1-RC-1. This is the first release candidate version of the upcoming Groovy 1.1 dynamic language for the JVM. We plan to release an RC-2 in the beginning of November, and the final 1.1 release mid-November.

Before going through the release notes, let me recap the interesting news of this week and the coming weeks!
First of all, the birth of G2One, Inc. was officially announced. The company, formed by Graeme Rocher (Grails lead), Alex Tkachman (former JetBrains COO) and myself (Groovy Project Manager), will focus on developing and improving both projects, and provide profesionnal services (training, support, consulting) around those technologies, as well as develop some commercial products with Groovy & Grails. With already 4 persons working full-time on both projects, no doubt good things will happen, and the community will be pleased by our progress.

Secondly, we'll be happy to meet all those who will be coming to the Grails eXchange conference next week in London. With several key commiters there, with many great speakers for various companies (Google, JBoss, Interface21, Sun, G2One, etc.), you can be sure to have a good time discovering the great things we've built through the years with Groovy and Grails. If you're in the area, it may be not too late to register if there are still some tickets left.

Also, right before the Grails eXchange conference next week, the Groovy development team will gather in London, at Sun's CBC building thanks to the help of Charles Nutter who helped us organizing this event in Sun's offices. We'll work on ironing out the latest bugs to be incorporated in the final release of Groovy 1.1, as well as paving the road of the upcoming Groovy 2.0 release!

Now, let's go back to the release notes! In this release, we focused on performance. As a good sign of the progress we've made: our test suites, despite all the new added tests, run from 15% to 45% faster since beta-3. In particular Java / Groovy interactions should be much improved in terms of speed. In projects with big amounts of Groovy code, the improvement should be most noticeable.

Apart from performance improvements, a lot of bugs have been fixed, and you can see the details in JIRA. In particular, bugs have been fixed in our Java 5 support (on parameter annotaions, static imports, enums and covariant returns), in the stub generator used in the joint compilation, and a couple of bugs in the Elvis operator and the classic for loop when using iterators.

Despite our focus on performance improvements and bug fixing, this new release contains a few novelties:

  • The new command-line shell, groovysh, is now enambled by default. Please refer to the documentation for further details.
  • A new metaClass property is available on all objects, even on Java classes, so it's now easier to access the MetaClass of any instance (http://jira.codehaus.org/browse/GROOVY-2142)
    Before, for retrieving the MetaClass of a Java class, we had to do a complex operation like this:
    GroovySystem.metaClassRegistry.getMetaClass(obj.class)
    

    Now, like this is already the case for all class defined in Groovy,  it's possible to call the metaClass property directly with

    obj.metaClass
    
  • The unary plus, minus and negate operators are now also overloadable (http://jira.codehaus.org/browse/GROOVY-1851).
    The code +foo, -foo, and ~foo respectively correspond to foo.positive(), foo.negative() and foo.bitwiseNegate()
  • The static and default keywords are now allowed as dynamic properties on classes and instance (http://jira.codehaus.org/browse/GROOVY-1977) Instead of
    Book.metaClass.'static'.create <<  { String title -> new Book(title:title) }
    

    You can remove the quotes around the static keyword:

    Book.metaClass.static.create <<  { String title -> new Book(title:title) }
    

You can download Groovy 1.1-RC-1 here:
http://groovy.codehaus.org/Download

You can see the detailed release notes from JIRA:
http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&styleName=Html&version=13165

-
Guillaume Laforge
Groovy Project Manager
G2One, VP Technology

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.