Conversation
dds_c_solve_board_pbn and dds_c_calc_par_pbn (and dds_c_calc_dd_table_pbn) were already implemented and tested in the C shim per #284, but the Java FFM binding (Dds.java) had no PBN support at all. Add the DealPBN / DdTableDealPBN layouts and downcall handles, with smoke-test coverage cross-checked against the same reference fixture used by dds_c_api_test. Also fix specs/dds-public-api.md, which still claimed the shim had only one PBN twin. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
A documentation coverage claim remains unresolved, so final human review is recommended.
Review effort: Lite
Findings: None
What changed in this PR
Adds Java FFM bindings and smoke tests for all three PBN APIs, and updates the public API documentation.
Changes:
- Added PBN layouts, handles, and methods.
- Added PBN solve, table, and par smoke tests.
- Updated shim capability documentation.
| File | Description |
|---|---|
specs/dds-public-api.md |
Documents the PBN shim surface. |
jni/java/org/dds/ffm/DdsSmokeTest.java |
Tests PBN operations. |
jni/java/org/dds/ffm/Dds.java |
Adds PBN FFM bindings. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
I am not sure what Copilot means by this. |
|
Nor am I! My guess is that it just wants me to look. |
|
I asked GPT 5.4 (via a Copilot Agent) for clarification:
|
tameware
left a comment
There was a problem hiding this comment.
LGTM.
This is fine if we want to make the existing PBN twins available in every API. Have we considered deprecating the twins and providing a PBN to Deal convertor instead?
I will look into this suggestion. A converter might be a cleaner solution, and it shrinks the number of functions we support as part of the API. |
Summary
dds_solve_board_pbn,dds_calc_par_pbn,dds_calc_dd_table_pbnon the modern C++ API and theirdds_c_*shim twins) was already implemented and tested.Dds.java) had no PBN support at all, not even for the pre-existingdds_c_calc_dd_table_pbn. AddDealPBN/DdTableDealPBNmemory layouts and downcall handles for all three PBN twins, with TDD smoke-test coverage cross-checked against the same reference fixture used bydds_c_api_test.specs/dds-public-api.md, which still claimed the shim had only one PBN twin.Test plan
bazel test //jni:dds_ffm_smoke_test— passes, including new PBN checks.bazel test //jni:dds_ffm_embedded_smoke_test //jni/tests:export_set_test //jni/tests:jar_self_contained_test //library/tests:dds_c_api_test— all pass.🤖 Generated with Claude Code
#Closes #284