-
CSR
-
Resolution: Approved
-
P2
-
minimal
-
-
Java API, add/remove/modify command line option
-
SE
Summary
Module system implementation refresh (12/2016)
Problem
This CCC tracks updating the module system introduced by JEPs 200/260/261/282 via CCC-8142968, refreshed by CCC-8154956 and CCC-8169069 and several other smaller CCCs.
The main changes in this refresh are the changes related to the following JSR 376 issues (http://openjdk.java.net/projects/jigsaw/spec/issues/)
VersionedDependences
ModuleNameCharacters
and a small API updates to complete #IndirectQualifiedReflectiveAccess.
For #VersionedDependences then the proposal is that when compiling a module that depends on some other modules, record the version strings of those modules, if available, in the resulting module descriptor.
For #ModuleNameCharacters then the proposal is a new scheme for encoding module names in class files.
The detailed proposals for both JSR issues are attached to this CCC.
Solution
Update JDK 9 to align with where JSR 376 is at.
Specification
The specification changes in this CCC are a snapshot of the changes for this refresh.
The following are attached to this CCC:
lang-vm-specdiffs.zip - the diffs for the "Modules in the Java Language and JVM" document. This document will eventually be replaced by updates to the JLS and JVMS.
api-specdiffs.zip - API specdiffs
In addition to the spec/API changes, there are updates to javac as follows:
1. New command-line option to specify version of the module that is being compiled.
--module-version <version>
Specify version of modules that are being compiled
2. Disallow the -profile option to be used with `-target 9` and later.
3. A new -Xlint: key for javac, "module", for lint warning about module-related issues. This warning is on by default.
- csr for
-
JDK-8170987 Module system implementation refresh (12/2016)
- Closed
- relates to
-
CCC-8169069 Module system implementation refresh (11/2016)
- Closed
-
CCC-8173393 Module system implementation refresh (2/2017)
- Closed