Code Monkey home page Code Monkey logo

jennychenyj / omr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eclipse/omr

0.0 1.0 0.0 36.25 MB

Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes

Home Page: http://www.eclipse.org/omr

License: Other

Makefile 1.30% C++ 84.67% C 10.16% Shell 0.06% Assembly 1.25% Objective-C 0.06% M4 0.07% TeX 0.98% HTML 0.09% CMake 0.85% Lex 0.01% Yacc 0.01% PowerShell 0.01% Ruby 0.01% Python 0.32% Perl 0.07% sed 0.01% Dockerfile 0.01% Awk 0.01% Pawn 0.08%

omr's Introduction

Eclipse OMR

Build Status
Linux x86-64 Lint (Travis) Travis Overall Status
Windows x86 (Appveyor) Appveyor Status
Windows x86-64 Windows x86-64 Status
Linux x86 Build Status
Linux x86-64 Linux x86-64 Status
Linux x86-64 Compressed Pointers Build Status
Linux AArch64 (ARM 64-bit) Build-linux_aarch64 Status
Linux ARM 32-bit Build-linux_arm Status
OSX x86-64 Build Status
Linux Power 64-bit Build-linux_ppc-64_le_gcc Status
AIX Power 64-bit Build-aix_ppc-64 Status
Linux Z (s390x) 64-bit Build-linux_390-64 Status

What Is Eclipse OMR?

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 heaps
  • compiler: 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 library
  • thread: A cross platform pthread-like threading library
  • util: general utilities useful for building cross platform runtimes
  • omrsigcompat: Signal handling compatibility library
  • omrtrace: Tracing library for communication with IBM Health Center monitoring tools
  • tool: Code generation tools for the build system
  • vm: APIs to manage per-interpreter and per-thread contexts
  • example: Demonstration code to show how a language runtime might consume some Eclipse OMR components
  • fvtest: A language-independent test framework so that Eclipse OMR components can be tested outside of a language runtime

What's the goal?

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.

We will be operating under the Eclipse Code of Conduct to promote fairness, openness, and inclusion.

Who is using Eclipse OMR?

  • The most comprehensive consumer of the Eclipse OMR technology is the Eclipse OpenJ9 Virtual Machine: a high performance, scalable, enterprise class Java Virtual Machine implementation representing hundreds of person years of effort, built on top of the core technologies provided by Eclipse OMR.
  • The Ruby+OMR Technology Preview has used Eclipse OMR components to add a JIT compiler to the CRuby implementation, and to experiment with replacing the garbage collector in CRuby.
  • A SOM++ Smalltalk runtime has also been modified to use Eclipse OMR componentry.
  • An experimental version of CPython using Eclipse OMR components has also been created but is not yet available in the open. (Our focus has been dominated by getting this code out into the open!)

What's the licence?

License License

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.

What's being worked on?

There are some active contribution projects underway right now:

  • Documentation: code comments are great, but we need more overview documentation so we're writing that
  • FAQ: Frequently Asked Questions from real people's questions (request: ask questions!)
  • Beginner issues: relatively simple but useful work items meant for people new to the project.
  • diag: more diagnostic support for language runtimes to aid developers and users
  • hcagent: the core code for the IBM Health Center agent for interfacing to a runtime
  • gc: adding generational and other GC policies

How Do I Interact With the Community?

  • Join the Eclipse OMR developer community mailing list. The community typically uses this list for project announcements and administrative discussions amongst committers. Questions are welcome here as well.

  • Join the Eclipse OMR community Slack workspace. You can join channels that interest you, ask questions, and receive answers from subject matter experts.

  • Ask a question or start a discussion via a GitHub issue.

How Do I Use it?

How to Build Standalone Eclipse OMR

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.

Basic configuration and compile

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 ..

# 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]

Building Eclipse OMR on Windows using Visual Studio

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

Where can I learn more?

Presentations about Eclipse OMR

Blog Posts about OMR technologies

(c) Copyright IBM Corp. 2016, 2019

omr's People

Contributors

0xdaryl avatar charliegracie avatar fjeremic avatar vijaysun-omr avatar leonardo2718 avatar mstoodle avatar youngar avatar rwy7 avatar babsingh avatar knn-k avatar dnakamura avatar keithc-ca avatar andrewcraik avatar amicic avatar samolisov avatar jdmpapin avatar jason-hall avatar varun-garg avatar lmaisons avatar wbh123456 avatar dhong44 avatar nigelyiboyu avatar dchopra001 avatar shivammittal99 avatar dmitripivkine avatar jjohnst-us avatar danheidinga avatar r30shah avatar sajidahmed21 avatar amankumar1 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.