Skip to content

Commit

Permalink
Merge PR #382: Update docs a bit, and add recent papers using SOMns
Browse files Browse the repository at this point in the history
  • Loading branch information
smarr committed Apr 21, 2021
2 parents 6a549e3 + 30fd9cf commit 961d8f6
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 32 deletions.
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ and on [ReadTheDocs][RTD].
Development Status
------------------

Active development of SOMns happens on the `dev` branch [![Build Status](https://travis-ci.org/smarr/SOMns.png?branch=dev)](https://travis-ci.org/smarr/SOMns/tree/dev).
Active development of SOMns happens on the `dev` branch ![Build Status](https://github.com/smarr/SOMns/actions/workflows/ci.yml/badge.svg?branch=dev).

The latest release is reflected by the `release` branch [![Build Status](https://travis-ci.org/smarr/SOMns.png?branch=release)](https://travis-ci.org/smarr/SOMns).
The latest release is reflected by the `release` branch ![Build Status](https://github.com/smarr/SOMns/actions/workflows/ci.yml/badge.svg?branch=release).

Changes and releases are documented in our [CHANGELOG.md][cl].

Expand All @@ -122,6 +122,12 @@ concurrent programming models, their interactions, and tooling for debugging.

Related papers:

- [Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record & Replay](https://doi.org/10.22152/programming-journal.org/2021/5/14),
D. Aumayr, S. Marr, S. Kaleba, E. Gonzalez Boix, H. Mössenböck; <Programming>'21.

- [Asynchronous Snapshots of Actor Systems for Latency-Sensitive Applications](https://stefan-marr.de/downloads/mplr19-aumayr-et-al-asynchronous-snapshots-of-actor-systems-for-latency-sensitive-applications.pdf),
D. Aumayr, S. Marr, E. Gonzalez Boix, H. Mössenböck; MPLR'19.

- [Transient Typechecks are (Almost) Free](https://stefan-marr.de/downloads/ecoop19-roberts-et-al-transient-typechecks-are-almost-free.pdf),
R. Roberts, S. Marr, M. Homer, J. Noble; ECOOP'19.

Expand Down
23 changes: 2 additions & 21 deletions docs/basic-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,10 @@ A brief overview for a basic development setup for SOMns.

## Minimal Software Requirements

SOMns works on Java 8+JVMCI, Java 9, 10 and 11, uses Ant as a build system,
SOMns works on Java 8 or later, uses Ant as a build system,
git as source control system, and Python for a launcher script.

For performance, SOMns relies on the Graal compiler using the JVMCI,
which is present by default in Java starting from Java 9.
To use Java 8, one needs to use the [Oracle Labs JDK 8](https://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html) instead of the default JDK 8.

Although SOMns can be used with Java 9, 10, and 11, the Substrate VM dependency
can be compiled so far only using JDK 8+JVMCI. To work around this problem,
the build process includes two environment variables, `JAVA_HOME` and `JVMCI_HOME`.
`JVMCI_HOME` must point to the JDK 8+JVMCI home directory,
while `JAVA_HOME` can point to a standard JDK 8 or later.

We test SOMns on Linux and macOS (fully under JDK 8+JVMCI, and in Java 11 mixed
with Java 8+JVMCI). Windows is not currently supported.
We test SOMns on Linux and macOS. Windows is not currently supported.

On Ubuntu, the following instructions will install the necessary dependencies,
in this case JDK 11:
Expand All @@ -42,14 +31,6 @@ dependencies with similar instructions.
In addition to the above dependencies, the [Oracle Labs JDK 8](https://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html)
has to be installed.

The environment variables `JAVA_HOME` and `JVMCI_HOME` have also to be set,
so that `JVMCI_HOME` points to a JDK 8 + JVMCI and `JAVA_HOME` to the desired Java version.
On a bash-compatible shell on macOS, the commands would be similar to:

```bash
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
export JVMCI_HOME=/Library/Java/JavaVirtualMachines/labsjdk1.8.0_192-jvmci-0.53/Contents/Home
```

## Getting the Code and Running Hello World

Expand Down
6 changes: 2 additions & 4 deletions docs/dev-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ which is needed for the Kómpos Web Debugger.
On Ubuntu, the necessary software can be installed with:

```bash
## First, register the Node.js package repository
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt install npm nodejs
```

Expand Down Expand Up @@ -41,7 +39,7 @@ Eclipse Project outline.
SOMns is currently developed with Eclipse. While other Java IDEs can also be
used, for brevity, we'll focus on Eclipse only.

At the time of writing, I am using [Eclipse Oxygen 4.7](https://eclipse.org/downloads/).
At the time of writing, I am using [Eclipse 2021-03](https://eclipse.org/downloads/).
Please also install the **Eclipse Checkstyle Plugin** from the [Eclipse Marketplace](http://eclipse-cs.sourceforge.net/#!/install).

For development, we also need to setup all Eclipse projects:
Expand Down Expand Up @@ -84,7 +82,7 @@ in Eclipse. After starting SOMns, it should tell you that it is waiting on port

A brief list of steps:

1. Install software dependencies: Ant, git, Java 10, Eclipse 4.7 (or later),
1. Install software dependencies: Ant, git, Java 10, Eclipse 2021-03 (or later),
VS Code 1.21 (or later), Node.js, NPM, Graal JIT compiler

2. Create Truffle Eclipse projects: `ant ideinit`
Expand Down
13 changes: 8 additions & 5 deletions docs/infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,23 @@ See the [STM pull request](https://github.com/smarr/SOMns/pull/81#pullrequestrev
## Development Support

**Continuous Integration:** To automatically run unit tests for the interpreter, SOMns, and the debugger,
we use [Travis CI](https://travis-ci.org/smarr/SOMns/builds) (see `.travis.yml`)
we use [GitHub Actions](https://github.com/smarr/SOMns/actions) (see `.github/workflows/ci.yml`)
as well as a private GitLab instance to run benchmarks (see `.gitlab-ci.yml`).

In case you forked SOMns on GitHub for your own work, please consider [enabling Travis CI](https://docs.travis-ci.com/user/getting-started/).
The current build status of the release branch is: ![Build Status](https://github.com/smarr/SOMns/actions/workflows/ci.yml/badge.svg?branch=release).

The current build status of the release branch is: [![Build Status](https://travis-ci.org/smarr/SOMns.png?branch=release)](https://travis-ci.org/smarr/SOMns)
The status of the development branch `dev` is: ![Build Status](https://github.com/smarr/SOMns/actions/workflows/ci.yml/badge.svg?branch=dev).

Active development of SOMns happens on the `dev` branch

The latest release is reflected by the `release` branch .

The status of the development branch `dev` is: [![Build Status](https://travis-ci.org/smarr/SOMns.png?branch=dev)](https://travis-ci.org/smarr/SOMns/tree/dev).

**Performance Tracking:**
Since one goal of SOMns is to be a platform for research on concurrency with
performance close to state-of-the-art JVMs, we continuously track benchmark
performance, for startup as well as peak performance with
[Codespeed](http://somns-speed.stefan-marr.de/timeline/#/?exe=14,23,19,21,22,20,16,17,15,18&base=none&ben=peak.Havlak&env=1&revs=10&equid=off).
[ReBenchDB](https://rebench.stefan-marr.de/#SOMns).
It is run on every change to the dev branch, and can be used to track and
compare performance of experimental changes as well.

Expand Down

3 comments on commit 961d8f6

@rebenchdb
Copy link

@rebenchdb rebenchdb bot commented on 961d8f6 Apr 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performance changes for 7ebaa55...961d8f6

Summary Over All Benchmarks
Summary Over All Benchmarks

Full Report

@rebenchdb
Copy link

@rebenchdb rebenchdb bot commented on 961d8f6 Apr 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performance changes for 7ebaa55...961d8f6

Summary Over All Benchmarks
Summary Over All Benchmarks

Full Report

@rebenchdb
Copy link

@rebenchdb rebenchdb bot commented on 961d8f6 Apr 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performance changes for 7ebaa55...961d8f6

Summary Over All Benchmarks
Summary Over All Benchmarks

Full Report

Please sign in to comment.