|
|
| version 1.51, 2025/05/05 14:26:59 | version 1.56, 2025/05/16 13:22:58 |
|---|---|
| Line 4 | Line 4 |
| @settitle The FreeM Manual | @settitle The FreeM Manual |
| @copying | @copying |
| This manual is for FreeM, (version 0.64.0-rc1), which is a free software implementation of the M programming language. | This manual is for FreeM, (version 0.65.1-rc0), 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.64.0-rc1 | @subtitle Version 0.65.1-rc0 |
| @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 100 This is the official manual for the Free | Line 100 This is the official manual for the Free |
| * Accessing FreeM from C Programs:: How to use the mlib interface. | * Accessing FreeM from C Programs:: How to use the mlib interface. |
| * FreeM Administrator:: The fmadm system manager tool. | * FreeM Administrator:: The fmadm system manager tool. |
| * FreeM Legacy Utilities:: FreeM legacy system manager utilities. | |
| * FreeM VIEW Commands and Functions:: Getting and setting info about FreeM internals. | * FreeM VIEW Commands and Functions:: Getting and setting info about FreeM internals. |
| * Implementation Limits:: FreeM limitations. | * Implementation Limits:: FreeM limitations. |
| * US-ASCII Character Set:: The US-ASCII character set. | * US-ASCII Character Set:: The US-ASCII character set. |
| Line 149 Current contributors denoted with a @emp | Line 148 Current contributors denoted with a @emp |
| @cindex contributors, Gerum, Winfried | @cindex contributors, Gerum, Winfried |
| @cindex contributors, Kreis, Greg | @cindex contributors, Kreis, Greg |
| @cindex contributors, Landis, Larry | @cindex contributors, Landis, Larry |
| @cindex contributors, McGlothlen, Ken | |
| @cindex contributors, Milligan, Lloyd | @cindex contributors, Milligan, Lloyd |
| @cindex contributors, Morris, Steve | @cindex contributors, Morris, Steve |
| @cindex contributors, Murray, John | @cindex contributors, Murray, John |
| Line 190 Larry Landis (Coordination, Code, Docume | Line 190 Larry Landis (Coordination, Code, Docume |
| Rick Marshall (Testing, MDC Conformance) @emph{+} | Rick Marshall (Testing, MDC Conformance) @emph{+} |
| @item | @item |
| Ken McGlothlen (Apple Silicon build/test environment, proofreading of documentation) @emph{+} | |
| @item | |
| Lloyd Milligan (Code, Testing, Documentation) | Lloyd Milligan (Code, Testing, Documentation) |
| @item | @item |
| Line 441 Attempting to start a FreeM interpreter | Line 444 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.64.0-rc1 (x86_64-pc-linux-gnu) | Coherent Logic Development FreeM version 0.65.1-rc0 (x86_64-pc-linux-gnu) |
| Copyright (C) 2014, 2020, 2021 Coherent Logic Development LLC | Copyright (C) 2014, 2020, 2021 Coherent Logic Development LLC |
| Line 1115 See @emph{https://wiki.osdev.org/Target_ | Line 1118 See @emph{https://wiki.osdev.org/Target_ |
| * $ZLSD():: Compute Levenshtein distance between two arguments. | * $ZLSD():: Compute Levenshtein distance between two arguments. |
| * $ZM():: Unknown. | * $ZM():: Unknown. |
| * $ZNAME():: Unknown. | * $ZNAME():: Unknown. |
| * $ZNEXT():: Unknown. | * $ZNEXT():: Return glvn of next numeric subscript following given glvn. |
| * $ZORDER():: Unknown. | * $ZORDER():: Unknown. |
| * $ZPIECE():: Unknown. | * $ZPIECE():: Unknown. |
| * $ZPREVIOUS():: Unknown. | * $ZPREVIOUS():: Unknown. |
| Line 1313 The optional second argument indicates t | Line 1316 The optional second argument indicates t |
| @cindex intrinsic functions, $NEXT | @cindex intrinsic functions, $NEXT |
| Deprecated. Use @code{$ORDER} instead. | Deprecated. Use @code{$ORDER} instead. |
| Returns the next numeric subscript of the specified glvn. | |
| @emph{Syntax} | |
| @example | |
| $NEXT(@emph{glvn}) | |
| @end example | |
| @emph{Example} | |
| Assume the following array: | |
| @example | |
| ^foo(1)="" | |
| ^foo(2)="" | |
| @end example | |
| And the following code: | |
| @example | |
| W $ZNEXT(^foo(1)) ; => 2 | |
| @end example | |
| @node $ORDER() | @node $ORDER() |
| @section $ORDER | @section $ORDER |
| Line 1723 Purpose unknown. | Line 1748 Purpose unknown. |
| Purpose unknown. | Purpose unknown. |
| This function relies on the value of @code{$VIEW(71)} being @code{0} (this is not the default). | |
| @node $ZNEXT() | @node $ZNEXT() |
| @section $ZNEXT | @section $ZNEXT |
| @cindex $ZNEXT | @cindex $ZNEXT |
| @cindex intrinsic functions, $ZNEXT | @cindex intrinsic functions, $ZNEXT |
| @cindex intrinsic functions, implementation-specific | @cindex intrinsic functions, implementation-specific |
| Purpose unknown. | Returns a fully-formed variable reference of the next numeric subscript of the specified glvn. |
| @emph{Syntax} | |
| @example | |
| $ZNEXT(@emph{glvn}) | |
| @end example | |
| @emph{Example} | |
| Assume the following array: | |
| @example | |
| ^foo(1)="" | |
| ^foo(2)="" | |
| @end example | |
| And the following code: | |
| @example | |
| W $ZNEXT(^foo(1)) ; => ^foo(2) | |
| @end example | |
| This function relies on the value of @code{$VIEW(71)} being @code{1} (this is the default). | |
| @node $ZORDER() | @node $ZORDER() |
| @section $ZORDER | @section $ZORDER |
| Line 2602 In the above @emph{inclusive} form, @cod | Line 2652 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.64.0-rc1, 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-rc0, but are planned for a future release. |
| @end quotation | @end quotation |
| @end cartouche | @end cartouche |
| Line 2637 In the above @emph{inclusive} form, @cod | Line 2687 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.64.0-rc1, 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-rc0, but are planned for a future release. |
| @end quotation | @end quotation |
| @end cartouche | @end cartouche |
| Line 6444 int main(int argc, char **argv, char **e | Line 6494 int main(int argc, char **argv, char **e |
| @cindex fmadm | @cindex fmadm |
| The @code{fmadm} utility is the preferred method of managing a FreeM installation, and will eventually replace all of the existing utilities. | The @code{fmadm} utility is the preferred method of managing a FreeM installation, and will eventually replace all of the existing utilities. |
| Unlike the existing, legacy utilities, @code{fmadm} presents a consistent, simple interface for all FreeM management tasks, and is namespace-aware. | In support of FreeM operators, @code{fmadm} presents a consistent, simple interface for all FreeM management tasks, and is namespace-aware. |
| This appendix will document each @code{fmadm} facility as it is implemented, until all of the legacy utilities have been replaced. | This appendix will document each @code{fmadm} facility as it is implemented. |
| The @code{fmadm} utility's functions all follow the below, consistent syntax: | The @code{fmadm} utility's functions all follow the below, consistent syntax: |
| Line 6539 Supported actions are @code{list} and @c | Line 6589 Supported actions are @code{list} and @c |
| @end table | @end table |
| @node FreeM Legacy Utilities | |
| @appendix FreeM Legacy Utilities | |
| @cindex utilities, legacy | |
| @section Global Compactor (gcompact) | |
| @cindex utilities, legacy, gcompact | |
| Compacts the specified global in place. | |
| @emph{Syntax} | |
| @example | |
| gcompact @emph{/path/to/global/file} | |
| @end example | |
| @section Block Examiner (gfix) | |
| @cindex utilities, gfix | |
| The @emph{gfix} interactive utility program permits navigation of the B-tree structure of the specified global a block at a time. | |
| @emph{Syntax} | |
| @example | |
| gfix @emph{</path/to/global/file>} | |
| @end example | |
| @section Global Repair Tool (grestore) | |
| @cindex utilities, legacy, grestore | |
| This utility will fix problems with the specified global. | |
| @emph{Syntax} | |
| @example | |
| grestore @emph{</path/to/global/file>} | |
| @end example | |
| @node FreeM VIEW Commands and Functions | @node FreeM VIEW Commands and Functions |
| @appendix FreeM VIEW Commands and Functions | @appendix FreeM VIEW Commands and Functions |