MiniM. Saving time.

| About | Download | Tools | Knowledge Base | How to Buy |

MiniM Overview

Getting Started




Cache Tools

GT.M Tools

Knowledge Base




MiniM Knowledge Base | Jul 7, 2010

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


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
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


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 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,
Cache is a trademark of Intersystems Corp,
MDC is a MUMPS Development Committee,
All rights reserved

Some language additions and changes have been made by my opinion and some by developer's votes and discussions.

Eugene Karataev

Copyright (C) Eugene Karataev
Info Support