Scoped variables

Ron Pressler ron.pressler at
Tue Dec 4 16:07:12 UTC 2018

(I was actually a user of Sun’s Java Real Time System, an implementation of RTSJ,
around 2004. There’s no reason to be nostalgic about RTSJ, though. RTSJ 2.0 has been
quite actively specified over the past four years:

On December 4, 2018 at 5:46:34 AM, David Holmes (david.holmes at wrote:

Hi Doug,  

On 4/12/2018 10:57 am, Doug Lea wrote:  
> On 12/3/18 2:55 PM, John Rose wrote:  
>> In part we are drawing on the very old idea of a Lisp "SPECIAL" variable.  
> While people are contemplating alternatives, it would be great to see  
> post-mortem evaluations of RTSJ Scoped Memory (which had similar  
> ambitions), by people who implemented and used it.  

That's a very small set of people - as well you know :)  

RTSJ Scoped Memory is somewhat of a different beast to general  
"context"-local variables - where a context may be a thread, a fiber, a  
session, etc.  

RTSJ Scoped Memory actually allocated the objects into a memory region  
that had a lifetime that was connected to the active execution of the  
current thread. They were intended to act more like stack allocated Java  
objects, and came with significant restrictions on assignment and use as  
shorter-lived instances could not be assigned to fields of longer lived  
instances, nor returned up the call stack beyond the start of the  
allocation scope. (And a complex tree-based memory region management  
scheme, that allowed controlled sharing across threads, made things even  
more complex!)  

"context"-locals on the other hand don't deal with allocation at all,  
they are simply "maps" from the current-"context" to a named variable.  

I'm not sure what Loom "Scoped variables" are intended to be exactly.  

> In the mean time, try googling "RTSJ scoped memory".  

Made me feel quite nostalgic :)  


> -Doug  

More information about the loom-dev mailing list