A.06.10 Release Notes
Beginning with the A.06.01, the free Eloquence "Personal Edition" is
available. It provides an unlimited License for personal or evaluation
usage which will not expire. It is limited to two users and a
maximum database size of 50MB.
Temporary license key
The temporary license key (which used to be installed previously
by default) is now an installation option and must be selected explicitly
during installation. This will install a 4 week temporary license
with for unlimited users. In addition, temporary license keys can
be requested on the Eloquence web site.
Integrated Dialog Editor
The Eloquence graphical development environment (Windows) has
been enhanced with an integrated dialog editor.
New error message
A new error message 905 ("No such member") has been added.
This will distinguish referencing an undeclared member variable
from a undefined type. Previously both conditions resulted in a
runtime error 900.
Handling programs with embedded NUL characters
The HP260 made it possible to embed NUL characters into strings.
While Eloquence is able to execute such a program, the program
listing is inconsistent, since a NUL character is used internally
as a string terminator. This may cause program corruption if
such a program line is modified.
Embedded NUL characters are now converted into a CHR$(0) expression.
However this may cause a syntax error when a string constant is
replaced by an expression due to an embedded NUL character when
only a strnig constant is valid.
User defined types
This document describes the new behaviour of user defined types
with Eloquence A.06.10. The behaviour has been changed after
the initial release of A.06.00 and the new semantics were
incorporated into A.06.00 fixpack 2.
- Exporting types
- Type definitions can be "exported" to lower calling levels.
This is done with the new EXPORT TYPE keyword:
TYPE Tname [EXTENDS Tbase]
EXPORT TYPE Tname [EXTENDS Tbase]
IN DATA SET ... DEFINE TYPE Tname [EXTENDS Tbase]
IN DATA SET ... EXPORT TYPE Tname [EXTENDS Tbase]
By default a type definition is local to the current segment.
This is also true for types defined in the main segment. Therefore,
types used in COM statements must be "exported" in order to be usable
in a subprogram. Otherwise a runtime error message will be issued.
Please note: This is a behaviour change.
Initially, all types defined in the main segement were global.
- Type scope
- A type definition is local by default and is only visible within the
local segment. When a type is "exported" it becomes visible to
subsequently called levels. When a segment defines a type with a
name which has been exported from a higher level, it will temporarily
replace the exported type in the current function or subroutine.
When a segment defines and EXPORTs a type with a name which has been
exported from a higher level, the newly exported type permanently
replaces the former type for all subsequently called lower level
segments. If the type which is most recently defined is not EXPORTed,
the previously exported type again becomes available to lower
- Passing STRUCTs as an argument
- A STRUCT can be passed to a subprogram or function in two manners:
- When no type is specified in the SUBprogram or function definition,
the struct is passed "anonymously" as an argument. Any type is valid
and no validation is performed on the argument.
RTTI (TYPEOF$, IS A) can be used to operate on it.
- When a type is specified in the SUBprogram or function definition,
only variables of the given (or derived) type are accepted, else a
runtime error 8 is issued. The type must have been exported previously.
CALL X(STRUCT X)
SUB X(STRUCT Any) ! Anonymous
CALL Y(STRUCT X)
SUB Y(STRUCT Known:Tknown) ! Passed value must be of type Tknown
! or derived from it. Tknown must have
! been definined previously
Please note: This is a behaviour change.
Initially, arguments were checked, when a subprogram or function was
called from the main segment. Otherwise no validation was performed.
- New error message 905 - No such member variable
- This new runtime error occurs, whenever a specified member variable
cannot be found. Previously this did result in error 900 which could
eloqdb6.cfg: New new server configuration item
On HP-UX and Linux, a new server configuration item is available.
In the section [server], the configuration item "Title" provides
a configurable title displayed by ps. This is helpful to identify
a server instance if you run more than one on a machine. (#676)
For example: eloqdb6.cfg
Title = test server