Annotation of freem/doc/freem.1, revision 1.11
1.1 snw 1: .\" To display this man page, either:
2: .\" 1) Install this file along with the other subject.1 files in your
3: .\" system's man1 directory (usually this is /usr/man/man1) and
4: .\" enter the command:
1.3 snw 5: .\" man freem
1.1 snw 6: .\" or
7: .\" 2) Specify the input (this file) and the output (your favorite pager)
8: .\" explicitly. For example, if this file is in your current working
9: .\" directory, you can use the following to view the formatted man page
10: .\" using the "less" pager:
1.3 snw 11: .\" man ./freem.1 | less
1.1 snw 12: .\"
13: .\" To print this man page to a PostScript printer:
1.3 snw 14: .\" man -t ./freem.1 | lpr
1.1 snw 15: .\"
1.11 ! snw 16: .\" $Id: freem.1,v 1.10 2025/04/28 14:52:54 snw Exp $
1.1 snw 17: .\" FreeM man page
18: .\"
19: .\"
1.2 snw 20: .\" Author: Serena Willis <snw@coherent-logic.com>
1.1 snw 21: .\" Copyright (C) 1998 MUG Deutschland
1.3 snw 22: .\" Copyright (C) 2020, 2025 Coherent Logic Development LLC
1.1 snw 23: .\"
24: .\"
25: .\" This file is part of FreeM.
26: .\"
27: .\" FreeM is free software: you can redistribute it and/or modify
28: .\" it under the terms of the GNU Affero Public License as published by
29: .\" the Free Software Foundation, either version 3 of the License, or
30: .\" (at your option) any later version.
31: .\"
32: .\" FreeM is distributed in the hope that it will be useful,
33: .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
34: .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35: .\" GNU Affero Public License for more details.
36: .\"
37: .\" You should have received a copy of the GNU Affero Public License
38: .\" along with FreeM. If not, see <https://www.gnu.org/licenses/>.
39: .\"
1.5 snw 40: .\" $Log: freem.1,v $
1.11 ! snw 41: .\" Revision 1.10 2025/04/28 14:52:54 snw
! 42: .\" Temporarily revert global handler refactor and fix reference regression in xecline
! 43: .\"
1.10 snw 44: .\" Revision 1.9 2025/04/18 22:12:29 snw
45: .\" Fix texinfo bogosity and add subjects to man pages
46: .\"
1.9 snw 47: .\" Revision 1.8 2025/04/18 01:23:05 snw
48: .\" More documentation updates
49: .\"
1.8 snw 50: .\" Revision 1.7 2025/04/17 17:57:35 snw
51: .\" Major updates to man pages
52: .\"
1.7 snw 53: .\" Revision 1.6 2025/04/17 15:08:24 snw
54: .\" Add documentation on FREEM_LOG_THRESHOLD environment variables to man pages
55: .\"
1.6 snw 56: .\" Revision 1.5 2025/04/04 12:49:19 snw
57: .\" Dollar signs cut off in ENVIRONMENT sections of both man pages
58: .\"
1.5 snw 59: .\" Revision 1.4 2025/04/03 15:56:41 snw
60: .\" Add fmadm man page to CVS
61: .\"
1.1 snw 62: .\"
1.3 snw 63: .TH freem 1 "3 April 2025" FreeM "FreeM User Manual"
1.1 snw 64: .SH NAME
1.9 snw 65: freem - FreeM programming language interpreter
1.1 snw 66: .SH SYNOPSIS
67: .B freem [OPTION...]
68: .SH DESCRIPTION
69: The
70: .B freem
71: program runs an instance of
72: .IR "FreeM"
73: \.
74:
75: FreeM is an implementation of the MUMPS programming language, began by the efforts of the mysterious Shalom ha-Ashkenaz. In response to InterSystems' spree of buying up all competing MUMPS implementations, Shalom gifted FreeM to MUG Deutschland in 1998, in hopes that the MUMPS community would turn it into a viable, freely available, and fully-featured MUMPS implementation.
76:
77: After years of dormancy, the FreeM project has been resurrected, and under the stewardship of Coherent Logic Development and a small core team of contributors, work is proceeding towards completing the original FreeM team's goals, and much more.
78:
79: More information is available at https://freem.coherent-logic.com/
80:
1.8 snw 81: Please see the FreeM
82: \fIinfo\fR documentation for language, database, and administration details.
1.1 snw 83: .SH OPTIONS
84: .TP
85: \-h, --help
1.7 snw 86: .RS 4
1.3 snw 87: Display a list of freem command-line flags
1.7 snw 88: .RE
1.1 snw 89: .TP
90: \-i, --import
1.7 snw 91: .RS 4
1.3 snw 92: Imports UNIX environment variables as M locals
1.7 snw 93: .RE
1.3 snw 94: .TP
95: \-e <environment-name>, --environment=<environment-name>
1.7 snw 96: .RS 4
97: Sets active environment to
98: \fI<environment-name>\fR;
99: \fIDEFAULT\fR if unspecified
100: .RE
1.1 snw 101: .TP
102: \-f, --filter
1.7 snw 103: .RS 4
1.3 snw 104: Allows M code to be used as a filter
1.7 snw 105: .RE
1.1 snw 106: .TP
107: \-n <NAMESPACE>, --namespace=<NAMESPACE>
1.7 snw 108: .RS 4
109: Selects
110: \fI<NAMESPACE>\fR as the startup namespace instead of
111: \fIUSER\fR
112: .RE
1.1 snw 113: .TP
114: \-q, --quiet
1.7 snw 115: .RS 4
116: Disables startup messages and prompt string
117: .RE
1.1 snw 118: .TP
1.3 snw 119: \-r <LABEL^ROUTINE>, --routine=<LABEL^ROUTINE>
1.7 snw 120: .RS 4
121: Executes
122: \fI<LABEL^ROUTINE>\fR on startup instead of entering direct mode
123: .RE
124: .TP
1.3 snw 125: \-s <standard>, --standard=<standard>
1.7 snw 126: .RS 4
127: Restricts access to FreeM vendor extensions not present in relevant standards
128: \fI*\fR. In this flag,
129: \fI<standard>\fR can be:
130: .sp
131: .RS 4
132: .ie n \{\
133: \h'-04'\(bu\h'+03'\c
134: .\}
135: .el \{\
136: .sp -1
137: .IP \(bu 2.3
138: .\}
139: M77
140: .RE
141: .sp
142: .RS 4
143: .ie n \{\
144: \h'-04'\(bu\h'+03'\c
145: .\}
146: .el \{\
147: .sp -1
148: .IP \(bu 2.3
149: .\}
150: M84
151: .RE
152: .sp
153: .RS 4
154: .ie n \{\
155: \h'-04'\(bu\h'+03'\c
156: .\}
157: .el \{\
158: .sp -1
159: .IP \(bu 2.3
160: .\}
161: M90
162: .RE
163: .sp
164: .RS 4
165: .ie n \{\
166: \h'-04'\(bu\h'+03'\c
167: .\}
168: .el \{\
169: .sp -1
170: .IP \(bu 2.3
171: .\}
172: M95
173: .RE
174: .sp
175: .RS 4
176: .ie n \{\
177: \h'-04'\(bu\h'+03'\c
178: .\}
179: .el \{\
180: .sp -1
181: .IP \(bu 2.3
182: .\}
183: MDS
184: .RE
185: .sp
186: .RS 4
187: .ie n \{\
188: \h'-04'\(bu\h'+03'\c
189: .\}
190: .el \{\
191: .sp -1
192: .IP \(bu 2.3
193: .\}
194: M5
195: .RE
196: .sp
197: .RS 4
198: .ie n \{\
199: \h'-04'\(bu\h'+03'\c
200: .\}
201: .el \{\
202: .sp -1
203: .IP \(bu 2.3
204: .\}
205: FREEM
206:
207: .RE
208: \fB*\fR FreeM is not entirely compliant with any MDC standard, regardless of the value of the
209: \fI--standard\fR command-line flag.
210:
211: See the
212: \fBCompliance Clause\fR on the FreeM Wiki for more information on FreeM's deviations from MDC standards.
213: .RE
1.1 snw 214: .TP
215: \-v, --version
1.3 snw 216: Display FreeM version information
1.1 snw 217: .TP
218: \-x <MCODE>, --execute=<MCODE>
1.8 snw 219: Execute M code
220: \fI<MCODE>\fR on startup
1.3 snw 221: .TP
222: \-d, --daemon
223: Run the FreeM daemon (one and only one FreeM daemon must always be running for each configured environment)
224: .TP
225: \-k, --nofork
1.8 snw 226: Run the FreeM daemon in foreground (requires
227: \fI--daemon\fR)
1.3 snw 228: .TP
229: \-S <BYTES>, --shmsize=<BYTES>
230: Sets the size of the shared memory segment where FreeM stores the job table, lock table, and IPC table.
231: - Each concurrent job takes 1024 bytes (1 page) of shared memory
232: - Each LOCK takes 2048 bytes (2 pages) of shared memory
233: - Each IPC takes 1024 bytes (1 page) of shared memory
1.1 snw 234: .SH "RETURN VALUES"
235: Returns 0 for non-error condition.
236: .SH FILES
237: .TP
1.3 snw 238: env.conf
1.8 snw 239: The FreeM environment catalog. Normally located in
240: \fI$PREFIX/etc/freem/env.conf\fR
1.3 snw 241: .TP
1.1 snw 242: freem.conf
1.8 snw 243: The FreeM configuration file. Normally located in
244: \fI$PREFIX/etc/freem/<environment-name>/freem.conf\fR
1.1 snw 245: .SH ENVIRONMENT
1.3 snw 246: .TP
1.5 snw 247: $DISPLAY
1.8 snw 248: Determines the value of the
249: \fI$PDISPLAY\fR intrinsic special variable. This determines the X11 display used by the M Windowing API. Only applies when FreeM is built with the
250: \fI--enable-mwapi\fR configuration option.
1.3 snw 251: .TP
1.5 snw 252: $TERM
1.8 snw 253: Used by the
254: \fI^$DEVICE\fR structured system variable to provide the
255: \fITERMID\fR value for I/O channel 0.
1.6 snw 256: .TP
257: $FREEM_LOG_THRESHOLD_FILE
1.8 snw 258: Overrides the configured threshold at which log messages are written to files in
259: \fI/var/log/freem\fR, corresponding to the
260: \fIlog_threshold_file\fR environment setting in
261: \fI$PREFIX/etc/env.conf\fR. The default value is
262: \fIinfo\fR.
1.6 snw 263: .TP
264: $FREEM_LOG_THRESHOLD_SYSLOG
1.8 snw 265: Overrides the configured threshold at which log messages are sent to the
266: \fIsyslog\fR facility on systems that support it, corresponding to the
267: \fIlog_threshold_syslog\fR environment setting in
268: \fI$PREFIX/etc/env.conf\fR. The default value is
269: \fIinfo\fR.
1.6 snw 270: .TP
271: $FREEM_LOG_THRESHOLD_STDERR
1.8 snw 272: Overrides the configured threshold at which log messages are sent to
273: \fIstderr\fR, corresponding to the
274: \fIlog_threshold_stderr\fR environment setting in
275: \fI$PREFIX/etc/env.conf\fR. The default value is
276: \fIwarning\fR.
1.6 snw 277: .SH LOG THRESHOLD VALUES
1.8 snw 278: This section details the valid values for each of the
279: \fI$FREEM_LOG_THRESHOLD_*\fR environment variables, and each value indicates a minimum diagnostic level at which the indicated class of message will be delivered through the selected mechanism. All messages with an equal or higher diagnostic level than the class indicated will be delivered, i.e., if
280: \fIwarning\fR is selected, messages with a diagnostic class of
281: \fIwarning\fR,
282: \fIerror\fR, and
283: \fIfatal\fR will be delivered through the selected mechanism.
1.6 snw 284:
285: Valid values for each of these environment variables are as follows:
286: .TP
287: debug
1.8 snw 288: .RS 4
1.6 snw 289: Messages useful mostly for developers contributing to FreeM itself. Will produce a high volume of log messages, and is likely to impact system performance. Not recommended for production usage.
1.8 snw 290: .RE
1.6 snw 291: .TP
292: info
1.8 snw 293: .RS 4
294: Includes messages of an informational nature. Will produce a moderately high volume of log messages. For heavily multi-user and multi-process systems, it is recommended to use
295: \fIwarning\fR instead.
296: .RE
1.6 snw 297: .TP
298: warning
1.8 snw 299: .RS 4
1.6 snw 300: Includes warning messages. These indicate conditions (including retries when attempting to acquire semaphores) that warrant further investigation by the system operator, but do not typically prevent applications from running.
1.8 snw 301: .RE
1.6 snw 302: .TP
303: error
1.8 snw 304: .RS 4
1.6 snw 305: Includes error messages. This class of messages indicates that a recoverable error has occurred in the FreeM engine. Warrants immediate attention by the system operator.
1.8 snw 306: .RE
1.6 snw 307: .TP
308: fatal
1.8 snw 309: .RS 4
1.6 snw 310: Includes messages indicating errors that are not recoverable. If this class of message occurs, the process that triggered the message has terminated abnormally. Requires immediate system operator intervention, and can indicate gross misconfiguration of the FreeM engine or the host operating system environment, or even a FreeM bug.
1.8 snw 311: .RE
1.1 snw 312: .SH BUGS
1.3 snw 313: Check the issue tracker at https://bugs.coherent-logic.com for more detailed information on current bugs.
1.1 snw 314: .SH AUTHOR
315: Provided by Shalom ha-Ashkenaz, 1998/06/18 CE, to the stewardship of the
316: MUG Deutschland. The GUMP (Generic Universal M Project) took over after this point,
1.2 snw 317: and ownership of the original SourceForge project was handed over to Serena Willis of
1.1 snw 318: Coherent Logic Development LLC in 2014.
319: .br
320: The author's identity is a mystery. Can anyone shed light on this?
321: .br
322:
323: .br
324: Man page written by Ron Fox (rfox@dls.queens.org)
325: .br
1.2 snw 326: Maintained and updated by Serena Willis (snw@coherent-logic.com)
1.1 snw 327: .SH COPYRIGHT
328:
329: Copyright (C) 1998 MUG Deutschland
330: .br
1.4 snw 331: Copyright (C) 2025 Coherent Logic Development LLC
332:
333: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts.
1.1 snw 334: .SH "SEE ALSO"
1.7 snw 335: .PP
336: \fBfmadm\fR(8),
337: \fBenv.conf\fR(5),
1.11 ! snw 338: \fBfreem.conf\fR(5),
! 339: \fBfreem_conformance\fR(1)
! 340:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>