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