The Eclipse OMR project is a set of open source C and C++ components that can be used to build robust language runtimes that support many different hardware and operating system platforms.
Our current components are:
gc
: Garbage collection framework for managed heapscompiler
: Components for building compiler technology, such as JIT
compilers.jitbuilder
: An easy to use high level abstraction on top of the
compiler technology.port
: Platform porting librarythread
: A cross platform pthread-like threading libraryutil
: general utilities useful for building cross platform
runtimesomrsigcompat
: Signal handling compatibility libraryomrtrace
: Tracing library for communication with IBM Health Center
monitoring toolstool
: Code generation tools for the build systemvm
: APIs to manage per-interpreter and per-thread contextsexample
: Demonstration code to show how a language runtime might
consume some Eclipse OMR componentsfvtest
: A language-independent test framework so that Eclipse
OMR components can be tested outside of a language runtimeBuild | Status |
---|---|
Windows x86-64 | |
Linux x86 | |
Linux x86-64 | |
Linux AArch64 (ARM 64-bit) | |
Linux ARM 32-bit | |
OSX x86-64 | |
Linux Power 64-bit | |
AIX Power 64-bit | |
Linux Z (s390x) 64-bit | |
z/OS (s390x) 64-bit |
The long term goal for the Eclipse OMR project is to foster an open ecosystem of language runtime developers to collaborate and collectively innovate with hardware platform designers, operating system developers, as well as tool and framework developers and to provide a robust runtime technology platform so that language implementers can much more quickly and easily create more fully featured languages to enrich the options available to programmers.
It is our community's fervent goal to be one of active contribution, improvement, and continual consumption.
All Eclipse OMR project materials are made available under the Eclipse Public License 2.0 and the Apache 2.0 license. You can choose which license you wish to follow. Please see our LICENSE file for more details.
We operate under the Eclipse Code of Conduct to promote fairness, openness, and inclusion.
If you would like to contribute to OMR, check out the contributing guide for more information. We also have curated a set of good first issues for newcomers to tackle.
The best way to get an initial understanding of the Eclipse OMR technology is to look at a 'standalone' build, which hooks Eclipse OMR up to the its testing system only.
To build standalone Eclipse OMR, run the following commands from the root of the source tree. For more detailed instructions please read BuildingWithCMake.md.
# Create a build directory and cd into it
mkdir build
cd build
# Generate the build system using cmake
cmake -Wdev -C ../cmake/caches/Travis.cmake ..
# Build (you can optionally compile in parallel by adding -j<N> to the make command)
make
# Run tests (note that no contribution should cause new test failures in testing).
# Use the `-V` option to see verbose output from the tests.
ctest [-V]
The following instructions below demonstrate the steps to build Eclipse OMR on Windows using Visual Studios. In the example Visual Studio 11 2012 Win64 is being used. You can easily switch this to the version of Visual Studio you would like to use.
# Create a build directory and cd into it
mkdir build
cd build
#generate the build system using cmake
cmake -G "Visual Studio 11 2012 Win64" ..
# Build
cmake --build .
# Run tests (note that no contribution should cause new test failures in "make test")
ctest
Copyright IBM Corp. 2016