|
|
| version 1.60, 2025/05/19 02:03:31 | 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 2660 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 2695 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 3475 ZEDIT@emph{[:postcondition]} @emph{<rout | Line 3475 ZEDIT@emph{[:postcondition]} @emph{<rout |
| In its single-argument form, edits @emph{<routine-name>}, provided the optional @emph{postcondition} is @emph{true} or omitted. | 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{^}). | Routine names must not be quoted, and must not included a leading caret (@code{^}). |
| @emph{Errors} | @emph{Errors} |
| @code{ZEDIT} will raise @code{ZNOPGM} if the routine cannot be found, or there is no routine currently loaded in argumentless form. | @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 |
| Line 3537 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 3641 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 |