This repository is the home of SPouT1.
SPouT is implemented as an extension to the espesso bytecode interpreter part of the GraalVM project.
As a result, this repository is a fork of the original GraalVM. Please visit: https://github.com/oracle/graal to find the main GraalVM source code.
This source repository is the main repository for GraalVM and includes the following components:
| Directory | Description |
|---|---|
.github/ |
Configuration files for GitHub issues, workflows, …. |
compiler/ |
[Graal compiler][reference-compiler], a modern, versatile compiler written in Java. |
espresso/ |
[Espresso][java-on-truffle], a meta-circular Java bytecode interpreter for the GraalVM. SPouT is based on espresso and all our changes are in this folder. |
java-benchmarks/ |
Java benchmarks. |
regex/ |
TRegex, a regular expression engine for other GraalVM languages. |
sdk/ |
[GraalVM SDK][graalvm-sdk], long-term supported APIs of GraalVM. |
substratevm/ |
Framework for ahead-of-time (AOT) compilation with [Native Image][native-image]. |
sulong/ |
[Sulong][reference-sulong], an engine for running LLVM bitcode on GraalVM. |
tools/ |
Tools for GraalVM languages implemented with the instrumentation framework. |
truffle/ |
GraalVM's [language implementation framework][truffle] for creating languages and tools. |
vm/ |
Components for building GraalVM distributions. |
wasm/ |
[GraalWasm][reference-graalwasm], an engine for running WebAssembly programs on GraalVM. |
GraalVM Community Edition is open source and distributed under version 2 of the GNU General Public License with the “Classpath” Exception, which are the same terms as for Java. The licenses of the individual GraalVM components are generally derivative of the license of a particular language (see the table below). GraalVM Community is free to use for any purpose - no strings attached.
| Component(s) | License |
|---|---|
| Espresso | GPL 2 |
| GraalVM Compiler, SubstrateVM, Tools, VM | GPL 2 with Classpath Exception |
| GraalVM SDK, GraalWasm, Truffle Framework, TRegex | Universal Permissive License |
| Sulong | 3-clause BSD |
Footnotes
-
Mues, Malte, Falk Howar, and Simon Dierl. "SPouT: symbolic path recording during testing-a concolic executor for the JVM." International Conference on Software Engineering and Formal Methods. Cham: Springer International Publishing, 2022. doi: 10.1007/978-3-031-17108-6_6 ↩