* z/OS and z/USS code are now built on z/OSv2r4
** Minimum target z/OSv2r2
** Minimum architecture z12
** Tuned for z14
** Build Cobol samples with version 6.3 of the compiler
*** Requires toleration APAR PH15595 or rebuild of the COBOL samples with the SBUILD job.
* Support definition of padding character at read.record()
* Add FSTATZOS as object to z/OS package and adjust FLM4SEPA build job
* Support scan build for all z/OS sources
** Fix few scan build issues in FLM4SEPA source
* Use unique entry names for functions to prevent linkage problems if FLAMREC and FLCRECLB used in parallel
* Add more time stamps and CPU time measurement to printouts at command execution
* Add time stamp in front of each trace message to look at hangers
* Add a trace message at parsing for each find symbol
* Add new chapter to JCL considerations to prevent long runtime based on wrong STACK and HEAP definitions for LE
** For CEEOPTS we recommend to run FLAM on z/OS with:
*** STACK(1M,1M,ANYWHERE,KEEP,512K,128K)
*** HEAP(1M,1M,ANYWHERE,KEEP,8K,4K)
* Add CEE version to system info and check CEE version at beginning of FLCL against the required minimum on z/OS
* Add architecture level to system info and check the level at beginning of FLCL against the required minimum on z/OS
* Print uname(all) on POSIX systems at beginning of CleExecute to the log (Run on ...)
* Copy real data set name after FLMOPD into file name attribute at write of FLAMFILEs (replace DD:NAME by real name)
* Use always 'FLAMFILE' as default DD name in FIO.FL4() for FLAMFILEs if no DSN given
** Prefer a static allocation of DD name 'FLAMFILE' the default DSN (original name plus extension) given
** Uniform the behavior between FLCL FLAM and all other command of FLCL using FLAMFILEs
* Don't use simple default values in SVC99 (dynalloc) if data class given
** Only if the file size known, then the space parameter are defined
** DCB values are not set to defaults anymore if a data class given
** Since to this build a data class has no effect because all text units are defined with default values
* If available in catalog print data, storage and management class for files in info function on z/OS
* Support empty FLAM file name at read.flam4() in CONV command of FLCL ('DD:FLAMFILE' must be allocated in this case)
* Support static allocation of FLAMOUT at write.xxxx() if available before the default DSN is used on z/OS
** FLAMOUT works now like FLAMIN because it will be preferred if the allocation
** If the FLAMOUT allocation not defined and still no file specification given the default path/dataset name is used
* Don't determine member count at info function for empty file names anymore ('<SYSUID>.**' was the wrong default in this case )
* Static allocation of FLAMFILE are no longer freed in FIO.FL4() if no file specification given
* Fix sporadically errors in static allocation of DD names for old FLAM4 components
* All external links in HTML documentation are now open in a new tab and not into the frame
* Support DD names without 'DD:' as prefix (if only one qualifier and a static allocation available) on z/OS
* Use DD name SYSIN at read and SYSPRINT at write on z/OS if keyword STREAM used for FLAM4FILEs (not STDIN and STDOUT anymore)
* Fix 0C4 if no wildcard match if file lists used with old FLAM4 utility and subprogram
5.1.22-28493
* z/OS and z/USS code are now built on z/OSv2r4
** Minimum target z/OSv2r2
** Minimum architecture z12
** Tuned for z14
** Build Cobol samples with version 6.3 of the compiler
*** Requires toleration APAR PH15595 or rebuild of the COBOL samples with the SBUILD job.
* Support definition of padding character at read.record()
* Add FSTATZOS as object to z/OS package and adjust FLM4SEPA build job
* Support scan build for all z/OS sources
** Fix few scan build issues in FLM4SEPA source
* Use unique entry names for functions to prevent linkage problems if FLAMREC and FLCRECLB used in parallel
* Add more time stamps and CPU time measurement to printouts at command execution
* Add time stamp in front of each trace message to look at hangers
* Add a trace message at parsing for each find symbol
* Add new chapter to JCL considerations to prevent long runtime based on wrong STACK and HEAP definitions for LE
** For CEEOPTS we recommend to run FLAM on z/OS with:
*** STACK(1M,1M,ANYWHERE,KEEP,512K,128K)
*** HEAP(1M,1M,ANYWHERE,KEEP,8K,4K)
* Add CEE version to system info and check CEE version at beginning of FLCL against the required minimum on z/OS
* Add architecture level to system info and check the level at beginning of FLCL against the required minimum on z/OS
* Print uname(all) on POSIX systems at beginning of CleExecute to the log (Run on ...)
* Copy real data set name after FLMOPD into file name attribute at write of FLAMFILEs (replace DD:NAME by real name)
* Use always 'FLAMFILE' as default DD name in FIO.FL4() for FLAMFILEs if no DSN given
** Prefer a static allocation of DD name 'FLAMFILE' the default DSN (original name plus extension) given
** Uniform the behavior between FLCL FLAM and all other command of FLCL using FLAMFILEs
* Don't use simple default values in SVC99 (dynalloc) if data class given
** Only if the file size known, then the space parameter are defined
** DCB values are not set to defaults anymore if a data class given
** Since to this build a data class has no effect because all text units are defined with default values
* If available in catalog print data, storage and management class for files in info function on z/OS
* Support empty FLAM file name at read.flam4() in CONV command of FLCL ('DD:FLAMFILE' must be allocated in this case)
* Support static allocation of FLAMOUT at write.xxxx() if available before the default DSN is used on z/OS
** FLAMOUT works now like FLAMIN because it will be preferred if the allocation
** If the FLAMOUT allocation not defined and still no file specification given the default path/dataset name is used
* Don't determine member count at info function for empty file names anymore ('<SYSUID>.**' was the wrong default in this case )
* Static allocation of FLAMFILE are no longer freed in FIO.FL4() if no file specification given
* Fix sporadically errors in static allocation of DD names for old FLAM4 components
5.1.22-28284
* Fix error at write of FLAMFILEs if static allocation with less than 512 byte record length done using the old FLAM utility on z/OS
** The problem was introduce with the first build of version 5.1.22 of FLAM with a fix of another problem (for FLAM-VSAM record interface)
* Fix wrong mapping of encoding strings to CCSID for code pages 'EUC-JP/TW/KR/CN'
* Remove remaining dependencies from FLM4SEPA modules to FL5CORE (getFileSize, remove_hfq)
* Remove remaining dependencies from FLAMREC modules to FL5CORE (FSTATZOS, CHKMEM, CLEPUTL, FLAMUTL, ENVUTL, DYL and STR)
5.1.22-28224
* Support new format 'RST' in table support to parse or write data up to a certain offset or end of the record
** Some time in variable length records the next variable part starts at a certain offset
*** This component support to read the remaining rest of the data as column up to this offset
** Some time it is useful to read the rest of an record in a column
*** This component supports this by default (offset=0) to read the remaining rest of the data
** At write such space must normally filled with padding bytes and can be added up to the defined offset
* Support 1 to 10 decimal digits as length filed in table support at read and write
** e.g. COLUMN(FORMAT.LFD(LENFMT=D5X)) for a 5 byte decimal digit length field not including it self
** often used for record length or parts of records in COBOL copy books
* Fix wrong adjustment of format parameter in table support
** Prevent setting of format.fix() values if other format (not the default) used
* Correct handling of MAXLEN parameter in table support
** If default format is FIX an it includes a variable length fields, then no padding to the defined MAX/FIXLEN should be done
* Few improvements and corrections of FLM4SEPA
** Fix wrong handling of BTAG in FLM4SEPA
** Add CPU time measurement in FLM4SEPA
** Rewrite FLM4SEPA from bytes wise to an optimized 32 bit 4 times parallel handling
** Check length fields of load records
** Improve statistics and log output
** Don't read next record if Bloom count achieved
*** Prevent decompression of next matrix to improve performance and reduce CPU consumption
* Support destination user and id and redirection to hold queue at SYSOUT allocation
* Print data position inside the block or record to error messages in table support
* Correct allocation of extended attribute datasets (text unit with wrong pointer)
* Binary zero (0x00) is now whitespace at character conversion (like in all other cases)
* Support concatenation of member in FIO.FL4() component if member name has not changed
5.1.22-27996
* Support padding bytes at the end of a FLAMFILE on Windows and UNIX platforms (incl. USS)
* Correct INFO GET.FILE if seek for ZIP files result in an error (e.g. if VSAM dataset on z/OS)
* Correct resource file for Windows packaging of flam4.exe
* Add FRCGFN to MF-EDZ support
* Add new feature FLM4SEPA
5.1.22-27795
* Support double KeyID's at import of PGP keys
** Allow the same key value for top and subkeys (is a security issue)
** Support a RACF policy (KEY.IMPORT.PGP.DOUBLE.KIDS) to prevent this
* Support a new environment variable FL_PGP_PREF_SYMALG_AES128
** Can be set to YES to invert the order of preferred symmetric algorithms for AES
** Change order from AES256/192/128 to AES128/192/256 for all FKM5 modules at generate and export
* Correct Windows and Unix packaging (replacement of the FLAM4 executable)
5.1.22-27678
* Improved documentation
** New CLEP with better documentation generation
** New built-in function HTMLDOC
* SSH improvements
** An undocumented new libssh feature automatically loads OpenSSH per-user (~/.ssh/config) and system-wide (/etc/ssh/ssh_config) config files
*** This introduced a regression in version 5.1.19-22166 which could override user-provided SSH options with options from a config file
*** This release restores the intended behavior of user-provided configuration options taking top priority
** The net.ssh() object has several new config options:
*** CONFIGFILE=<configpath> (allows to specify a custom SSH config file in OpenSSH format)
*** NODEFAULTCONFIG (disables loading of per-user and system-wide OpenSSH config files)
*** ALGORITHMS() (object to specify custom lists of acceptable / preferred crypto algorithms)
** SSH configuration options are priorized in the following order:
*** 1. Command string options
*** 2. Custom configuration file (via net.ssh(configfile=...))
*** 3. Per-user configuration file (~/.ssh/config)
*** 4. System-wide configuration file (/etc/ssh/ssh_config)
*** Example: Path to known_hosts file is set via net.ssh(knownhosts=...) and in a config file: value from net.ssh() is used
** If CONDBG logging is enabled, the effectively used username, host, port and known_hosts files are logged (after processing all config files and parameters)
* Support SYSOUT allocation to write files as mail attachment on z/OS
** write.text(...falloc(sysout(format.mail(from='sender@mail.com' to='receiver@mail.com'))...)
* Improve separation of binary data from base encoded data at detection
** If no ARMOR header/trailer found (simple base encoding) then character set detection is now done
** If the character set detection must determine UTF-8, ASCII or EBCDIC in each other case (binary data) this could no base encoding
* Support comment (user header) also if no system header written with old FLAM4 utility and subprogram
** If IDEVICE=USER used then no comment war stored in the member header
* Support error trace in I/O components (for better and simple problem determination)
** Support better reason codes (No such file or directory, permission denied, ...) if file I/O failed
* Correct lexem to lexeme or lexemes in each case (CLEP change)
** the Built-in function "LEXEM" are still available as abbreviation/alias of LEXEMES
* Support large files in FLAM4 components at dynamic allocation on z/OS
* Support extended attribute datasets in FLAM5 components for dynamic allocation on z/OS
* Improve support of empty records in variable length record datasets on z/OS
** If environment variable '_EDC_ZERO_RECLEN' set to Y (default) then records of length 1
with a padding byte (0x00 or 0x40) as content will be records of length 0 at read
* Support new environment variable 'FL_INFO_BLOCK_SIZE' to setup another block size for INFO command
** This is mainly useful for PGP files to get the PGP dump
* Support new special condition code 160 (FLMRTC_NBS) which tells that a larger block size is required
** This could happen for example if PGP use BZIP2 compression with large (900KiB) blocks, in this case 1MiB would be a useful block size.
* Improve error handling in I/O routines on z/OS
** Call I/O error handler if system call fails to write _amrc structure into the log
* Print external file attributes in member list of ZIP archives
* Add new switch 'NOXFLD' for ZIP archives to prevent write of extra fields to member header and directory entry
* Support new entry FCRGFN() and fcbgfn() to determine the file name after open and before close
* Add time stamps to CLE messages and overall run and CPU time at end of execution
** Useful to see run and CPU time of CLEP usage around FLUC, FLAM or FLIES subprograms
* Improve parsing of URLs (more fail save)
* Improve IP communication for ClamAV
* Reduce default record for long records to limit the buffer size to a maximum of 256KiB plus 1 record
* Bugfixes:
** Don't return end of member (6) in FLMGKY anymore
*** A additional call again FLMGKY to handle this error was failing always with key not found (5)
*** Now FLMGKY handles EOM internally an return the next matching record in the next member
** z/OS/USS only: Fix libssh signature verification at re-keying after a certain time (1h) or amount of data (1GiB)
** Correct usage of UserIO in FLAM4 components (now works as specified)
** Fix space allocation parameter handling in FLAM4 components on z/OS
*** Correct large file handling in dynamic allocation for FLAM4 components on z/OS
** INFO function don't result in damaged FLAMFILE for VSAM-KSDS-FLAMFILE if FLMPOS failed with missing key in KSDS
** Don't accept block mode = 0 in UNIX/Windows source of FLAM4 components to prevent write of non-readable FLAMFILEs
** Use determined record size in FLMOPD in FLMOPF if FLAMFILE open for update (only FLAM4 on z/OS)
** Return maximal record count for the matrix at read of a FLAMFILE (only FLAM4 on z/OS)
** Set maximal record count at read dependent on the determined compression mode (only FLAM4 on z/OS)
*** If the provided MAXREC parameter greater then 255 or 4095 then the maximum will be used
*** No error anymore if MAXREC greater than 4095
** Correct comment handling between CNV.GZP and ARC.ZIP
*** ZIP file member comment can now successful disables
** Fix FLGT error with additional new lines if FLGT used to edit a file
*** The file is read in junks and after each junk a newline was added with appending the junk to the text of the editor
*** Now the whole file is read into the memory and the editor text is set without changes
** FLGT now requires the user to confirm a requested save action when the filename was changed and a file with this name already exists
** FLGT checksum output does not swallow leading zeros anymore
** FLGT does properly remove temporary files, but not when external program was used to view it or an error occured
** Set key position and key length to 0 for non KSDS data sets at write if no key disposition defined
** Don't use national (dia-critical) characters in CLISTs anymore to prevent code page issues
** Use connection to remote FLAMFILEs to create directories and to verify of file already exists
** Link against IBM zlib version 1.2.11 to support ZEDC CPACF command on z15
*** Prevent empty CRC32 in GZIP, PGP and ZIP files and the corresponding format issues on other platforms
- 0001008: [1.0 FLAM4 or older] FLAM 4 utility produce 0C4 if file list don't match (Falk Reichbott) - resolved. - 0000996: [1.1 FLCL] Support digit based length fields at FORMAT.LDF (Falk Reichbott) - resolved. - 0000991: [2.1 Subprogram FLAM (COMP/DECO)] FLAM4 for Unix/Windows don't support padding bytes (Falk Reichbott) - resolved. - 0000987: [c. Deployment] Keep the last stable revision / release for download (Ulrich Schwab) - resolved. - 0000983: [4. Element, Byte, Record or other API] Support FLUCUP-Interface (including old FLAMUP) on Java (Tilo Eckert) - resolved. - 0000835: [2.2 Subprogram FLUC (CONV)] Support write of files as mail attachment over the SYSOUT(TCPCSMTP) (Falk Reichbott) - resolved. - 0000989: [4. Element, Byte, Record or other API] New entry to get the file name at write (Falk Reichbott) - resolved.