On 2020-05-19 12:41, Maurizio Cimadamore wrote:
The move looks good - but afaik, Netbeans also used to have some langtools-specific project files.
I'm not sure what you mean. There used to be three netbeans IDE project; one for Hotspot, one for Langtools and one for the "JDK" (read: corelibs). I removed the JDK one, which is not needed anymore. The langtools netbeans files are still present in v2 of my patch at the new location make/ide/netbeans/langtools. (And the Hotspot files, as well).

I see now that I did not post the URL to the actual new webrev, so I understand if things sounded confusing just from what I wrote in the mail.

There's also the topic of where to put source files that are in support of the IDE. For instance there are a couple of Ant task which used to support netbeans, and another to support Intellij (to provide better logging). These still live (I think) in make/langtools under proposed refactoring. Is that what we want?
For now, yes. Ideally, I'd get all IDE files in places, but since the langtools stuff still depens on the old ant build, I will not - per your request - touch them at this time. On a medium term, with Jan's intra-module depend enhancements, and the incremental build refinements I'm working on, I hope we can render the need for an ant build moot. Also, as part of the project of reorganizing the buildtools (which too, are spread all over the place), the tools from langtools/src that are actually used in the build process, will migrate away. At that point, we can take a renewed look at how to think about the langtools directory.
Overall, it seems to me that the big win of this refactoring is to put all JDK templates in one place (e.g. make/ide) which will make it more discoverable for programmers. I'm not super convinced that we need to do anything for not-so-commonly used projects such as langtools - which are effectively used by selected developers. Applying any refactoring there seems to be in the land of diminishing returns, especially with the prospect that, one day, such projects will be rendered useless by an improved makefile support for (incrementally) building single components.
The main reason for this refactoring is to clear up all the "junk" that is spread out all over the make directories. Unfortunately, the "make" directory has, since historic times, been seen as a nice-to-have "misc" category where you can just put stuff willy-nilly and not care about the consequences. I've been working for a long time trying to get things a bit more organized. As such, I don't expect to see any particular gain for any specific IDE support implementation, but a gain for the general ability for the build system to be comprehensible, and to have a starting point for getting more and more integrated and improved support for a variety of IDEs for a variety of use cases.

/Magnus


Maurizio

On 18/05/2020 15:50, Magnus Ihse Bursie wrote:
Hi all,

Sorry for the long time to follow up on this patch.

From the reviewers' feedback, I have now restored all files to make/langtools, except for those in the netbeans and intellij directories. This also meant that in the make/ide/idea/langtools directory there were now only an "intellij" directory. This seemed awkward, so I moved everything up one level, effectively scrapping the "intellij" directory. Paths has been changed accordingly in make/langtools and make/ide/*/langtools.

I also removed make/ide/netbeans/jdk. No-one seemed to be countering Jan's claim that it's unused. Instead, we got testimony on how Netbeans can be setup without any specific support from the build system. I think this excellent information should be properly documented. I've created JDK-8245210 for this, and I hope I can enroll the help of Jan and Brad to get this correctly documented.

No other changes, outside the langtools files and make/ide/netbeans/jdk has been made, compared to the previous version.

/Magnus

On 2020-04-29 13:06, Jan Lahoda wrote:
I am not sure if anyone is still using make/jdk/netbeans. Apache NetBeans does not (should not) need these config files, it supports OpenJDK modules out of the box (with some tweaks/dependencies on make/langtools/** to speed up langtools build).

As Maurizio, there may be some need to move the "fast" langtools build more carefully. I'll try to take a look later, unless some else wants to. Although, a little independently, I wonder somewhat if there's an opportunity to further speed up the ordinary make build in incremental environment to reduce the need for a "fast" langtools build. E.g. by enhancing the current Depend javac plugin, and possibly optionally disabling the interim langtools build. This could improve incremental build behavior for other modules (like java.base or java.desktop) as well.

Jan

On 29. 04. 20 12:36, Magnus Ihse Bursie wrote:
The IDE support in OpenJDK unfortunately leaves a lot to be desired. There have been a garden variety of attempt to support a specific IDE for a specific part of the code base, cluttered all over the code base.

This patch is a first attempt go get one ring, eh..., structure, to rule them all.

I have moved all IDE project creators into the following structure:

make/ide/<ide>/<part of the code>

where <part of the code> is one of currently "hotspot", "langtools" or "jdk", and <ide> is one of "vscode", "idea", "netbeans" or "vistualstudio".

This will not magically improve IDE support, but will at least make it clearer what we have and what we are missing.

Ownership of the IDE support is notoriously vague. I've cc:ed a bunch of people who has shown interest and/or submitted fixes to some of the IDE projects according to the hg history. I'd appreciate it if anyone who is interested in a particular case for IDE support can verify that it still works. I've tried my best to make sure all targets can run without errors, but I cannot verify that the IDE environment themselves are correct.

If you know about an IDE project that is no longer relevant, and should be removed instead of shuffled around, please let me know!

Bug: https://bugs.openjdk.java.net/browse/JDK-8244093
WebRev: http://cr.openjdk.java.net/~ihse/JDK-8244093-move-ide-support/webrev.01

/Magnus


Reply via email to