<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.jvmlangsummit.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiroshi</id>
	<title>JVMLangSummit - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jvmlangsummit.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiroshi"/>
	<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Special:Contributions/Hiroshi"/>
	<updated>2026-10-31T04:27:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=What_the_JVM_needs&amp;diff=573</id>
		<title>What the JVM needs</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=What_the_JVM_needs&amp;diff=573"/>
		<updated>2010-07-28T21:51:32Z</updated>

		<summary type="html">&lt;p&gt;Hiroshi: /* types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Notes from Rich Hickey's workshop ==&lt;br /&gt;
&lt;br /&gt;
=== user mode limitations ===&lt;br /&gt;
* please optimize this&lt;br /&gt;
* fences&lt;br /&gt;
* typestate: now immutable - especially arrays (typically encapsulated in non-writing header, a la java.lang.String)&lt;br /&gt;
* [[Why Tailcalls]]: as a guarantee, not just an optimization&lt;br /&gt;
* dynamic vs. inline&lt;br /&gt;
* safepoints&lt;br /&gt;
&lt;br /&gt;
=== numbers ===&lt;br /&gt;
* fixnums (say, 28-bit small ints encoded as (x &amp;gt;&amp;gt; 28) == -1) http://blogs.sun.com/jrose/entry/fixnums_in_the_vm&lt;br /&gt;
* need a uniform entry/exit types (Object =&amp;gt; boxing)&lt;br /&gt;
* Hacker's delight overflow detection is OK (only for add/sub); need a static method that throws overflow-exception?&lt;br /&gt;
* Unsigned &amp;lt;&lt;br /&gt;
&lt;br /&gt;
=== storage management ===&lt;br /&gt;
* floating garbage  foo(o, o=null); is tailcall a solution?&lt;br /&gt;
* concurrent collection of permgen&lt;br /&gt;
&lt;br /&gt;
=== limits ===&lt;br /&gt;
* 31-bit arrays&lt;br /&gt;
* 16-bit instructions&lt;br /&gt;
* static data structures (array literals)&lt;br /&gt;
&lt;br /&gt;
=== types ===&lt;br /&gt;
* structs (efficient pointerless element selection)&lt;br /&gt;
* value types (below)&lt;br /&gt;
&lt;br /&gt;
The C#'s struct might be a source of ideas (though that's not necessarily how we want it)&lt;br /&gt;
&lt;br /&gt;
=== value types ===&lt;br /&gt;
no mutability, acmp-identity, id-hashcode, monitorenter&lt;br /&gt;
* immutable arrays == array-like value types&lt;br /&gt;
* issue: intermediate early array construction states interact with memory model&lt;br /&gt;
* perhaps need a typestate distinction: under construction vs. immutable&lt;/div&gt;</summary>
		<author><name>Hiroshi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=519</id>
		<title>Continuations in Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=519"/>
		<updated>2010-07-27T17:33:19Z</updated>

		<summary type="html">&lt;p&gt;Hiroshi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Speaker'''&lt;br /&gt;
&lt;br /&gt;
Hiroshi Yamauchi, Google&lt;br /&gt;
&lt;br /&gt;
'''Abstract'''&lt;br /&gt;
&lt;br /&gt;
We are looking at a problem in servers about scalability vs.&lt;br /&gt;
productivity. There are two types of architectures: synchronous (aka&lt;br /&gt;
blocking, 'thread-per-request') and asynchronous (aka non-blocking,&lt;br /&gt;
'select-server' style, event-driven) servers. The key distinction lies&lt;br /&gt;
in how threads are mapped to requests and whether to block or not in&lt;br /&gt;
network I/O (eg RPC or database access). The former is better in terms&lt;br /&gt;
of productivity because the code gets simpler. The latter is better in&lt;br /&gt;
scalability because a thread does not have to be tied to each request.&lt;br /&gt;
We are investigating a continuation-based solution that gives us the&lt;br /&gt;
best of both worlds: simpler code and better scalability. A synthetic&lt;br /&gt;
rpc server has been 'converted' to use continuations and showed good&lt;br /&gt;
performance. An experiment with a production server has been ongoing.&lt;br /&gt;
We've been using a modified version of the old MLVM callcc patches.&lt;br /&gt;
&lt;br /&gt;
[[Media:ContinuationInServers.pdf‎]]&lt;/div&gt;</summary>
		<author><name>Hiroshi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=File:ContinuationInServers.pdf&amp;diff=518</id>
		<title>File:ContinuationInServers.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=File:ContinuationInServers.pdf&amp;diff=518"/>
		<updated>2010-07-27T17:31:08Z</updated>

		<summary type="html">&lt;p&gt;Hiroshi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hiroshi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=515</id>
		<title>Continuations in Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=515"/>
		<updated>2010-07-27T17:18:23Z</updated>

		<summary type="html">&lt;p&gt;Hiroshi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Speaker'''&lt;br /&gt;
&lt;br /&gt;
Hiroshi Yamauchi, Google&lt;br /&gt;
&lt;br /&gt;
'''Abstract'''&lt;br /&gt;
&lt;br /&gt;
We are looking at a problem in servers about scalability vs.&lt;br /&gt;
productivity. There are two types of architectures: synchronous (aka&lt;br /&gt;
blocking, 'thread-per-request') and asynchronous (aka non-blocking,&lt;br /&gt;
'select-server' style, event-driven) servers. The key distinction lies&lt;br /&gt;
in how threads are mapped to requests and whether to block or not in&lt;br /&gt;
network I/O (eg RPC or database access). The former is better in terms&lt;br /&gt;
of productivity because the code gets simpler. The latter is better in&lt;br /&gt;
scalability because a thread does not have to be tied to each request.&lt;br /&gt;
We are investigating a continuation-based solution that gives us the&lt;br /&gt;
best of both worlds: simpler code and better scalability. A synthetic&lt;br /&gt;
rpc server has been 'converted' to use continuations and showed good&lt;br /&gt;
performance. An experiment with a production server has been ongoing.&lt;br /&gt;
We've been using a modified version of the old MLVM callcc patches.&lt;/div&gt;</summary>
		<author><name>Hiroshi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=514</id>
		<title>Continuations in Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=514"/>
		<updated>2010-07-27T16:03:16Z</updated>

		<summary type="html">&lt;p&gt;Hiroshi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hiroshi Yamauchi, Google&lt;br /&gt;
&lt;br /&gt;
We are looking at a problem in servers about scalability vs.&lt;br /&gt;
productivity. There are two types of architectures: synchronous (aka&lt;br /&gt;
blocking, 'thread-per-request') and asynchronous (aka non-blocking,&lt;br /&gt;
'select-server' style, event-driven) servers. The key distinction lies&lt;br /&gt;
in how threads are mapped to requests and whether to block or not in&lt;br /&gt;
network I/O (eg RPC or database access). The former is better in terms&lt;br /&gt;
of productivity because the code gets simpler. The latter is better in&lt;br /&gt;
scalability because a thread does not have to be tied to each request.&lt;br /&gt;
We are investigating a continuation-based solution that gives us the&lt;br /&gt;
best of both worlds: simpler code and better scalability. A synthetic&lt;br /&gt;
rpc server has been 'converted' to use continuations and showed good&lt;br /&gt;
performance. An experiment with a production server has been ongoing.&lt;br /&gt;
We've been using a modified version of the old MLVM callcc patches.&lt;/div&gt;</summary>
		<author><name>Hiroshi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=513</id>
		<title>Continuations in Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Continuations_in_Servers&amp;diff=513"/>
		<updated>2010-07-27T16:02:44Z</updated>

		<summary type="html">&lt;p&gt;Hiroshi: New page: We are looking at a problem in servers about scalability vs. productivity. There are two types of architectures: synchronous (aka blocking, 'thread-per-request') and asynchronous (aka non-...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are looking at a problem in servers about scalability vs.&lt;br /&gt;
productivity. There are two types of architectures: synchronous (aka&lt;br /&gt;
blocking, 'thread-per-request') and asynchronous (aka non-blocking,&lt;br /&gt;
'select-server' style, event-driven) servers. The key distinction lies&lt;br /&gt;
in how threads are mapped to requests and whether to block or not in&lt;br /&gt;
network I/O (eg RPC or database access). The former is better in terms&lt;br /&gt;
of productivity because the code gets simpler. The latter is better in&lt;br /&gt;
scalability because a thread does not have to be tied to each request.&lt;br /&gt;
We are investigating a continuation-based solution that gives us the&lt;br /&gt;
best of both worlds: simpler code and better scalability. A synthetic&lt;br /&gt;
rpc server has been 'converted' to use continuations and showed good&lt;br /&gt;
performance. An experiment with a production server has been ongoing.&lt;br /&gt;
We've been using a modified version of the old MLVM callcc patches.&lt;/div&gt;</summary>
		<author><name>Hiroshi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=2012_Main_Page&amp;diff=512</id>
		<title>2012 Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=2012_Main_Page&amp;diff=512"/>
		<updated>2010-07-27T16:01:06Z</updated>

		<summary type="html">&lt;p&gt;Hiroshi: /* Agenda for the 2010 JVM Language Summit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[#SUMMIT ATTENDEES: READ THIS FIRST|SUMMIT ATTENDEES: CLICK THIS FIRST]] ==&lt;br /&gt;
&lt;br /&gt;
==Agenda for the 2010 [http://jvmlangsummit.com/ JVM Language Summit]==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!Monday 7/26&lt;br /&gt;
!Tuesday 7/27&lt;br /&gt;
!Wednesday 7/28&lt;br /&gt;
|-&lt;br /&gt;
|  8:30|| align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot; style=&amp;quot;color:green; background-color:#ffffcc;&amp;quot; | Breakfast &amp;lt;br&amp;gt; (30 mins) &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  9:00|| Brian Goetz, Welcome || rowspan=&amp;quot;2&amp;quot; | Doug Lea (Keynote) &amp;lt;br&amp;gt; [[Engineering Fine-Grained Parallelism in Java]] || Jochen Theodorou &amp;lt;br&amp;gt; [[Improvements in Groovy performance]]&lt;br /&gt;
|-&lt;br /&gt;
|  9:30|| Charles Nutter &amp;lt;br&amp;gt; [[Trending Toward the Middle: The Best of Static and Dynamic]] || Rémi Forax &amp;lt;br&amp;gt; [[PHP.reboot: a post JSR292 dynamic language]]&lt;br /&gt;
|-&lt;br /&gt;
| 10:00|| Eric Caspole &amp;lt;br&amp;gt; [[Improvements in OpenJDK useful for JVM languages]]  || Joshua Bloch &amp;lt;br&amp;gt; [[Performance Anxiety]] || Per Bothner &amp;lt;br&amp;gt; [[Kawa and gnu.bytecode update]]&lt;br /&gt;
|-&lt;br /&gt;
| 10:30|| align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot; style=&amp;quot;color:green; background-color:#ffffcc;&amp;quot; | Break &amp;lt;br&amp;gt; (30 mins) &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 11:00|| John Rose &amp;lt;br&amp;gt; [[Gathering the threads: JVM Futures]]  || rowspan=&amp;quot;2&amp;quot; style=&amp;quot;color:lightblue; background-color:green;&amp;quot; | W1A: John Rose &amp;lt;br&amp;gt; W1B: Robert McKinney || rowspan=&amp;quot;2&amp;quot; style=&amp;quot;color:lightblue; background-color:green;&amp;quot; | W1A: Rich Hickey &amp;lt;br&amp;gt; W1B: ''Available''&lt;br /&gt;
|-&lt;br /&gt;
| 11:30|| Christian Wimmer &amp;lt;br&amp;gt; [[Register Allocation on SSA form for Java Just-in-Time Compilation]]&lt;br /&gt;
|-&lt;br /&gt;
| 12:00|| align=&amp;quot;center&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;color:green; background-color:#ffffcc;&amp;quot; | Lunch &amp;lt;br&amp;gt; (60 mins) || align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; style=&amp;quot;color:green; background-color:#ffffcc;&amp;quot; | Lunch &amp;lt;br&amp;gt; (30 mins) &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 12:30|| Mark Reinhold &amp;lt;br&amp;gt; JDK7 || Adam Messinger &amp;lt;br&amp;gt; Oracle&lt;br /&gt;
|-&lt;br /&gt;
|  1:00|| Lukas Stadler &amp;lt;br&amp;gt; [[Coroutines for the Java Platform]] || Neal Gafter &amp;lt;br&amp;gt; [[LINQ: Language Features for concurrency (among other things)]] || David Pollak &amp;lt;br&amp;gt; [[Faking closures on the JVM isn't as simple as it looks]] &lt;br /&gt;
|-&lt;br /&gt;
|  1:30|| Prashant Deva &amp;lt;br&amp;gt; [[Chronon - Time Travelling Debugger]] || John Field &amp;lt;br&amp;gt; [[The Thorn Programming Language: Robust Distributed Scripting on the JVM]] || Christine Flood &amp;lt;br&amp;gt; [[Project Fortress compiler implementation status]]&lt;br /&gt;
|-&lt;br /&gt;
|  2:00|| Fredrik Öhrström &amp;lt;br&amp;gt; [[Efficient compilation of Lambdas using MethodHandles and JRockit]] || align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; style=&amp;quot;color:green; background-color:#ffffcc;&amp;quot; | Break &amp;lt;br&amp;gt; (30 mins)&lt;br /&gt;
|-&lt;br /&gt;
|  2:30|| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;color:lightblue; background-color:green;&amp;quot; | W1A: Fredrik Öhrström &amp;lt;br&amp;gt; Compile your favourite Lambda expression! &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; W1B: Ben Titzer &amp;lt;br&amp;gt; Virgil on the JVM || Dan Heidinga &amp;lt;br&amp;gt; [[MethodHandles: an IBM implementation]] || Andy Clement &amp;lt;br&amp;gt; [[Mixed language project compilation in Eclipse: Java and Groovy]]&lt;br /&gt;
|-&lt;br /&gt;
|  3:00|| Cliff Click, Performance || Oleg Pliss &amp;lt;br&amp;gt; [[Symmetric multilanguage VM architecture]]&lt;br /&gt;
|-&lt;br /&gt;
|  3:30|| align=&amp;quot;center&amp;quot; style=&amp;quot;color:green; background-color:#ffffcc;&amp;quot; | Break &amp;lt;br&amp;gt; (30 mins) || Kresten Krab Thorup &amp;lt;br&amp;gt; [[Erjang - A JVM-based Erlang VM]] || Michael Van De Vanter &amp;lt;br&amp;gt; [[The Maxine Inspector: a Specialized Tool for VM Development]]&lt;br /&gt;
|-&lt;br /&gt;
|  4:00|| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;color:lightblue; background-color:green;&amp;quot; | W2A: Charles Nutter &amp;lt;br&amp;gt; W2B: Hiroshi Yamauchi &amp;lt;br&amp;gt; [[Continuations in Servers]] || rowspan=&amp;quot;2&amp;quot; style=&amp;quot;color:lightblue; background-color:green;&amp;quot; | W2A: Kresten Krab Thorup &amp;lt;br&amp;gt; W2B: John Field || rowspan=&amp;quot;2&amp;quot; style=&amp;quot;color:lightblue; background-color:green;&amp;quot; | W2A: Cliff Click &amp;lt;br&amp;gt; &amp;lt;br&amp;gt; W2B: Per Bothner &amp;lt;br&amp;gt; Speedy Scripting&lt;br /&gt;
|-&lt;br /&gt;
|  4:30&lt;br /&gt;
|-&lt;br /&gt;
|  5:00|| Break || Lightning talks || Final break&lt;br /&gt;
|-&lt;br /&gt;
|  6:00|| || Dinner at Faultline ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* Main pages for the JVM Language Summit in [[2008_Main_Page | 2008]] and [[2009_Main_Page | 2009]].&lt;br /&gt;
&lt;br /&gt;
== SUMMIT ATTENDEES: READ THIS FIRST ==&lt;br /&gt;
&lt;br /&gt;
If you have a http://java.net/ (or OpenJDK) user name, please use that to [http://wiki.jvmlangsummit.com/index.php?title=Special:UserLogin&amp;amp;type=signup register on this wiki].&lt;br /&gt;
&lt;br /&gt;
If you logged in for the first time as a jvmlang participant, please [http://wiki.jvmlangsummit.com/index.php?title=Special:UserLogin&amp;amp;type=signup register as yourself on this wiki].&lt;br /&gt;
&lt;br /&gt;
The initial jvmlang participant account does not have full write privileges; please use it only for self-registering.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.jvmlangsummit.com/index.php?title=Special:UserLogin&amp;amp;type=signup First register your real ID] then log out and log back in using the tiny login link at the upper right.&lt;br /&gt;
* Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Hiroshi</name></author>
		
	</entry>
</feed>