* Fix block change issue in name space support in TABXML
** In certain cases the URI was lost after a block border
** Then the match of XML tags failed and an unexpected format error occurs
* Prevent memory gap for XML element list if namespace support used
* Improve error messages in table support (more data at error position)
* Print statistics about literal cache usage to log (to adjust size (see below) for table support)
* Add new environment variable (FL_LITERAL_CACHE_SIZE) to define size of hash table for literal cache
** In table support using XML we recommend to increase the size from default 12 to 16
** e.g. FL_LITERAL_CACHE_SIZE=16
* Correct QUIET and SILENT for built-in functions of FLCL
* Add anti virus scanning check (EICAR) to system information (flcl info get.system)
5.1.25-30818
* Add namespace handling for XML <-> table transformations
** defaults(...xmlns(prefix='ns0' uri='http://www.w3.org/1999/xhtml')...)
** Propagate and reset header values over row borders (this was a general bug)
** Correct reset logic for optional values inside of a transaction
*** If different row definitions used, which starts with the same path, the header values must set and reset for each of the tables
* Include level 0 for flat XML files when initializing a table
** Supports more than one XML format in one file
** Improve documentation for XML <-> tables conversions
* Add new CLIST 'FLSYS' to easily determine system information for the use of FLAM on ISPF
* Fixed hardware crypto support (AES) on zLinux
* Fixed BUS_ERROR on SPARC when converting from single byte character sets to UTF-16/32
* When writing via fio.blk/rec/txt(), the modification time can be copied from the original file by setting modtime=ORIGINAL
* SHA-3 hash calculation now uses CPACF instructions on z/OS / USS if available
* Use new libxz and liblzma
5.1.25-30684
* New internal crypto/hash library with reduced overhead and more flexibility
** SHA-3 support added (via OpenSSL, hardware support is work-in-progress)
** Optimized CRC-32 and CRC-32C software implementations, faster by factor 5 or more (depending on CPU)
** CRC-32C makes use of SSE4.2 hardware acceleration where available (x86 CPUs)
*** Faster by up to factor 30 (>10GiB/s) compared to old software implementation
** Fixed CRC-64-JONES implementation (little endian platforms produced incorrect results)
** Fixed CRC-40-GSM (produced incorrect results)
** Log now shows whether hardware, OpenSSL or custom software implementation of cipher or hash algorithm is used
** Random number generator (RNG) can fail if the operating system offers no source of entropy
*** Some PGP operations may fail as a result if no entropy is available
*** Environment variable FL_ALLOW_LOW_ENTROPY can be set to allow a low entropy source which leads to weak encryption
* OpenSSL updated to 1.1.1j
** OpenSSL is no longer linked statically, resulting in a significant reduction of the binary size
* libexpat updated to 2.4.1
** Adds protection against billion laughs attacks (CVE-2013-0340/CWE-776) and other fixes
* LZMA implementation updated to version 19.00 from the LZMA SDK
* Improved tracing capabilities of FLAMSTC, FLAM subtask and FLUC subsystem
* Use application-specific runtime option defaults on z/OS to prevent stack overflows and heap storage problems
** See hlq.FLAM.SRCLIB(CEEUOPTx) for the used options, DD:CEEOPTS can still be used for redefinition
* Improved handling of SSH public key authentication with custom key files
** In previous versions, both a public and private key had to be specified for public key authentication with a custom key
** Now only the private key is mandatory
** The public key is computed from the private key if only a private key is specified via net.ssh() and the file <privatekeypath>.pub does not exist
** Security implication: The private key must be decrypted even if the server rejects the public key
** Documentation for net.ssh() regarding public key authentication was updated
* Significant performance increase of character conversion when converting from single byte character set or from UTF-8
** If MODE=SUB/IDT/XLT used and all possible 256 single byte always converted to one, two or four bytes
** and if the report file not used, then special mapping functions are used to reduce CPU by factor 4
** To ignore non convertible character or to stop at a wrong character (default behavior) or to report manipulations a special handling per byte is still done
** but in all other cases if the output length constant the special faster functions to write always 1, 2 or 4 bytes are used
** The change includes also support for UCS1 like UTF8 but with invalid codepoints greater 65535
*** Till 5.1.25 UCS1 was implemented as UTF8 because the ICU package (used to generate our code) does the same
** To use the optimisation also for UTF16/32 the BOM character are now the limit for conversion table pre-caculation
*** For codepoints greater BOM the expansion of the mapping table to 2 mega of entries is done
*** and the ignore of BOM and the character for nothing will result in the old handling per character in this case
* Increased performance when binary formatting is used (FMT.BIN()) if no attribute handling is required
* Improved I/O performance
** Don't use minimal block size at static allocation if no block size was specified
** Reduced CPU consumption of record I/O code (including FIO.DAT())
* Improved determination of default space on z/OS if fixed record format used to allocate space for padding bytes
** And multiply the expansion if a record length used which is greater than the original record length
* Statistics output now provides minimum and maximum length of processed records in record I/O
* Extended string notation (e.g. a'xyz' for ASCII string, x'F1A5' for hex values) is now supported for any string by CLP
** The local character to ASCII/EBCDIC and hex to binary conversion can also be used for zero terminated strings
** If the string not mark as binary a binary zero inside the strings is not allowed
* Support for record formats TXT-ASA/MCC and DLM-ASA/MCC added
** Required to copy list datasets written to USS pathnames (e.g. compile and link) from USS to MVS datasets
** Few tools used on USS writes ASA/MCC print control character to text files,
** to handle these text files correctly the ASA/MCC bytes must be read as attribute from the delimited record
* Improve install.txt for z/OS (FLAMSTC + recommendation for LLA caching)
** STEPLIB I/O (3500 EXCPs) for the FL5CORE dynamic link library can be eliminated by LLA cashing
* If no record format is specified and length format is defined in record I/O, then default record format will be VAR
* Check for hardware implementation when using PGP with compression (better logging if ZEDC used)
* Support flat XML formats with only one root level in table support
** Prevent error "No initial root tag was defined (column definition without a root)"
** Don't print additional root elements ('table' and/or 'row') if root was given
* Support input output name mapping for file name in hash files
** Control over the file names of GNU and BSD formats
** Use the target file name at write as default
* Reduce usage of raw run (without pre-calculation) for character conversion to increase performance
* New FLAMSTC (FLZSTC) with ENQ protection of all resources and framework to run authorized functions (IFAUSAGE, SML-Logging, IDCAMS(GDG-Base), ...)
** At startup the FLAMSTC locks now all resources to prevent usage before anything is established
** All the users take care of these locks and are in wait state till anything is established
** No wait required anymore before the FLAMSTC can be used
* Reduce memory consumption in table support (compress and reorg structures on column level)
* Bugfixes
** Prevent segmentation fault (0C4) of subtask (FLZSRV) in FLUC subsystem if vdFcrPut failed (if open of file not possible) in vdFcrFlu
*** This issue will be recovered by FLAMSTC but the SYSLOG messages are not nice
** Prevent wrong instruction (0C1) in PCR routine of zIIP support based on missing resources if connect to WLM failed
*** Use ASCBJBNS/NI as WLM Subsystem Name
*** This issue is also recovered by the FLAMSTC it self
** Libssh was accidentally linked statically in version 5.1.24-29911 on z/OS
** Correct close of CLP in FLZSVR (vdClpChk() function) on z/OS (used for FLUC subsystem)
*** Depending of LE configuration the dynamic allocated memory could initialized
*** and in this case the offsets for the read/write and format strings are zero
*** this could result in an interface error at open of the FLUC record interface
** Ensure that FCRGTN/fcbgtn returns the table name defined by FCRSTN/fcbstn
*** The wrong table name was given after a FCRSTN followed by FCRGTN
** Improve handling of trailer data in ZIP archives
*** Support compressed data shorter then trailer length
*** Prevent error which request bigger block size
** Windows only: When opening a file via SSH without specifying a path (i.e. ssh://user@host/filename) the filename
was incorrectly converted to .\filename which would lead to a file not found error from the server
** Fix character to ASCII/EBCDIC conversion for non-Latin characters
** Don't remove whitespace after suppress padding in record I/O
*** Only use uiPadLen at read if uiPadLen is defined as parameter
*** Ensure as default suppression of space or binary zero
** Use known record length if text method REC is used at text formatting
** Suppress padding before writing the delimiter in record I/O
** Correct mapping of record format 'var_4b' of FLAM command for FLUC
*** Use length format 'HOST' instead of 'INTEGER'
** Take over known character set at record oriented write
** Correct handling of headlines (CSV) in table support
*** Don't read second line as head line if values identical with the headline
** Fix wrong handling of '-' for optional when reading in XML table support
** Fix handling of surrogates in UTF-16 encodings
- 0001015: [4. Element, Byte, Record or other API] Names space support for XML format in table support (Falk Reichbott) - resolved. - 0000999: [1.1 FLCL] Support SHA3 over CPACF and add support for RipeMD 256 and 320 in CryCore (Falk Reichbott) - resolved. - 0001021: [1.1 FLCL] Support open formats with ASA and MCC print control character to copy list and lmaps from USS to MVS (Falk Reichbott) - resolved. - 0001020: [1.1 FLCL] allocated space for FB files too small (Falk Reichbott) - resolved.