Skip to content

Aether 0.836.0: @into on the accessors into their argument - #186

Merged
nicolas-maman merged 1 commit into
mainfrom
fix/aether-0836
Oct 20, 2026
Merged

nicolas-maman merged 1 commit into
mainfrom
fix/aether-0836

Conversation

@nicolas-maman

Copy link
Copy Markdown
Collaborator

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

  • @into on 13 accessor parameters. A function that returns a pointer made from a borrowed ptr parameter 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_at and sim_at, in both contact_solver and solver;
    • contact_constraint_at and manifold_constraint_at;
    • wide_constraint_at and state_or_identity;
    • block_at, stage_at and color_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_frame loses the return after its while true, which never completes. 0.836.0 warns about it (W1002), and scripts/test.sh fails 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.sh passes: 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.

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.
@nicolas-maman
nicolas-maman merged commit 32aa169 into main Oct 20, 2026
3 checks passed
@nicolas-maman
nicolas-maman deleted the fix/aether-0836 branch October 20, 2026 22:27
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