README.md 2.37 KB
Newer Older
1 2
MicroVM Reference Implementation 2
==================================
Kunshan Wang's avatar
Kunshan Wang committed
3

Kunshan Wang's avatar
Kunshan Wang committed
4 5
This project is the current reference implementation of MicroVM. This project
implements the current MicroVM specification in
6
[microvm-spec](https://github.com/microvm/microvm-spec/wiki)
Kunshan Wang's avatar
Kunshan Wang committed
7

Kunshan Wang's avatar
Kunshan Wang committed
8 9
This project is based on the
[simplest-microvm-project](https://github.com/microvm/simplest-microvm-project).
10 11
[microvm-refimpl](https://github.com/microvm-project/microvm-refimpl) is the
previous reference implementation.
Kunshan Wang's avatar
Kunshan Wang committed
12 13 14 15

How to compile
--------------

Kunshan Wang's avatar
Kunshan Wang committed
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
**For the impatient**:

* If you use Mac, install [Homebrew](http://brew.sh/).
* Install [Scala](http://scala-lang.org/) 2.11. If you use Mac and Homebrew,
  `brew install scala`.
* Install [sbt](http://www.scala-sbt.org/) 0.13. If you use Mac and Homebrew,
  `brew install sbt`.
* Install [Scala IDE](http://scala-ide.org/) 4.0 (Eclipse with pre-installed
  plugins for Scala).
* Clone this repository:

```bash
git clone git@github.com:microvm/microvm-refimpl2.git
```

* In the directory `microvm-refimpl2`, do the following:

```bash
sbt update
sbt antlr4:antlr4Generate
sbt eclipse
```

* Open Scala IDE and import the generated project as "existing project into
  workspace".

**Detailed guide**:

44 45 46 47
You need [Scala](http://scala-lang.org/) 2.11 and
[sbt](http://www.scala-sbt.org/) 0.13. It is recommended to install them using
the package manager of your operating system or distribution (including apt-get,
yum, pacman, etc. for GNU/Linux distributions and Homebrew for Mac OS X).
Kunshan Wang's avatar
Kunshan Wang committed
48

49 50
To download all dependencies from the Maven central repository, invoke `sbt
update`.
Kunshan Wang's avatar
Kunshan Wang committed
51

52 53 54 55
To generate the MicroVM IR parser from its Antlr grammar, invoke `sbt
antlr4:antlr4Generate`. The generated sources will be in
`target/scala-2.11/src_managed`. Make sure your IDE can see those generated
sources.
Kunshan Wang's avatar
Kunshan Wang committed
56 57 58

To compile, invoke `sbt compile` or do this in your favourite IDE.

59 60 61 62 63
To generate an Eclipse project, install the [sbt-eclipse
plugin](https://github.com/typesafehub/sbteclipse) and invoke `sbt eclipse`.

IntelliJ IDEA has plugins for Scala and SBT. Make sure you don't commit `.idea`
or generated project files into the repository.
Kunshan Wang's avatar
Kunshan Wang committed
64 65 66 67 68 69 70 71 72 73 74 75

Author and Copyright
--------------------

This project is created by Kunshan Wang, Yi Lin, Steve Blackburn, Antony
Hosking, Michael Norrish.

This project is released under the CC-BY-SA license. See `LICENSE`.

Contact
-------

76 77 78 79 80
Kunshan Wang <kunshan.wang@anu.edu.au>

<!--
vim: tw=80
-->