bevy/crates
SpecificProtagonist 8faaef17e5
Hash stability guarantees (#11690)
# Objective

We currently over/underpromise hash stability:
- `HashMap`/`HashSet` use `BuildHasherDefault<AHasher>` instead of
`RandomState`. As a result, the hash is stable within the same run.
- [aHash isn't stable between devices (and
versions)](https://github.com/tkaitchuck/ahash?tab=readme-ov-file#goals-and-non-goals),
yet it's used for `StableHashMap`/`StableHashSet`
- the specialized hashmaps are stable

Interestingly, `StableHashMap`/`StableHashSet` aren't used by Bevy
itself (anymore).

## Solution
Add/fix documentation

## Alternatives
For `StableHashMap`/`StableHashSet`:
- remove them
- revive #7107

---

## Changelog
- added iteration stability guarantees for different hashmaps
2024-02-05 17:05:15 +00:00
..
bevy_a11y Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_animation Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_app Use TypeIdMap whenever possible (#11684) 2024-02-03 23:47:04 +00:00
bevy_asset Use TypeIdMap whenever possible (#11684) 2024-02-03 23:47:04 +00:00
bevy_audio Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_core Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_core_pipeline Async pipeline compilation (#10812) 2024-02-05 13:50:50 +00:00
bevy_derive Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_diagnostic Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_dylib Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_dynamic_plugin Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_ecs Deprecated Various Component Methods from Query and QueryState (#9920) 2024-02-04 01:01:59 +00:00
bevy_ecs_compile_fail_tests Deprecated Various Component Methods from Query and QueryState (#9920) 2024-02-04 01:01:59 +00:00
bevy_encase_derive Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_gilrs Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_gizmos fix(primitives): fix polygon gizmo rendering bug (#11699) 2024-02-05 15:09:49 +00:00
bevy_gltf Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_hierarchy Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_input Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_internal Async pipeline compilation (#10812) 2024-02-05 13:50:50 +00:00
bevy_log Update tracing-tracy requirement from 0.10.4 to 0.11.0 and tracy-client requirement from 0.16.4 to 0.17.0 (#11678) 2024-02-03 21:44:38 +00:00
bevy_macro_utils Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_macros_compile_fail_tests Standardize toml format with taplo (#10594) 2023-11-21 01:04:14 +00:00
bevy_math Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_mikktspace Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_pbr Async pipeline compilation (#10812) 2024-02-05 13:50:50 +00:00
bevy_ptr Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_reflect Hash stability guarantees (#11690) 2024-02-05 17:05:15 +00:00
bevy_reflect_compile_fail_tests bevy_reflect: Type parameter bounds (#9046) 2024-01-28 16:24:03 +00:00
bevy_render Async pipeline compilation (#10812) 2024-02-05 13:50:50 +00:00
bevy_scene Send SceneInstanceReady only once per scene (#11002) 2024-02-05 13:54:54 +00:00
bevy_sprite Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_tasks Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_text Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_time Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_transform Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
bevy_ui Deprecated Various Component Methods from Query and QueryState (#9920) 2024-02-04 01:01:59 +00:00
bevy_utils Hash stability guarantees (#11690) 2024-02-05 17:05:15 +00:00
bevy_window Add name to bevy:🪟:Window (#7650) 2024-02-05 13:35:35 +00:00
bevy_winit Add name to bevy:🪟:Window (#7650) 2024-02-05 13:35:35 +00:00