Nim/lib
c-blake 6aa971d39f
Add proc find to heapqueue (#14628)
* 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.

* Add neglected API call `find` to heapqueue.

* Add a changelog.md entry, `since` annotation and rename parameter to be
`heap` like all the other procs for consistency.

* Add missing import.
2020-06-10 19:53:18 +01:00
..
arch/x86 Coroutine rework. 2017-02-20 17:24:19 +02:00
core simple typo in locks.nim (#14297) 2020-05-11 02:59:31 -04:00
deprecated/pure Error -> Defect for defects (#13908) 2020-04-28 19:56:01 +02: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 close #14284 document semantics for start for re,nre; improve examples (#14483) 2020-05-28 20:43:36 +02:00
js Add clipPath to dom.nim. (#14435) 2020-05-24 07:32:24 +02:00
nintendoswitch Rewrite the memory management code for Nintendo Switch (#8169) 2018-07-05 16:33:15 +02:00
packages/docutils Propagate the outDir to rstgen to fix hrefs for modules in subdirs (#14479) 2020-05-28 00:13:24 -07:00
posix Add support for mktemps (#14347) 2020-05-25 12:18:35 +02:00
pure Add proc find to heapqueue (#14628) 2020-06-10 19:53:18 +01:00
std Make the example better describe the desired outcome (#14611) 2020-06-08 18:49:07 -07:00
system exceptions.nim: Fix a bad Error -> Defect renaming (#14621) 2020-06-10 09:34:20 +02:00
windows fix a critical bug in windows.osproc leading to resource leaks and blocking IO [backport] (#14296) 2020-05-11 11:14:21 +02:00
wrappers openssl: use explicit result for SSL_in_init (#14597) 2020-06-08 08:15:10 +02:00
cycle.h
nimbase.h Add thiscall calling convention, mostly for hooking purpose (#14466) 2020-05-27 16:24:47 +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
stdlib.nimble attempt to make the build green again 2017-01-07 02:55:15 +01:00
system.nim fix #10731 ; runnableExamples "-b:cpp --run:off": code works (#14384) 2020-05-20 09:45:34 +02:00
system_overview.rst [documentation] fix wrong link [ci skip] 2019-06-21 12:04:43 +02:00