[Merged by Bors] - Newtype ArchetypeRow and TableRow#4878
[Merged by Bors] - Newtype ArchetypeRow and TableRow#4878james7132 wants to merge 32 commits intobevyengine:mainfrom
Conversation
alice-i-cecile
left a comment
There was a problem hiding this comment.
Changes and motivation look good. Approval conditional on non-regressing benchmarks :)
|
A quick round of benchmarks seems to show regressions in dense iteration with a significant speedup to Details |
|
@james7132 wanna try another round of benchmarks? |
|
Done with a set of microbenchmarks relative to the current main. Most of the prior regressions have become slight improvements, or are within the noise threshold at this point. However, there are a few outstanding regressions that have gotten noticeably larger. I'll see if I can smooth these out. Details |
|
bors r+ |
# Objective Prevent future unsoundness that was seen in #6623. ## Solution Newtype both indexes in `Archetype` and `Table` as `ArchetypeRow` and `TableRow`. This avoids weird numerical manipulation on the indices, and can be stored and treated opaquely. Also enforces the source and destination of where these indices at a type level. --- ## Changelog Changed: `Archetype` indices and `Table` rows have been newtyped as `ArchetypeRow` and `TableRow`.
|
Build failed: |
|
No merge conflicts, but merging #6843 broke this build. |
|
Had to add |
|
bors retry |
# Objective Prevent future unsoundness that was seen in #6623. ## Solution Newtype both indexes in `Archetype` and `Table` as `ArchetypeRow` and `TableRow`. This avoids weird numerical manipulation on the indices, and can be stored and treated opaquely. Also enforces the source and destination of where these indices at a type level. --- ## Changelog Changed: `Archetype` indices and `Table` rows have been newtyped as `ArchetypeRow` and `TableRow`.
# Objective Prevent future unsoundness that was seen in bevyengine#6623. ## Solution Newtype both indexes in `Archetype` and `Table` as `ArchetypeRow` and `TableRow`. This avoids weird numerical manipulation on the indices, and can be stored and treated opaquely. Also enforces the source and destination of where these indices at a type level. --- ## Changelog Changed: `Archetype` indices and `Table` rows have been newtyped as `ArchetypeRow` and `TableRow`.
# Objective Prevent future unsoundness that was seen in bevyengine#6623. ## Solution Newtype both indexes in `Archetype` and `Table` as `ArchetypeRow` and `TableRow`. This avoids weird numerical manipulation on the indices, and can be stored and treated opaquely. Also enforces the source and destination of where these indices at a type level. --- ## Changelog Changed: `Archetype` indices and `Table` rows have been newtyped as `ArchetypeRow` and `TableRow`.
# Objective Prevent future unsoundness that was seen in bevyengine#6623. ## Solution Newtype both indexes in `Archetype` and `Table` as `ArchetypeRow` and `TableRow`. This avoids weird numerical manipulation on the indices, and can be stored and treated opaquely. Also enforces the source and destination of where these indices at a type level. --- ## Changelog Changed: `Archetype` indices and `Table` rows have been newtyped as `ArchetypeRow` and `TableRow`.
Objective
Prevent future unsoundness that was seen in #6623.
Solution
Newtype both indexes in
ArchetypeandTableasArchetypeRowandTableRow. This avoids weird numerical manipulation on the indices, and can be stored and treated opaquely. Also enforces the source and destination of where these indices at a type level.Changelog
Changed:
Archetypeindices andTablerows have been newtyped asArchetypeRowandTableRow.