Skip to content
A JVM in Coffeescript.
CoffeeScript Java Ruby
Pull request Compare This branch is 1630 commits behind plasma-umass:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
browser
classes
console
src
tools
vendor
.gitignore
.gitmodules
Gemfile
Guardfile
LICENSE
Makefile
README.md
favicon.ico

README.md

Doppio: 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

git clone https://github.com/int3/doppio.git
cd doppio
tools/setup.sh

Usage

To run Doppio on localhost:

make dev
tools/webrick.rb --dev

To get the optimized release version:

make release
tools/webrick.rb --release

Then point your browser to http://localhost:8000/.

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

console/disassembler.coffee classes/demo/Fib
console/runner.coffee classes/demo/Fib
console/runner.coffee classes/demo/Fib --java=7  # passes an argument to the JVM
console/runner.coffee --jar my_application.jar   # extracts and runs a JAR

To get the optimized version, use make opt. The optimized build products can be found in build/opt.

Automated Rebuilding

For make opt, we have

bundle exec guard -i

For console debug mode, simply use coffee -wc */*.coffee.

The front-end currently lacks an auto-rebuild system.

Running Tests

Run all tests:

make test -j4

Run a specific test, or test with different options:

console/test_runner.coffee -h
console/test_runner.coffee classes/test/Strings
Something went wrong with that request. Please try again.