From angela_lin at ca.ibm.com Fri Oct 31 17:21:08 2014 From: angela_lin at ca.ibm.com (Angela Lin) Date: Fri, 31 Oct 2014 13:21:08 -0400 Subject: Ping/hello. In-Reply-To: <81818BB2-8C2D-4910-A83F-D03BB7B0AB49@oracle.com> References: <81818BB2-8C2D-4910-A83F-D03BB7B0AB49@oracle.com> Message-ID: 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