blob: 4a35d166c11722104ef2c3d39b3ed0197aa51169 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<title>What is OMR?</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/omr/css/style.css">
<link rel="stylesheet" href="/omr/css/dropit.css">
<link rel="stylesheet" href="/omr/css/prism.css">
<link rel="stylesheet" href="/omr/css/font-awesome.min.css">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;amp;subset=latin,latin-ext">
<link href='https://fonts.googleapis.com/css?family=Roboto:700,300,500,400,100' rel='stylesheet' type='text/css'>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script data-cfasync="false" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script data-cfasync="false" src="/omr/js/app.js"></script>
<script data-cfasync="false" src="/omr/js/retina.js"></script>
<script data-cfasync="false" src="/omr/js/dropit.js"></script>
<script data-cfasync="false" src="/omr/js/prism.js"></script>
</head>
<body>
<section class="content">
<header>
<div id="mobile-menu">
<div id="nav-button" class="fa fa-bars fa-2x button"></div>
</div>
<section id="logo"><a href="/omr/" class="omr">Eclipse OMR</a>
</section>
<div id="navbar">
<div id="navdiv">
<ul id="navmenu" class="menu">
<li><a href="/omr/" id="home-menu">Home</a></li>
<li>
<a href="/omr/starter/whatisomr.html" class="active">About</a>
<ul>
<li><a href="/omr/starter/whatisomr.html">What is OMR?</a></li>
<li><a href="/omr/starter/goals.html">Project goals</a></li>
<li><a href="/omr/starter/project.html">Get involved</a></li>
</ul>
</li>
<li>
<a href="/omr/guide/building.html">Getting started</a>
<ul>
<li><a href="/omr/guide/building.html">Building</a></li>
<li><a href="/omr/guide/configuring.html">Configuring</a></li>
<li><a href="/omr/guide/testing.html">Testing your runtime</a></li>
<li><a href="/omr/guide/troubleshooting.html">Troubleshooting</a></li>
<li><a href="/omr/guide/best-practices.html">Best practices</a></li>
<li><a href="/omr/guide/coding-stds.html">Coding standards</a></li>
</ul>
</li>
<li>
<a href="/omr/reference/architecture.html">Reference</a>
<ul>
<li><a href="/omr/reference/architecture.html">Architecture</a></li>
<li><a href="/omr/reference/components.html">Components</a></li>
<li><a class="subsub" href="/omr/reference/thread.html">Thread</a></li>
<li><a class="subsub" href="/omr/reference/gc.html">GC</a></li>
<li><a class="subsub" href="/omr/reference/vm.html">VM</a></li>
<li><a class="subsub" href="/omr/reference/jit.html">Compiler</a></li>
<li><a class="subsub" href="/omr/reference/port.html">Port</a></li>
<li><a class="subsub" href="/omr/reference/tools.html">Tools</a></li>
<li><a class="subsub" href="/omr/reference/glue.html">Glue</a></li>
<li><a class="subsub" href="/omr/reference/util.html">Util</a></li>
</ul>
</li>
<li>
<a href="/omr/resources/omr-on-github.html">Resources</a>
<ul>
<li><a href="/omr/resources/omr-on-github.html">OMR on GitHub</a></li>
<li><a href="/omr/resources/presentations.html">Presentations</a></li>
<li><a href="/omr/resources/blogs.html">Blog posts</a></li>
</ul>
</li>
</ul>
<div id="eggContainer">
<div align="center">
<a href="https://projects.eclipse.org/projects/technology.omr" style="padding-right: 0px;">
<img id="incubatingIcon" align="center" src="/omr/images/incubating.png" border="0" alt="Incubation" />
</a>
</div>
<h6 id="incubateText">Incubation</h6>
</div>
</div>
</div>
</header>
<div id="overlay"></div>
<h1 id="what-is-omr">What is OMR?</h1>
<p><strong>The Eclipse OMR project</strong> consists of a highly integrated set of open source C and C++ components that can be used to build robust language runtimes that run on many different hardware and operating system platforms.</p>
<p>The core technology components include, but are not limited to: a platform porting library, a thread library, diagnostic services, monitoring services, a just-in-time compiler, and a garbage collector.</p>
<p>Other, developer-focused components, include build tools and utilities, a test framework, and demonstration code to show how a language runtime might consume Eclipse OMR components.</p>
<h1 id="why-should-i-use-it">Why should I use it?</h1>
<p>Despite decades of research and development in building languages and runtimes, almost none of the popular language runtimes share any common components. Many runtimes implement their own interface to the operating system, their own garbage collector, their own asynchronous event handling, their own diagnostic formats and so on. However, by reusing the core facilities provided by Eclipse OMR and extending those facilities to cater for your language, you can cut down on the time and effort needed for development. And of course, sharing implementation technology for language runtimes also fosters enablement and adoption of newer, modern programming languages.</p>
<p>One of the most compelling reasons to use Eclipse OMR is the pedigree of the code. Many of the components have their roots in the <strong>J9 virtual machine</strong>; a high performance, scalable, enterprise class Java virtual machine implementation that represents hundreds of person-years of effort. Today, the J9 virtual machine consumes Eclipse OMR from the open project as part of it’s build process before adding extensions that are required to make it a Java specific runtime. As such, OMR is already pervasive at an Enterprise level, operating in production environments around the world.</p>
<p>To prove that reuse is possible, here are some other consumers of the Eclipse OMR technology:</p>
<ul>
<li>The <strong>Ruby+OMR Technology Preview</strong> project also consumes the Eclipse OMR components by modifying the CRuby project.</li>
<li>A <strong>SOM++ Smalltalk</strong> runtime has been modified to use Eclipse OMR components.</li>
<li>An experimental version of <strong>CPython</strong> using Eclipse OMR components has been created but is not currently available in the open. (Our focus has been on getting this code out into the open.)</li>
</ul>
<p><strong>Licenses:</strong> All Eclipse OMR project materials are made available under the Eclipse Public License V1.0 and the Apache 2.0 license. You can choose which license you wish to follow. Please see our LICENSE file for more details.</p>
</section>
<a id="top" href="#"><img src="/omr/images/arrow.png"></a>
<footer>
<div id="f_container">
<div id="f_1">
<div class="f_icon" style="background-image: url(/omr/images/inforound.png);">
</div>
<div class="f_link_group bold">
<span class="f_link">&nbsp;<i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i>&nbsp;&nbsp;<a href="https://projects.eclipse.org/projects/technology.omr">OMR on Eclipse Technology projects</a>
</span>
<br>
<span class="f_link"><i class="fa fa-graduation-cap f_mini" aria-hidden="true"></i>&nbsp;&nbsp;<a href="https://developer.ibm.com/open/omr/">OMR on developerWorks Open</a>
</span>
</div>
</div>
<div id="f_1">
<div class="f_icon" style="background-image: url(/omr/images/GitHub-Mark-64px.png);">
</div>
<div class="f_link_group bold">
<span class="f_link"><i class="fa fa-github-alt f_mini" aria-hidden="true"></i>&nbsp;&nbsp;<a href="https://github.com/eclipse/omr">Contribute on GitHub</a>
</span>
<br>
<span class="f_link"><i class="fa fa-gavel f_mini" aria-hidden="true"></i>&nbsp;&nbsp;<a href="https://github.com/eclipse/omr/blob/master/LICENSE">OMR license on GitHub</a>
</span>
</div>
</div>
<div id="f_1">
<div class="f_icon" style="background-image: url(/omr/images/fa_thumb_up.png);">
</div>
<div class="f_link_group bold">
<span class="f_link"><i class="fa fa-twitter f_mini" aria-hidden="true"></i>&nbsp;&nbsp;<a href="https://twitter.com/eclipseomr">Follow us on Twitter</a>
</span>
<br>
<span class="f_link"><i class="fa fa-youtube-play f_mini" aria-hidden="true"></i>&nbsp;&nbsp;<a href="https://www.youtube.com/channel/UCO8MkTRrFnLefi5nqReOMMA">OMR on YouTube</a>
</span>
</div>
</div>
</div>
<!--<div id="f_container_3">
<div id="f_2">
<div align="center">
<a href="https://projects.eclipse.org/projects/technology.omr">
<img id="incubatingIcon" align="center" src="../../images/incubating.png" border="0" alt="Incubation" />
</a>
</div>
<h6 id="incubateText">Incubation</h6>
</div>
</div>-->
<div id="f_container_2">
<div id="f_1">
<div class="f_link_group bold">
<span class="f_link_2">&nbsp;<i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i>&nbsp;<a href="http://www.eclipse.org">Eclipse Foundation website</a>
</span>
<span class="f_link_2">&nbsp;<i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i>&nbsp;<a href="http://www.eclipse.org/legal/privacy.php">Privacy policy</a>
</span>
<span class="f_link_2">&nbsp;<i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i>&nbsp;<a href="http://www.eclipse.org/legal/termsofuse.php">Website terms of use</a>
</span>
<span class="f_link_2">&nbsp;<i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i>&nbsp;<a href="http://www.eclipse.org/legal/copyright.php">Copyright agent</a>
</span>
<span class="f_link_2">&nbsp;<i class="fa fa-chevron-circle-right f_mini" aria-hidden="true"></i>&nbsp;<a href="http://www.eclipse.org/legal">Legal</a>
</span>
</div>
</div>
</div>
<!--
<div id="footer-content">
<div id="sponsor">OMR is an <a href="https://projects.eclipse.org/projects/technology.omr">Eclipse Technology project</a>. </div>
<div id="git"><a href="https://github.com/eclipse/omr"> Contribute on GitHub</a>
</div>
<div id="twitter"><a href="https://twitter.com/eclipseomr"><i class="fa fa-twitter" id="tw-icon" aria-hidden="true"></i> Follow us on Twitter</a>
</div>
</div>
-->
</footer>
</body>
</html>