Re: JavaMemoryModel: Semantics for yield and sleep

From: Joseph Bowbeer (jozart@csi.com)
Date: Tue Jan 08 2002 - 20:09:47 EST


Bill Pugh writes:

> Sorry, but there is just one semantics to rule them all.

I can see that if a transformation is legal for a byte-code to byte-code
transformer, then it is a legal transformation under any circumstances, but
why does it hold in the other direction?

Doesn't specialized knowledge have its privileges?

----- Original Message -----
From: "Bill Pugh" <pugh@cs.umd.edu>
To: "Joseph Bowbeer" <jozart@csi.com>; <javamemorymodel@cs.umd.edu>
Sent: Tuesday, January 08, 2002 4:17 PM
Subject: Re: JavaMemoryModel: Semantics for yield and sleep

>
> At 2:04 PM -0800 1/4/02, Joseph Bowbeer wrote:
> >Bill Pugh writes:
> >
> >> ... the alternative is to say that it is perfectly legal (although
> >> undesirable) for a compiler or JVM to perform the following
> >> transformations:
> >
> >
> >Whether a "compiler" can perform this transformation,
> >
> >I agree that these transformations are legal under (non)existing
semantics
> >*if* you're talking about a runtime compiler that has intimate knowledge
of
> >the JVM's "best effort" when it comes to Thread.yield().
> >
> >But I would not consider this to be a legal transformation for javac.
>
>
> Sorry, but there is just one semantics to rule them all.
>
> If the transformation is legal, it is perfectly legal for a byte-code
> to byte-code transformer.
>
> Bill

-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel



This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:37 EDT