Diff for /freem/doc/freem.texi between versions 1.58 and 1.63

version 1.58, 2025/05/18 18:15:38 version 1.63, 2025/05/19 17:57:20
Line 4 Line 4
 @settitle The FreeM Manual  @settitle The FreeM Manual
   
 @copying  @copying
 This manual is for FreeM, (version 0.65.1-rc0), which is a free software implementation of the M programming language.  This manual is for FreeM, (version 0.65.1-rc1), which is a free software implementation of the M programming language.
   
 Print-optimized versions of this book are typeset in @emph{Computer Modern} by the author using the @emph{GNU Texinfo} tools.  Print-optimized versions of this book are typeset in @emph{Computer Modern} by the author using the @emph{GNU Texinfo} tools.
   
Line 19  Permission is granted to copy, distribut Line 19  Permission is granted to copy, distribut
   
 @title The FreeM Manual  @title The FreeM Manual
 @subtitle @sc{The Official Manual of FreeM}  @subtitle @sc{The Official Manual of FreeM}
 @subtitle Version 0.65.1-rc0  @subtitle Version 0.65.1-rc1
 @c@vskip 10pt  @c@vskip 10pt
 @c@center @image{freem-logo-sm,,,,.png}  @c@center @image{freem-logo-sm,,,,.png}
 @author Serena Willis  @author Serena Willis
Line 445  Attempting to start a FreeM interpreter Line 445  Attempting to start a FreeM interpreter
 The FreeM direct-mode environment is the mode entered when FreeM is invoked without the use of @option{-r @emph{<entryref>}} or @option{--routine=@emph{<entryref>}}:  The FreeM direct-mode environment is the mode entered when FreeM is invoked without the use of @option{-r @emph{<entryref>}} or @option{--routine=@emph{<entryref>}}:
   
 @example  @example
 Coherent Logic Development FreeM version 0.65.1-rc0 (x86_64-pc-linux-gnu)  Coherent Logic Development FreeM version 0.65.1-rc1 (x86_64-pc-linux-gnu)
 Copyright (C) 2014, 2020, 2021 Coherent Logic Development LLC  Copyright (C) 2014, 2020, 2021 Coherent Logic Development LLC
   
   
Line 2106  Identical to @ref{$TRANSLATE()}, except Line 2106  Identical to @ref{$TRANSLATE()}, except
 * ZASSERT::                             Raise error when a conditional expression evaluates @emph{false}.  * ZASSERT::                             Raise error when a conditional expression evaluates @emph{false}.
 * ZBREAK::                              Enable/disable ZBREAK mode.  * ZBREAK::                              Enable/disable ZBREAK mode.
 * ZCONST::                              Define a constant that cannot be altered after initial definition.  * ZCONST::                              Define a constant that cannot be altered after initial definition.
   * ZEDIT::                               Edit a routine using an external editor.
 * ZGOTO::                               @code{GOTO} with @code{BREAK} control.  * ZGOTO::                               @code{GOTO} with @code{BREAK} control.
 * ZHALT::                               Exit FreeM job with return value.  * ZHALT::                               Exit FreeM job with return value.
 * ZINSERT::                             Insert code into routine buffer.  * ZINSERT::                             Insert code into routine buffer.
Line 2659  In the above @emph{inclusive} form, @cod Line 2660  In the above @emph{inclusive} form, @cod
 @cartouche  @cartouche
 @quotation  @quotation
 @emph{Note}  @emph{Note}
 The below @emph{argumentless} and @emph{exclusive} forms of @code{KSUBSCRIPTS} are not implemented in FreeM, as of version 0.65.1-rc0, but are planned for a future release.  The below @emph{argumentless} and @emph{exclusive} forms of @code{KSUBSCRIPTS} are not implemented in FreeM, as of version 0.65.1-rc1, but are planned for a future release.
 @end quotation  @end quotation
 @end cartouche  @end cartouche
   
Line 2694  In the above @emph{inclusive} form, @cod Line 2695  In the above @emph{inclusive} form, @cod
 @cartouche  @cartouche
 @quotation  @quotation
 @emph{Note}  @emph{Note}
 The below @emph{argumentless} and @emph{exclusive} forms of @code{KVALUE} are not implemented in FreeM, as of version 0.65.1-rc0, but are planned for a future release.  The below @emph{argumentless} and @emph{exclusive} forms of @code{KVALUE} are not implemented in FreeM, as of version 0.65.1-rc1, but are planned for a future release.
 @end quotation  @end quotation
 @end cartouche  @end cartouche
   
