Diff for /freem/doc/freem.texi between versions 1.23 and 1.25

version 1.23, 2025/04/10 15:53:39 version 1.25, 2025/04/18 01:23:05
Line 110  This is the official manual for the Free Line 110  This is the official manual for the Free
 @node Introduction  @node Introduction
 @unnumbered Introduction  @unnumbered Introduction
   
   
 FreeM started its life as @emph{FreeMUMPS}, written for MS-DOS and ported to SCO UNIX by a mysterious individual going by the name of "Shalom ha-Ashkenaz". It was released to MUG Deutschland in 1998. In 1999, Ronald L. Fox ported FreeM to the Red Hat Linux 5 of the GNU/Linux operating system. Thereafter, maintenance was taken over by the Generic Universal M Project, which changed its name first to Public Standard MUMPS and then by popular request to FreeM.  FreeM started its life as @emph{FreeMUMPS}, written for MS-DOS and ported to SCO UNIX by a mysterious individual going by the name of "Shalom ha-Ashkenaz". It was released to MUG Deutschland in 1998. In 1999, Ronald L. Fox ported FreeM to the Red Hat Linux 5 of the GNU/Linux operating system. Thereafter, maintenance was taken over by the Generic Universal M Project, which changed its name first to Public Standard MUMPS and then by popular request to FreeM.
   
 When GT.M was open-sourced in late 1999, FreeM and GUMP were essentially abandoned. L.D. Landis, the owner of the original GUMP SourceForge project, and one of FreeM's significant contributors, passed maintenance of FreeM and ownership of its SourceForge project to Serena Willis in 2014. At this point, FreeM would not compile or run on modern Linux systems, so steps were taken to remedy the most pressing issues in the codebase. Limitations on the terminal size (previously hard-coded to 80x25) were lifted, and new @code{$VIEW} functions were added to retrieve the terminal size information. @code{$X} and @code{$Y} intrinsic special variables were updated to support arbitrary terminal sizes, and FreeM was once again able to build and run.  When GT.M was open-sourced in late 1999, FreeM and GUMP were essentially abandoned. L.D. Landis, the owner of the original GUMP SourceForge project, and one of FreeM's significant contributors, passed maintenance of FreeM and ownership of its SourceForge project to Serena Willis in 2014. At this point, FreeM would not compile or run on modern Linux systems, so steps were taken to remedy the most pressing issues in the codebase. Limitations on the terminal size (previously hard-coded to 80x25) were lifted, and new @code{$VIEW} functions were added to retrieve the terminal size information. @code{$X} and @code{$Y} intrinsic special variables were updated to support arbitrary terminal sizes, and FreeM was once again able to build and run.
Line 379  Copyright (C) 2014, 2020, 2021 Coherent Line 378  Copyright (C) 2014, 2020, 2021 Coherent
 USER>  USER>
 @end example  @end example
   
 The prompt (@code{DEFAULT.USER>}) the current environment and namespace, @code{DEFAULT} and @code{USER}, respsectively. If any uncommitted direct-mode transactions have been started, the prompt will change to reflect the current value of @code{@ref{$TLEVEL}}:  The prompt (@code{DEFAULT.USER>}) displays the current environment and namespace, @code{DEFAULT} and @code{USER}, respsectively. If any uncommitted direct-mode transactions have been started, the prompt will change to reflect the current value of @code{@ref{$TLEVEL}}:
   
 @example  @example
 TL1:DEFAULT.USER>  TL1:DEFAULT.USER>
Line 1208  The optional second argument indicates t Line 1207  The optional second argument indicates t
 @cindex $NEXT  @cindex $NEXT
 @cindex intrinsic functions, $NEXT  @cindex intrinsic functions, $NEXT
   
   Deprecated. Use @code{$ORDER} instead.
   
 @node $ORDER()  @node $ORDER()
 @section $ORDER  @section $ORDER
 @cindex $ORDER  @cindex $ORDER
 @cindex intrinsic functions, $ORDER  @cindex intrinsic functions, $ORDER
   
   Returns the previous subscript or next subscript in a local, global, or a subset of structured system variables.
   
   The first argument is the subscripted local, global, or SSVN.
   
   The optional second argument can be @code{1} to retrieve the next subscript, or @code{-1} to return the previous.
   
 @node $PIECE()  @node $PIECE()
 @section $PIECE  @section $PIECE
 @cindex $PIECE  @cindex $PIECE
Line 1399  Returns a line of code from a routine. Line 1406  Returns a line of code from a routine.
 @cindex $TRANSLATE  @cindex $TRANSLATE
 @cindex intrinsic functions, $TRANSLATE  @cindex intrinsic functions, $TRANSLATE
   
   Replaces characters in a string.
   
   The first argument is a string expression representing the text to be changed.
   
   The second argument is a list of characters to replace.
   
   The third argument is a list of characters to use as the replacements for the characters in the second argument.
   
   @emph{Example}
   
   @example
    DEFAULT.USER> W $TRANSLATE("twig","wt","rb")
    brig
   @end example
   
 @node $TYPE()  @node $TYPE()
 @section $TYPE  @section $TYPE
 @cindex $TYPE  @cindex $TYPE
