Skip to content

Conversation

@Radvendii
Copy link
Contributor

Motivation

For big picture motivation, see the tracking issue

This PR moves the data from the vector ExprOpHasAttr::attrPath into our Exprs arena, and then refers to it by a std::span<AttrName>. Unlike for ExprSelect, here we do not benefit from separating out the length and start pointer of the std::span, since alignment would bring us back up to 16 bytes anyways..

  • Removes 8 bytes per ExprOpHasAttr by going from std::vector (24 bytes) to std::span<AttrName> (16 bytes)

Context


Add 👍 to pull requests you find important.

The Nix maintainer team uses a GitHub project board to schedule and track reviews.

@Radvendii Radvendii requested a review from edolstra as a code owner October 3, 2025 18:19
@Radvendii Radvendii mentioned this pull request Oct 3, 2025
41 tasks
@Radvendii Radvendii force-pushed the exprophasattr-alloc branch 2 times, most recently from 6ccfe3b to 1ed1e54 Compare October 3, 2025 18:43
@Radvendii Radvendii force-pushed the exprophasattr-alloc branch from 1ed1e54 to c2cdb48 Compare October 3, 2025 20:06
@xokdvium xokdvium force-pushed the exprophasattr-alloc branch from c2cdb48 to 39109c0 Compare October 3, 2025 20:28
@xokdvium xokdvium merged commit 35d7719 into NixOS:master Oct 3, 2025
15 checks passed
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.

2 participants