eclipse-jdt / eclipse-jdt/eclipse.jdt.core

Non deterministic compile results with lamda numbering

Open
#1,921 14 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
237
Forks
195
Avg merge
1d 10h
Merged PRs (30d)
49

Description

In PDE we are experiencing a build instability with the class [BundleLauncherHelper](https://github.com/eclipse-pde/eclipse.pde/blob/master/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java) according to the logs the numbering of lamdas is different compared to those on the baseline, I have captured a compile log that shows the differences and **has compile logs with exact classpath and compiler options** here: [compare.zip](https://github.com/eclipse-jdt/eclipse.jdt.core/files/14088236/compare.zip)

The textcompare shows that only the numbering is different here, please note that the baseline seem not contain any `lambda$0` but starting with `lambda$1` immediately:
![grafik](https://github.com/eclipse-jdt/eclipse.jdt.core/assets/1331477/aa8be345-9adb-4f3c-aa73-c9f4a217996b)

I can't reproduce this locally and even on the CI instance the behavior varies between builds where none are actually changing that bundle.

Contributor guide

Open the contributing guide

Research direction

Start with ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java and inspect compare.zip, which contains the differing compile logs, classpaths, and compiler options. Compare the lambda numbering between builds and the baseline; done means the cause of the varying numbering is identified and compilation is deterministic.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.