Mumbler is a lisp programming language I wrote to try out the Graal JIT for the JVM.
Mumbler is a very small lisp modeled after Scheme but with far fewer special forms and built-in functions. Here is the ”Mumbler language specification”.
Mumbler uses Gradle as the build system. To build the code simply run
cd ${MUMBLER_REPO}/lang
./gradlew installDist
Mumbler requires a special version of the JVM. You can download a graal JVM from Oracle. Mumbler requires version 0.14 or greater.
You can start Mumbler’s REPL from the build directory. Just set JAVA_HOME
to point to the Graal JVM.
JAVA_HOME=<graal-vm-dir> ${MUMBLER_REPO}/lang/build/install/mumbler/bin/mumbler
The test/ directory contains several Mumbler scripts that try out different features. To run all the tests:
${MUMBLER_REPO}/test/run_tests
You can try out individual scripts by starting running Mumbler directly.
${MUMBLER_REPO}/lang/build/install/mumbler/bin/mumbler ${MUMBLER_REPO}/test/<a-random-script>.mumbler
Build Truffle and Mumbler and set environment variables.
${MUMBLER_REPO}/benchmark/measure <benchmark-name>
benchmark-name
is the name of one of the directories under benchmark
.
Mumbler’s scripts use two environment variables.
JAVA_HOME : The directory of the Graal VM. Mumbler may run using the default Oracle or OpenJDK JVM, but you won't see the performance gains that Graal provides. MUMBLER_HOME : The path where gradle built and installed Mumbler. It should be under ${MUMBLER_HOME}/lang/build/install/mumbler
The MUMBLER_REPO
environment variable referenced here is not used by an scripts. It signifies where the Mumbler repo was cloned on your system.
Copyright © 2014-2016 Cristian Esquivias
This program is free software: you can redistribute it and/or modify it under the terms of the GNU 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.