|Powered by QM on a Rpi server|
|QM 3.3-2 (released 21 Jul 2014)|
The command stack editor now includes a command .C- to undo an immediately preceeding .C operation.
The L conversion code now has an option to count display width instead of characters on ECS mode systems.
The MCN and MC/N conversion codes now have an option (MCN- and MC/N-) to treat a leading minus sign as a numeric character.
The QUERY.STR.COMP.ALL setting of the OPTION command causes all relational operators applied to right aligned data items to be performed as string comaprisons.
The QMBasic FOR EACH loop construct has been extended to allow specification of an alternative delimiter character.
The QMBasic SIGNAL() function and corresponding SYSTEM(1062) function allow creation of simple cross-process signalling mechanisms such as might be useful to shut down a phantom process.
The QMBasic TRIMW() function trims whitespace characters. On ECS mode systems, this is in line with the Unicode definition.
A configuration option has been added to ban creation of private QMNet server definitions that have the same name as a public definition and could therefore weaken security by redirecting a connection.
|QM 3.3-1 (released 6 Jun 2014)|
The CT command can be used with a data collection file and will show the data in JSON format.
The ED editor now supports external commands implemented as user written catalogued subroutines.
The UPDATE.RECORD command will now compile an I-type if needed.
The QMBasic COMPARE() function now has a option for case insensitivity.
The QMBasic SYSTEM(33) function returns the name of the program that called the subroutine in which this function is used.
The CATCH clause of a TRY/CATCH block has been extended to allow optional automatic creation of a process dump file prior to unwinding the call stack back to the exception handler. Programs using this feature cannot be executed on earlier releases.
The @DRIVE token can now be used as a general @-variable, not just as a pathname prefix in file pointers.
|QM 3.3-0 (released 9 Apr 2014)|
This release introduces support for data collections, arbitrarily multi-dimensional data managed as name/value pairs. See the Data Collections section of the QM Reference Manual for details.
The data collections development has required addition of a Boolean data type in QM. This has been supported since release 3.2-2 but the @TRUE and @FALSE symbolic constants have continued to be evaluated as 1 and 0 respectively. From release 3.3-0, these constants will evaluate as the new Boolean data type. A NUMERIC.BOOLEAN option for the $MODE compiler directive has been included for use where programs compiled on release 3.3-0 or later must be able to run on releases prior to 3.2-2, however, use of this mode may cause data type issues in JSON strings constructed from data collections. Boolean values continue to be interpreted as 1 and 0 when used in situations that require a numeric value.
The MAXRLOCK private configuration parameter can be used to set a limit on the number of record locks that may be held by a single QM process.
See section 2.2 of the readme file regarding an automated update to QM files applied during an upgrade installation.
The GET.LIST and QSELECT commands now honour the CHAINED.SELECT OPTION setting.
When using a multivalued pattern in the MATCHES operator or the MATCHFIELD(), MATCHESS() or PARSE() functions, the value that matched can be determined by use of the INMAT() function.