The current implementation of ObjectTeams/Java involves software
with different legal status.
- The runtime system uses
JMangler
which is under the LGPL.
- The compiler builds on software that is under the
Sun community source license.
Thus the compiler is available for evaluation purposes only.
If you want access to the compiler source code, register
at Sun
and contact us.
Everything else is under LGPL and we are working on a new compiler
which will be completely available in source code under LGPL, too.
See file
CHANGES.txt for improvements between
versions.
The ObjectTeams/Java compiler and runtime environment
generally follow our language definition.
Limitations: As of version 0.6.1b the following are, however, not yet implemented:
- § 2.3(b)
- This rule is not fully implemented, i.e., a role constructor
can not invoke
super/tsuper
and base()
.
- § 5.3:
- Implicit Team activation is only implemented for Team methods,
not for externalized roles.
- Overriding of Team-level methods:
- Overriding for Team-level methods still has some restrictions.
super() does not work in this context
if signatures contain role types.
Team constructors are not affected by this restriction.
- Private accross classes
- There is some bad interaction between implicit inheritance and
accessing private role features from the team and vice versa.
The compiler will give a warning here.
- Nesting etc.
- Team nesting etc. are not fully supported.
A role class may currently not be a Team nor the base of another
role class.
It is, however, not a problem for a Team class to serve as a base in
a role binding of another Team.
And other restrictions that we don't know of ...