Skip to content
This repository has been archived by the owner on Sep 27, 2023. It is now read-only.

Latest commit

 

History

History
28 lines (28 loc) · 1.42 KB

todo.md

File metadata and controls

28 lines (28 loc) · 1.42 KB

Todo

  • Deletion
    • test_art "insert search delete" test has revealed a bug in deletion. trying to figure out what node type is has the bug.
  • figure out whats wrong with iterPrefix, reenable tests.
  • Port more tests and move tests to another file.
  • Add print to stream.
  • Rethink the callback signature. I'm wondering if using data: *c_void param is leading to or related to the failed iter_prefix tests.
    • use var rather than *c_void.
  • iter shouldn't visit non-leaf nodes.
  • make use of childIterator() where possible.
  • rename ArtTree -> Art
  • [] Remove the null termination + increased length requirement without sacrificing performance / simplicity?
  • [] Save space by
    • [] Chop off null terminator in leaves.
    • [] Don't store whole key in leaves.
    • [] Don't allocate the keys, only store pointers.
  • build.zig
  • Clean up the mess.
  • Benchmark against StringHashMap
  • Add a simple repl.
    • write usage
  • SIMD for node16 add and find.
  • make a fileEachLine helper to shrink the size of the tests.
  • reduce Node size. @sizeOf(Node) was above 2000 bytes!
    • store pointer to keys and children. reduces size of Node to 40 bytes
  • use sentinel terminated slices and remove the 'user increment length' requirement.
  • [] allow keys to be different data type
  • currently makeLeaf does 2 allocations and allocNode does 3. reduce these to 1 each.