DATurner/miranda
1
14
Fork
You've already forked miranda
2
Miranda is Professor David Turner's pure, non-strict, polymorphic, higher order functional programming language, which was the main inspiration for Haskell. This repository is for its maintenance as Professor Turner died last year and I have the blessing of his family and of the University of Kent at Canterbury Computing Laboratory where he developed it. It is unlikely to have any bugs but has been updated to compile on modern systems. http://miranda.org.uk
  • C 51.9%
  • Roff 21.2%
  • MATLAB 9.6%
  • Shell 6.4%
  • M 5.8%
  • Other 5.1%
2025年12月22日 18:25:11 +01:00
issues Add the issue-pulling scripts 2025年06月02日 19:20:48 +02:00
miralib Add ex/bignum.m 2025年06月02日 19:21:27 +02:00
.date Update to mira-2066-src 2025年03月14日 18:08:41 +01:00
.epoch Update to mira-2066-src 2025年03月14日 18:08:41 +01:00
.gitignore Redo PDF manual is groff -ms and drop html versions 2025年05月23日 19:03:55 +02:00
.nextxversion Import mira-2057-src 2025年03月14日 14:21:53 +01:00
.version Import mira-2057-src 2025年03月14日 14:21:53 +01:00
.xversion Update to mira-2066-src 2025年03月14日 18:08:41 +01:00
allexterns Fix type mismatch of `version' 2025年04月09日 00:19:08 +02:00
big.c Turn hd[x] into hd(x) and #define hd(x) to hd[x], similarly for tl[] 2025年05月27日 16:57:29 +02:00
big.h Turn hd[x] into hd(x) and #define hd(x) to hd[x], similarly for tl[] 2025年05月27日 16:57:29 +02:00
ChangeLog Release 2.067-rc2 2025年05月31日 12:46:12 +02:00
cmbnms.c Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
combs.h Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
COPYING Import mira-2057-src 2025年03月14日 14:21:53 +01:00
data.c Clean up the new signal handler signals() to avoid compiler warnings 2025年06月11日 17:40:00 +02:00
data.h Make file-local vars and fns static; comment out unused fns 2025年05月27日 19:52:49 +02:00
ex Import mira-2057-src 2025年03月14日 14:21:53 +01:00
fdate.c Make main() return(0) 2025年04月08日 23:13:47 +02:00
gencdecs Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
just.1 Import mira-2057-src 2025年03月14日 14:21:53 +01:00
just.c Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
lex.c Rename DOLLAR2 to DOLLARS to force update of y.tab.h 2025年05月27日 17:04:15 +02:00
lex.h Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
linkmenudriver Import mira-2057-src 2025年03月14日 14:21:53 +01:00
Makefile Make install locations default to /usr/local and allow relative paths 2025年12月22日 18:25:11 +01:00
makehtml.sh Add manual.md derived from online manual making manual.html 2025年05月21日 07:14:52 +02:00
menudriver.c Implement signal() with BSD semantics using sigaction() 2025年05月27日 17:04:13 +02:00
mira.1 Update default heap/dic sizes and larger cell size on 64-bit systems 2025年04月03日 16:00:49 +02:00
mira.man.ms More fixes to the manual's typography 2025年05月25日 04:02:11 +02:00
quotehostinfo Add commentary 2025年04月22日 22:02:15 +02:00
README Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
README.md Point to "Compilers" table in the cfarm issue for optimization availability 2025年05月12日 17:48:48 +02:00
reduce.c Make file-local vars and fns static; comment out unused fns 2025年05月27日 19:52:49 +02:00
revdate Import mira-2057-src 2025年03月14日 14:21:53 +01:00
rules.y Rename DOLLAR2 to DOLLARS to force update of y.tab.h 2025年05月27日 17:04:15 +02:00
signals.c Clean up the new signal handler signals() to avoid compiler warnings 2025年06月11日 17:40:00 +02:00
signals.h Clean up the new signal handler signals() to avoid compiler warnings 2025年06月11日 17:40:00 +02:00
steer.c Make file-local vars and fns static; comment out unused fns 2025年05月27日 19:52:49 +02:00
toks.m Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
trans.c Make file-local vars and fns static; comment out unused fns 2025年05月27日 19:52:49 +02:00
types.c Make file-local vars and fns static; comment out unused fns 2025年05月27日 19:52:49 +02:00
utf8.c Fix almost all gcc and clang -Wall warnings 2025年04月07日 11:23:04 +02:00
utf8.h Update to mira-2064-src 2025年03月14日 18:08:23 +01:00
version.c Import mira-2057-src 2025年03月14日 14:21:53 +01:00
y.tab.c Rename DOLLAR2 to DOLLARS to force update of y.tab.h 2025年05月27日 17:04:15 +02:00
y.tab.h Rename DOLLAR2 to DOLLARS to force update of y.tab.h 2025年05月27日 17:04:15 +02:00

Maintenance of Miranda

The Miranda source code is now maintained on codeberg.org/DATurner/miranda

This is particularly relevant because the last binary release on miranda.org.uk was of mira 2.042 in Sep 2008 and since then Professor Turner only released it in source code form, of which his latest is 2.066 from Jan 2020, but those releases do not compile out of the box.

To build it from source, you need make and a C compiler. If you need to modify rules.y you'll also need byacc; it does not work at all with the supposedly compatible GNU bison.

It is known to work on aarch, amd, arm, chrp, evbarm, loongarch, mips, powerpc, riscv and x86, on 32-bit and 64-bit, big-endian and little-endian systems running AIX, AlmaLinux, AlpineLinux, Archlinux, CentOS, Debian, FreeBSD, Haiku, MacOS X, NetBSD, OpenBSD, OpenSUSE and Rocky with all versions of GCC from 2.95 to 14 and clang 11 to 16 with no optimization enabled and some versions of gcc and clang up to -O3. The 64-bit version has been tested with up to 2TB of RAM for the heap, over 100,000,000,000 cells.

You can see whether optimization will work for you in the table "Compilers" in #25

It compiles but does not work on Solaris with a sun4u processor and a Windows port has not yet been attempted.

A release will be made on Codeberg when further portability and testing are complete, currently scheduled for 1st May 2025.

In the meantime, you can

git clone https://codeberg.org/DATurner/miranda
cd miranda
make
make install

which puts it in /usr/bin/mira and /usr/lib/miralib. To install it elsewhere or use a different compiler than GCC, edit Makefile before building.

You can also test it in the source directory before installing it by running it as ./mira

There is a mailing list miranda@groups.io whose web site is http://groups.io/g/miranda and you can also subscribe to it by sending an email to miranda+subscribe@groups.io

His earlier language, KRC, is maintained at codeberg.org/DATurner/KRC

Martin Guy <martinwguy@gmail.com>, April 2025.