[comp.std.mumps] ANSI MUMPS activities

hokey@plus5.COM (Hokey) (06/01/89)

[ The following trip report was sent to the Digital Equipment Computer Users
  Society (DECUS) and contains the activities of the MUMPS Development
  Committee at its last meeting.  I thought some of you might be interested
  in it. ]

			X11 TRIP REPORT (MUMPS)
			    May 13-15, 1989

The MUMPS Development Committee (MDC) always holds one of its meetings each
year in conjunction with the annual MUMPS Users' Group symposium.  This year
the meeting was held in Seattle immediately following the Atlanta DECUS
symposium.  I mention this only because this particular meeting had an event
that has never before occurred during my tenure as a member of the MDC.
Specifically, two techinal items had their status elevated by unanimous
vote.  I don't know about other standards bodies but this is almost unheard
of on the MDC.  I had to check the secretary's notes to make sure that
attending a standards meeting after a week of DECUS hadn't somehow left my
mind in idle.

Subcommittee one, the language specification subcommittee, had a full docket
this time and met at least a half day for each of the three meeting days. Of
the various topics discussed, nine items were put to a vote; six of them
passed.  The following descriptions of these items assume some familiarity
with the MUMPS language and also use terms that are only defined in the
current MUMPS standard (this is, after all, a MUMPS standard report).

Document X11/SC1/89-15, Set $Extract, was placed on the floor for elevation
to type A status.  This proposal would allow a $Extract function to appear
on the left hand side of an assignment statement thus allowing the
programmer to replace, insert, or append text in a single operation.  Using
the statement SET $EXTRACT(X,M,N)=STRING as an example, the following would
apply: If the number of characters in STRING matches the number of
characters specificed by M and N, the indicated characters are replaced.  If
the number of characters in STRING is less than that specified by M and N,
the resulting string will be shorter by the difference.  If the number is
greater, STRING is inserted beginning at M pushing the characters from M+1
on to the right N places.  Finally, if N specifies a value greater than the
length of X, X is padded with sufficient spaces and then the characters are
replaced.  This document passed to Type A unanimously.

Document X11/SC1/89-25, Enhanced $Order, was also proposed for elevation to
type A.  This document proposes adding a second argument to the $Order
function to control the direction of traversal of subscripts.  If the second
argument evaluates to a 1, the direction is forward; if -1, the direction is
backward.  All other values are reserved and will cause an error.  The idea
of having other values indicate the number of subscripts to skip in the
specified direction was discussed but not made part of this proposal.  This
document was successfully elevated to type A.

Document X11/SC1/89-26, $Name, was proposed for elevation to type A.  This
proposal was originally part of the $Query proposal and was brought before
the subcommittee under the name $QName.  However, it was felt that this
function was generic enough that the Q should be dropped.  $Name takes two
arguments, the second being optional.  The first argument is a glvn and the
function will return the full canonic name value (which means that any
subscripts specified in glvn will have been fully evaluated).  If the second
argument is present the function will only return that many subscripts.  A
value of zero in the second argument will cause only the name of the glvn to
be returned.  Note that glvn may be a naked reference.  This document was
also passed as a type A.

Document X11/SC1/89-31, Structured System Variables, was brought before the
subcommittee for elevation to type A.  This proposal originally came to us
via the european members of the MDC.  It has been through several revisions
one of which was considered too detailed, another of which was considered to
vague.  The basic idea of the proposal is to provide a standard way of
getting at information about the current operating environment or hardware
that is currently available in implementor-specific ways.  The following
SSVs are currently defined:
	^$Device - provides information on the existence, characteristics,
		   and availability of devices.
	^$Global - provides similar information about globals.
	^$Job    - provides information on the existence and characteristics
		   of processes.  (These may be limited to MUMPS processes).
	^$Lock   - this one would answer the much asked "who owns this lock"
		   question.
	^$Routine- provides information on the existence, characteristics,

                   and availability of routines.
These few were elevated to type A.  Nothing has yet been defined on what
characteristics may be returned by these variables although the document
does discuss several possibilities.

Document X11/SC1/89-9, Pattern Match operator, was discussed for elevation
to type B.  This document proposes extending the pattern match syntax to
allow a logical oring of pattern choices.  For example, the pattern
X?1"ABC"1.4(1N,2A,1"-") would succeed if X started with "ABC" and then
contained anywhere from 1 to 4 of 1 number, 2 alphabetic characters, or 1
dash in any combination.  "444-", "3--aa", and "Ab-32" would all match,
"a--4" would not.  This proposal passed as a type B unanimously.

Document X11/SC1/89-17, File command, was brought forth from a task group to
be entered as a type B document.  The File command takes the form:
	FILE routineref:glvn:filearguments
and is used to provide a standard way for routine editors and code
generators to store routines.  All subscripts immediately decendant from
glvn, as defined by $Order, are copied into the routine specified by
routineref.  The third argument to the command is optional and may be used
by implementors to specify implementation-specific options.  This
document was passed as a type B.

Document X11/SC1/89-21, which proposes extending the $FNumber function to
allow for formatting numbers to include justification within parentheses,
was proposed for elevation to type B.  The ensuing discussion felt that this
could easily be handled by an extrinsic function and the proposal was
defeated.

Document X11/SC1/89-29, Move command, was proposed for elevation to type A.
This command would allow the moving of entire subtrees with a single
operation.  During the discussion the idea of defining a vector syntax that
could conceivably work with all commands and functions, instead of a single
specialized command, was brought up.  The subcommittee seemed to favor this
approach over the move command and the proposal for elevation was defeated.

At the meeting of the full MDC several subcommittees gave reports on their
current status.  Subcommittee 4, the Liaison subcommittee, reported that ISO
subcommittee 22 was now being balloted concerning adopting MUMPS as an ISO
standard using the fast track.  All responses so far have been favorable.

Subcommittee 7, Networking, has passed a document on network syntax to type
A.  They are also heavy at work in defining a protocol for inter-vendor
MUMPS-to-MUMPS and MUMPS-to-NonMUMPS communications.

And finally, document X11/SC1/89-14, Exponentiation, was passed as a Type A
of the MDC.  This one should be appearing in all implementations very
shortly.

The next meeting of the MDC will be in Boston, October 2-4, 1989.

					Mark Berryman
					DECUS MDC rep.
-- 
Hokey				We are space guys.  We know what we are doing.