Rel version 0.3.16 Alpha now available

This forum contains announcements about Rel.
Post Reply
Dave
Site Admin
Posts: 367
Joined: Sun Nov 27, 2005 7:19 pm

Rel version 0.3.16 Alpha now available

Post by Dave » Mon May 25, 2009 2:54 pm

This version of Rel includes a number of enhancements, the most
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)}
  };
An extension has been provided to facilitate experimenting with
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 user-defined type with multiple POSSREPs and no INIT section defines
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 {};
Additional enhancements include:

- 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

Post Reply