Permalink
Nice 0.9.10 Released
09 MAR 2005
A few days late, but...
This long awaited release adds many improvements to the possible interactions with Java libraries and tools. It improves some error messages, and fixes a large number of bugs.
Thanks to the hard work of Luc Perrin and Arjan Boeijink, an important part of the Nice compiler has been converted from Java to Nice itself!
Changes:
* Better error messages for wrong constructor calls and method
implementations with wrong parameter names.
* Default value of fields can be overriden in subclasses. For instance:
class A {
int x = 1;
}
class B extends A {
override x = 5;
}
This also works for final fields.
* Imported methods can be generalized. That is, it is possible to
define a new method which is more general than an existing one,
and the existing method will be recognized as a special case of the
general one. For instance, consider:
abstract interface Addable { void add(T item); }
interface java.util.Collection implements Addable;
Method java.util.Collection.add() is recognized as implementing
the new add method, which makes Collection a valid Addable class.
* Java methods and fields with parametric types are given a type with
UnknownTypes as type parameters instead of being ignored.
* Number of errors and warning are printed to the console.
* Improved source information for debuggers.
* Generated classes are smaller, thanks to smaller debugging information.
* Niceunit now reports test failures with the source file and line number
information for the failed assertion.
* Native compilation with gcj is twice faster.
* Bug fixes (disallowed redefinition of parameters, execution order of
initializers in super classes, visibility checking of java classes,
cyclic custom constructors, methods and fields in classes with less type
parameters, 'this' in custom constructors, comparison of possibly null
values with primitive values, ... )
