Ping/hello.

Angela Lin angela_lin at ca.ibm.com
Fri Oct 31 17:21:08 UTC 2014


Hi David,

Thanks for kicking this off; Sorry for the slow follow-up.

Since this is a "spec" list, I think we want to work on establishing some
common terminology for concepts, and mock up some strawmen API to get a
sense of how things look from a Java programmer's perspective.

We all seem to agree on this part.

> Last I remember, both of us were planning for something that at the
> bottom (ignoring the tools at the top)
> would be based on spinning bytecodes including unsafe code to
> implement an interface (or abstract class?),
> and that we would have some sort of a tiny language to describe
> field locations, size, alignments.

Then there are these divergent rabbit holes to follow:
i) the tiny language specification  <-- Let's call this the "layout
descriptor language"?
ii) the runtime system

There might be a 3rd part that glues between the first two:
iii) generated interfaces that are provided to the Java programmer

Let's spin up a separate thread for discussing just the layout descriptor
language?  Your points 4) and 5) re: NBO etc. can carry over there.

These points concern the runtime system.
> 1) how the factories were exposed; I think Angela?s plan had went

> 3) I spent some time experimenting with the relationship between a
> so-called ?Ref? type and a so-called
> ?Value? type, thought I had some answers, but after whacking on the

I don't quite understand 3).  Would it help to post some javadoc/test code
snippets to illustrate?  If you haven't got this handy, we can scrounge
something out of our prototypes.

> 2) I?m a little nervous about bytecode spinning in the context of
> ahead-of-time compilation.  There are
> plausible platforms are strongly biased towards ahead-of-time, and
> we might want a plan that allows us to
> not handicap Java execution on those platforms.  I think this might
> mean some form a naming scheme for
> the generated classes, so that if they are found on the classpath
> already they need not be generated.
> This might also be useful to assist in debugging

Our prototype was using a naming convention just for caching in a local
classloader.  We could extend this to caching in a persistent shared cache,
say.

> 6) I know we have at least two use cases.  You guys have database
> guys in mind (I think
> we do, too), we also have the numeric and C-interoperation crowds in
> mind.  Others?
> Can we come up with a set of motivating examples?

Use cases for Layouts, in general?  Another big one is facilitating
computation offload to specialized processors, e.g. GPUs.

We'll also need some micro-use cases to illustrate programming patterns.

Regards,
Angela


More information about the panama-spec-experts mailing list