On 2020-04-29 13:36, Maurizio Cimadamore wrote:
On 29/04/2020 11:57, Magnus Ihse Bursie wrote:
So who/what is using the ant build? I thought it was just the IDEA
project that generated ant targets. Is it run explicitly using ant by
langtool developers? I know for sure it's not used when we build the
product in our CI.
As Jan mentioned, the main purpose of the langtools Ant build is to
get very very fast incremental recompilation. Which happens to be very
useful when working in an IDE environment, but one can also use it
(and I've seen people doing that) just from the command line. You can
run most (all?) of langtools tests by just doing a private langtools
build, so langtools developers sometimes go down that path.
Now, to be fair, this was much more common in the non-consolidated
world than it is in the new world, but, as Jan mentioned, Make is
currently not useful as a replacement for the private langtools build
because it has to go through the interim step and all that - and doing
that, even in the face of one line change in one file was taking
approx 15s recompilation time back when I did the test. So the private
build still has a purpose.
While I don't really like there to be two different and parallel build
systems, I agree that the incremental behavior of the normal build
system is not optimal. Let's work on getting that fixed -- but that's a
long term goal.
In the meantime, there's obviously room for, and need of, a separate
ant-based build system for langtools. If this is run manually by
developers using "ant" on the command line, I see the point that it does
not really belong in the IDE directory.
Let's say we keep it in langtools (unless we can find a better home for
it). My question is: Are we talking only about build.properties and
build.xml? Or are there more files that these depend on, that I had
assumed belong to the IDE generation?
/Magnus
Maurizio