Line 3449  Constants must only be locals, and globa Line 3450  Constants must only be locals, and globa
 @code{ZCONST@emph{:postcondition} @emph{mref1}=@emph{initial-value1},...,@emph{mrefN}=@emph{initial-valueN}}  @code{ZCONST@emph{:postcondition} @emph{mref1}=@emph{initial-value1},...,@emph{mrefN}=@emph{initial-valueN}}
 @end example  @end example
   
   @node ZEDIT
   @section ZEDIT
   @cindex ZEDIT
   @cindex commands, ZEDIT
   @cindex commands, non-standard
   @emph{FreeM Extension}
   
   Edits a routine using an external editor. Uses environment variable @code{$EDITOR} if defined; otherwise, uses @code{vi}.
   
   @emph{Syntax}
   
   @example
   ZEDIT@emph{[:postcondition]}
   @end example
   
   In its argumentless form, edits the currently-active routine, provided the optional @emph{postcondition} is @emph{true} or omitted.
   
   @emph{Syntax}
   
   @example
   ZEDIT@emph{[:postcondition]} @emph{<routine-name>}
   @end example
   
   In its single-argument form, edits @emph{<routine-name>}, provided the optional @emph{postcondition} is @emph{true} or omitted.
   
   If the specified routine does not exist, it will be created.
   
   Routine names must not be quoted, and must not included a leading caret (@code{^}).
   
   @emph{Errors}
   
   @code{ZEDIT} will raise @code{ZNOPGM} in its argumentless form if there is no routine currently loaded.
   
 @node ZGOTO  @node ZGOTO
 @section ZGOTO  @section ZGOTO
 @cindex ZGOTO  @cindex ZGOTO
Line 3457  Constants must only be locals, and globa Line 3491  Constants must only be locals, and globa
 @cindex commands, non-standard  @cindex commands, non-standard
 @emph{FreeM Extension}  @emph{FreeM Extension}
   
 In its argumented form, enables @code{BREAK} mode and branches unconditionally to @emph{entryref}.  In its single-argument form, enables @code{BREAK} mode and branches unconditionally to @emph{entryref}.
   
 @emph{Syntax}  @emph{Syntax}
   
Line 3465  In its argumented form, enables @code{BR Line 3499  In its argumented form, enables @code{BR
 ZGOTO @emph{entryref}  ZGOTO @emph{entryref}
 @end example  @end example
   
 In its argumented form, resumes execution after a @code{BREAK}.  In its argumentless form, resumes execution after a @code{BREAK}.
   
 @emph{Syntax}  @emph{Syntax}
   
Line 3505  ZHALT Line 3539  ZHALT
 @cindex commands, non-standard  @cindex commands, non-standard
 @emph{FreeM Extension}  @emph{FreeM Extension}
   
   Inserts a line of M code into the currently-active routine buffer, provided the optional @emph{postcondition} is @emph{true} or omitted.
   
   @emph{Syntax}
   
   @example
   ZINSERT@emph{:postcondition} @emph{expr V mcode}[:@emph{label}]
   @end example
   
   Above, @emph{expr V mcode} is an expression returning a string giving M code. If @emph{label} is omitted, the code will be inserted at the insertion point, which is typically the end of the routine. Otherwise, the code will be inserted at the line immediately following @emph{label}.
   
 @node ZJOB  @node ZJOB
 @section ZJOB  @section ZJOB
 @cindex ZJOB  @cindex ZJOB
Line 3565  ZMAP[@emph{:postcondition}] GLOBAL @emph Line 3609  ZMAP[@emph{:postcondition}] GLOBAL @emph
 @cindex commands, non-standard  @cindex commands, non-standard
 @emph{FreeM Extension}  @emph{FreeM Extension}
   
 Prints the contents of the current routine buffer, provided the optional @emph{postcondition} is @emph{true} or omitted.  In argumentless form, prints the contents of the current routine buffer, provided the optional @emph{postcondition} is @emph{true} or omitted.
   
 @emph{Syntax}  @emph{Syntax}
   
Line 3573  Prints the contents of the current routi Line 3617  Prints the contents of the current routi
 ZPRINT@emph{:postcondition}  ZPRINT@emph{:postcondition}
 @end example  @end example
   
   In argumented form, prints a subset of the current routine buffer, provided the optional @emph{postcondition} is @emph{true} or omitted.
   
   @emph{Syntax}
   
   @example
   ZPRINT@emph{:postcondition} @emph{start}[:@emph{end}]
   @end example
   
   In the above syntax, @emph{start} and @emph{end} can be a tag in the current routine, or @code{*} to indicate the routine buffer insertion point (typically the end of the routine).
   
 @node ZQUIT  @node ZQUIT
 @section ZQUIT  @section ZQUIT
 @cindex ZQUIT  @cindex ZQUIT
Line 3599  In its argumentless form, quits from @co Line 3653  In its argumentless form, quits from @co
 @cindex commands, non-standard  @cindex commands, non-standard
 @emph{FreeM Extension}  @emph{FreeM Extension}
   
   In argumentless form, removes all M code from the current routine buffer, provided the optional @emph{postcondition} is @emph{true} or omitted.
   
   @emph{Syntax}
   
   @example
   ZREMOVE@emph{:postcondition}
   @end example
   
   In argumented form, removes a subset of the current routine buffer, provided the optional @emph{postcondition} is @emph{true} or omitted.
   
   @emph{Syntax}
   
   @example
   ZREMOVE@emph{:postcondition} @emph{start}[:@emph{end}]
   @end example
   
   In the above syntax, @emph{start} and @emph{end} can be a tag in the current routine, or @code{*} to indicate the routine buffer insertion point (typically the end of the routine).
   
 @node ZSAVE  @node ZSAVE
 @section ZSAVE  @section ZSAVE
 @cindex ZSAVE  @cindex ZSAVE

Removed from v.1.58  
changed lines
  Added in v.1.63


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