PR #312 bundles four changes. Two of them, #313 and #314, merged in 2023. The javac half merged as #496. This issue records the design question that blocks the remaining half, so that the work in that branch has somewhere to go.
What the branch holds
The -log support for the Eclipse compiler: the EcjLogParser and EcjTextLogParser classes, changes to the EcjResponseParser class, 8 test classes, and 8 captured compiler logs covering both the text and XML formats. That is about 2,000 of the branch's 2,150 lines.
Why it can't merge as written
@gnodet argued against the approach in his own PR: the branch passes -log through to the compiler and parses the resulting file afterwards. When the argument names an absolute path and two builds run at once, they write to the same file.
The alternative he proposed is a CompilerConfiguration option that names a directory or file for compiler output. The compiler writes where plexus-compiler chooses, plexus-compiler parses the output, and only then copies it to the requested location. Closed PR #296 covers similar ground.
Open questions
Answering these gives the branch a target to be rewritten against:
- Does the option name a directory, a file, or either?
- Does it apply to every compiler or only to those that can write a log?
- What happens when a compiler doesn't support it: silence, a warning, or a failure?
- Does the output reach the requested location on a failed compile as well as a successful one?
The log fixtures in the branch are reusable whatever the answer, because they capture real compiler output rather than the mechanism that produced it.
This issue was created with AI assistance.
PR #312 bundles four changes. Two of them, #313 and #314, merged in 2023. The javac half merged as #496. This issue records the design question that blocks the remaining half, so that the work in that branch has somewhere to go.
What the branch holds
The
-logsupport for the Eclipse compiler: theEcjLogParserandEcjTextLogParserclasses, changes to theEcjResponseParserclass, 8 test classes, and 8 captured compiler logs covering both the text and XML formats. That is about 2,000 of the branch's 2,150 lines.Why it can't merge as written
@gnodet argued against the approach in his own PR: the branch passes
-logthrough to the compiler and parses the resulting file afterwards. When the argument names an absolute path and two builds run at once, they write to the same file.The alternative he proposed is a
CompilerConfigurationoption that names a directory or file for compiler output. The compiler writes where plexus-compiler chooses, plexus-compiler parses the output, and only then copies it to the requested location. Closed PR #296 covers similar ground.Open questions
Answering these gives the branch a target to be rewritten against:
The log fixtures in the branch are reusable whatever the answer, because they capture real compiler output rather than the mechanism that produced it.
This issue was created with AI assistance.