Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Groovy 1.8 release notes

Icon

This page is a placeholder for the upcoming release notes for the final release of Groovy 1.8. This page is neither complete nor even finished!

Extended Command Expressions for nicer Domain-Specific Languages

Performance improvements

In general the goal of these improvements is to bypass the MOP where allowed and possible without altering the original MOP too much.

Groovy 1.8.0 contains several integer based optimizations for basic operations like plus, minus, multiply, increment, decrement and comparisons. This versiondoesn't support the mixed usage of different types and then falls back to the classical way of performing the operation.

This version also contains an optimization for direct method calls. Such a method call is done directly if it is done on "this" and if the argument types are a direct match with the parameter types of the method we may call. Since this is an operation that does not behave too well with a method call logic based on runtime types we select only methods where the primtive types match, the parameter types are final or for methods that take no arguments. Currently methods with variable arguments are not matched in general, unless a fitting array is used for the method call.

Those two optimizations are only the beginning of further similar improvements related to primitive type handline. Upcoming versions of the Groovy 1.8.x branch will see more optimizations coming.

GPars bundled within the Groovy distribution

Closure enhancements

Closure annotation parameters

Closure functional flavors

Closure composition

Closure memoization

Closure trampoline

Native JSON support

JSON parser

JSON builder

New AST Transformations

@Log

@Field

@PackageScope enhancements

@Synchronized

@InheritConstructors

@IndexedProperties

@AutoClone

@AutoExternalizable

Controlling the execution of your code

@ThreadInterrupt

@TimedInterrupt

@ConditionalInterrupt

@Canonical

@ToString

@EqualsAndHashCode

@TupleConstructor

@WithReadLock

@WithWriteLock

Alignments with JDK 7

Groovy 1.9 will be the version which will align as much as possible with the upcoming JDK 7, so beyond those aspects already covered in Groovy (like strings in switch and others), most of those "Project Coin" proposals will be in 1.9, except the "diamond operator" which was added in 1.8, as explained in the following paragraph.

Diamond operator

Miscelanous

Dollar slashy strings

Breaking changes

  • No labels