FreeM Logo

Sophisticated. Simple. Extensible.

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.

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.

FreeM has a number of advantages as compared to other MUMPS implementations:

  • The code is relatively small and understandable enough to be grasped and successfully modified by a competent C programmer
  • It is highly portable, being a machine-independent interpreter, and will run on a wide variety of UNIX and UNIX-like operating systems
  • It is extensible, allowing MUMPS developers to implement new commands, functions, and structured system variables directly in MUMPS, without resorting to modifying or even reading any C code at all
  • The new mlib shared library interface allows easy access to MUMPS globals and routines from any C program

We are not yet production-grade, and for production use, we would recommend YottaDB, MUMPS v1, or M21. A number of serious issues still exist in FreeM that preclude its use in production environments.

Get the code.

Please feel free to browse, clone, and modify our source code.

We adhere to the following Coding Standards when contributing to FreeM.

Supported Platforms

FreeM has proved itself to be quite portable, having no dependencies on a particular CPU endianness, and being a straight character-by-character interpreter. We will continue to produce as many ports as possible as time permits.

Current Port Status

Operating System OS Version CPU Architecture Maintainer
Current Ports
Debian GNU/Linux 10 amd64 John Willis
Ubuntu Linux 19.10 amd64 John Willis
Ubuntu Linux ? s390x John Willis
Raspbian 10 armv6l John Willis
Solaris 11.3 sparc64 (sun4v) John Willis
SCO OpenServer 5.0.7 i386 John Willis
NetBSD 9.0 amd64 John Willis
FreeBSD 12.1 amd64 John Willis
OpenBSD 6.6 amd64 John Willis
Debian GNU/Hurd HURD 0.9 i386 John Willis
Mac OS X 10.14 amd64 John Willis
Ports Under Investigation
AmigaOS + ixemul.library 2.0+ m68k John Willis
IBM i 7+ AS/400 John Best
IBM z/OS ? z/Architecture (s390x) Jim Stefanik
IBM AIX ? POWER Jim Stefanik
Future Ports
Mac OS X 10.3+ PPC John Willis
SGI IRIX 6.5 MIPS John Willis
HP-UX 11.0 HP PA-RISC John Willis
Microsoft Windows (Cygwin) ? amd64 John Willis
OpenVMS 7.3+ VAX, Alpha, Itanium John Willis
BeOS 5.0+ i386, PPC John Willis
IBM OS/2 Warp + EMX 3+ i386 John Willis

Build Requirements

You will need the following tools in order to build FreeM, regardless of target platform:

  • GNU gcc 2.95.3 or newer
  • GNU autoconf
  • GNU automake
  • GNU libtool
  • GNU texinfo
  • GNU make
  • A Bourne-compatible shell
If you want enhanced command-line editing in FreeM, you will also need GNU readline in your library search path.

Learn the ropes.

View the HTML documentation or PDF documentation.

Join the community.

Mailing Lists

For FreeM developers and contributors (those who modify the source code of FreeM itself), we have the freem-dev mailing list. To subscribe, either visit the list page or send an e-mail to freem-dev@mailman.chivanet.org containing the words subscribe freem-dev.

For general users of FreeM (those who write M programs in FreeM), we have the freem-users mailing list. To subscribe, either visit the list page or send an e-mail to freem-users@mailman.chivanet.org containing the words subscribe freem-users.

Discord

We have a Discord server where you may join us.

Skype

We have a Skype channel where you may join us.


Copyright © 1998 MUG Deutschland
Copyright © 2014, 2020 Coherent Logic Development LLC