KRASCHE
&
BYRNE
         ELZED  HOME       NEWS       DOCS       DOWNLOADS       LICENSING       SUPPORT       FAQ       ABOUT  US

What's An Elzed?
Features
Licensing
Downloads
Documentation
Elzed News
    ELZED 
 Documentation 
 Versions 

Version 2.4.0 Release Notes

This version was released on 23 January 2010.

Elzed 2.4.0 introduces 64-bit processor support on all platforms, while continuing to support 32-bit processors.

Elzed handles, which were 32-bit values in previous releases, are now 64-bit values in both the 32-bit and 64-bit versions of Elzed on all platforms.

The use of handles to Elzed objects has been expanded. More than 30 new API calls support the use of handles to Elzed variables and contexts, complementing the "by name" access methods already supported, and resulting in improved object access performance. The list of new API calls appears below.

Context creation has also changed slightly in light of expanded handle support. In previous versions, context creation calls returned a boolean to indicate success or failure. In this version, successful context creation calls return a handle to the new context; calls that fail return NULL.

Support for Elzed arrays has been completely rewritten, resulting in a smaller memory footprint and improved performance. In addition, boolean arrays are now supported.

Because of a change in the GCC 4.2 compiler, most string (char*) parameters of Elzed API calls are now declared const. A list of the affected calls appears at the end of these notes.

Complex variables are now supported as a distinct data type, rather than merely a variant of the numeric type. Promotion of numeric variables to complex is now more strictly controlled.

Array and variable creation and assignment calls have changed significantly:

  • In previous versions of Elzed, boolean, complex, and numeric variables were created using the lzSetBoolVar, lzSetComplexVar, and lzSetNumVar calls respectively. These same calls were used to set the values of existing variables of these types. String variables, however, were created with calls to lzCreateStrVar and were set with calls to lzSetStrVar.

  • In version 2.4.0 these calls are more consistent. Beginning in this version, variables of all types are created with "create" calls (lzCreateNumVar for numbers, lzCreateBoolVar for booleans, etc.) and assigned values with "set" calls (lzSetNumVar for numbers, lzSetBoolVar for booleans, etc.) Calling a "set" API on a variable that does not exist will no longer result in the variable being created; such a call will now return an error. Support for string variables is unchanged, with separate calls for creation and assignment.

  • In previous versions of Elzed, API calls that created variables or arrays returned a boolean to indicate success or failure. Starting in Elzed 2.4.0, these "create" calls return a handle to the new variable if successful. Calls that are unsuccessful return NULL.

  • Every API call that sets a variable or array value by name now has a corresponding call that accepts a handle. For example, lzSetNumVar accepts a scope, a variable name, and a value. The corresponding call, lzSetNumVarByHandle, accepts a variable handle and a value.

  • Boolean arrays are now directly supported by Elzed.

Default variable scope is now an attribute of the current context. Variables that are defined implicitly or declared without a scope specifier will be created at the default scope. A new API call will set the default variable scope. Details below.

The precision of formatted numeric results is now an attribute of the current context. A new API call will set this value. Details below.

The following API calls are new in version 2.4.0:

lzCreateBoolArray returns a handle to a boolean array created to the passed-in specifications.
   
lzCreateBoolVar creates and returns a handle to a boolean variable.
   
lzCreateComplexVar creates and returns a handle to a complex variable.
   
lzCreateNumVar creates and returns a handle to a numeric variable.
   
lzGetBoolArrayElement returns the specified element of the named boolean array.
   
lzGetBoolArrayElementByHandle returns the specified element of the specified boolean array.
   
lzGetBoolVarValueByHandle returns the value of the specified boolean variable.
   
lzGetComplexArrayElementByHandle returns the specified element of the specified complex array.
   
lzGetComplexVarValueByHandle returns the value of the specified complex variable.
   
lzGetDefaultVariableScope returns the scope at which variables with implicit or unscoped declarations will be created in the current context.
   
lzGetFormattedResultPrecisionLimit returns the formatted numeric result precision limit of the current context.
   
lzGetNumArrayElementByHandle returns the specified element of the specified numeric array.
   
