Primitive Queue<any T> considerations
richard.warburton at gmail.com
Thu Nov 19 03:27:28 UTC 2015
Vitaly: so would I but are you sure that that use case should be part of
Valhalla? It seems highly orthogonal to value types. The only thing they
have in common is a different memory layout from Java objects.
On 18 Nov 2015 15:58, "Vitaly Davidovich" <vitalyd at gmail.com> wrote:
> Personally, I'd love to see layout and alignment exposed. I'd also like to
> see something like this Slice:
> https://github.com/joeduffy/slice.net/blob/master/README.md. Being able
> overlay a typesafe and cheap struct on top of a byte buffer would save some
> boilerplate coding.
> sent from my phone
> On Nov 18, 2015 6:52 PM, "John Rose" <john.r.rose at oracle.com> wrote:
> > On Nov 18, 2015, at 12:36 PM, Brian Goetz <brian.goetz at oracle.com>
> > Note that while values are in part about getting flatter data layouts, we
> > do not plan to offer anything in the way of fine-grained layout control,
> > such as allowing for explicit alignment requirements. (Though other
> > efforts, such as Project Panama, may have something to offer here).
> > Right; it's easier on the JVM to let it have its own choice on layouts.
> > For example, HotSpot usually repacks object fields so that refs
> > are all together, longs/doubles all together, ints/floats together,
> > etc., to minimize fragmentation and certain GC overheads.
> > Value types are likely to play such games also.
> > Open question: How valuable would it be to "export" JVM-laid-out
> > values off heap? My take: Not a killer feature if done via bitwise
> > copies, since off-heap storage often needs an externally defined
> > layout. But, perhaps we could define a mapping (or several
> > mappings) from value types to native types, and build copy
> > operations into Panama. Simple types like complex<double>
> > should copy bitwise between heaps, even other types like
> > tuple<long, boolean, long> do not. The main point is that
> > Panama expects to take data schemas from multiple
> > sources (not just C/C++), and that will play well with
> > value types.
> > — John
More information about the valhalla-dev