This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: values types for Java


On Oct 21, 2003, at 8:24 PM, Per Bothner wrote:

Bryce McKinlay wrote:

However I'm not keen on the idea of implementing this as a GCJ extension with some kind of hacked-up syntax. The benefits of something only supported by GCJ would be limited and the syntax would not make them elegant to use.

Note I'm not suggesting any syntax changes. I'm suggesting a *convention* to make it easy for a compiler like GCJ to implement a fully portable Java class as a stack-allocatable value class instead of heap allocation.

What I meant was that if we were to implement structs, we'd be better to go all the way and create a simple syntax which makes code using them elegant, in addition to a performance optimization.


public struct Point
{
  int x; // fields implicitly final
  int y;
}

This would still compile to portable bytecodes - much like the Java 1.5 extensions such as generics, there are source code extensions but the generated class files can still run on existing VM implementations.

Its worth noting that all of the upcoming language extensions focus on improving code productivity, clarity, and safety rather than being performance-orientated. One could conclude that if we can make the argument that certain programming problems are better solved using structs then it would have a better chance as a JSR.

On the other hand if we had a preliminary imlementation with some
performance numbers, that might be both a selling point for gcj,
and it might make it easier to justify a JSR.

Indeed.


Regards

Bryce.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]