[D-runtime] [D-Programming-Language/druntime] 79bc91: fix Issue 14385 - AA should use open addressing ha...

GitHub via D-runtime d-runtime at puremagic.com
Tue Apr 21 15:15:58 PDT 2015


  Branch: refs/heads/open_addressing
  Home:   https://github.com/D-Programming-Language/druntime
  Commit: 79bc91b41334c1805f557ef2f1606de31c6764d1
      https://github.com/D-Programming-Language/druntime/commit/79bc91b41334c1805f557ef2f1606de31c6764d1
  Author: Martin Nowak <code at dawg.eu>
  Date:   2015-04-21 (Tue, 21 Apr 2015)

  Changed paths:
    M src/object.di
    M src/object_.d
    M src/rt/aaA.d
    M src/rt/lifetime.d

  Log Message:
  -----------
  fix Issue 14385 - AA should use open addressing hash

- new AA implementation
- uses open addressing with quadratic probing (triangular numbers) and pow2 table
- uses NO_SCAN for entries when applicable
- minimizes alignment gap for values
- calls postblit on aa.keys and aa.values


  Commit: 2532129cf3a3d2a51aec09cdd8b8e3f73e7cb39a
      https://github.com/D-Programming-Language/druntime/commit/2532129cf3a3d2a51aec09cdd8b8e3f73e7cb39a
  Author: Martin Nowak <code at dawg.eu>
  Date:   2015-04-22 (Wed, 22 Apr 2015)

  Changed paths:
    M src/rt/aaA.d

  Log Message:
  -----------
  add AA layout version number (`_aaVersion`)

- so that debuggers know how to pretty-print the content of an AA


  Commit: a55472197c2331524a388170bd779a136bc80216
      https://github.com/D-Programming-Language/druntime/commit/a55472197c2331524a388170bd779a136bc80216
  Author: Martin Nowak <code at dawg.eu>
  Date:   2015-04-22 (Wed, 22 Apr 2015)

  Changed paths:
    M src/rt/aaA.d

  Log Message:
  -----------
  comment and unittest for move of AA literal keys&values

- also destroy values before overwriting them (due to duplicate keys)
  during literal construction


Compare: https://github.com/D-Programming-Language/druntime/compare/79bc91b41334^...a55472197c23


More information about the D-runtime mailing list