This Specification is Proposed Final Draft as
per Section 3.3
of the Java Community ProcessSM Program, version 2.7.
Specification:
Submit your comments to the Specification Lead directly: john.r.rose@oracle.com
Note: This specification will be part of JSR 336. It will be incorporated into relevant sections of the API javadoc, the Java Language Specification, and the Java Virtual Machine Specification.
Annex Three in the Proposed Final Draft of JSR 336 contains updated versions of the JLS and JVMS books. Within these books, only a few of the sections are relevant to JSR 292. Here is a summary of those sections:
JSR 292 defines new features in Java™ SE 7 which improve support
for the compilation and execution of languages other than Java, especially dynamic languages.
These changes affect not only the Java SE 7 APIs,
but also affect the bytecode format and the Java language itself.
Although the API specifications discuss and outline these latter changes,
they are defined normatively in the Java Virtual Machine Specification
and the Java Language Specification, as updated for Java SE 7.
Both of those specifications are updated by the
JSR 336 umbrella JSR.
They may be downloaded as pdf files in Annex 3 of the
Proposed Final Draft of JSR 336.
The language changes are specified by updates to the
Java Language
Specification (JLS).
The JLS changes which are specific to JSR 292 appear with change bars
in purple text
in the associated pdf file in the JSR 336 download.
In that file, the changes may be observed in two places:
-
§15.12.3
-
definition of signature polymorphic methods; typing of their arguments
-
§15.12.4.4
-
special rules for invoking signature polymorphic methods
The virtual machine changes are specified by updates to the
Java Virtual Machine
Specification (JVMS).
The JVMS changes which are specific to JSR 292 appear with change bars
in the associated pdf file in the JSR 336 download.
In that file, the changes may be observed in a number of places:
-
§4.1
-
mentions BootstrapMethods as a standard attribute
-
§4.4
-
table 4.3 mentions the new constant pool tags; see also 4.7 table 4.6
-
§4.4.8
-
CONSTANT_MethodHandle_info
-
§4.4.9
-
CONSTANT_MethodType_info
-
§4.4.10
-
CONSTANT_InvokeDynamic_info
-
§4.7.21
-
BootstrapMethods attribute
-
§4.10.1
-
adjustment of method/imethod functor to include new dmethod
-
§4.10.1
-
invokedynamic instruction rules (“An invokedynamic instruction is type safe...”)
-
§4.10.1
-
ldc instruction rules (“An ldc instruction with operand CP...”)
-
§5.1
-
definition of symbolic references derived from new constant pool types
-
§5.4.3
-
resolution of invokedynamic occurs once per instruction
-
§5.4.3.3
-
resolving signature polymorphic methods
-
§5.4.3.5
-
resolving symbolic references to MHs and MTs
-
§5.4.3.6
-
resolving call site specifiers
-
§5.5
-
initialization triggered by some method handle constants (get/put/invoke static)
-
§6.5
-
definition of invokedynamic instruction (“Each specific lexical occurrence of an invokedynamic instruction...”)
-
§6.5
-
adjustment of invokevirtual instruction (“If the method is signature polymorphic...”)
-
§6.5
-
adjustment of ldc instruction (“a symbolic reference to a method type or a method handle...”)
|