Age | Commit message (Collapse) | Author |
|
|
|
We used to use the mango SPI processor, but this had two major issues:
* ecj wouldn't run annotation processors, requiring a separate proc:only compile run with javac
* mangoSPI couldn't do incremental compilation, so this required a full rebuild just to generate SPI files, every time.
Addressed by updating to IPP40 which does support explicit annotation processors even for ecj, and
adding our own SPI generating annotation processor to the build which can deal with incrementals.
There are some limits; removing a `@Provides` annotation on an existing type will need a full clean to pick that up, for example.
These limits seem quite exotic, though.
|
|
Tiered compilation used to dump every stage into the same build dir, and included that dir on the classpath,
which means any ordering issues introduced into a build aren't going to result in a failed build,
thus breaking the build for everybody except those who already had a working lombok in their
build dir before starting a build. The opposite of bootstrapping, in other words.
Fixed by having each stage build into its own private stage phase.
|
|
autocleaning means that the build system detects that the usual incremental mode,
where the build artefacts are not deleted and instead used to skip steps already performed,
is not an option due to changes in the build script itself or a change in deps not detectable.
It works by having a version number which can be incremented, and a system that checks
for mismatches and forces a clean.
|
|
javac8 has a bizarre dependency situation: we need the stubs in src/stubs there to compile, but if they are there
at runtime during a test run of javac8, they take precedence over the JDK's javac (because we include this
as a separate cp entry, and thus it is not a bootclasspath item), and messes everything up.
The fix is to tell eclipse to compile various src/X folders to different 'bin' targets, which required
an update to ivyplusplus as well.
also it was just broken in general, fixed that too :)
|
|
|
|
|
|
apparently on windows symlinking requires admin rights because ?????
This can be fixed with an explicit update to group policies, which I
can't assume anybody working on lombok is going to actually do.
/bin/ln in msysgit just copies (interesting choice). I could write a mechanism
that tries /bin/ln and if not there, try <copy> instead, either in the build scripts
or in ivyplusplus, but that's way too much effort to avoid a 2MB copy. So,
for now, we just copy... if more symlinking is to be done later, we'll revisit, though.
copying is such a silly waste of time, slowing down the build for no reason.
|
|
|