Skip to content

Add parallel arrays shape for dictionaries and hashsets - #152

Open
ero-qt wants to merge 19 commits into
LiveSplit:masterfrom
ero-qt:parallel-collections
Open

Add parallel arrays shape for dictionaries and hashsets#152
ero-qt wants to merge 19 commits into
LiveSplit:masterfrom
ero-qt:parallel-collections

Conversation

@ero-qt

@ero-qt ero-qt commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Part of #149.

Adds the parallel arrays shape of dictionaries and hash sets to the collection readers. The oldest Mono corlib, net20 on Unity 5.6, lays a dictionary out as linkSlots, keySlots, valueSlots and touchedSlots, and a set as links, slots and touched. The offsets resolvers recognize that shape, and the same read calls read it. The read walks the links up to the high-water mark, takes the indices whose stored hash carries the live flag, and reads the key and value arrays at those indices. The Link class says which of its two ints is the hash, so either order works.

Nothing changes on the surface. The offsets types carry a shape inside.

cargo test --all-features runs the suite. The new tests cover parallel dictionaries and hash sets on both runtimes and unbalanced parallel tallies.


Depends on #151.

@ero-qt
ero-qt force-pushed the parallel-collections branch 2 times, most recently from 8b0297f to 8889818 Compare September 14, 2026 08:43
@ero-qt
ero-qt force-pushed the parallel-collections branch from 8889818 to af519b0 Compare September 14, 2026 09:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant