Repository navigation
Aether 0.836.0: @into on the accessors into their argument - #186
Merged
Merged
Conversation
0.836.0 checks aether#2990: a function that returns a pointer made from a borrowed `ptr` parameter is E0902 unless the parameter is `@into`, which says the argument reaches the result and nowhere else. 13 accessors hand back a pointer into the block they are given (state_at, sim_at, the constraint, block, stage and spec accessors, the wide solver's state_or_identity, resolve_contact_body_sim, native.scratch), and now declare it. No caller stores a result past its argument, so no call site changed. player_step_frame lost the return after its `while true`, which never completes: 0.836.0 warns (W1002), and scripts/test.sh fails a warning. CI and the README pin 0.836.0. The suite and the golden trace pass on it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Aether 0.836.0 (released 2026-10-20) checks aether#2990, so aephysics main no longer compiled on it. ae3d moves to 0.836.0 together with this.
What changes
@intoon 13 accessor parameters. A function that returns a pointer made from a borrowedptrparameter is now E0902, unless the parameter is declared@into: the argument reaches the result and nowhere else. These accessors hand back a pointer into the block they are given:state_atandsim_at, in both contact_solver and solver;contact_constraint_atandmanifold_constraint_at;wide_constraint_atandstate_or_identity;block_at,stage_atandcolor_blocks_at;resolve_contact_body_sim's two sim arrays;native.scratch;human.spec_at.No caller stores a result beyond its argument, so no call site changes.
player_step_frameloses thereturnafter itswhile true, which never completes. 0.836.0 warns about it (W1002), andscripts/test.shfails on any warning.Pins: CI and the README move to 0.836.0, and aeb stays at v0.328, still the latest.
Measured
On Windows with 0.836.0, every module checks with no diagnostics.
scripts/test.shpasses: all 39 tests, the bench builds, and the golden trace bit for bit over 1,250 steps. CI adds Linux, Linux with AVX2 and FMA, macOS arm64, and Windows at -O3 and -O0.