Skip to content

CHANGELOG 1.7.0: known limit on macOS (fd report sink, 64 MiB stream RSS) - #503

Merged
luisleo526 merged 2 commits into
mainfrom
docs/changelog-macos-known-limit
Oct 25, 2026
Merged

luisleo526 merged 2 commits into
mainfrom
docs/changelog-macos-known-limit

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

Docs-only (CHANGELOG.md only, +12 lines, a new bullet at the end of 1.7.0 "Costs that remain"; no sentence replaced): the macOS known limit for 1.7.0 per L6's ruling.

Evidence: main ci-post 40145973799 on 4ae3f88, build (macos-26, Debug): 99% passed, 4 of 1126 failed: #982 test_report_nonfinite_equity_cabi_fd and #983 ..._cpp_fd ("borrowed fd changed"), #1014 test_report_sink_fd ("L22A: NULL removal closed the borrowed fd or changed its flags"), #1016 test_sink_finalize (64 MiB stream peak RSS +1,097,728 B).

--- commit message ---
CHANGELOG 1.7.0: known limit on macOS (fd report sink, 64 MiB stream RSS)

main's post-merge CI on 4ae3f88 (run 40145973799, macos-26 Debug) ran the
macOS tests for the first time on the 1.7.0 line: 4 of 1126 failed, all
macOS-only (Linux passes them): test_report_nonfinite_equity_cabi_fd (#982),
test_report_nonfinite_equity_cpp_fd (#983) and test_report_sink_fd (#1014)
find the borrowed descriptor of the fd-based report sink changed or closed;
test_sink_finalize (#1016) sees the 64 MiB stream grow peak RSS by about
1.05 MB. L6 ruling 10-25: a known limit for 1.7.0, documented here; the fix
is a 1.7.1 card. CHANGELOG.md only; no sentence replaced.

Co-Authored-By: Claude Opus 5.5 (1M context) [email protected]

🤖 Generated with Claude Code

luisleo526 and others added 2 commits October 25, 2026 09:11
…RSS)

main's post-merge CI on 4ae3f88 (run 40145973799, macos-26 Debug) ran the
macOS tests for the first time on the 1.7.0 line: 4 of 1126 failed, all
macOS-only (Linux passes them): test_report_nonfinite_equity_cabi_fd (#982),
test_report_nonfinite_equity_cpp_fd (#983) and test_report_sink_fd (#1014)
find the borrowed descriptor of the fd-based report sink changed or closed;
test_sink_finalize (#1016) sees the 64 MiB stream grow peak RSS by about
1.05 MB. L6 ruling 10-25: a known limit for 1.7.0, documented here; the fix
is a 1.7.1 card. CHANGELOG.md only; no sentence replaced.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
run_json --report-sink-fd: its own tests passed (#1024, #1025), so it is
named as sharing the entry point, not as failing. The cause is not
diagnosed: the bullet states what the tests observe. #1016 is the stdout mode
only, in MiB. Linux: the Debug build of the same run passes. Replaces the
bullet added by 89b22e2 on this branch (never on main).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@luisleo526
luisleo526 merged commit 77b87af into main Oct 25, 2026
12 checks passed
tzutoo pushed a commit to tzutoo/pineforge-engine that referenced this pull request Nov 5, 2026
…es their providers (R5 tooling lane E4, item 4)

Four CTest rows pair the tree against historical ABI archives:
test_script_cpp_abi, test_settlement_cpp_abi,
test_aggregate_cpp_versions_runtime, test_l4g_runtime_budget. A tree
configured with PINEFORGE_REQUIRE_ABI_RECEIPTS=OFF -- every plain configure,
CLAUDE.md's included -- registers them --skip-if-receipt-missing, and until the
six ABI providers are prepared in it each exits 77. CTest counts a skipped row
as passed, so the run still prints 100% (lane Q12's report, "Recipe gap").
Reproduced at 0a47cbf on a CLAUDE.md build-on (corpus strategies off):
  4/4 Test pineforge-4pass#503: test_l4g_runtime_budget ...............***Skipped
  100% tests passed out of 4   (the four gated rows; 540 rows registered)

scripts/check_abi_receipt_skips.py, independent of ci_verify.py: reads the rows
ctest registered (--show-only=json-v1), names every receipt-gated row that
will skip (or, registered --require-receipts, fail) for a missing input
receipt, and exits 1 when there is one, printing the recipe. It also names a
tree without compile_commands.json, which test_l4g_runtime_budget reads once
its receipt exists (Q12's second gotcha: preparing the providers in a plain
configure turns that row's skip into a failure). --prepare first prepares the
six providers into the tree with the argv ci_verify.py uses: it fetches a
missing pinned commit, reuses a matching provider, refuses a mismatched one
without deleting it.

On that build-on: the check prints the four rows as "skips" (the
settlement row missing all six receipts, the runtime-budget row also
"then fails, compile database missing") and exits 1. After re-configuring
with -DCMAKE_EXPORT_COMPILE_COMMANDS=ON, --prepare built the six providers in
98 s and the check exits 0 ("every receipt they read is present: all 4 run");
a second --prepare reuses all six.

Recipe: CLAUDE.md's REQUIRED block configures with
CMAKE_EXPORT_COMPILE_COMMANDS=ON, prepares the providers before ctest and runs
the check after it (must exit 0); docs/ci.md explains the skip contract, the
script and the same recipe.

Tests: scripts/test_abi_receipt_skips.py (10) drives the script against the
real ctest over hand-written rows shaped like the gated ones -- including a
run ctest reports as "100% tests passed out of 4" in which three gated rows
skipped -- plus the preparation plan with a stubbed runner (order, fetch
before a missing object, refusal that keeps the directory).
ReceiptRecipe in scripts/test_ci_verify.py holds the recipe's six argv equal
to the ones the ci_verify driver invokes. Registered as the CTest row
test_abi_receipt_skips (ctest passed as CMAKE_CTEST_COMMAND); before the
script existed the test failed with "No module named
'check_abi_receipt_skips'".

Floors: the new row registers in every profile (a Python row, source-free), so
the integrator adds +1 to RELEASE_MIN_TESTS and +1 to KERNEL_MIN_TESTS; this
lane edits no floor.

Ruling: tooling, a CTest registration and docs. No kernel, adapter, header or
corpus change; no TradingView outcome can move; no epoch question.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
(cherry picked from commit 005c3c54f4fd67c7eeb1c296da1373b98dc705af)
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