{"id":13466639,"url":"https://github.com/eclipse-omr/omr","last_synced_at":"2025-03-26T00:31:23.974Z","repository":{"id":37502773,"uuid":"53077478","full_name":"eclipse-omr/omr","owner":"eclipse-omr","description":"Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes","archived":false,"fork":false,"pushed_at":"2025-03-19T14:14:16.000Z","size":85368,"stargazers_count":955,"open_issues_count":913,"forks_count":400,"subscribers_count":57,"default_branch":"master","last_synced_at":"2025-03-19T15:26:29.105Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"http://www.eclipse.org/omr","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-omr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-03T19:34:17.000Z","updated_at":"2025-03-19T14:14:29.000Z","dependencies_parsed_at":"2024-10-23T02:38:58.942Z","dependency_job_id":"9bc75540-a088-4d9e-acb8-52097facc8d2","html_url":"https://github.com/eclipse-omr/omr","commit_stats":null,"previous_names":["eclipse-omr/omr","eclipse/omr"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-omr%2Fomr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-omr%2Fomr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-omr%2Fomr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-omr%2Fomr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-omr","download_url":"https://codeload.github.com/eclipse-omr/omr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245566097,"owners_count":20636390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest"],"created_at":"2024-07-31T15:00:47.597Z","updated_at":"2025-03-26T00:31:23.967Z","avatar_url":"https://github.com/eclipse-omr.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"\u003c!--\nCopyright IBM Corp. and others 2016\n\nThis program and the accompanying materials are made available under\nthe terms of the Eclipse Public License 2.0 which accompanies this\ndistribution and is available at https://www.eclipse.org/legal/epl-2.0/\nor the Apache License, Version 2.0 which accompanies this distribution and\nis available at https://www.apache.org/licenses/LICENSE-2.0.\n\nThis Source Code may also be made available under the following\nSecondary Licenses when the conditions for such availability set\nforth in the Eclipse Public License, v. 2.0 are satisfied: GNU\nGeneral Public License, version 2 with the GNU Classpath\nException [1] and GNU General Public License, version 2 with the\nOpenJDK Assembly Exception [2].\n\n[1] https://www.gnu.org/software/classpath/license.html\n[2] https://openjdk.org/legal/assembly-exception.html\n\nSPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0\n--\u003e\n\n# Eclipse OMR\n\nThe Eclipse OMR project is a set of open source C and C++ components that can\nbe used to build robust language runtimes that support many different hardware\nand operating system platforms.\n\nOur current components are:\n\n* **`gc`**:             Garbage collection framework for managed heaps\n* **`compiler`**:       Components for building compiler technology, such as JIT\n                        compilers.\n* **`jitbuilder`**:     An easy to use high level abstraction on top of the\n                        compiler technology.\n* **`port`**:           Platform porting library\n* **`thread`**:         A cross platform pthread-like threading library\n* **`util`**:           general utilities useful for building cross platform\n                        runtimes\n* **`omrsigcompat`**:   Signal handling compatibility library\n* **`omrtrace`**:       Tracing library for communication with IBM Health Center\n                        monitoring tools\n* **`tool`**:           Code generation tools for the build system\n* **`vm`**:             APIs to manage per-interpreter and per-thread contexts\n* **`example`**:        Demonstration code to show how a language runtime might\n                        consume some Eclipse OMR components\n* **`fvtest`**:         A language-independent test framework so that Eclipse\n                        OMR components can be tested outside of a language runtime\n\nBuild Status\n============\n\n| Build | Status |\n| ---------------------- | -------------------- |\n| Windows x86-64 | [![Windows x86-64 Status](https://ci.eclipse.org/omr/job/Build-win_x86-64/badge/icon)](https://ci.eclipse.org/omr/job/Build-win_x86-64/) |\n| Linux x86 | [![Build Status](https://ci.eclipse.org/omr/job/Build-linux_x86/badge/icon)](https://ci.eclipse.org/omr/job/Build-linux_x86/) |\n| Linux x86-64 | [![Linux x86-64 Status](https://ci.eclipse.org/omr/job/Build-linux_x86-64/badge/icon)](https://ci.eclipse.org/omr/job/Build-linux_x86-64/) |\n| Linux AArch64 (ARM 64-bit) | [![Build-linux_aarch64 Status](https://ci.eclipse.org/omr/job/Build-linux_aarch64/badge/icon)](https://ci.eclipse.org/omr/job/Build-linux_aarch64/) |\n| Linux ARM 32-bit | [![Build-linux_arm Status](https://ci.eclipse.org/omr/job/Build-linux_arm/badge/icon)](https://ci.eclipse.org/omr/job/Build-linux_arm/) |\n| OSX x86-64 | [![Build Status](https://ci.eclipse.org/omr/job/Build-osx_x86-64/badge/icon)](https://ci.eclipse.org/omr/job/Build-osx_x86-64/) |\n| Linux Power 64-bit | [![Build-linux_ppc-64_le_gcc Status](https://ci.eclipse.org/omr/job/Build-linux_ppc-64_le_gcc/badge/icon)](https://ci.eclipse.org/omr/job/Build-linux_ppc-64_le_gcc/) |\n| AIX Power 64-bit | [![Build-aix_ppc-64 Status](https://ci.eclipse.org/omr/job/Build-aix_ppc-64/badge/icon)](https://ci.eclipse.org/omr/job/Build-aix_ppc-64/) |\n| Linux Z (s390x) 64-bit | [![Build-linux_390-64 Status](https://ci.eclipse.org/omr/job/Build-linux_390-64/badge/icon)](https://ci.eclipse.org/omr/job/Build-linux_390-64/) |\n| z/OS (s390x) 64-bit | [![Build-zOS_390-64 Status](https://ci.eclipse.org/omr/job/Build-zOS_390-64/badge/icon)](https://ci.eclipse.org/omr/job/Build-zOS_390-64/) |\n\nWhat's the goal?\n================\n\nThe long term goal for the Eclipse OMR project is to foster an open ecosystem of\nlanguage runtime developers to collaborate and collectively innovate with\nhardware platform designers, operating system developers, as well as tool and\nframework developers and to provide a robust runtime technology platform so that\nlanguage implementers can much more quickly and easily create more fully\nfeatured languages to enrich the options available to programmers.\n\nIt is our community's fervent goal to be one of active contribution, improvement,\nand continual consumption.\n\nWho is using Eclipse OMR?\n=========================\n\n* The most comprehensive consumer of the Eclipse OMR technology is the [Eclipse\n  OpenJ9 Virtual Machine](https://github.com/eclipse-openj9/openj9): a high\n  performance, scalable, enterprise class Java Virtual Machine implementation\n  representing hundreds of person years of effort, built on top of the core\n  technologies provided by Eclipse OMR.\n* The Ruby+OMR Technology Preview has used Eclipse OMR components to add a JIT\n  compiler to the CRuby implementation, and to experiment with replacing the\n  garbage collector in CRuby.\n* A SOM++ Smalltalk runtime has also been modified to use Eclipse OMR\n  componentry.\n* An experimental version of CPython using Eclipse OMR components\n  has also been created but is not yet available in the open. (Our focus\n  has been dominated by getting this code out into the open!)\n\n\nWhat's the licence?\n===================\n\n[![License](https://img.shields.io/badge/License-EPL%202.0-green.svg)](https://opensource.org/licenses/EPL-2.0)\n[![License](https://img.shields.io/badge/License-APL%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0)\n\nAll Eclipse OMR project materials are made available under the Eclipse Public\nLicense 2.0 and the Apache 2.0 license. You can choose which license you wish\nto follow.  Please see our LICENSE file for more details.\n\nHow Do I Interact With the Community?\n=====================================\n\nWe operate under the [Eclipse Code of Conduct][coc] to promote fairness, openness, and inclusion.\n\n[coc]: https://eclipse.org/org/documents/Community_Code_of_Conduct.php\n\n* Join the Eclipse OMR community [Slack workspace](https://join.slack.com/t/eclipse-omr/shared_invite/enQtMzg2ODIwODc4MTAyLWFiMzZkNmNhODc5OTM0MjgwZDdjNzg5YTg5NzM0ZmEzNTIyMGViMjk1YjYwNzczYjYwODc4YTM5MDk0NjIxMjg).  You can join channels that interest you, ask questions, and receive answers from subject matter experts.\n* Join the Eclipse OMR developer community [mailing list](https://accounts.eclipse.org/mailing-list/omr-dev).\n  The community primarily uses this list for project announcements and administrative\n  discussions amongst committers.  Questions are welcome here as well.\n* Ask a question or start a discussion via a [GitHub issue](https://github.com/eclipse-omr/omr/issues).\n\nContributing\n============\n\nIf you would like to contribute to OMR, check out the [contributing guide][contrib] for more information.\nWe also have curated a set of [good first issues][beg] for newcomers to tackle.\n\n[contrib]: CONTRIBUTING.md\n[beg]: https://github.com/eclipse-omr/omr/issues?q=is%3Aopen+is%3Aissue+label%3A%22good%20first%20issue%22\n\nHow Do I Use it?\n================\n\n## How to Build Standalone Eclipse OMR\n\nThe best way to get an initial understanding of the Eclipse OMR technology is to\nlook at a 'standalone' build, which hooks Eclipse OMR up to the its testing system\nonly.\n\n### Basic configuration and compile\n\nTo build standalone Eclipse OMR, run the following commands from the root of the\nsource tree. For more detailed instructions please read [BuildingWithCMake.md](doc/BuildingWithCMake.md).\n\n    # Create a build directory and cd into it\n    mkdir build\n    cd build\n\n    # Generate the build system using cmake\n    cmake -Wdev -C ../cmake/caches/Travis.cmake ..\n\n    # Build (you can optionally compile in parallel by adding -j\u003cN\u003e to the make command)\n    make\n\n    # Run tests (note that no contribution should cause new test failures in testing).\n    # Use the `-V` option to see verbose output from the tests.\n    ctest [-V]\n\n### Building Eclipse OMR on Windows using Visual Studio\n\nThe following instructions below demonstrate the steps to build Eclipse OMR on Windows\nusing Visual Studios. In the example Visual Studio 11 2012 Win64 is being used.\nYou can easily switch this to the version of Visual Studio you would like to use.\n\n    # Create a build directory and cd into it\n    mkdir build\n    cd build\n\n    #generate the build system using cmake\n    cmake -G \"Visual Studio 11 2012 Win64\" ..\n\n    # Build\n    cmake --build .\n\n    # Run tests (note that no contribution should cause new test failures in \"make test\")\n    ctest\n\nWhere can I learn more?\n===============================\n\nPresentations about Eclipse OMR\n-------------------------------\n\n* Mark Stoodley's talk at the JVM Languages Summit in August, 2015:\n  [A VM is a VM is a VM: The Secret Path to High Performance Multi-Language Runtimes](https://www.youtube.com/watch?v=kOnyJurioyw)\n* Daryl Maier's slides from Java One in October, 2015:\n  [Beyond the Coffee Cup: Leveraging Java Runtime Technologies for the Polyglot](http://www.slideshare.net/0xdaryl/javaone-2015-con7547-beyond-the-coffee-cup-leveraging-java-runtime-technologies-for-polyglot?related=1)\n* Charlie Gracie's slides from Java One in October, 2015:\n  [What's in an Object? Java Garbage Collection for the Polyglot](http://www.slideshare.net/charliegracie1/javaone-whats-in-an-object)\n* Angela Lin, Robert Young, Craig Lehmann and Xiaoli Liang CASCON Workshop in November, 2015\n  [Building Your Own Runtime](https://ibm.box.com/s/7xdg25we2ezmdjjbqdys30d7dl1iyo49)\n* Charlie Gracie's talk from FOSDEM in February, 2016:\n  [Ruby and OMR: Experiments in utilizing OMR technologies in MRI](http://bofh.nikhef.nl/events/FOSDEM/2016/h2213/ruby-and-omr.mp4)\n* Charlie Gracie's slides from jFokus in February, 2016\n  [A JVMs Journey into Polyglot Runtimes](https://t.co/efCKf6aCB4)\n* Mark Stoodley's slides from EclipseCON in March, 2016\n  [Eclipse OMR: a modern toolkit for building language runtimes](http://www.slideshare.net/MarkStoodley/omr-a-modern-toolkit-for-building-language-runtimes)\n\nBlog Posts about OMR technologies\n---------------------------------\n\n* [Introducing Eclipse OMR: Building Language Runtimes](https://developer.ibm.com/code/2016/03/08/introducing-omr-building-language-runtimes/)\n* [JitBuilder Library and Eclipse OMR: Just-In-Time Compilers made easy](https://developer.ibm.com/code/2016/07/19/jitbuilder-library-and-eclipse-omr-just-in-time-compilers-made-easy/)\n\nCopyright IBM Corp. 2016\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-omr%2Fomr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-omr%2Fomr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-omr%2Fomr/lists"}