---------------------------------------------------------------------- ELOQUENCE B.08.20 - patch PE82-2205110 ---------------------------------------------------------------------- This patch adds enhancements or fixes defects of the eloqcore and list program as released with Eloquence B.08.20. This patch will be integrated in the Eloquence B.08.20 release. Eloquence B.08.20 must be installed before applying this patch. Severity: PE82-2205110: BUG FIX Superseded patches: PE82-2005150: BUG FIX PE82-2002240: BUG FIX PE82-1910010: BUG FIX PE82-1712180: BUG FIX PE82-1706140: BUG FIX PE82-1705260: BUG FIX PE82-1511050: BUG FIX PE82-1510290: BUG FIX PE82-1508110: ENHANCEMENT PE82-1507170: BUG FIX PE82-1501230: BUG FIX PE82-1409230: BUG FIX PE82-1409180: BUG FIX PE82-1409090: BUG FIX, ENHANCEMENT PE82-1404141: BUG FIX PE82-1309131: BUG FIX PE82-1309121: BUG FIX PE82-1308230: BUG FIX Patch PE82-2205110 ------------------ Platforms: All * Fixed SETENV value limitation to 255 characters. A SETENV value exceeding 255 characters could result in unexpected behavior or abort the eloqcore process. This was caused by an improper check of an internal buffer. eloqcore was changed to allocate the buffers dynamically, removing the limitation. Patch PE82-2005150 ------------------ Platforms: All * Fixed a limitation of the XUNPACK statement not supporting long variable names. Patch PE82-2002240 ------------------ Platforms: All * Fixed a problem using the XPACK/XUNPACK statements with THIS in a class method. This caused an abort of eloqcore due to a failed consistency check. Patch PE82-1910010 ------------------ Platforms: All * Fixed missing timestamp prefix for log messages written to a log file created with the -log command line option. * The Eloquence IDE debugger no longer truncates string variable values to 256 characters in the variables window. Patch PE82-1712180 ------------------ Platforms: All * Fixed ambiguous syntax of the MAT "." operator (multiply array elements) and the member operator (#4260). The multiply operator was changed from "." to "#". As of B.08.20 the MAT statement supported operating on member variables. However this enhancement was in conflict with the "." operator that is used to multiply array elements. MAT A=B.C This could either mean copy the member array B.C or multiply the array elements from B and C. As a consequence the "." operator was changed to "#" to resolve the ambiguity. MAT A=B.C ! copy MAT A=B#C ! multiplication * Fixed internal error when using a STRUCT argument with a single line function (#4259). A STRUCT argument in a single line function resulted in an abort message similar to below: DEF FNA(STRUCT B)=1 codegen.c:1299: cg_fix_expr: Assertion `cg == 1' failed. * Fixed message for ERROR 99 (#3682). * Updated the database client library to B.08.20.04 (PE82-1711150). This fixes a memory leak when using FTS indexes. Patch PE82-1706140 ------------------ Platforms: All * Fixed an inconsistency with LDSPEC$ which could be changed by statements other than LOAD when the program file was not loaded using a label. Patch PE82-1705260 ------------------ Platforms: Windows * Fixed unexpected character input problems observed on Windows 10 version 1703 (Creators Update) when using eloqcore in text mode. Some international and special characters, e.g. umlaut characters, were no longer mapped by Windows as expected. As a result, wrong characters were input (#4250). This is caused by an undocumented behavior change of the Windows API function ReadConsoleInputA(). On Windows 10 version 1703 this function does not behave as documented by Microsoft. Patch PE82-1511050 ------------------ Platforms: Windows * Fixed a problem where output could be lost when executing the (SYSTEM) PRINTER IS STDOUT statement and not flushing the output with (SYSTEM) PRINTER SYNC or (SYSTEM) PRINTER IS 8. This could cause unexpected behavior with eloqcgi. Patch PE82-1510290 ------------------ Platforms: All * Fixed an internal error executing the statement MAT A.I=B.I A message as below is output: Assertion failed: (idx >= 0 && idx < nxtmp) file xpxa.c, line 183 in function get_stmps * Fixed an internal error listing the statement MAT A.I=.I A message as below is output: list.c:1497: l_operand: Assertion `idx >= 0 && idx < l_stackp' failed. Related patches: PE82-1510291 (ide). Patch PE82-1508110 ------------------ Platforms: All * This patch increases the limit of active workfiles from 10 to 20. Patch PE82-1507170 ------------------ Platforms: Windows * Fixed unexpected startup problems observed on Windows 10 Preview. Starting eloqcore could fail with a message like below: eloqcore: Unable to setup i/o system This has been fixed with a new implementation of the eloqcore console window implementation, which introduces the following new behavior: - eloqcore now adapts to the configured console window size instead of expecting a fixed size of 80 columns and 25 lines. - The COLUMNS and LINES environment variables may be used to set the eloqcore console window to a specific size. COLUMNS must be set >= 80 and LINES must be set >= 24, otherwise they are ignored and eloqcore uses the configured console window size. Patch PE82-1501230 ------------------ Platforms: All * Fixed an unexpected behavior in space dependent parsing mode introduced with B.08.20 (#4200). As of B.08.20 the parser first attempts to parse a statement in space independent mode, regardless if space dependent mode is used. Only if this fails the space dependent mode is considered. This allows to resolve potential ambiguities in space dependent mode by using the correct case. This change could cause unexpected behavior as space characters might be ignored instead of being considered a delimiter. The parser was changed to treat spaces as delimiters if space dependent mode is used. Patch PE82-1409230 ------------------ Platforms: All * Fixed a regression in PE82-1409180 that could cause eloqcore to abort when calling a DLL function with a message as below: Assertion failed: (maxlen != 0 && type == STRING) in function dll_pass_var * The eloqcore message catalog was modified to include the error messages from the ODBC.DLL and NET.DLL. Patch PE82-1409180 ------------------ Platforms: All * Fixed a problem where a CALL DLL statement passing member variables could fail with runtime ERROR 18 (String overflow) or ERROR 603 (DLL memory overflow). Patch PE82-1409090 ------------------ Platforms: All * Fixed a memory corruption issue when loading a dialog resource file with more than 50 dialogs (#4181). When using a dialog driver the DLG LOAD statement did not correctly enforce an internal limit. * When using a dialog driver the DLG LOAD statement limits were enhanced. - The maximum number of dialogs per dialog file is no longer limited. Previous versions were limited to 50 dialogs per file. - The max. nesting of dialog objects is no longer limited. Previous versions were limited to 10 nested dialog objects. * When using a dialog driver the DLG LOAD statement parser was enhanced to allow modifying copied models when loading a dialog file. The following syntax is now supported: name { ... } This changes the context to a previously existing object and allows changing attributes or adding child objects. class name.name { ... } It is now valid to specify a path for the new object. This allows to add child objects (without changing the context). .name.attribute = value It is now valid to specify a path for an attribute. This allows to change attributes of child objects (without changing the context). This was already supported in previous versions but not documented. Platforms: Windows * Fixed a problem that could abort eloqcore when an unsupported format argument is used with the DATE$ function (#4174). Patch PE82-1404141 ------------------ Platforms: Linux, Windows * Updates the database client library to B.08.20.03. This fixes a potential problem with the database client side cache expiration. Patch PE82-1309131 ------------------ Platforms: All * Returning a DINTEGER or SHORT member variable from a function resulted in an ERROR 11. Patch PE82-1309121 ------------------ Platforms: All * Fixed a problem where using autoloaded program code might corrupt internal memory. Patch PE82-1308230 ------------------ Platforms: All * Fixed a problem when using the Eloquence IDE debugger where in some cases the variable view displayed a wrong number of array elements if an array is a class member variable. * Fixed a problem related to the dlgsrv32 GUI driver where an IDM dialog file could not be loaded if a VOLUME specifier is appended to the DLG LOAD file name. Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE82-2205110-hpux-ia64.tar.gz ^ ^ ^ | | Architecture / OS specific build | Operating system Patch ID HP-UX: In order to install this patch, you need to unpack it with gzip and tar. Gzip is included with HP-UX. Installation requires root privileges. cd /opt/eloquence/8.2 gzip -dc /path/to/PE82-2205110-hpux.tar.gz | tar xf - Files: bin/eloqcore bin/list bin/store lib/nls/C/eloq.cat share/doc/PE82-2205110-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence/8.2 tar xzf /path/to/PE82-2205110-linux.tar.gz Files: bin/eloqcore bin/list bin/store lib/nls/C/eloq.cat share/doc/PE82-2205110-README Windows: Two options are available for patch installation. The patch is available as self extracting archive for automatic installation and as a zip archive for manual installation. Both patches are equivalent. Installation requires administrative capabilities. For automatic installation of this patch, please download the patch file PE82-2205110-win32.exe. Installation does not require a reboot unless the patched files were active. For a manual installation of the patch, please download the patch file PE82-2205110-win32.zip and unpack its contents. Then perform the following steps: * Please copy the eloqcore.exe and list.exe files into the Eloquence bin directory. (Default location: C:\Program Files\Eloquence\8.2\bin) * Please copy the eloq.cat file into the Eloquence lib\nls directory. (Default location: C:\Program Files\Eloquence\8.2\lib\nls) * Please copy the PE82-2205110-README.txt file into the Eloquence share\doc directory. (Default location: C:\Program Files\Eloquence\8.2\share\doc) Files: eloqcore.exe list.exe store.exe PE82-2205110-README.txt