--- freem/doc/freem.texi 2025/05/19 02:03:31 1.60 +++ freem/doc/freem.texi 2025/05/19 13:14:35 1.62 @@ -4,7 +4,7 @@ @settitle The FreeM Manual @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. @@ -19,7 +19,7 @@ Permission is granted to copy, distribut @title The FreeM Manual @subtitle @sc{The Official Manual of FreeM} -@subtitle Version 0.65.1-rc0 +@subtitle Version 0.65.1-rc1 @c@vskip 10pt @c@center @image{freem-logo-sm,,,,.png} @author Serena Willis @@ -445,7 +445,7 @@ 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{}} or @option{--routine=@emph{}}: @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 @@ -2660,7 +2660,7 @@ In the above @emph{inclusive} form, @cod @cartouche @quotation @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 cartouche @@ -2695,7 +2695,7 @@ In the above @emph{inclusive} form, @cod @cartouche @quotation @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 cartouche @@ -3537,6 +3537,16 @@ ZHALT @cindex commands, non-standard @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 @section ZJOB @cindex ZJOB @@ -3641,6 +3651,24 @@ In its argumentless form, quits from @co @cindex commands, non-standard @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 @section ZSAVE @cindex ZSAVE