lzGetNumVarValueByHandle returns the value of the specified numeric variable.
   
lzGetStrArrayElementByHandle returns the specified element of the specified string array.
   
lzGetStrArrayElementByHandleB returns the specified element of the specified string array in a BSTR.
   
lzGetStrVarValueByHandle returns the value of the specified string variable.
   
lzGetStrVarValueByHandleB returns the value of the specified string variable in a BSTR.
   
lzGetVarHandle returns the handle of the named Elzed variable.
   
lzGetVarTypeByHandle returns the data type of the specified Elzed variable.
   
lzIsArrayHandle returns TRUE if the passed in handle represents an array, FALSE otherwise.
   
lzIsVarHandle returns TRUE if the passed in handle represents a variable, FALSE otherwise.
   
lzLinkBoolArray establishes the named boolean array in the current context and associates it with the passed-in host array.
   
lzLinkBoolVar establishes the named boolean variable in the current context and associates it with the passed-in host variable.
   
lzSetBoolArrayElement sets the value of the specified boolean array element.
   
lzSetBoolArrayElementByHandle sets the value of the specified boolean array element.
   
lzSetBoolVarByHandle sets the value of the specified boolean variable.
   
lzSetComplexArrayElementByHandle sets the value of the specified complex array element.
   
lzSetComplexVarByHandle sets the value of the specified complex variable.
   
lzSetDefaultVariableScope sets the scope for variables which are implicitly declared or are declared without a scope modifier in the current context.
   
lzSetFormattedResultPrecisionLimit sets the precision (number of decimal places) for formatted numeric results in the current context.
   
lzSetImagArrayElementByHandle sets the value of the imaginary part of the specified complex array element.
   
lzSetImagVarByHandle sets the value of the imaginary part of the specified complex variable.
   
lzSetNumArrayElementByHandle sets the value of the specified numeric array element.
   
lzSetNumVarByHandle sets the value of the specified numeric variable.
   
lzSetRealArrayElementByHandle sets the value of the real part of the specified complex array element.
   
lzSetRealVarByHandle sets the value of the real part of the specified complex variable.
   
lzSetStrArrayElementByHandle sets the value of the specified string array element.
   
lzSetStrVarByHandle sets the value of the specified string variable.


The following API calls have one or more string (char*) parameters that are now declared const:

lzAnnotateExp
lzAnnotateExpB
lzCheckExp
lzCheckExpB
lzCreateComplexArray
lzCreateNumArray
lzCreatePrivateContext
lzCreatePublicContext
lzCreateStrArray
lzCreateStrVar
lzDefineExpOp
lzDefineExpOpStr
lzDeleteOp
lzDeleteVar
lzDestroyPrivateContext
lzDestroyPublicContext
lzEvalExpStr
lzEvalExpStrToBool
lzEvalExpStrToComp
lzEvalExpStrToNum
lzEvalExpStrToStr
lzEvalExpStrToStrB
lzGetBoolVarValue
lzGetComplexArrayElement
lzGetComplexVarValue
lzGetContextHandle
lzGetNumArrayElement
lzGetNumVarValue
lzGetStrArrayElement
lzGetStrArrayElementB
lzGetStrVarValue
lzGetStrVarValueB
lzGetVarType
lzInitialize
lzIsArray
lzIsOp
lzIsSymbol
lzIsVar
lzLinkCallbackOp
lzLinkComplexArray
lzLinkComplexVar
lzLinkNumArray
lzLinkNumVar
lzLinkStrArray
lzLinkStrVar
lzParseExp
lzReadExpOp
lzReadExpOpStr
lzSetBoolVar
lzSetComplexArrayElement
lzSetComplexVar
lzSetContext
lzSetDefaultContext
lzSetImagArrayElement
lzSetImagVar
lzSetNumArrayElement
lzSetNumVar
lzSetRealArrayElement
lzSetRealVar
lzSetStrArrayElement
lzSetStrResult
lzSetStrVar



  Copyright  ©  MMXXV  by  R R Le Cropane   •   All Rights Reserved   •   Terms of Use   •   Privacy Policy