The Groovy development team is pleased to announce the releases of Groovy 1.7.6 and 1.8-beta-3.
Groovy 1.7.6 is mainly a bug-fix release, whereas 1.8-beta-3 offers some interesting new features and capabilities, especially a preview of performance for primitive operations.
You can have a look at the JIRA release notes for Groovy 1.7.6 and Groovy 1.8-beta-3.
The key highlights for the new beta of our upcoming Groovy 1.8 release:
- extended command expressions can be used on the right-hand side of assignments
- the @Log AST transformation is customizable for your own logging needs
- Map now has an isCase() method
- a @GrabResolver shortcut with @GrabResolver("http://some/url")
- String can be coerced to Enums ("blue" as Color)
- support for closure memoization and trampoline
- @ThreadInterrup, @ConditionalInterupts and @TimedInterrupt AST transformations for stopping the execution of embedded scripts
- min() / max() methods on maps (on values)
- ability to store node metadata in AST nodes, for use in your AST transformations
But beyond those new features, a key aspect of the new beta is a first batch of performance improvements related to primitive int handling.
Currently, most int based operations are optimized to use primitive arithmetics bytecode.
So when a lot of int calculations is involved, you should see some interesting improvements.
Later on, we'll obviously add support for the other primitive types, and find other areas to improve as well.
As usual, you'll find the download information on the Groovy download page.
The Maven artifacts may be delayed a little as we have issues with their upload on the Codehaus infrastructure, but hopefully it'll be resolved rapidly, and the binary distributions should be up shortly if not already there when I hit "send"
We're very interested in hearing about your feedback on the Groovy 1.8 beta, as it contains some experimental code regarding performance improvements for primitive int arithmetics, and we would love to have a maximum of users trying these new aspects, to iron out all the possible issues that may surface.
Thanks a lot to all those who contributed to this release!
Looking forward to your feedback, and keep on groovying!