Skip to content

Feature/select improve - #69

Open
Malkovsky wants to merge 2 commits into
mainfrom
feature/select_improve
Open

Malkovsky wants to merge 2 commits into
mainfrom
feature/select_improve

Conversation

@Malkovsky

Copy link
Copy Markdown
Owner
  • Applied missing interpolation search optimization on select1
  • Introduced pasta flat into rank/select benchmarks

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 13, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-13T15:25:09.405316Z aac5918 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aac59187ef

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

#include <pixie/io/file_output_sink.h>
#include <pixie/io/mapped_file.h>
#include <pixie/rank_select/support.h>
#include <pixie/rank_select/implementations.h>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include concrete rank/select headers directly

Replace the catalog include with direct includes for support.h and, conditionally, pasta.h. This test is a public-contract consumer rather than a benchmark translation unit, so including the catalog couples it to every future optional backend and can introduce unrelated dependencies or build failures whenever the benchmark catalog expands.

AGENTS.md reference: AGENTS.md:L52-L56

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex why is it bad? Tests are indeed suppose to check every future implementation and are not supposed to be the part of the main included core

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Short answer

You’re right that the shared specification test should exercise every compatible rank/select implementation, including future implementations. The existing typed suite does exactly that by listing native and optional Pasta implementations in RankSelectImplementations. src/tests/rank_select_tests.cppL68-L77

My review comment conflated two separate concerns:

  1. Which implementations the shared test instantiates — ideally every compatible implementation.
  2. How the test obtains their declarations — through the catalog or through explicit concrete-header includes.

The first concern is important. The second is primarily an architectural convention, not a correctness problem.

What is—and is not—bad about the catalog include

Including implementations.h here does not make it part of Pixie’s main included core. It is included only by this test translation unit, while the production library remains header-only and consumers choose what to include. So that part of my prior wording was misleading.

The repository instructions do currently state that implementations.h is intended as a benchmark catalog and that tests should include concrete headers directly. AGENTS.mdL52-L56 They repeat that convention in the family-interface workflow: tests should directly include concrete headers while benchmarks include the catalog, but every compatible implementation should still be added to the same typed specification suite. AGENTS.mdL75-L80

The rationale for direct includes is limited to dependency control:

  • The catalog includes support.h unconditionally and pasta.h conditionally. include/pixie/rank_select/implementations.hL115-L120
  • If a future catalog entry were benchmark-only, platform-specific, experimental, or otherwise unsuitable for the contract suite, the test could inherit that dependency merely by including the catalog.
  • However, optional Pasta support is already explicitly configured for rank_select_tests: when third-party backends are enabled, the test target links Pasta and applies its required compiler option. CMakeLists.txtL240-L255
  • Most importantly, the catalog include does not automatically test future implementations. The typed list must still be updated explicitly, as demonstrated by the current conditional list containing RankSelectSupport<> and PastaRankSelectSupport. src/tests/rank_select_tests.cppL71-L77

Therefore, the accurate conclusion is:

The include conflicts with the repository’s stated include convention, but it is not inherently bad, does not pollute the main core, and does not currently create a functional defect.

Given your stated intent—that this specification suite should track every future implementation—the original P2 severity was unjustified. I would withdraw that finding rather than request a code change.

Repository state

No code change was necessary, so I did not create a commit or a follow-up pull request.

Inspection performed

  • sed -n '1,180p' AGENTS.md
  • nl -ba src/tests/rank_select_tests.cpp | sed -n '1,120p'
  • nl -ba include/pixie/rank_select/implementations.h | sed -n '1,160p'
  • rg -n -C 4 'rank_select_tests|PIXIE_THIRD_PARTY_BACKENDS|PIXIE_PASTA' CMakeLists.txt cmake src include
  • git status --short
  • ⚠️ sed -n '1,220p' agentic/cpp/AGENTS.md — the referenced shared-guidance path is not present in this checkout.

View task →

@codecov

codecov Bot commented Sep 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.65217% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 91.23%. Comparing base (4e52a07) to head (aac5918).

Files with missing lines Patch % Lines
include/pixie/rank_select/support.h 94.11% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
- Coverage   91.34%   91.23%   -0.12%     
==========================================
  Files          53       53              
  Lines       13118    12940     -178     
  Branches     1830     1827       -3     
==========================================
- Hits        11983    11806     -177     
+ Misses        523      521       -2     
- Partials      612      613       +1     
Flag Coverage Δ
gcov 91.23% <95.65%> (-0.12%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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