-
Notifications
You must be signed in to change notification settings - Fork 0
A dynamic compiler for the Universal Machine of the Cult of the Bound Variable.
License
jld/umx
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
UMX, a dynamic compiler for the Universal Machine of the Cult of the Bound Variable. (See http://boundvariable.org/um-spec.txt for the machine specification or http://boundvariable.org/task.shtml for programs and more context or http://boundvariable.org/ for general info.) Noteworthy optimizations: * Local constant propagation/folding to make use of immediate operands present on modern hardware (including and especially control transfers) * Global forward zero/nonzero propagation to remove dynamic zeroness checks from "load program" and other memory references * Idiom-recognition for conditional branches * Local register allocation on low-register host platforms * Platter-level write-protect and execute-protect of the program array, allowing safe efficient support of fine-grained code/data interleaving * Customized memory allocator with inlined fast-case allocation and freeing Requires: * A Unix-like operating system. (Mostly for mmap(2).) * Currently, an i386-compatible CPU. Other architectures are vaguely planned. * And the makefile kind of assumes GCC flags, but that's easy enough to fix. How to use: * If everything works, "make" should build it. * And then ./umx with one or more program files as arguments. (They'll be concatenated -- useful for um.um.) * Remember to regenerate the makefile when changing dependencies. (GNU make should do this automagically.) Has been run on: * Linux/{i386,amd64} * NetBSD/{i386,amd64} * Solaris/x86_64 (gcc and Sun cc) * Mac OS X, i386 (but not recently) * VMware ESXi, with the Linux binary (don't try this at home)
About
A dynamic compiler for the Universal Machine of the Cult of the Bound Variable.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published