Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mu-impl-ref2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mu
mu-impl-ref2
Commits
38b14422
Commit
38b14422
authored
Jun 22, 2016
by
Kunshan Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated URLs
parent
0e609cab
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
19 deletions
+19
-19
README.md
README.md
+18
-18
build.sbt
build.sbt
+1
-1
No files found.
README.md
View file @
38b14422
...
...
@@ -7,13 +7,8 @@ Version 2.2.0
This project is the current reference implementation of Mu, the micro virtual
machine designed by
[
The Micro Virtual Machine Project
](
http://microvm.org
)
.
Version 2.2.0 implements the
[
Mu Specification with experimental threadlocal
object references
](
https://github.com/microvm/microvm-spec/tree/issue52-threadlocal
)
.
This project is based on the previous works of
[
simplest-microvm-project
](
https://github.com/microvm/simplest-microvm-project
)
.
[
microvm-refimpl
](
https://github.com/microvm-project/microvm-refimpl
)
is the
previous reference implementation.
Version 2.2.0 implements the current
[
Mu
Specification
](
https://gitlab.anu.edu.au/mu/mu-spec
)
.
## How to compile
...
...
@@ -31,10 +26,16 @@ previous reference implementation.
*
Clone this repository:
```
bash
git clone git@github.com:microvm/microvm-refimpl2.git
git clone git@gitlab.anu.edu.au:mu/mu-impl-ref2.git
```
If you do not have SSH access to the ANU GitLab repositories, use the HTTPS URL:
```
bash
git clone https://gitlab.anu.edu.au/mu/mu-impl-ref2.git
```
*
In the directory
`m
icrovm-refimpl
2`
, do the following:
*
In the directory
`m
u-impl-ref
2`
, do the following:
```
bash
sbt update genSrc eclipse
...
...
@@ -120,13 +121,12 @@ and may also be used by Mu micro VM implementers as a reference to compare with.
The micro VM is implemented as an interpreter written in Scala. The main class
is
`uvm.refimpl.MicroVM`
, which implements the
`MuVM`
struct specified by the
[
client
API
](
https://github.com/microvm/microvm-spec/blob/master/uvm-client-interface.rest
)
,
but is more Scala-like. The client interacts with the micro VM via
`uvm.refimpl.MuCtx`
instances created by the
`MicroVM`
instance, which
corresponds to the
`MuCtx`
struct in the spec.
`uvm.refimpl.MuValue`
and its
subclasses implement the
`MuValue`
handles, but has a real Scala type hierarchy
and does extra type checking when converting, which is not required by the spec.
[
client API
](
https://gitlab.anu.edu.au/mu/mu-spec/blob/master/api.rst
)
, but is
more Scala-like. The client interacts with the micro VM via
`uvm.refimpl.MuCtx`
instances created by the
`MicroVM`
instance, which corresponds to the
`MuCtx`
struct in the spec.
`uvm.refimpl.MuValue`
and its subclasses implement the
`MuValue`
handles, but has a real Scala type hierarchy and does extra type
checking when converting, which is not required by the spec.
The client can also be written in C, Python or other languages that can
interface with C.
...
...
@@ -144,7 +144,7 @@ example:
-
Waiting for other Mu threads in the trap handler. The trap handler is executed
by the same thread executing the Mu IR. During trap handler, no Mu program is
executed. So if you want to use
[
watchpoints
](
https://git
hub.com/microvm/microvm-spec/blob/master/instruction-set.re
st#traps-and-watchpoints
)
[
watchpoints
](
https://git
lab.anu.edu.au/mu/mu-spec/blob/master/instruction-set.r
st#traps-and-watchpoints
)
to wait for certain Mu thread to come to a certain rendezvous point (a common
optimisation trick), you should either wait within Mu IR (not in trap
handlers) or try the high-performance Mu implementation which is still being
...
...
@@ -211,7 +211,7 @@ mark-region small object space and a mark-sweep large object space.
This reference implementation assumes it is running on x86-64 on either Linux or
OSX. It implements the
[
AMD64 Unix Native
Interface
](
https://git
hub.com/microvm/microvm-spec/blob/master/native-interface-x64-unix.re
st
)
Interface
](
https://git
lab.anu.edu.au/mu/mu-spec/blob/master/native-interface-x64-unix.r
st
)
of the specification. It can call native functions from Mu IR and let native
programs call back to Mu IR.
...
...
build.sbt
View file @
38b14422
...
...
@@ -5,7 +5,7 @@ genSrc <<= (sourceGenerators in Compile) { _.join.map(_.flatten.toList) }
organization
:=
"org.microvm"
name
:=
"m
icrovm-refimpl
2"
name
:=
"m
u-impl-ref
2"
version
:=
"2.2.0"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment