From john.r.rose at oracle.com Sun Jun 25 00:10:26 2017 From: john.r.rose at oracle.com (John Rose) Date: Sat, 24 Jun 2017 17:10:26 -0700 Subject: Fwd: constant-dynamic specification, updated References: Message-ID: <434CF4AE-C0B0-4C6E-8434-B577F5A3B572@oracle.com> Date: June 24, 2017 at 4:52:04 PM PDT To: valhalla-spec-experts at openjdk.java.net I have updated the javadoc API that is relevant to the proposed JVM features for dynamic constants and more powerful bootstrap methods. http://cr.openjdk.java.net/~jrose/jvm/condy-jvms-2017-0620.html Here is a rough draft of the corresponding JVMS changes: http://cr.openjdk.java.net/~jrose/jvm/specdiff-condy-2017-0624.zip Please enjoy and comment. ? John -------------- next part -------------- An HTML attachment was scrubbed... URL: From mroos at roos.com Sun Jun 25 19:47:00 2017 From: mroos at roos.com (Mark Roos) Date: Sun, 25 Jun 2017 12:47:00 -0700 Subject: Fwd: constant-dynamic specification, updated In-Reply-To: <434CF4AE-C0B0-4C6E-8434-B577F5A3B572@oracle.com> References: <434CF4AE-C0B0-4C6E-8434-B577F5A3B572@oracle.com> Message-ID: An HTML attachment was scrubbed... URL: From john.r.rose at oracle.com Sun Jun 25 21:34:36 2017 From: john.r.rose at oracle.com (John Rose) Date: Sun, 25 Jun 2017 14:34:36 -0700 Subject: constant-dynamic specification, updated In-Reply-To: References: <434CF4AE-C0B0-4C6E-8434-B577F5A3B572@oracle.com> Message-ID: On Jun 25, 2017, at 12:47 PM, Mark Roos wrote: > > I was looking for boot strap args to allow byte[] constants from the constantPool. > > Is that planned? Yes; there are two more CP types planned: 1. CONSTANT_Data = arbitrary blob of octets 2. CONSTANT_Group = series of constant specifiers outside of main CP That would seem to complete the CP story. You can build constants by calling BSMs that take a flexible mix of random data octets and references to constants. You can't mix them together seamlessly, but you can at least put all of your octets in one bag (Data) and all of your constant references in another (Group). We could think to use the CP to nest additional class syntax inside a CP entry. E.g., CONSTANT_ClassDeclaration which would carry the bytes of a class-file structure, *except* the constant pool prelude itself. That might be a natural way to allow nest several classes into one classfile (the old MClass idea). (Why not just use CONSTANT_Data? Because a class file parser often needs to recursively descend into all parts of a class file which may contain indexes into the constant pool, or detect other relations between subparts of the file. An opaque Data block defeats this.) But it seems more likely that we would use attributes as envelopes for the nested structure. CP entries work better if they are of limited size. That's why we put part of the payload of CONSTANT_InvokeDynamic into the BootstrapMethods attribute instead of directly in the CP. So think in terms of a ClassDefinitions attribute with a series of definitions; then if we need CONSTANT_ClassDeclaration, it just carries a single index into the attribute. The CONSTANT_Data guy probably will carry payload in a segmented ConstantDataBlocks attribute, and the CONSTANT_Group guy will probably carry payload in a ConstantGroups attribute. The structure of both attributes will probably allow random access to variably-sized large blobs of data. The CGs will allow cheap nesting, for things like ASTs. At least, that's how I'm thinking about it. My overall goal is to keep the classfile alive as an efficient medium for more and more advanced language runtimes. ? John From per at bothner.com Sun Jun 25 22:00:08 2017 From: per at bothner.com (Per Bothner) Date: Sun, 25 Jun 2017 15:00:08 -0700 Subject: constant-dynamic specification, updated In-Reply-To: References: <434CF4AE-C0B0-4C6E-8434-B577F5A3B572@oracle.com> Message-ID: <97774982-75b3-2015-a9c3-f37b6e57cd88@bothner.com> On 06/25/2017 02:34 PM, John Rose wrote: > My overall goal is to keep the classfile alive as an efficient > medium for more and more advanced language runtimes. That will be difficult as long as constant pool indexes and various other fields are limited to 16 bits. -- --Per Bothner per at bothner.com http://per.bothner.com/ From john.r.rose at oracle.com Sun Jun 25 22:21:58 2017 From: john.r.rose at oracle.com (John Rose) Date: Sun, 25 Jun 2017 15:21:58 -0700 Subject: constant-dynamic specification, updated In-Reply-To: <97774982-75b3-2015-a9c3-f37b6e57cd88@bothner.com> References: <434CF4AE-C0B0-4C6E-8434-B577F5A3B572@oracle.com> <97774982-75b3-2015-a9c3-f37b6e57cd88@bothner.com> Message-ID: On Jun 25, 2017, at 3:00 PM, Per Bothner wrote: > > That will be difficult as long as constant pool indexes and various > other fields are limited to 16 bits. Yep; that's a challenge, until we break the glass and make a completely new class file format that integrates a var-int format. (My favorite is UNSIGNED5.) But we can (and should) put off the day of glass-breaking by tactical moves like CONSTANT_Group, which will allow you to express a single sequence of constant tokens of any length, without (necessarily) using up indexes in the main CP. -------------- next part -------------- An HTML attachment was scrubbed... URL: From forax at univ-mlv.fr Mon Jun 26 06:14:29 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Mon, 26 Jun 2017 08:14:29 +0200 (CEST) Subject: constant-dynamic specification, updated In-Reply-To: References: <434CF4AE-C0B0-4C6E-8434-B577F5A3B572@oracle.com> <97774982-75b3-2015-a9c3-f37b6e57cd88@bothner.com> Message-ID: <788524254.112588.1498457669994.JavaMail.zimbra@u-pem.fr> > De: "John Rose" > ?: "Per Bothner" > Cc: "Da Vinci Machine Project" > Envoy?: Lundi 26 Juin 2017 00:21:58 > Objet: Re: constant-dynamic specification, updated > On Jun 25, 2017, at 3:00 PM, Per Bothner < per at bothner.com > wrote: >> That will be difficult as long as constant pool indexes and various >> other fields are limited to 16 bits. > Yep; that's a challenge, until we break the glass and make a > completely new class file format that integrates a var-int format. > (My favorite is UNSIGNED5.) > But we can (and should) put off the day of glass-breaking > by tactical moves like CONSTANT_Group, which will allow > you to express a single sequence of constant tokens of > any length, without (necessarily) using up indexes in the > main CP. like an array of value types for the constant pool ! R?mi -------------- next part -------------- An HTML attachment was scrubbed... URL: From java at stefan-marr.de Thu Jun 29 13:22:39 2017 From: java at stefan-marr.de (Stefan Marr) Date: Thu, 29 Jun 2017 15:22:39 +0200 Subject: [CfP][Meta'17] Workshop on Meta-Programming Techniques and Reflection Message-ID: <423FB430-79F0-4ADE-8826-AB267F370737@stefan-marr.de> Call for Papers: Meta?17 ======================== Workshop on Meta-Programming Techniques and Reflection Co-located with SPLASH 2017 October 22, 2017, Vancouver, Canada Twitter @MetaAtSPLASH http://2017.splashcon.org/track/meta-2017 The heterogeneity of mobile computing, cloud applications, multicore architectures, and other systems leads to increasing complexity of software and requires new approaches to programming languages and software engineering tools. To manage the complexity, we require generic solutions that can be adapted to specific application domains or use cases, making metaprogramming an important topic of research once more. However, the challenges with metaprogramming are still manifold. They start with fundamental issues such as typing of reflective programs, continue with practical concerns such as performance and tooling, and reach into the empirical field to understand how metaprogramming is used and how it affects software maintainability. Thus, while industry accepted metaprogramming on a wide scale with Ruby, Scala, JavaScript and others, academia still needs to answer a wide range of questions to bring it to the same level of convenience, tooling, and programming styles to cope with the increasing complexity of software systems. This workshop aims to explore meta-level technologies that help tackling the heterogeneity, scalability and openness requirements of emerging computations platforms. ### Topics of Interest The workshop is a venue for all approaches that embrace metaprogramming: - from static to dynamic techniques - reflection, meta-level architectures, staging, open language runtimes applications to middleware, frameworks, and DSLs - optimization techniques to minimize runtime overhead - contract systems, or typing of reflective programs reflection and metaobject protocols to enable tooling - case studies and evaluation of such techniques, e.g., to build applications, language extensions, or tools - empirical evaluation of metaprogramming solutions - security in reflective systems and capability-based designs - meta-level architectures and reflective middleware for modern runtime platforms (e.g. IoT, cyber-physical systems, mobile/cloud/grid computing, etc) - surveys, conceptualization, and taxonomization of existing approaches In short, we invite contributions to the workshop on a wide range of topics related to design, implementation, and application of reflective APIs and meta-programming techniques, as well as empirical studies and typing for such systems and languages. ### Workshop Format and Submissions This workshop welcomes the presentation of new ideas and emerging problems as well as mature work as part of a mini-conference format. Furthermore, we plan interactive brainstorming and demonstration sessions between the formal presentations to enable an active exchange of ideas. The workshop papers will be published in the ACM DL, if not requested otherwise by the authors. Thus, they will be part of SPLASH workshop proceedings. Therefore, papers are to be submitted using the SIGPLAN acmart style: http://www.sigplan.org/Resources/Author/. Please use the provided double-column templates for Latex http://www.sigplan.org/sites/default/files/acmart/current/acmart-sigplanproc-template.tex) or Word http://www.acm.org/publications/proceedings-template. - technical paper: max. 8 pages, excluding references - position and work-in-progress paper: 1-4 pages, excluding references - technology demos or a posters: 1-page abstract Demos, posters, position and work-in-progress papers can be submitted on a second, later deadline to discuss the latest results and current work. For the submission, please use the submission system at: https://meta17.hotcrp.com/ ### Important Dates Abstract Submission: 07 August 2017 Paper Submission: 14 August 2017 Author Notification: 06 September 2017 Position/WIP Paper Deadline: 08 September 2017 Camera Ready Deadline: 18 September 2017 Position/WIP Notification: 21 September 2017 ### Program Committee The program committee consists of the organizers and the following reviewers: Anya Helen Bagge, University of Bergen, Norway Daniele Bonetta, Oracle Labs, Austria Nicolas Cardozo, Universidad de los Andes, Colombia Sebastian Erdweg, TU Delf, The Nederlands Robert Hirschfeld, HPI, Germany Roberto Ierusalimschy, PUC-Rio, Brazil Pablo Inostroza, CWI, The Nederlands Kim Mens, Universite Catholique de Louvain, Belgium Cyrus Omar, Carnegie Mellon University, USA Guillermo Polito, CNRS, France Tiark Rompf, Purdue University, USA Tom Van Cutsem, Nokia Bell Labs, Belgium Takuo Watanabe, Tokyo Institute of Technology, Japan ### Workshop Organizers Shigeru Chiba, University of Tokyo Elisa Gonzalez Boix, Vrije Universiteit Brussel Stefan Marr, Johannes Kepler University Linz From matthias.grimmer at oracle.com Fri Jun 30 07:56:11 2017 From: matthias.grimmer at oracle.com (Matthias Grimmer) Date: Fri, 30 Jun 2017 07:56:11 +0000 Subject: Call for Papers: VMIL 2017 Message-ID: ====================================================================== Call for Papers: VMIL 2017 9th Workshop on Virtual Machines and Intermediate Languages Co-located with SPLASH 2017 October 24th, Vancouver, Canada http://conf.researchr.org/track/vmil-2017/vmil-2017 ====================================================================== ABOUT THE WORKSHOP The VMIL workshop is a forum for research in virtual machines and intermediate languages. It focuses on novel ideas on modular approaches to programming language implementation and optimization, extensible virtual machines, as well as reusable runtime components. VMIL also investigates programming language mechanisms and dynamic tooling facilities that are currently implemented as code transformations or in libraries but are worthwhile candidates for integration with the run-time environment. VMIL's area of interest includes exploration how said mechanisms can be elegantly (and reusably) expressed at the intermediate language level (e.g., in bytecode), how their implementations can be optimized, and how virtual machine architectures might be shaped to facilitate such implementation efforts. Examples of such mechanisms are concurrency constructs (e.g. actors, capsules, processes, software transactional memory), transactions, and development tools (profilers, runtime verification). TOPICS OF INTEREST Topics of interest include, but are not limited to: - Modular compilation-based and interpreter-based virtual machine designs - Intermediate language constructs that better support programming language level features - Reusable implementation of runtime components (e.g. interpreters, garbage collectors, intermediate representations) - Static and dynamic compiler techniques for different languages - Tooling support for different languages (e.g. debugging, profiling, etc.) - Modular language implementations that use existing frameworks and systems - New research ideas on how we want to build languages in the future. SUBMISSION GUIDELINES In these key areas, we invite high-quality papers in the following two categories. - Research and experience papers: These submissions should describe work that advances the current state of the art in support of advanced separation of concerns techniques in virtual machines and intermediate languages. Experience papers that are of broader interest and describe insights gained from practical applications. The page limit for these submissions is 10 pages. - Position papers: These submissions present and defend the author?s position on a topic related to the broader area of the workshop. The page limit for these submissions is 4 pages. Submissions should use the ACM SIGPLAN Conference acmart Format with ?sigplan? Subformat (http://www.sigplan.org/Resources/Author/), 10 point font, using the font family Times New Roman. All submissions should be in PDF format. The address of the submission site is: https://vmil17.hotcrp.com/ IMPORTANT DATES Submission deadline: August 14, 2017 Authors notification: September 15, 2017 Camera ready deadline: September 22, 2017 All deadlines are Anywhere on Earth (AoE), i.e. GMT/UTC?12:00 hour ORGANIZATION Organizing Committee Steve Blackburn, Australian National University Christoph Bockisch, Phillips-Univeristat Marburg Michael Haupt, eBay Tony Hosking, Australian National University Hridesh Rajan, Iowa State University Witawas Srisa-an, University of Nebraska-Lincoln Program Committee Matthias Grimmer, Oracle Labs (Co-chair) Adam Welc, Huawei America Research Center (Co-chair) Walter Binder, University of Lugano Roberto Ierusalimschy, PUC-Rio Richard Jones, University of Kent Tomas Kalibera, Northeastern University Christor Kotselidis, The University of Manchester Ben L. Titzer, Google Jennifer B. Sartor, Vrije Universiteit Brussel -------------- next part -------------- An HTML attachment was scrubbed... URL: