README.md 4.56 KB
Newer Older
John P. Willis's avatar
John P. Willis committed
1
FreeM is a work-in-progress implementation of the MUMPS programming language, and attempts to conform to ANSI Standard MUMPS X11.1-1995.
John Willis's avatar
John Willis committed
2

3 4 5 6 7 8 9 10 11 12
## Unique Features

FreeM has several unique features:

* FreeM is the only current M implementation to offer support for asynchronous events from MDC extension proposal X11/1998-28
* It allows the programmer to define new Z-commands as M routines
* It allows the programmer to define new $Z... ISVs as M routines
* It supports extensive command-line history, editing, and recall through GNU readline in direct mode
* It supports using shebang-lines to run M routines as sysadmin scripts

John P. Willis's avatar
John P. Willis committed
13 14 15 16 17 18 19
## History

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.

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 John 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.

## License
John P. Willis's avatar
John P. Willis committed
20

21
Copyright (C) 1998 MUG Deutschland
John P. Willis's avatar
John P. Willis committed
22 23
Copyright (C) 2014, 2020 Coherent Logic Development LLC

24 25 26 27 28
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.
 
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.
 
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/.
John P. Willis's avatar
John P. Willis committed
29

30 31 32 33 34 35
This README document is Copyright (C) 2020 John P. Willis

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.
John P. Willis's avatar
John P. Willis committed
36

John P. Willis's avatar
John P. Willis committed
37 38
## Building

John P. Willis's avatar
John P. Willis committed
39
If you wish to build this software, and have downloaded it with git, you will need to run `autoreconf --install` prior to the first run of `./configure; make; sudo make install`.
John P. Willis's avatar
John P. Willis committed
40 41 42

You will need GNU autotools, autoconf, texinfo and libtool, and optionally (but highly recommended), GNU readline (the development version, including the headers).

John P. Willis's avatar
John P. Willis committed
43
The software is known to build and run on Linux (amd64, i386, armv6l, armv7l, aarch64, and s390x), SCO OpenServer 5.0.7, Solaris 10 (sparc64), Solaris 11.3 (sparc64), Solaris 11.4 (i86), GNU/Hurd 0.9 (i386), macOS Mojave (with the real gcc compiler installed), FreeBSD 12.1 (amd64), NetBSD 9.0 (vax and amd64), and OpenBSD 6.6 (amd64).
John P. Willis's avatar
John P. Willis committed
44

45
## Documentation
John P. Willis's avatar
John P. Willis committed
46

47
FreeM documentation is available at https://freem.coherent-logic.com/docs/
John P. Willis's avatar
John P. Willis committed
48

49
## Production Readiness
John P. Willis's avatar
John P. Willis committed
50

51
FreeM is not yet production-ready. 
John P. Willis's avatar
John P. Willis committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

## Contributors

Current contributors denoted with a plus sign following their name and role.

* Shalom ha-Ashkenaz (Original Implementer)
* Jon Diamond (Library, Utilities, Conformance)
* Winfried Gerum (Code, Advice, MTA coordination)
* Greg Kreis (Hardhats coordination, Dependencies)
* Larry Landis (Coordination, Code, Documentation)
* Frederick D.S. Marshall (MDC Standards Conformance) +
* Lloyd Milligan (Code, Testing, Documentation)
* Steve Morris (Code, Microsoft)
* John Murray (Code, Conformance)
* Wilhelm Pastoors (Testing, Documentation)
* Kate Schell (Coordination, Conformance, MTA, MDC, Advice)
* Lyle Schofield (Advice, Prioritization, Tracking, Project Management)
* Axel Trocha (Code, Utilities)
* Dick Walters (Project Lead, Chief Coordinator, MTA)
* David Whitten (QA Test Suite, MDC, Advice) +
* David Wicksell (Debugging, Code, Testing) +
* John Willis (Current Maintainer and Project Lead) +
John P. Willis's avatar
John P. Willis committed
74
* Steve Zeck (Contributions to Symbol Table Management, Code)