Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8248257

Simplified bootstrap method invocation

    XMLWordPrintable

    Details

    • Type: JEP
    • Status: Draft
    • Priority: P3
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
      None
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Scope:
      JDK

      Description

      DRAFT DRAFT DRAFT

      I want to refactor BSM invocation to push more up into the libraries, and make the remaining JVM-linked parts be less resolving and more symbolic. The basic idea here is a single uber-BSM that is defined (as a static up-call API) in the JVMS and implemented outside of the JVMS. It will pass just enough raw, unresolved information to allow the library to do what it needs to do to implement current (indy/condy) and future BSM-related APIs. By abstracting away from the resolution of BSM arguments, we will (a) make BSMs less problematic for use in java.base (else who will bootstrap the bootstraps?), and (b) allow BSMs to emulate hardwired JVM linkage mechanisms with more fidelity.

      I think both goals are important to use BSMs to expand species for Valhalla.

      This is probably a further step beyond JDK-8210685, because it aims to simplify the JVM specification by moving more API decisions up into a singular, global, library-defined uber-BSM. Existing appeals to BSMs in the JVMS will be rewritten to simply specify the basic (unresolved) arguments to the singular uber-BSM. There will have to be some sort of lower-level (non-resolving) reflection into the classfile the BSM operates on; this is a separate JEP or RFE.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              jrose John Rose
              Owner:
              John Rose John Rose
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated: