contact contact

Enhancements and changed behaviour

  A.06.10 Release Notes

Personal Edition

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]
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 called segments.

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.
For example:
SUB X(STRUCT Any)             ! Anonymous

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 be confusing.

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

  Privacy | Webmaster | Terms of use | Impressum Revision:  2002-11-18  
  Copyright © 1995-2002 Marxmeier Software AG