significant being preliminary (and undoubtedly buggy) support for
single inheritance and specialization by constraint. Constructs
like the following may now be explored:
Code: Select all
TYPE BaseType
POSSREP {x INTEGER, y INTEGER};
TYPE DerivedType1 IS {
BaseType
CONSTRAINT THE_x(BaseType) = 0 AND THE_y(BaseType) > 5
POSSREP {a = THE_y(BaseType)}
};
TYPE DerivedType2 IS {
BaseType
CONSTRAINT THE_x(BaseType) > 5 AND THE_y(BaseType) = 0
POSSREP {a = THE_x(BaseType)}
};
user-defined types. Types with multiple POSSREPs support an INIT
section that can be used to define POSSREPs in terms of each
other. This is a possibly temporary mechanism to take the place of
"highly protected operators not part of D". (TTM 3rd ed., pg 382,
etc.) For example:
Code: Select all
TYPE blah
POSSREP blah1 {x INTEGER, y INTEGER}
POSSREP blah2 {a INTEGER, b INTEGER}
INIT
blah1 (a := x * 2, b := y * 2)
blah2 (x := a / 2, y := b / 2);
a tagged union type. This may be used to create (for example)
recursive types. E.g.:
Code: Select all
TYPE StringTree
POSSREP node {string CHAR, left StringTree, right StringTree}
POSSREP nothing {};
- Rel: Support for the jikes Java compiler has been removed. This
has been replaced with an alternative mechanism for invoking the
Java compiler.
- Rel: TYPE definitions are now cached to improve performance.
- Rel: Operators spawned by user-defined types may not be explicitly
dropped.
- Rel: Dropping a user-defined type will now attempt to implicitly
drop its spawned operators.
- Rel: SET <attribute> <value> is now available to manipulate system
environment settings. To see the available attributes and values,
enter the following: SET x x;
- Scripts: In the OperatorsChar.d script in the Scripts folder, the
ambiguous and somewhat dysfunctional IS_NUMERIC operator has been
replaced with IS_DIGITS, which only returns true if supplied CHAR
consists strictly of 0-9.
- DBrowser: Startup error messages now wrap within the message box
to prevent the message box from being wider than screen.
This update also fixes two bugs in DBrowser, the interactive
command-line client:
- Negative RATIONAL and INTEGER literals returned by Rel are now
recognised and correctly displayed.
- Relation-valued attributes with cardinality 0 now display correctly
in enhanced mode.
For more information, or to download Rel, see
http://dbappbuilder.sourceforge.net/Rel.html