MiniM Overview
Getting Started
Download
Documentation
Tools
Cache Tools
GT.M Tools
Knowledge Base
FAQ
Contacts
Copyrights
|
|
MiniM Language Changes Related to MDC
In order to answer to MDC about what changes and additions are been
made in MiniM Database Server, this article describes what are the differences
from the standard ANSI X.11
Additions
- New with initialization
- MiniM allow new command with assignment.
new lname=expr
Command combines newing and assignment local unsubscripted variable as
synonym of
new lname set lname=expr
- $QS() with assignment
- Function $QS() can be used in left part of assignment
set $qs(glvn,pos)=value
Function is implemented as MDC approved
- Lazy logical operators
- Lazy logical AND expr1&&expr2
Lazy logical OR expr1||expr2
Lazy logical operators does not evaluate second operand if operation result
determined by first operand, and implemented with Cache's behavior
- Hexadecimal number constants
- Character sequence starts with symbol "#" treats as a hexadecimal number
constant
Example: s a=#41 sets variable a to number 65
- $INCREMENT() function
- Function increments local or global variable by 1 by default or by specified
value, and this does not rolled back by trollback command
- $BITXXX() function group
- $BITXXX() functions are implemented like Cache's $BITXXX() functions, with
the same behavior, but with different compression
- $LISTXXX() function group
- $LISTXXX() functions are implemented like Cache's $BITXXX() functions, with
the same behavior and encoding
- KVALUE and KSUBSCRIPTS commands
- Commands KVALUE and KSUBSCRIPTS are implemented as MDC approved
- Read and kill SSVN allowed depending of SSVN
- MiniM allow read and kill some ssvns, action is depended of ssvn meaning,
for example:
kill ^$LOCK(lockname) ; remove lock
kill ^$JOB(jobid) ; kill MiniM job
s lockinfo=^$LOCK(lockname) ; read lock owner and lock count
- Variable-length parameter passing
- Label can accept unknown parameters number with variable-length parameter
passing with Cache's behavior. For example:
Label(p1,p2...) ; accept 1 or more parameters, other than p1 are listed in
p2 subscripts as values
- $VIEW() function and extended Z-functions
- $VIEW() function and extended Z-functions implements extended program
interface to MiniM internals, special encoding functions, regular expressions,
and other additional functionality
Changes
- Common device naming
- Device name is a string and is prefixed with device type. Examples:
s filedev="|FILE|filename.ext"
s ipcdev="|MEM|12"
s tcpdev="|TCP|:80"
- Device parameters
- Device parameter name should starts with "/" symbol to distinquish from
local variable name
u dev:(name=expr) ; treats as boolean and positional parameter
u dev:(/name=expr) ; treats as named parameter "name" with value of expr
- External routines
- External routines are not implemented, instead of external routines MiniM
implement ZDLL extension as $zdll() function
- Names length
- MiniM allow local and global variables, labels, routines name have up to 31
character length
- Data length
- MiniM allow local and global variable and routine line have up to 32K
characters length
- Device owning
- Each MiniM process is owner of device has been opened by this process,
different prosesses can have devices with the same name, and ssvn ^$DEVICE list
only current process's devices
- Variable-length functions
- Variable-length functions such as $CHAR(), $LISTBUILD() and $SELECT() can
have up to 255 parameters
- Number of subscripts
- Local and global variables can have up to 63 subscripts
- Number range
- Numbers are limited by range as double precision floating point numbers as
specified in IEEE 754
- Character sets
- Strings and subscripts can contain any characters with code from 0 to 255
and collation is external-defined and editable
- Number of command line
- Number of command line in a routine are not special limited, limited only
resulting bytecode length (32Kb)
- Process stack limit
- Process stack limit is a server settings and can be changed
-
Not implemented
- VIEW and BREAK commands
- VIEW and BREAK commands are allowed as commands but now generates an
<UNIMPLEMENTED> error
- TRESTART and $TRESTART
- TRESTART command and svn $TRESTART are not implemented
- OMI, GKS binding, MWAPI
- OMI, GKS binding and MWAPI integration protocols are not implemented
Copyright notes:
MiniM is a MiniM Database Server, http://www.minimdb.com
Cache is a trademark of Intersystems Corp, http://www.intersystems.com
MDC is a MUMPS Development Committee, http://71.174.62.16/MDC/
All rights reserved
Some language additions and changes have been made by my opinion and some by
developer's votes and discussions.
Eugene Karataev
support@minimdb.com
|