Integrated: Cleanup NumberSeq additions
Aleksey Shipilev
shade at openjdk.org
Mon May 1 08:11:55 UTC 2023
On Thu, 27 Apr 2023 15:31:58 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> I have been looking into how to decrease our upstream exposure for `NumberSeq` changes, and it seems to be not solvable in an easy way. Normally, I would add `AbsSeq::add(AbsSeq& other)` methods and get to that from `HdrSeq::add(HdrSeq& other)`, and that almost works. The remaining bit is figuring out the decaying average/variance thingie.
>
> I spent an hour trying to come up with easily provable equations for _combining_ the decaying average/variance. The decaying average is somewhat easy, although there are boundary problems (decaying average treats 0-th element without adjustments, which requires remembering the `_last` element to compensate). Decaying variance looks remarkably scary in the few of my approaches.
>
> If we enter with current code upstream, it would be the uphill battle to implemented decays and prove they work. So instead, I took the alternative approach of doing everything inside Shenandoah code, except the decays. This reverts `numberSeq.*` to upstream state.
>
> Additional testing:
> - [x] Linux x86_64 fastdebug `hotspot_gc_shenandoah`
> - [x] Linux AArch64 fastdebug `hotspot_gc_shenandoah`
> - [x] GitFarm
This pull request has now been integrated.
Changeset: 58fa1410
Author: Aleksey Shipilev <shade at openjdk.org>
URL: https://git.openjdk.org/shenandoah/commit/58fa1410a8ad1462cbe7c035b7d64f44a0b62c85
Stats: 187 lines in 7 files changed: 71 ins; 69 del; 47 mod
Cleanup NumberSeq additions
Reviewed-by: ysr, rkennke
-------------
PR: https://git.openjdk.org/shenandoah/pull/268
More information about the shenandoah-dev
mailing list