Community
Participate
Working Groups
Build 3.5M1 Problem irritants are encoded into a 64bit long; i.e. one bit for each. There are already 58 bits used today, which means only room left for 6 additional diagnosis. Need to rework the support the error/warning threshold to accomodate more evolutions in the future.
Created attachment 111495 [details] Proposed patch The patch encapsulates errorThreshold/warningThreshold into IrritantSet objects. These object can store up to 8x29 irritants (reserving 3 higher bits in irritants to denote group; it could later be evolved into 16x28 if needed). All irritants now are encoded into 32 bit ints, and thus can directly be used in switch (no longer need to split 64 bits into 32 high/low bits).
Frederic - could you conduct a performance run with this one patch, and let me know its impact on performance ?
Released for 3.5M2. Fixed
Our local performance tests do not show any specific regression for all the tests of FullSourceWorkspaceBuildTests...
Verified for 3.5M2 that the patch has been applied and that the tests are still green.
*** Bug 248781 has been marked as a duplicate of this bug. ***
While adopting this change into our variant I found some left-overs in CompilerOptions which should probably be removed: * field OptionToIrritants * method long optionKeyToIrritant(String optionName) I was trying to find a correct and safe type for this map, but actually the code looks broken here - undecided whether to hold Longs or Integers. => should someone try to use this stuff (s)he will end up getting CCEs. While I like this solution it sure is a more invasive change than what I had been using. So this change appears as a barrier when inspecting the version history of CompilerOptions: can't really relate old versions to current state any more.. just a comment ;-)
I didn't review the patch but quickly tried it out: - the default severity needs to be 'Ignore' i.e. off by default - the message should be closer to unused variables: ==> "The allocated object is never used"
Please ignore the previous comment (wrong bug).