Ladybridge Systems Releases QM 2.12-8
Ladybridge announces the release of QM 2.12-8 as a commercial release. Some of the enhancements and fixes available are:
- The QMBasic compiler can now produce a concordance file that shows the relationship between the modules that make up the application. For details see the BASIC command in the QM Reference Manual.
- For improved compatibility, the CHANGE(), COUNT(), COUNTS(), INDEX(), INDEXS() and SWAP() functions are now influenced by $MODE settings that determine whether overlapping substrings are allowed.
- The QMBasic EXECUTE and OS.EXECUTE statements now have an optional SILENT clause as an alternative to use of CAPTURING when the output is to be discarded.
- The QMBasic PAUSE statement returns the user number of the process that executed the corresponding WAKE via the INMAT() function.
- An extension to the FSYNC configuration parameter allows force writing of all replication log file updates. This gives best best reliability through system failures but is likely to have a severe impact on performance.
- QM now includes a work-around for a bug in the nanosleep() C library function on 64 bit Mac OS X systems that could cause a QM application to hang.
- The LISTF, LISTFL and LISTFR commands were not showing the mode flags for directory files.
- As an aid to diagnostics, PSTAT should show the pid of a process that does not respond to the request for status data.
- QMBasic class module inheritance forced the object variable name to uppercase even when using $MODE CASE.SENSITIVE.
- Use of the QMBasic $CATALOGUE directive should discard any catalogue mode information from the $BASIC.OPTIONS record.
- The V$FILEUNLOCK method of a VFS handler could hang the entire QM system.
- Pick wildcards in the query processor did not operate correctly when used with a field that had a conversion code.
- Use of the PASSLIST option to pass an empty select list in the QMBasic EXECUTE statement could cause a fatal error.
- The QMBasic FIELDSTORE function did not add the final delimiter if it was the last character in the source string.
- Multi-threaded Windows programs using qmclilib.dll did not provide adequate isolation between threads, resulting in possible incorrect behavior.
- Use of EXECUTE in some elements of a VFS handler caused select lists to be lost.