File:  [Coherent Logic Development] / freem / README.md
Revision 1.4: download - view: text, annotated - select for diffs
Sat May 17 17:04:22 2025 UTC (2 months, 2 weeks ago) by snw
Branches: MAIN
CVS tags: HEAD
Update credits in README.md

    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: 
   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.
   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: 
   30: This README document is Copyright (C) 2020, 2025 Serena Willis
   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: 
   37: ## Building and Installation
   38: 
   39: FreeM has four methods of installation:
   40: 
   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.
   43: 
   44: If available, this is the simplest method of installing FreeM.
   45: 
   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.
   48: 
   49: See [Binaries](https://freem.coherent-logic.com/binaries.cfm) for downloads and instructions.
   50: 
   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:
   53: 
   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: ```
   62: 
   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
   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) +
  108: * Ken McGlothlen (Apple Silicon build/test environment, proofreading of documentation) +
  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) +
  119: * Serena Willis (Current Maintainer and Project Lead) +
  120: * Steve Zeck (Contributions to Symbol Table Management, Code)

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