Uploaded image for project: 'CCC Migration Project'
  1. CCC Migration Project
  2. CCC-8170987

Module system implementation refresh (12/2016)

    Details

    • Subcomponent:
    • Compatibility Risk:
      minimal
    • Compatibility Risk Description:
      Hide
      This update does not impact existing applications or deployments.

      As the binary form of module-info is updated then developers trying the EA builds to create modules will need to compile.
      Show
      This update does not impact existing applications or deployments. As the binary form of module-info is updated then developers trying the EA builds to create modules will need to compile.
    • Interface Kind:
      Java API, add/remove/modify command line option
    • Scope:
      SE

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                alanb Alan Bateman
                Reporter:
                alanb Alan Bateman
                Reviewed By:
                Jonathan Gibbons
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: