Difference between revisions of "Conformance Clause"

From FreeM Wiki
Jump to navigation Jump to search
Line 39: Line 39:
 
* <code>WATCH</code> is nonstandard
 
* <code>WATCH</code> is nonstandard
 
* <code>THROW</code> is nonstandard
 
* <code>THROW</code> is nonstandard
 +
* <code>$DIALECT</code> is nonstandard

Revision as of 08:35, 5 August 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.

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