Repository navigation
Conversation
Quest-Claim: 28367262a3ae75b7
std's BinaryHeap needs std structs and writing std functions translated from MIR, which the translator refuses, and Hole's pointer arithmetic into arrays of objects, which the epic's 2026-11-01 decision refuses. The port follows std's sifts line for line and is tested against native on every `just ci`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

Summary
Deletes BinaryHeap from std's MIR and its link in the ts-unsafe epic. The runtime's port (
rs.BinaryHeap,rs.PeekMutints/runtime/rs/collections.ts) stays.Why
ts/src/lower/mod.rs). std's heap needsBinaryHeap<T, A>,PeekMut,Hole,RebuildOnDrop,Iter,IntoIter, andDrainto translate as the crate's own structs do. Andlibrary::from_mirrefuses std functions that areunsafeor take&mutor a raw pointer, which covers nearly every heap method.Hole::move_toisptr::copy_nonoverlapping(data.as_mut_ptr().add(index), data.as_mut_ptr().add(pos), 1): pointer arithmetic into an array of objects, which the epic's 2026-11-01 decision refuses. Every object heap in theorderscase (Item, tuples,[u8; 2],String) would become a refusal.Drainfrom MIR at 3 to 12x the port's CPU time foru8/u32elements (Node 24, CPU time on a loaded host), with most of it inProxyreads of theVec's room. No heap translation exists to measure, butHolereads and writes through the same room.The port follows std's sifts line for line, and the
ordersdifferential case tests it against native on everyjust ci.Decisions
Impact
None: quest files only. No public API or wire change.
Validation
quest check --fix: ok.just check: passed (lint, quest).Models
Size: M
Implementer: Claude Code, claude-opus-5-5, high effort
Review
Skipped: a quest-only deletion needs no review round.
(Written by Claude Opus 5.5 with high effort)
🤖 Generated with Claude Code