Diff for /freem/doc/freem_conformance.1 between versions 1.1 and 1.2

version 1.1, 2025/05/02 15:19:32 version 1.2, 2025/05/02 16:25:46
Line 20 Line 20
 .\"   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.  .\"   along with FreeM.  If not, see <https://www.gnu.org/licenses/>.
 .\"  .\"
 .\"   $Log$  .\"   $Log$
   .\"   Revision 1.2  2025/05/02 16:25:46  snw
   .\"   -m
   .\"
 .\"   Revision 1.1  2025/05/02 15:19:32  snw  .\"   Revision 1.1  2025/05/02 15:19:32  snw
 .\"   Add conformance clause man page  .\"   Add conformance clause man page
 .\"  .\"
 .\"  .\"
   .TH freem_conformance 1 "2 May 2025" FreeM "FreeM User Manual"
   .SH NAME
   
   freem_conformance - FreeM MDC Conformance Document
   
   .SH SYNOPSIS
   
   FreeM version 0.64.0-rc1 conforms to X11.1-1995, as modified by the following MDC documents:
   
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   X11/1998-28 Event Processing (MDC status A)
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   X11/1998-31 IF THEN & ELSE (MDC status A)
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   X11/95-118 Undefined ssvns (MDC status A)
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   X11/96-13 Portable length limit of names (MDC status A)
   .RE
   
   with the following exceptions:
   .SH EXCEPTIONS
   
   .TP
   Aliases
   .RS 4
   FreeM supports aliases for local variables that can reference either the root node or a subtree:
   
   .EX
   USER> S X(3)="harps"
   
   USER> S J=.X(3)
   
   USER> S J(8)=17
   
   USER> ZWR X
   X(3)=harps
   X(3,8)=17
   .EE
   
   Aliases used in pass-by-reference can also reference entire subtrees instead of just the root node:
   
   .EX
   USER> ZL TEST
   
   USER> ZP
   
   TEST ;
    S X(3)=4
    D SUBR(.X(3))
    ZWR X
    QUIT
    ;
   SUBR(A) ;
    S A(4)="thwack!"
    QUIT
   
   USER> D ^TEST
   X(3)=4
   X(3,4)=thwack!
   .EE
   .RE
   
   .TP
   Environments
   .RS 4
   In FreeM, the \fInamespace\fR is roughly equivalent to what the \fIStandard\fR refers to as an \fIenvironment\fR. However, FreeM uses the term \fIenvironment\fR to refer to a collection of namespaces, processes, and an after-image journal.
   .RE
   .TP
   Indirection
   .RS 4
   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:
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   FOR loops in FreeM support argument indirection
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   FreeM supports list indirection, such as \fBS X="1,2,3",ARGS="X,"","",2" W $P(@ARGS)\fR, which will output \fB2\fR
   .RE
   .RE
   .TP
   \fBMERGE\fR
   .RS 4
   \fBMERGE\fR should be implemented as \fB[MERGE] postcond SP L mergeargument\fR, but is currently implemented as \fBM[ERGE] postcond SP mergeargument\fR.
   .RE
   .TP
   \fBKVALUE\fR and \fBKSUBSCRIPTS\fR
   .RS 4
   Only the inclusive forms of these commands are currently implemented.
   .RE
   .TP
   Transaction Processing
   .RS 4
   Restartable transactions are not implemented.
   .RE
   .TP
   Event Processing
   .RS 4
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBETRIGGER\fR is not implemented
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   Of the event classes defined in \fIX11/1998-28\fR, only the \fBINTERRUPT\fR \fIevclass\fR is implemented
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   The \fBTRIGGER\fR \fIevclass\fR is nonstandard
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   The \fB^$EVENT\fR \fIssvn\fR is incomplete
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   Environment-wide events defined in \fB^$SYSTEM\fR are nonstandard
   .RE
   .RE
   .TP
   \fBDO\fR and \fBGOTO\fR
   .RS 4
   FreeM's implementation of these commands allows the \fIentryref\fR to consist only of the \fI+ intexpr\fR component, in which \fIintexpr\fR is interpreted as a number of lines from the beginning of the currently-executing routine.
   .RE
   .TP
   \fBIF\fR and \fBELSE\fR
   .RS 4
   Both of these commands allow a \fIpostcondition\fR in FreeM.
   .RE
   
   \fBLOCK\fR
   .RS 4
   The first subscript of \fB^$LOCK\fR collates according to the rules for global and local subscripts, not as an \fInref\fR, as FreeM uses globals (both persistent and memory-backed) as backing store for SSVNs.
   .RE
   .TP
   Miscellaneous Language Features
   .RS 4
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fB$DIALECT\fR intrinsic special variable
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBASSERT\fR command
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBCONST\fR command
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBMAP\fR command
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBTHROW\fB command
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBUSING\fR command
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBWATCH\fR command
   .RE
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBWITH\fR command
   .RE
   .RE
   
   .SH SUPPORTED CHARACTER SET PROFILES
   .RS 4
   Supported character set profiles are:
   .sp
   .RS 4
   .ie n \{\
   \h'-04'\(bu\h'+03'\c
   .\}
   .el \{\
   .sp -1
   .IP \(bu 2.3
   .\}
   \fBM\fR
   .RE
   .RE
   
   .SH $SYSTEM
   Uniqueness of \fB$SYSTEM\fR is guaranteed by combining the FreeM vendor ID (49) with the short form of the system hostname and a \fIUUIDv4\fR identifier, generated for each FreeM environment when it is initially configured.
   
   \fB$SYSTEM\fR looks like this:
   
   .EX
   49,"hesperos:931fac9d-b2b3-4e86-adb5-6c248b87d6ae"
   .EE
   .SH DISABLING NONSTANDARD FEATURES
   Standards conformance may be imrpoved somewhat in certain contexts by setting the \fB$DIALECT\fR intrinsic special variable to \fBM77\fR, \fBM84\fR, \fBM90\fR, \fBM95\fR, \fBMDS\fR, or \fBM5\fR.
   
   See \fIThe FreeM Manual\fR (\fBinfo freem\fR) for further information.
   .SH AUTHOR
   Written by Serena Willis (snw@coherent-logic.com)
   
   .SH COPYRIGHT
   Copyright (C) 2025 Coherent Logic Development LLC
   
   Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts.
   
   .SH "SEE ALSO"
   .PP
   \fBfreem\fR(1),
   \fBfmadm\fR(8),
   \fBfreem.conf\fR(5),
   \fBenv.conf\fR(5)
   

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>