Line 1769  $$<objectName>.EXTRACT(<start>,<end>) Line 1791  $$<objectName>.EXTRACT(<start>,<end>)
 @node $$FIND  @node $$FIND
 @section $$FIND  @section $$FIND
   
   Finds the character immediately following the first occurence of a substring within a string.
   
   The first argument is the substring to be located.
   
   The second argument is the position within the string at which to begin searching.
   
   See @ref{$FIND()}.
   
 @node $$FNUMBER  @node $$FNUMBER
 @section $$FNUMBER  @section $$FNUMBER
   
   Formats a number according to a set of formatting codes.
   
   The argument is a series of formatting codes. See @ref{$FNUMBER()} for details.
   
 @node $$JUSTIFY  @node $$JUSTIFY
 @section $$JUSTIFY  @section $$JUSTIFY
   
   Right-justifies a string based on a specified fixed length.
   
   The first argument is the character length of the output.
   
   The second argument controls the number of fractional digits to be included in the output, and defaults to the number of digits specified in the first argument.
   
   See @ref{$JUSTIFY()} for details.
   
 @node $$LENGTH  @node $$LENGTH
 @section $$LENGTH  @section $$LENGTH
   
   Returns the length of the string.
   
 @node $$PIECECOUNT  @node $$PIECECOUNT
 @section $$PIECECOUNT  @section $$PIECECOUNT
   
   Returns the number of items in a list delimited by the character specified in the argument.
   
 @node $$PIECE  @node $$PIECE
 @section $$PIECE  @section $$PIECE
   
   @emph{Syntax}
   
   @code{$PIECE(@emph{d}[,@emph{n}[,@emph{end}]])}
   
   Accesses the @code{n}th through @code{end} @code{d}-delimited pieces of the string.
   
   The first argument is the delimiter to be used.
   
   The optional second argument is the first @code{d}-delimited piece to access, and defaults to @code{1}.
   
   The optional third argument is the final @code{d}-delimited piece to access, and defaults to the value of the third argument (@code{n}).
   
   
 @node $$REPLACE  @node $$REPLACE
 @section $$REPLACE  @section $$REPLACE
   
   @emph{Syntax}
   @code{myString.$$REPLACE(@emph{arg1},@emph{arg2})}
   
   Replaces all instances of @code{arg2} with @code{arg3} in @code{myString}.
   
 @node $$REVERSE  @node $$REVERSE
 @section $$REVERSE  @section $$REVERSE
   
   Returns the reverse of the string.
   
 @node $$TOLOWER  @node $$TOLOWER
 @section $$TOLOWER  @section $$TOLOWER
   
   Returns an all-lowercase version of the string.
   
 @node $$TOUPPER  @node $$TOUPPER
 @section $$TOUPPER  @section $$TOUPPER
   
   Returns an all-uppercase version of the string.
   
 @node $$TRANSLATE  @node $$TRANSLATE
 @section $$TRANSLATE  @section $$TRANSLATE
   
   Identical to @ref{$TRANSLATE()}, except that the arguments are shifted left by one, and the input string is implicit (the object).
   
 @node Commands  @node Commands
 @chapter Commands  @chapter Commands
 @cindex commands  @cindex commands
Line 3826  Returns or sets the current working dire Line 3898  Returns or sets the current working dire
 @item @code{OPEN} +R -U -D  @item @code{OPEN} +R -U -D
 The @code{^$JOB($JOB,"OPEN",<channel>} subscripts list the open I/O channels in the specified job.  The @code{^$JOB($JOB,"OPEN",<channel>} subscripts list the open I/O channels in the specified job.
   
 @item @code{ENGINES} +R -U -D  
 Returns or sets the storage engines for various FreeM subsystems.  
   
 The following table lists the types of storage engines that can be defined.  
   
 @table @asis  
   
 @item @code{GLOBAL} +R +U -D  
 Returns or sets the global handler for a particular FreeM namespace:  
   
 The following code would set the global handler for the @code{SYSTEM} namespace to @code{BERKELEYDB}:  
   
 @code{SET ^$JOB($JOB,"ENGINES","GLOBAL","SYSTEM")="BERKELEYDB"}  
   
 @item @code{LOCAL} +R -U -D  
 Returns the local handler for a particular FreeM namespace. Always @code{BUILTIN} in the current FreeM release.  
   
 @end table  
   
 @item @code{BERKELEYDB,FLUSH_THRESHOLD} +R +U -D  @item @code{BERKELEYDB,FLUSH_THRESHOLD} +R +U -D
 Returns or sets the number of write operations that will be cached in the BerkeleyDB global handler prior to flushing BerkeleyDB's cache to disk.  Returns or sets the number of write operations that will be cached in the BerkeleyDB global handler prior to flushing BerkeleyDB's cache to disk.
   

Removed from v.1.23  
changed lines
  Added in v.1.25


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