Skip to content

Conversation

@steveklabnik
Copy link
Collaborator

This reduces the size of AirInstData from ~56 bytes to ~24 bytes by moving variable-length data (call args, block statements, match arms, array elements, struct fields) to a shared extra array, following the pattern already used in RIR.

Key changes:

  • Added extra: Vec to Air struct with helper methods
  • Refactored Call, Block, Match, ArrayInit, StructInit, Intrinsic variants to use start/len pairs instead of inline Vecs
  • Added encoding/decoding for AirPattern and AirArgMode
  • Updated sema.rs, build.rs, and drop_glue.rs to use new format

Fixes rue-6d3e

🤖 Generated with Claude Code

This reduces the size of AirInstData from ~56 bytes to ~24 bytes by moving
variable-length data (call args, block statements, match arms, array elements,
struct fields) to a shared extra array, following the pattern already used in RIR.

Key changes:
- Added extra: Vec<u32> to Air struct with helper methods
- Refactored Call, Block, Match, ArrayInit, StructInit, Intrinsic variants
  to use start/len pairs instead of inline Vecs
- Added encoding/decoding for AirPattern and AirArgMode
- Updated sema.rs, build.rs, and drop_glue.rs to use new format

Fixes rue-6d3e

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@steveklabnik steveklabnik added this pull request to the merge queue Dec 28, 2025
Merged via the queue into rue-language:trunk with commit dbada43 Dec 28, 2025
4 checks passed
@steveklabnik steveklabnik deleted the steveklabnik/push-wvpxklqprxqw branch December 28, 2025 05:52
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