<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki.apidesign.org/skins/common/feed.css?116"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.apidesign.org/index.php?action=history&amp;feed=atom&amp;title=Dual_JVM</id>
		<title>Dual JVM - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.apidesign.org/index.php?action=history&amp;feed=atom&amp;title=Dual_JVM"/>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;action=history"/>
		<updated>2026-04-23T17:14:06Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.12.0rc1</generator>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10884&amp;oldid=prev</id>
		<title>JaroslavTulach at 08:20, 22 April 2026</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10884&amp;oldid=prev"/>
				<updated>2026-04-22T08:20:38Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:20, 22 April 2026&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=== [[Apache]] Arrow ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The essential use-case was driven by the need to exchange columnar data between those two JVMs. We decided to support zero copy exchange of data (mostly) in the Apache Arrow format between those two JVMs. Performance seems to be sufficiently good and the format allows us to integrate with other Arrow-ready systems like Pandas when the time comes.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The essential use-case was driven by the need to exchange columnar data between those two JVMs. We decided to support zero copy exchange of data (mostly) in the Apache Arrow format between those two JVMs. Performance seems to be sufficiently good and the format allows us to integrate with other Arrow-ready systems like Pandas when the time comes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10883&amp;oldid=prev</id>
		<title>JaroslavTulach at 08:20, 22 April 2026</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10883&amp;oldid=prev"/>
				<updated>2026-04-22T08:20:15Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:20, 22 April 2026&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The essential use-case was driven by the need to exchange columnar data between those two JVMs. We decided to support zero copy exchange of data (mostly) in the Apache Arrow format between those two JVMs. Performance seems to be sufficiently good and the format allows us to integrate with other Arrow-ready systems like Pandas when the time comes.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The essential use-case was driven by the need to exchange columnar data between those two JVMs. We decided to support zero copy exchange of data (mostly) in the Apache Arrow format between those two JVMs. Performance seems to be sufficiently good and the format allows us to integrate with other Arrow-ready systems like Pandas when the time comes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Pros: similar system was an enterprise only feature called GraalVM Isolates&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Pros: similar system was an enterprise only feature called GraalVM Isolates&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Cons: the Isolates are being open sourced and further work may be needed to align with them&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;Cons: the Isolates are being open sourced and further work may be needed to align with them&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10882&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Dual JVM Mode */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10882&amp;oldid=prev"/>
				<updated>2026-04-22T06:43:07Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Dual JVM Mode&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 06:43, 22 April 2026&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;==== Dual &lt;/del&gt;JVM &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Mode ====&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;A heroic effort was needed to marry the fast start of the [[Enso]] engine (to be attributed to AOT compilation) with the need to dynamically load &lt;/ins&gt;JVM &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;classes. The effort is being called a ''&amp;quot;dual JVM&amp;quot;'' (see [https://docs.google.com/presentation/d/1f0ygesiiUbMe3rEXVonDPzLI0TyKIWkMeLyhh4okkKE slides]) because there are two [[Java]] virtual machines running in the single [[Enso]] process communicating effectively with each other.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;A heroic effort was needed to marry the fast start of the [[Enso]] engine (to be attributed to AOT compilation) with the need to dynamically load JVM classes. The effort is being called a [https://docs.google.com/presentation/d/1f0ygesiiUbMe3rEXVonDPzLI0TyKIWkMeLyhh4okkKE dual JVM] because there are two Java virtual machines running in the single Enso process communicating effectively with each other.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The essential use-case was driven by the need to exchange columnar data between those two JVMs. We decided to support zero copy exchange of data (mostly) in the Apache Arrow format between those two JVMs. Performance seems to be sufficiently good and the format allows us to integrate with other Arrow-ready systems like Pandas when the time comes.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The essential use-case was driven by the need to exchange columnar data between those two JVMs. We decided to support zero copy exchange of data (mostly) in the Apache Arrow format between those two JVMs. Performance seems to be sufficiently good and the format allows us to integrate with other Arrow-ready systems like Pandas when the time comes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10881&amp;oldid=prev</id>
		<title>JaroslavTulach: New page: ==== Dual JVM Mode ====  A heroic effort was needed to marry the fast start of the Enso engine (to be attributed to AOT compilation) with the need to dynamically load JVM classes. The ...</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Dual_JVM&amp;diff=10881&amp;oldid=prev"/>
				<updated>2026-04-22T06:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;New page: ==== Dual JVM Mode ====  A heroic effort was needed to marry the fast start of the &lt;a href=&quot;/wiki/Enso&quot; title=&quot;Enso&quot;&gt;Enso&lt;/a&gt; engine (to be attributed to AOT compilation) with the need to dynamically load JVM classes. The ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==== Dual JVM Mode ====&lt;br /&gt;
&lt;br /&gt;
A heroic effort was needed to marry the fast start of the [[Enso]] engine (to be attributed to AOT compilation) with the need to dynamically load JVM classes. The effort is being called a [https://docs.google.com/presentation/d/1f0ygesiiUbMe3rEXVonDPzLI0TyKIWkMeLyhh4okkKE dual JVM] because there are two Java virtual machines running in the single Enso process communicating effectively with each other.&lt;br /&gt;
&lt;br /&gt;
The essential use-case was driven by the need to exchange columnar data between those two JVMs. We decided to support zero copy exchange of data (mostly) in the Apache Arrow format between those two JVMs. Performance seems to be sufficiently good and the format allows us to integrate with other Arrow-ready systems like Pandas when the time comes.&lt;br /&gt;
&lt;br /&gt;
Pros: similar system was an enterprise only feature called GraalVM Isolates&lt;br /&gt;
Cons: the Isolates are being open sourced and further work may be needed to align with them&lt;/div&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	</feed>