Annotation of freem/README.md, revision 1.4
1.1 snw 1: FreeM is a work-in-progress implementation of the MUMPS programming language, and attempts to conform to ANSI Standard MUMPS X11.1-1995.
2:
3: ## Unique Features
4:
5: FreeM has several unique features:
6:
7: * FreeM is the only current M implementation to offer support for asynchronous events from MDC extension proposal X11/1998-28
8: * It allows the programmer to define new Z-commands as M routines
9: * It allows the programmer to define new $Z... ISVs as M routines
10: * It supports extensive command-line history, editing, and recall through GNU readline in direct mode
11: * It supports using shebang-lines to run M routines as sysadmin scripts
12:
13: ## History
14:
15: FreeM started its life as FreeMUMPS, written for MS-DOS and ported to Linux and SCO UNIX by a mysterious individual going by the name of "Shalom ha-Ashkenaz". It was released to MUG/Deutschland in 1998, and maintenance was taken over by the GUMP (Generic Universal M Project) thereafter, which changed its name first to PSM (Public Standard MUMPS) and then by popular request to FreeM.
16:
1.2 snw 17: When GT.M was open-sourced in late 1999, FreeM and GUMP were essentially abandoned. L.D. Landis, the owner of the original GUMP SourceForge project, and one of FreeM's significant contributors, passed maintenance of FreeM and ownership of its SourceForge project to Serena Willis in 2015. At this point, FreeM would not compile or run on modern Linux systems, so steps were taken to remedy the most pressing issues in the codebase. Limitations on the terminal size (previously hard-coded to 80x25) were lifted, and new $VIEW functions were added to retrieve the terminal size information. $X and $Y intrinsic special variables were updated to support arbitrary terminal sizes, and FreeM was once again able to build and run.
1.1 snw 18:
19: ## License
20:
21: Copyright (C) 1998 MUG Deutschland
22: Copyright (C) 2014, 2020 Coherent Logic Development LLC
23:
24: This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
25:
26: This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
27:
28: You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
29:
1.2 snw 30: This README document is Copyright (C) 2020, 2025 Serena Willis
1.1 snw 31:
32: Permission is granted to copy, distribute and/or modify this document under the
33: terms of the GNU Free Documentation License, Version 1.3 or any later version
34: published by the Free Software Foundation; with no Invariant Sections, with no
35: Front-Cover texts, and with no Back-Cover Texts.
36:
1.3 snw 37: ## Building and Installation
1.1 snw 38:
1.3 snw 39: FreeM has four methods of installation:
1.1 snw 40:
1.3 snw 41: ### Binary Repository
42: For recent versions of the Ubuntu and Debian distributions of GNU/Linux, we provide package repositories from which FreeM may easily be installed. See the [FreeM Wiki](https://freem-wiki.coherent-logic.com) for more information, and the [Coherent Logic package repository](https://packages.coherent-logic.com) for instructions.
1.1 snw 43:
1.3 snw 44: If available, this is the simplest method of installing FreeM.
1.1 snw 45:
1.3 snw 46: ### Binary Packages
47: We provide binary packages of FreeM for _dpkg_ and _rpm_-based distributions of GNU/Linux, and _pkgadd_ packages for Solaris 8-10 and Illumos distributions. If you cannot use repositories, this is the easiest option.
1.1 snw 48:
1.3 snw 49: See [Binaries](https://freem.coherent-logic.com/binaries.cfm) for downloads and instructions.
1.1 snw 50:
1.3 snw 51: ### Source Tarball
52: If you prefer installing from source, we recommend that you download the latest _.tar.gz_ file from [Downloads](https://freem.coherent-logic.com/downloads.cfm) and follow these steps:
1.1 snw 53:
1.3 snw 54: ```
55: $ gunzip freem-<version>.tar.gz
56: $ tar xvf freem-<version>.tar
57: $ cd freem
58: $ ./configure
59: $ make
60: $ sudo make install
61: ```
1.1 snw 62:
1.3 snw 63: Once this is done, you may proceed to _Initial Configuration (Source Installs)_.
64:
65: ### CVS
66: This installation method is by far the most complicated, and is intended only for those who wish to contribute to FreeM development. It is not intended for end users, and no technical support will be provided.
67:
68: See the _Contributor Guide_ on the [FreeM Wiki](https://freem-wiki.coherent-logic.com) for more information about this build type.
69:
70: If you wish to try the bleeding-edge development version of FreeM, you may do so by following these steps:
71:
72: ```
73: $ cvs -d :pserver:anonymous@cvs.coherent-logic.com:/home/cvsroot co freem
74: $ cd freem
75: $ ./autogen.sh
76: $ ./configure
77: $ make
78: $ sudo make install
79:
80: Once this is done, you may proceed to _Initial Configuration (Source Installs)_.
81:
82: ## Initial Configuration (Source Installs)
83:
84: * Create a _freem_ user and a _freem_ group
85: * Add any accounts wishing to use FreeM to the _freem_ group
86: * Run `sudo fmadm configure` to generate the `DEFAULT` environment
87: * Run `sudo fmadm start environment` to start the `DEFAULT` environment
1.1 snw 88:
89:
90: ## Documentation
91:
92: FreeM documentation is available at https://freem.coherent-logic.com/docs/
93:
94: ## Production Readiness
95:
96: FreeM is not yet production-ready.
97:
98: ## Contributors
99:
100: Current contributors denoted with a plus sign following their name and role.
101:
102: * Shalom ha-Ashkenaz (Original Implementer)
103: * Jon Diamond (Library, Utilities, Conformance)
104: * Winfried Gerum (Code, Advice, MTA coordination)
105: * Greg Kreis (Hardhats coordination, Dependencies)
106: * [Larry Landis](https://www.rosecroft.net) (Coordination, Code, Documentation)
107: * Frederick D.S. Marshall (MDC Standards Conformance) +
1.4 ! snw 108: * Ken McGlothlen (Apple Silicon build/test environment, proofreading of documentation) +
1.1 snw 109: * Lloyd Milligan (Code, Testing, Documentation)
110: * Steve Morris (Code, Microsoft)
111: * John Murray (Code, Conformance)
112: * Wilhelm Pastoors (Testing, Documentation)
113: * Kate Schell (Coordination, Conformance, MTA, MDC, Advice)
114: * Lyle Schofield (Advice, Prioritization, Tracking, Project Management)
115: * Axel Trocha (Code, Utilities)
116: * Dick Walters (Project Lead, Chief Coordinator, MTA)
117: * David Whitten (QA Test Suite, MDC, Advice) +
118: * [David Wicksell](https://gitlab.com/dlwicksell) (Debugging, Code, Testing) +
1.2 snw 119: * Serena Willis (Current Maintainer and Project Lead) +
1.1 snw 120: * Steve Zeck (Contributions to Symbol Table Management, Code)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>