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.