diff options
author | c-blake <c-blake@users.noreply.github.com> | 2020-03-31 13:18:45 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-31 19:18:45 +0200 |
commit | b1aa3b1eeada17453cee9af5c9227c85e0b73d54 (patch) | |
tree | 09868a6bbc7854ca18d71812c9941f9ed389dd0f /tests/arc | |
parent | 7abeba6aeb2de6ab55702524a2c35da1c7da2ee1 (diff) | |
download | Nim-b1aa3b1eeada17453cee9af5c9227c85e0b73d54.tar.gz |
Unwind just the "pseudorandom probing" part of recent sets,tables changes (#13816)
* Unwind just the "pseudorandom probing" (whole hash-code-keyed variable stride double hashing) part of recent sets & tables changes (which has still been causing bugs over a month later (e.g., two days ago https://github.com/nim-lang/Nim/issues/13794) as well as still having several "figure this out" implementation question comments in them (see just diffs of this PR). This topic has been discussed in many places: https://github.com/nim-lang/Nim/issues/13393 https://github.com/nim-lang/Nim/pull/13418 https://github.com/nim-lang/Nim/pull/13440 https://github.com/nim-lang/Nim/issues/13794 Alternative/non-mandatory stronger integer hashes (or vice-versa opt-in identity hashes) are a better solution that is more general (no illusion of one hard-coded sequence solving all problems) while retaining the virtues of linear probing such as cache obliviousness and age-less tables under delete-heavy workloads (still untested after a month of this change). The only real solution for truly adversarial keys is a hash keyed off of data unobservable to attackers. That all fits better with a few families of user-pluggable/define-switchable hashes which can be provided in a separate PR more about `hashes.nim`. This PR carefully preserves the better (but still hard coded!) probing of the `intsets` and other recent fixes like `move` annotations, hash order invariant tests, `intsets.missingOrExcl` fixing, and the move of `rightSize` into `hashcommon.nim`. * Fix `data.len` -> `dataLen` problem.
Diffstat (limited to 'tests/arc')
-rw-r--r-- | tests/arc/trepr.nim | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/arc/trepr.nim b/tests/arc/trepr.nim index 391622ff6..7a92112ed 100644 --- a/tests/arc/trepr.nim +++ b/tests/arc/trepr.nim @@ -1,7 +1,7 @@ discard """ cmd: "nim c --gc:arc $file" nimout: '''(a: true, n: doAssert) -Table[system.string, trepr.MyType](data: @[], counter: 0, countDeleted: 0) +Table[system.string, trepr.MyType](data: @[], counter: 0) nil ''' """ |