Difference between revisions of "Conformance Clause"

From FreeM Wiki
Jump to navigation Jump to search
(Add indirection section)
Line 6: Line 6:
  
 
This article attempts to track missing and/or nonstandard features in the current <code>main</code> branch of FreeM. It is a work-in-progress.
 
This article attempts to track missing and/or nonstandard features in the current <code>main</code> 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.
  
 
== MERGE ==
 
== MERGE ==

Revision as of 11:28, 13 September 2023

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.

MERGE

  • MERGE should be implemented as M[ERGE] postcond SP L mergeargument, but is currently implemented as M[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 nonstandard
  • WITH and USING are nonstandard
  • CONST is nonstandard
  • MAP is nonstandard
  • WATCH is nonstandard
  • THROW is nonstandard
  • $DIALECT is nonstandard