Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
browser
build
console
src
test
third_party
tools
.gitignore
.gitmodules
LICENSE
Makefile
README.md
startup.sh

README.md

DoppioVM: A JVM in Coffeescript

Doppio is a double shot of espresso. In this case it's also a JVM written in Coffeescript.

It began life as a Mid-term project for CS 691ST, Spring 2012 at UMass Amherst.

To try Doppio now, head to the live demo page.

Getting & Building the Code

After git clone, do

git submodule update --init --recursive

Most programs need the Java Class Library. On OS X Lion:

cd third_party/classes
unzip /System/Library/Frameworks/JavaVM.framework/Classes/classes.jar

Use Coffeescript v1.2.0 (which is the default version you get from npm). Run coffee -wc */*.coffee & to auto-generate javascript sources if you make any changes to the code.

If you want to run the console-based frontend, you'll need the optimist node.js library:

npm install optimist

Usage

To run Doppio on localhost, run . startup.sh, or start the browser frontend manually:

python -m SimpleHTTPServer 8000 &
cpp -P browser/index.html index.html
open http://localhost:8000/

The code can also be run from the console. For example:

./console/disassembler.coffee test/Println.class
./console/runner.coffee test/Println

Testing

Run the automated test-runner to check runtime and disassembler output:

make test

The tests can take a while to complete, so consider running them in parallel (make -j4).

Something went wrong with that request. Please try again.