Linux, BSD and macOS are fully supported, with other platforms considered experimental and/or having known limitations.
If you wish to download a pre-compiled binary then head to the DOWNLOAD page to select your platform.
Available as an AUR package:
brew install murex
sudo port install murex
Prerequisites:
You will need go
(Golang) compiler, gcc
(C compiler) and git
installed as well as your $GOPATH
environmental variable set.
Go 1.18 or higher is required.
These should be easy to install on most operating systems however Windows is a lot more tricky with regards to gcc
. Please check with your operating systems package manager first but see further reading below if you get stuck.
Further Reading:
The following instructions are assuming you’re compiling on a POSIX-compatible system like Linux, BSD or macOS. Compiling from source is untested on Plan 9 (if you run into issues there then please use the pre-compiled binary for that platform) and Windows. In the case of Windows you may run into issues with the gcc
installation and some of the commands below will need to be adapted (eg murex.exe
used instead of ./murex
).
Compiling from source is not recommended unless you already have a strong understanding of compiling Go projects for your specific platform.
Importing the source code:
At present, Murex depends on being in a specific directory hierarchy for the tests to work and packages to import correctly. These instructions will talk you through creating that initial structure ready to import the source into. Experienced users in Go may opt to ignore some of these steps and run go get -u github.com/lmorg/murex
instead. While this should work in most cases, it is difficult to run automated tests to ensure any updates doesn’t break the go get
import tool. And thus that approach is not officially supported. If you are in any doubt, please follow the git clone
process below.
First create the directory path and clone the source into the appropriate directory structure.
mkdir -p $GOPATH/src/github.com/lmorg/murex
cd $GOPATH/src/github.com/lmorg/murex
git clone https://github.com/lmorg/murex .
At this point you can add and remove any optional builtins by following the instructions on this located further down this document. This is entirely optional as Murex attempts to ship with sane defaults.
Compile the code:
go build github.com/lmorg/murex
Test the executable (optional stage):
./murex -c 'g: behavioural/*.mx -> foreach: f { source $f }; try {test: run *}'
Start the shell:
./murex
Some optional builtins will be included by default, however there may be others you wish to include which are not part of the default build (such as qr
). To add them, copy (or symlink) the applicable include file from builtins/import_src
to builtins/import_build
.
A tool will be introduced in a later version to automate this.
Some of Murex’s extended features will have additional external dependencies.
aspell
: This is used for spellchecking. Murex will automatically enable or disable spellchecking based on whether aspell
can be found in your $PATH
. http://aspell.netThis is obviously just a subjective matter and everyone will have their own personal preference. However if I was asked what my preference was then that would be Hasklig. It’s a clean typeface based off Source Code Pro but with a few added ligatures - albeit subtle ones designed to make Haskell more readable. Those ligatures also suite Murex pretty well. So the overall experience is a clean and readable terminal.
This site's content is rebuilt automatically from murex's source code after each merge to the master
branch. Downloadable murex binaries are also built with the website.
Last built on Fri May 19 22:45:48 UTC 2023 against commit 54b5f6754b5f67b250bbf7353e83c42ed187802584c3ae3.
Current version is 4.1.6140 which has been verified against 14045 tests cases.