File:  [Coherent Logic Development] / freem / doc / freem.1
Revision 1.11: download - view: text, annotated - select for diffs
Fri May 2 16:25:46 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
-m

    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:
    5: .\"        man freem
    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:
   11: .\"        man ./freem.1 | less
   12: .\"
   13: .\" To print this man page to a PostScript printer:
   14: .\"   man -t ./freem.1 | lpr
   15: .\"
   16: .\"   $Id: freem.1,v 1.11 2025/05/02 16:25:46 snw Exp $
   17: .\"    FreeM man page
   18: .\"
   19: .\"  
   20: .\"   Author: Serena Willis <snw@coherent-logic.com>
   21: .\"    Copyright (C) 1998 MUG Deutschland
   22: .\"    Copyright (C) 2020, 2025 Coherent Logic Development LLC
   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: .\"
   40: .\"   $Log: freem.1,v $
   41: .\"   Revision 1.11  2025/05/02 16:25:46  snw
   42: .\"   -m
   43: .\"
   44: .\"   Revision 1.10  2025/04/28 14:52:54  snw
   45: .\"   Temporarily revert global handler refactor and fix reference regression in xecline
   46: .\"
   47: .\"   Revision 1.9  2025/04/18 22:12:29  snw
   48: .\"   Fix texinfo bogosity and add subjects to man pages
   49: .\"
   50: .\"   Revision 1.8  2025/04/18 01:23:05  snw
   51: .\"   More documentation updates
   52: .\"
   53: .\"   Revision 1.7  2025/04/17 17:57:35  snw
   54: .\"   Major updates to man pages
   55: .\"
   56: .\"   Revision 1.6  2025/04/17 15:08:24  snw
   57: .\"   Add documentation on FREEM_LOG_THRESHOLD environment variables to man pages
   58: .\"
   59: .\"   Revision 1.5  2025/04/04 12:49:19  snw
   60: .\"   Dollar signs cut off in ENVIRONMENT sections of both man pages
   61: .\"
   62: .\"   Revision 1.4  2025/04/03 15:56:41  snw
   63: .\"   Add fmadm man page to CVS
   64: .\"
   65: .\"
   66: .TH freem 1 "3 April 2025" FreeM "FreeM User Manual"
   67: .SH NAME
   68: freem - FreeM programming language interpreter
   69: .SH SYNOPSIS
   70: .B freem [OPTION...]
   71: .SH DESCRIPTION
   72: The
   73: .B freem
   74: program runs an instance of
   75: .IR "FreeM"
   76: \.
   77: 
   78: 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.
   79: 
   80: 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.
   81: 
   82: More information is available at https://freem.coherent-logic.com/
   83: 
   84: Please see the FreeM
   85: \fIinfo\fR documentation for language, database, and administration details.
   86: .SH OPTIONS
   87: .TP
   88: \-h, --help
   89: .RS 4
   90: Display a list of freem command-line flags
   91: .RE
   92: .TP
   93: \-i, --import
   94: .RS 4
   95: Imports UNIX environment variables as M locals
   96: .RE
   97: .TP
   98: \-e <environment-name>, --environment=<environment-name>
   99: .RS 4
  100: Sets active environment to
  101: \fI<environment-name>\fR;
  102: \fIDEFAULT\fR if unspecified
  103: .RE
  104: .TP
  105: \-f, --filter
  106: .RS 4
  107: Allows M code to be used as a filter
  108: .RE
  109: .TP
  110: \-n <NAMESPACE>, --namespace=<NAMESPACE>
  111: .RS 4
  112: Selects
  113: \fI<NAMESPACE>\fR as the startup namespace instead of
  114: \fIUSER\fR
  115: .RE
  116: .TP
  117: \-q, --quiet
  118: .RS 4
  119: Disables startup messages and prompt string
  120: .RE
  121: .TP
  122: \-r <LABEL^ROUTINE>, --routine=<LABEL^ROUTINE>
  123: .RS 4
  124: Executes
  125: \fI<LABEL^ROUTINE>\fR on startup instead of entering direct mode
  126: .RE
  127: .TP
  128: \-s <standard>, --standard=<standard>
  129: .RS 4
  130: Restricts access to FreeM vendor extensions not present in relevant standards
  131: \fI*\fR. In this flag,
  132: \fI<standard>\fR can be:
  133: .sp
  134: .RS 4
  135: .ie n \{\
  136: \h'-04'\(bu\h'+03'\c
  137: .\}
  138: .el \{\
  139: .sp -1
  140: .IP \(bu 2.3
  141: .\}
  142: M77
  143: .RE
  144: .sp
  145: .RS 4
  146: .ie n \{\
  147: \h'-04'\(bu\h'+03'\c
  148: .\}
  149: .el \{\
  150: .sp -1
  151: .IP \(bu 2.3
  152: .\}
  153: M84
  154: .RE
  155: .sp
  156: .RS 4
  157: .ie n \{\
  158: \h'-04'\(bu\h'+03'\c
  159: .\}
  160: .el \{\
  161: .sp -1
  162: .IP \(bu 2.3
  163: .\}
  164: M90
  165: .RE
  166: .sp
  167: .RS 4
  168: .ie n \{\
  169: \h'-04'\(bu\h'+03'\c
  170: .\}
  171: .el \{\
  172: .sp -1
  173: .IP \(bu 2.3
  174: .\}
  175: M95
  176: .RE
  177: .sp
  178: .RS 4
  179: .ie n \{\
  180: \h'-04'\(bu\h'+03'\c
  181: .\}
  182: .el \{\
  183: .sp -1
  184: .IP \(bu 2.3
  185: .\}
  186: MDS
  187: .RE
  188: .sp
  189: .RS 4
  190: .ie n \{\
  191: \h'-04'\(bu\h'+03'\c
  192: .\}
  193: .el \{\
  194: .sp -1
  195: .IP \(bu 2.3
  196: .\}
  197: M5
  198: .RE
  199: .sp
  200: .RS 4
  201: .ie n \{\
  202: \h'-04'\(bu\h'+03'\c
  203: .\}
  204: .el \{\
  205: .sp -1
  206: .IP \(bu 2.3
  207: .\}
  208: FREEM
  209: 
  210: .RE
  211: \fB*\fR FreeM is not entirely compliant with any MDC standard, regardless of the value of the
  212: \fI--standard\fR command-line flag.
  213: 
  214: See the
  215: \fBCompliance Clause\fR on the FreeM Wiki for more information on FreeM's deviations from MDC standards.
  216: .RE
  217: .TP
  218: \-v, --version
  219: Display FreeM version information
  220: .TP
  221: \-x <MCODE>, --execute=<MCODE>
  222: Execute M code
  223: \fI<MCODE>\fR on startup
  224: .TP
  225: \-d, --daemon
  226: Run the FreeM daemon (one and only one FreeM daemon must always be running for each configured environment)
  227: .TP
  228: \-k, --nofork
  229: Run the FreeM daemon in foreground (requires
  230: \fI--daemon\fR)
  231: .TP
  232: \-S <BYTES>, --shmsize=<BYTES>
  233: Sets the size of the shared memory segment where FreeM stores the job table, lock table, and IPC table.
  234:  - Each concurrent job takes 1024 bytes (1 page) of shared memory
  235:  - Each LOCK takes 2048 bytes (2 pages) of shared memory
  236:  - Each IPC takes 1024 bytes (1 page) of shared memory
  237: .SH "RETURN VALUES"
  238: Returns 0 for non-error condition.
  239: .SH FILES
  240: .TP
  241: env.conf
  242: The FreeM environment catalog. Normally located in
  243: \fI$PREFIX/etc/freem/env.conf\fR
  244: .TP
  245: freem.conf
  246: The FreeM configuration file. Normally located in
  247: \fI$PREFIX/etc/freem/<environment-name>/freem.conf\fR
  248: .SH ENVIRONMENT
  249: .TP
  250: $DISPLAY
  251: Determines the value of the
  252: \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
  253: \fI--enable-mwapi\fR configuration option.
  254: .TP
  255: $TERM
  256: Used by the
  257: \fI^$DEVICE\fR structured system variable to provide the
  258: \fITERMID\fR value for I/O channel 0.
  259: .TP
  260: $FREEM_LOG_THRESHOLD_FILE
  261: Overrides the configured threshold at which log messages are written to files in
  262: \fI/var/log/freem\fR, corresponding to the
  263: \fIlog_threshold_file\fR environment setting in
  264: \fI$PREFIX/etc/env.conf\fR. The default value is
  265: \fIinfo\fR.
  266: .TP
  267: $FREEM_LOG_THRESHOLD_SYSLOG
  268: Overrides the configured threshold at which log messages are sent to the
  269: \fIsyslog\fR facility on systems that support it, corresponding to the
  270: \fIlog_threshold_syslog\fR environment setting in
  271: \fI$PREFIX/etc/env.conf\fR. The default value is
  272: \fIinfo\fR.
  273: .TP
  274: $FREEM_LOG_THRESHOLD_STDERR
  275: Overrides the configured threshold at which log messages are sent to
  276: \fIstderr\fR, corresponding to the
  277: \fIlog_threshold_stderr\fR environment setting in
  278: \fI$PREFIX/etc/env.conf\fR. The default value is
  279: \fIwarning\fR.
  280: .SH LOG THRESHOLD VALUES
  281: This section details the valid values for each of the
  282: \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
  283: \fIwarning\fR is selected, messages with a diagnostic class of
  284: \fIwarning\fR,
  285: \fIerror\fR, and
  286: \fIfatal\fR will be delivered through the selected mechanism.
  287: 
  288: Valid values for each of these environment variables are as follows:
  289: .TP
  290: debug
  291: .RS 4
  292: 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.
  293: .RE
  294: .TP
  295: info
  296: .RS 4
  297: 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
  298: \fIwarning\fR instead.
  299: .RE
  300: .TP
  301: warning
  302: .RS 4
  303: 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.
  304: .RE
  305: .TP
  306: error
  307: .RS 4
  308: 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.
  309: .RE
  310: .TP
  311: fatal
  312: .RS 4
  313: 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.
  314: .RE
  315: .SH BUGS
  316: Check the issue tracker at https://bugs.coherent-logic.com for more detailed information on current bugs.
  317: .SH AUTHOR
  318: Provided by Shalom ha-Ashkenaz, 1998/06/18 CE, to the stewardship of the
  319: MUG Deutschland. The GUMP (Generic Universal M Project) took over after this point,
  320: and ownership of the original SourceForge project was handed over to Serena Willis of
  321: Coherent Logic Development LLC in 2014.
  322: .br
  323: The author's identity is a mystery.  Can anyone shed light on this?
  324: .br
  325: 
  326: .br
  327: Man page written by Ron Fox (rfox@dls.queens.org)
  328: .br
  329: Maintained and updated by Serena Willis (snw@coherent-logic.com)
  330: .SH COPYRIGHT
  331: 
  332: Copyright (C) 1998 MUG Deutschland
  333: .br
  334: Copyright (C) 2025 Coherent Logic Development LLC
  335: 
  336: 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.
  337: .SH "SEE ALSO"
  338: .PP
  339: \fBfmadm\fR(8),
  340: \fBenv.conf\fR(5),
  341: \fBfreem.conf\fR(5),
  342: \fBfreem_conformance\fR(1)
  343: 

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