File:  [Coherent Logic Development] / freem / doc / freem.1
Revision 1.8: download - view: text, annotated - select for diffs
Fri Apr 18 01:23:05 2025 UTC (11 months, 2 weeks ago) by snw
Branches: MAIN
CVS tags: HEAD
More documentation updates

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

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