Nim/lib
c-blake b1aa3b1eea
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.
2020-03-31 19:18:45 +02:00
..
arch/x86 Coroutine rework. 2017-02-20 17:24:19 +02:00
core add nnkMacroDef to RoutineNodes (#13676) 2020-03-17 23:41:07 +01:00
deprecated/pure Update events.nim (#12803) 2019-12-03 16:54:23 +01:00
experimental fix several typos in documentation and comments (#12553) 2019-10-30 09:08:45 +01:00
genode minor update for the genode target 2019-07-14 16:08:15 +02:00
genode_cpp Native access to Genode environment 2018-06-07 07:21:20 +02:00
impure Add Documentation (#13811) 2020-03-31 15:47:57 +02:00
js Add more JS stuff to dom.nim (#13483) 2020-03-11 23:24:56 +00:00
nintendoswitch Rewrite the memory management code for Nintendo Switch (#8169) 2018-07-05 16:33:15 +02:00
packages/docutils Fix #13631 (#13789) 2020-03-29 14:39:58 +02:00
posix Add Documentation (#13811) 2020-03-31 15:47:57 +02:00
pure Unwind just the "pseudorandom probing" part of recent sets,tables changes (#13816) 2020-03-31 19:18:45 +02:00
std Add Documentation (#13811) 2020-03-31 15:47:57 +02:00
system Add Documentation (#13811) 2020-03-31 15:47:57 +02:00
windows Windows API callbacks cannot raise exceptions 2020-03-22 20:45:03 +01:00
wrappers introduce getPeerCertificates, fixes #13299 (#13650) 2020-03-22 21:00:37 +01:00
cycle.h
nimbase.h stacktraces can now show custom runtime msgs per frame (#13351) 2020-03-30 13:45:32 +02:00
nimhcr.nim hotfix: make 'nim doc nimhcr' work on all platforms 2020-03-23 13:05:29 +01:00
nimhcr.nim.cfg Initial version of the hot-code reloading support for native targets (#10729) 2019-02-26 15:48:55 +01:00
nimrtl.nim added cstrutils (#12858) [backport] 2019-12-09 06:58:06 +01:00
nimrtl.nim.cfg Initial version of the hot-code reloading support for native targets (#10729) 2019-02-26 15:48:55 +01:00
prelude.nim Nimrod renamed to Nim 2014-08-28 09:59:26 +02:00
stdlib.nimble attempt to make the build green again 2017-01-07 02:55:15 +01:00
system.nim stacktraces can now show custom runtime msgs per frame (#13351) 2020-03-30 13:45:32 +02:00
system_overview.rst [documentation] fix wrong link [ci skip] 2019-06-21 12:04:43 +02:00