JShell: source in langtools vs JDK?

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Sep 16 22:31:50 UTC 2015



On 09/16/2015 03:06 PM, Robert Field wrote:
> As part of the JShell code review, Maurizio made the case that JShell should be in the JDK repo rather than langtools repo (where it is in the Kulla workspace).  We would like additional feedback on this before proceeding --
>
>> On Sep 11, 2015, at 8:25 AM, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
>>
>> One general high-level comment, which I also pointed out elsewhere, is that I'm not sure jshell really belongs in langtools; while it's semantically (obviously) related to langtools - it is a rather different beasts w.r.t. all other tools in langtools-land; the fact that it depends on the JDK (for jline, and for JDI in general) makes it very hard to run on top of a random JDK and then bootstrapping classes - which is a technique widely used to be able to run langtools tools w/o having to do a full build cycle. More specifically, talking about IDE integration, I don't see how IntelliJ/Netbeans langtools projects (and the langtools internal developer ant build) could be updated to be able to run/debug jshell w/o a full build.
>
>

In the Big Picture view of the universe, folk would like to restructure 
the repos in an OPenJDK forest, at which point the distinction between 
the langtools and jdk repos will likely disappear, or at least become 
very (very) blurred.  While that change is not imminent, IMO opinion, it 
significantly reduces the impact of the reasons why JShell should not be 
in langtools.

I also don't entirely agree with the IDE reasons either.  If you want to 
work on JShell in an IDE, you're going to have to do what it takes to 
get rid of the red squiggly lines anyway, whatever repo the code is in. 
To keep JShell out of Langtools because it doesn't fit our current 
methodologies is a case of the tail wagging the dog.

Also, I note that JDK 9 now builds the product module by module.  In 
times past, we built the world repo by repo, and that would indeed have 
been good reason to keep JShell out of langtools, because of the 
dependencies of JShell on JDK 9 API, like jline.  But now, the build 
will build "interim javac", and can then build JDK modules like 
java.base and whatever module jline ends up in, and can then build the 
module containing JShell.

As to how to organize IDE projects, in the worst case, we keep the 
langtools IDE setup as it is now (no JShell) and have a separate project 
for JShell itself. That is tantamount to what we would do if we push 
JShell into the jdk repo.

So, I'm saying all that while trying to be agnostic on which repo it 
should live in.    I don't really agree with the stated reasons why it 
should not live in langtools, which means that we can look for other 
reasons to choose one repo or another.

-- Jon


More information about the kulla-dev mailing list