Skip to content

Swotfabs/doppio

 
 

Repository files navigation

Doppio: A JVM in Coffeescript

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

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

To learn more, head to the Doppio wiki.

You can also get in touch via our mailing list or via the IRC channel #plasma-umass on Freenode.

Getting & Building the Code

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

If you have Homebrew, setup.sh will try to install a bunch of dependencies automatically. Users of other package managers should check that they have:

  • node >= 0.10
  • wget
  • gnu-sed (i.e. must support the -r flag; BSD sed doesn't)

Note for Ubuntu users: The packaged version of node.js is woefully out of date, so you'll need to either build it yourself or get it another way.

Usage

To run Doppio on localhost:

make dev
./tools/server.coffee --dev

To get the optimized release version:

make release
./tools/server.coffee --release

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

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

make dev-cli
node build/dev/console/disassembler.js classes/demo/Fib
# doppio-dev -> node build/dev/console/runner.js
./doppio-dev classes/demo/Fib
./doppio-dev classes/demo/Fib 7        # pass an argument to the JVM
./doppio-dev -jar my_application.jar   # extract and run a JAR

To get the optimized version, use make release-cli. The build products can be found in build/release, and the runtime can be invoked via ./doppio.

Automated Rebuilding

bundle exec guard -i -g release # automates `make release-cli`
bundle exec guard -i -g dev # automates `make dev-cli`

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:

node build/dev/console/test_runner.js -h
node build/dev/console/test_runner.js classes/test/Strings

About

A JVM in Coffeescript.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CoffeeScript 58.5%
  • Java 40.2%
  • CSS 1.2%
  • Ruby 0.1%