Release Notes
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 |