This repository contains the source code for Villain: the Racket compiler developed in CMSC 838E at the University of Maryland, College Park.
First, clone the repository, the use raco
to install the package:
git clone [email protected]:plum-umd/the-838e-compiler.git
raco pkg install the-838e-compiler/
To test:
raco test -p the-838e-compiler
To contribute, create a branch (e.g. string-dev
), and set the remote as upstream:
cd the-838e-compiler
git checkout -b 'string-dev'
git push --set-upstream origin string-dev
You can commit and push changes. When you're ready for the changes to be merged into main
, submit a pull request.
Check the Issues list for possible things to work on. If you'd like to work on something else, either discuss it on Discord or submit a new issue.
When you decide to work on an issue, assign yourself to it so others know you are working on it. Several people may decide to work on the same issue. You can coordinate your efforts on Discord. You can either work together or work on separate branches developing alternate solutions.
Code emitted by the compiler depends upon the following libraries:
-
To install this library, you can
brew install libunistring-dev
on macOS (with Homebrew) orapt-get install libunistring-dev
on Ubuntu, or you can download and compile the source code.If you are using Arch Linux, the
libunistring
package does not come with the static library oflibunistring
(suffixed.a
). You need to build it from source by$ curl -OL https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/libunistring/trunk/PKGBUILD $ echo "options=('staticlibs')" >> PKGBUILD $ makepkg -si
-
To install this library, you can download and compile the source code from this
website
. Following unzipping, below are the instructions to install GMP in a Unix-like environment.$ cd gmp-6.2.1 (or whatever release) $ ./configure $ make $ make check $ make install