Conformance Clause
Jump to navigation
Jump to search
Contents
Conformance Policy
FreeM attempts to comply with ANSI X11.1-1995 and the unpublished Millennium Draft Standard (MDS) from the MUMPS Development Committee, in routine buffers where the dialect setting is set to a particular version of the standard.
Routine buffers in FREEM
dialect enable all nonstandard extensions.
This article attempts to track missing and/or nonstandard features in the current main
branch of FreeM. It is a work-in-progress.
Indirection
FreeM supports several forms of indirection that are nonstandard, as well as allowing indirection in several constructs where the standard prohibits it. Below is a list of some known instances of idiosyncratic indirection; please note that this list is by no means comprehensive:
FOR
loops in FreeM support argument indirection- FreeM supports list indirection, such as
S X="1,2,3",ARGS="X,"","",2" W $P(@ARGS)
, which will output2
MERGE
MERGE
should be implemented asM[ERGE] postcond SP L mergeargument
, but is currently implemented asM[ERGE] postcond SP mergeargument
KVALUE/KSUBSCRIPTS
- Only the inclusive forms of these commands are currently implemented
Transaction Processing
- Restartable transactions are not complete
Event Processing
ETRIGGER
is not yet implemented- Of the event classes defined in the MDS, only the
INTERRUPT
evclass is implemented - The
TRIGGER
'evclass' is nonstandard - The
^$EVENT
SSVN is incomplete - Environment-wide events defined in
^$SYSTEM
are nonstandard
Globals
Routines
- Dotted routine names are nonstandard
Miscellaneous Language Features
ASSERT
is nonstandardWITH
andUSING
are nonstandardCONST
is nonstandardMAP
is nonstandardWATCH
is nonstandardTHROW
is nonstandard$DIALECT
is nonstandard