JShell: packages

Jonathan Gibbons jonathan.gibbons at oracle.com
Thu Sep 17 18:52:55 UTC 2015


We should not change any of these packages.

My understanding from Maurizio is that there is a bug or anti-feature in 
the system today such that the choice of package for jline is 
problematic, and so we were simply discussing the possibility of using a 
different package for jline for the immediate short term as a workaround 
for the -Xbootclasspath/p: issue.   When Jigsaw gets integrated, the 
-Xbootclasspath/p: option will go away, and we will have to use the new 
-Xoverride option instead.   In advance of that, we should ensure that 
-Xoverride works in a way that is satisfactory with jline in its propoer 
long term home.

-- Jon

On 09/17/2015 11:08 AM, Robert Field wrote:
> There were extensive discussions and approvals around package names.  
> This is what we have now:
>
> jdk.jshell
>
>     JShell API and core implementation.
>
> jdk.internal.jshell.remote
>
>     The remote side of the implementation
>
> jdk.internal.jshell.debug
>
>     Single class supporting debugging of the implementation through
>     external tools
>
> jdk.internal.jshell.tool
>
>     The JShell tool (built on the API)
>
>
> The package jdk.jshell has all the public API.
>
> jdk.internal.jshell.* includes some classes with public access 
> modifiers but these packages are not public APIs (we want the ability 
> to change them as needed) -- my understanding is that packages with 
> those characteristics should be named "jdk.internal.*".
>
> -----
>
> However we have problems --
>
>>     some weird bug I encountered where if I set bootclasspath that
>>     mentions some jdk.internal classes (but which doesn't have JLine
>>     - because it comes from langtools), _every_ class from that
>>     package will not be fetched from the jimage file - meaning that
>>     I'll be left w/o jline. In other words, bootstrapping doesn't
>>     work - and I have reasons to believe that bootstrapping with the
>>     new module options (when they will become available - i.e.
>>     moduleOverride) won't work too. 
>
>
> and the proposal --
>
>>     * workaround problem #1 by putting jshell in a package other than
>>     jdk.internal (i.e. jdk.jshell could be good); this will avoid
>>     -Xbootstrap accidentally making jline unavailable 
>
>
> -Robert
>
>



More information about the kulla-dev mailing list