Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-dev] Immediate feedback on ecj changes for jdt and platform build

Hi all,

with [1] we have now immediate feedback loop on ecj compiler changes (in org.eclipse.jdt.core.compiler.batch [2]).
Before changes in [1] we only (manually) updated compiler after every milestone/release build.

What does it mean now: on any compiler code change the ecj compiler is re-built from sources and used as compiler for the rest of the build.

This has following immediate consequences:

1) If we push PR to jdt.core github repo, we build ecj in Jenkins from PR commit first and use that ecj to build the rest of JDT code for this PR. If we break compiler (without noticing that in tests), Jenkins may fail immediately just by compiling JDT code.
2) If we merge commits to master branch of jdt.core github repo, following platform aggregator builds in Jenkins & next nightly platform SDK build will use JDT head commit to build ecj and use that ecj to build the rest of the platform SDK code.
3) If we change the way how ecj generates bytecode (like in [3]), next SDK build might be declared "unstable" (because build would produce different binaries for bundles with no changes in source code). In such case the affected bundles source code need to be "touched" to get "stable" SDK build (assuming ecj produces correct code). Should it be the worst case and ecj would produce wrong bytecode, we have either to fix compiler for the next SDK build or just revert offending compiler commit. I hope this shouldn't happen often, but it is better *we* detect bad change and not downstream consumers.

With the points above we hope to get faster feedback on ecj compiler changes.


Kind regards,
Andrey Loskutov

Спасение утопающих - дело рук самих утопающих

Back to the top