Release History

Version Date Description
1.1 unreleased  
1.0 July 2007  
0.5 July 6, 2006  
0.4 September 2, 2005  
0.3 March 17, 2005  

Release 1.1 – unreleased

Type Changes By
Add a new type of annotation known as a DefinitionUseAnn, which is annotated to all *reference* ZNames (that is, ZNames inside RefExps) that refers to the declaring name. Tim
Add use before declaration functionalty that does not permit recursive types. What was previously the use before declaration options is now the recursive types option. Tim
Add a more detailed explanation of the error for the case that the hard space is missing between a schema name and its decoration. Petra

Release 1.0 – July 2007

Type Changes By
Corrected bug 1688910 -- Characterisation rules not implemented correctly Tim
Corrected bug 1609808 -- Ids become inconsistent if an expr is typechecked twice Tim
Corrected bug 1606459 -- Ids in set comprehension Tim
Corrected bug 1578608 -- Using a given type as a generic doesn't work Tim

Release 0.5 – July 6, 2006

Type Changes By
Corrected bug 1497266 -- Typechecker merges too many DeclName ids. Tim
Corrected bug 1486054 -- Stack overflow. Also, corrected problem with type inference in the example specification provided with that bug report. Tim
Restrict class types to trees and not graphs to prevent stack overflowing when printing ASTs (bug 1448515). Tim
Fixed problem with renaming in mutually recursive types. Tim
Corrected bug number 1443880 -- Duplicate names not allowed in unrelated sections. Tim
Expanded schema references beginning Delta and Xi when they are locally declared. Added new class AbstractTypeEnv, superclass to SectTypeEnv and TypeEnv, which provides the method to do this. Tim
Only the left side of freetypes are in scope for mutually recursive free types. Tim
Use the ZDeclName ID attribute to distinguish between the same names in different scopes. Tim
Fixed a problem with calculating the characteristic tuple in SetCompExprs, LambdaExprs, and MuExprs. Tim
Fixed a problem with class type unification to improve type inferencing. Tim
Implement a check that generic classes with an empty signature cannot be class unioned with two different sets of parameters, e.g. G[\nat] \classunin G[\power\nat]. Tim

Release 0.4 – September 2, 2005

Type Changes By
Implemented implicit downcasting (e.g. a \in B => p) Tim
Improved the error messages reported for relation applications. Tim
Instantiate and check that generic types are instantiated for selection expressions that reference a generic definition in a class. Tim
Add recursive operation definitions within the same class paragraph. Tim
Finish type rules for PolyExpr (check that sublasses have the type-compatible features). Tim
Added a method "override" to TypeEnv that is used in downcasting objects, so that downcasting in a scope enrichment is visible to the right-hand-side of the scope enrichment. Tim
Primary variable names declared in a superclass can now be used in delta lists. Tim
Rename primary variable names in rename exprs. Tim
Add functionality to check clashing inherited features. Tim
Add the "self" variable to a class state. Tim
Changed the type rule for containment exprs to allow any class expression after discussions with Graeme. Tim
Allow type-compatible overriding of attributes and state variables. Tim
Overridden operations have access to the declarations in the definition in the superclass. Tim
No "Init" definition in a class implies init = true. This allows "Init" to be selected even if not declared. Tim
Prevent calls on recursive types in renameUnknownTypes() Tim
Implemented a check that names in the visibility list are features of the class. Tim
Changed the Object-Z typechecker so that only class names can be inherited, not just arbitrary classes of type ClassRefType. Tim
If the signature of an operation cannot be determined due to a recursive defition, the signature should be empty instead of raising an error. Tim
Improved error message for incompatible Object-Z operation inheritance by specifying the inheritance expression. Tim
Addition of \oid to the Object-Z typing environment. Tim
Conjunction operations and scope enrichments operators both allow downcasting within larger operation expressions. Tim
Improved the weak typing unification algorithm to better infer variable types. Tim

Release 0.3 – March 17, 2005

Type Changes By
Initial Release. Tim

Back to top

Version: 1.6-SNAPSHOT. Last Published: 2016-04-09.

Reflow Maven skin by Andrius Velykis.