Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jdt-dev] Flow analysis beyond 64

Dear Team,

No, I'm not so much worried, whether you still need me when I'm 64 [1], but this message is about a peculiarity of our implementation of flow analysis:

The first 64 variables are analysed using a set of bit vectors stored in several long fields of FlowInfo. However, once we have more than 64 variables to analyse, we push the additional bits into an open 2-dim array of "extra" bits.

I recently fixed one bug in this area, which then unearthed another bug etc. until I realized that this extra implementation is very scarcely tested. That's when I invented a flag that allows us to run *all* existing JDT/Core tests with an offset of 64, i.e., performing all flow analysis in this extra level.

I then decided that we don't want to double our testing times, but I picked one of our weekly builds to run all compiler tests in this new test mode: https://ci.eclipse.org/jdt/job/eclipse.jdt.core-run.javac-10

I will continue to watch that job for regressions. Unfortunately that job documents several levels of technical debt: first the existing differences between ecj & javac, which I can sort out only at a slow rate (help appreciated!). Secondly, smth is amiss since the merge of BETA_JAVA14.

@Jay, have you seen https://bugs.eclipse.org/561316 ? I would appreciate is this were fixed sooner, rather than later, to reduce the known failures to the real issues. Otherwise the tests would become meaningless over time.

Related bugs are:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=561280
https://bugs.eclipse.org/bugs/show_bug.cgi?id=561439

best,
Stephan

[1] https://www.youtube.com/watch?v=HCTunqv1Xt4


Back to the top