Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
9a3e933
First commit for calc_dd.cpp and related.
tameware May 23, 2026
9d4c025
Read from stdin if available. Fix BUILD.bazel target name.
tameware May 23, 2026
7e6d338
Add two pbn files for manual testing.
tameware May 25, 2026
075277b
renamed to calc_par
tameware May 25, 2026
5a9a61e
renamed to calc_par
tameware May 25, 2026
d8c6978
Renamed calc_par example to dd_table_for_deal
tameware May 31, 2026
901751d
Added read_pbn_file_workspace_relative
tameware May 31, 2026
7e78900
Added dd_table_for_deal.py
tameware May 31, 2026
d3f9b18
Added usage for Python dd_table_for_deal
tameware May 31, 2026
0a83349
Added newlines at the end of each file
tameware Jun 5, 2026
66b8ede
Replace //python:install_dds3_so with //python:_dds3
tameware Jun 5, 2026
c42179b
Use modern C++20 instead of C-style I/O and string handling.
tameware Jun 8, 2026
8220c41
Added tests and a test runner for the Javascript functions, per
tameware Jun 7, 2026
da07b90
Trigger CI workflow
tameware Jun 7, 2026
aabf60c
Trigger CI workflow - 2nd try
tameware Jun 7, 2026
d327356
Updated comment to fix typo and add alternative test runners.
tameware Jun 8, 2026
2e37174
Fix typos in comment
tameware Jun 8, 2026
870b500
Fix dds_mvp_js_test on Linux CI and with focusNorthSpades.
tameware Jun 9, 2026
06c470f
Applied Copilot's suggestions
tameware Jun 9, 2026
e5a80a1
Upload Bazel test logs as CI artifacts on all platforms.
tameware Jun 9, 2026
6839716
Initalt commit
mortensp May 26, 2026
0a0fb9d
First take on a cross platfor dds wrapper
mortensp May 27, 2026
71a49a3
Create dynamic link libraries version of the static link libraries
mortensp May 27, 2026
fb7ace4
Load af native dll and a demo implemented
mortensp May 28, 2026
d936190
All 2.9 interfaces added
mortensp May 29, 2026
386a1bd
All relevant methods implemented and tested.
mortensp Jun 3, 2026
d83b0c8
DDS.Core is now fullt implemengted
mortensp Jun 4, 2026
cb59baa
First take on md files
mortensp Jun 5, 2026
70d9f92
extra pbn test string
mortensp Jun 5, 2026
941d368
Markdown added
mortensp Jun 7, 2026
0d54563
Warning on Directory.Build.props eliminated
mortensp Jun 7, 2026
cf605ef
BUILD.bazel changed to fix error
mortensp Jun 7, 2026
2c364d4
dds_native removed from BUILD.bazel
mortensp Jun 7, 2026
0f7ff29
The file is named dds_api.hpp and not dds_api.h -hanged in BUILD.bazel
mortensp Jun 7, 2026
8062a0d
api/dds_api.hpp removed from solver_context.cpp
mortensp Jun 7, 2026
4f7cd05
Changes suggested by Copilots review
mortensp Jun 9, 2026
4481722
CodeRush deleted
mortensp Jun 9, 2026
649bb47
Copilot suggestions implemented
mortensp Jun 11, 2026
734ff97
Ignore local Cursor and VS Code workspace files.
tameware Jun 12, 2026
cb84a46
Ignore Cursor or VS Code workspace files
tameware Jun 12, 2026
977d207
Do not ignore .github. That would ignore github's Continuous Integrat…
tameware Jun 12, 2026
3ee97e2
Fix CalcDdTable error message naming in SolverContext.
tameware Jun 12, 2026
8eda4d8
Changes acording to Cursor suggestions
mortensp Jun 12, 2026
2457b70
calc_par and calc_dd_table exports renamed and C linkage ensured. Sol…
mortensp Jun 12, 2026
b683df9
Indention fix, and change dds.FreeMemory to ctx.ResetForSolve();
mortensp Jun 12, 2026
dad027d
empty commit
mortensp Jun 12, 2026
0107dbb
Out parameters is now last where posible.
mortensp Jun 13, 2026
90d296c
work in progress on advice.
zzcgumn Jun 5, 2026
7970220
work in progress on documents
zzcgumn Jun 10, 2026
70e0ad6
Fix doxygen_docs genrule PATH to include platform-specific tool direc…
zzcgumn Jun 12, 2026
9f2c490
first draft of ai and coding guidelines.
zzcgumn Jun 12, 2026
7de7631
updates the coding standards and ai advice.
zzcgumn Jun 12, 2026
4e01e8d
Potential fix for pull request finding
zzcgumn Jun 13, 2026
55b6893
Potential fix for pull request finding
zzcgumn Jun 13, 2026
0e88cd8
Potential fix for pull request finding
zzcgumn Jun 13, 2026
9c45dde
Updates as per review feedback.
zzcgumn Jun 14, 2026
01f7ad0
mentions MODULE.bazel.lock is version managed as per best practises.
zzcgumn Jun 14, 2026
b01a30e
Trigger CI workflow
tameware Jun 9, 2026
401a567
Apply Copilot's suggestions
tameware Jun 10, 2026
7f21232
Restore Node version gate lost in develop merge.
tameware Jun 11, 2026
b7487a1
Add code from develop lost during merge:
tameware Jun 12, 2026
332719f
Delete dds.code-workspace - should have been in .gitignore
tameware Jun 12, 2026
c75efdd
Applied Cursor's suggestions to address straightforward TODOs.
tameware Jun 12, 2026
de19746
Remove unnecessary, WASM-specific code and configurations
tzimnoch Jun 7, 2026
48c091b
Remove remaining SetMaxThreads(0) calls. Remove documentation about _…
tzimnoch Jun 15, 2026
a501331
Suppress gtest character-conversion warning for build, not only test
tameware Jun 15, 2026
0db10ad
Cap rows at ROWS, not SIZE
tameware Jun 15, 2026
ff8e36f
Initial parallelization by Cursor
tameware Jun 13, 2026
4eec636
Parallelize inside the library, mirroring solve_all_boards_n — each w…
tameware Jun 13, 2026
ffbb296
Extract shared batch parallelism into parallel_all_boards_n.
tameware Jun 14, 2026
4af520f
Fix IndexError in _convert_pbn for short PBN deal strings.
tameware Jun 12, 2026
a832282
Added a test for the _convert_pbn fix.
tameware Jun 12, 2026
0f93669
Updated visibility in python/examples/BUILD.bazel, per Copilot.
tameware Jun 14, 2026
21bd24e
Add Link-Time Optimization for MacOS builds.
tameware Jun 16, 2026
58ab7c2
Avoid per-node shared_ptr churn in the search hot path
tameware Jun 16, 2026
e1d42aa
Fixes so that DDS_AB_STATS will work when it's set.
tameware Jun 17, 2026
e7b1763
Remove unused global counter from debug.h to fix Windows builds.
tameware Jun 17, 2026
d5a05f4
Fix debug file init for shared ThreadData wrappers.
tameware Jun 19, 2026
b23a3f8
Close debug files only when the last ThreadData owner is destroyed.
tameware Jun 19, 2026
4c0d240
Close open streams in File::Reset() before clearing state.
tameware Jun 19, 2026
ded2fc1
Close open streams in File::SetName() before renaming.
tameware Jun 19, 2026
d0169d5
Track File open state via ofstream::is_open().
tameware Jun 19, 2026
3324e1d
Remove no-op CloseDebugFiles() global teardown hook.
tameware Jun 19, 2026
a25d9ce
Qualify dds::File and remove header using declaration.
tameware Jun 19, 2026
a1a3db7
Fix init_debug_files suffix comment to match actual naming.
tameware Jun 19, 2026
09818e9
Include algorithm and cstdio in solver_context.cpp.
tameware Jun 19, 2026
f1130e8
Fix SolverContext wrapper comment on debug file lifecycle.
tameware Jun 19, 2026
84d8240
Avoid compiling ab_stats.cpp twice in testable_dds.
tameware Jun 19, 2026
b182fdd
Fix DDS_SCHEDULER build consistency and dtest -r reporting.
tameware Jun 19, 2026
093d722
Initialize scheduler timing state and gate EndBlockTimer aggregation.
tameware Jun 19, 2026
740d9b0
Respect dtest thread limit in parallel solve while keeping per-board …
tameware Jun 19, 2026
3d776b1
Initial commit
tameware Jun 18, 2026
bb5c481
Do not hard-code the path for binary that's not in the repo
tameware Jun 18, 2026
16160aa
make dtest2 optional
tameware Jun 18, 2026
1aaf695
Added max-deals parameter
tameware Jun 18, 2026
ac460e1
Add --build option to benchmark.sh for dtest.
tameware Jun 19, 2026
45a34f5
Pass dtest options via -- in benchmark.sh.
tameware Jun 19, 2026
2baf190
Rename benchmark repeat flag to --repeats and improve dry-run output.
tameware Jun 19, 2026
7b0acab
Fix benchmark.sh help text and max-deals error message.
tameware Jun 19, 2026
ce74413
Rename benchmark binaries to branch/compare and fix column alignment.
tameware Jun 19, 2026
0d8c1bd
Align benchmark summary speedup and note columns.
tameware Jun 19, 2026
b8d19b1
Harden benchmark.sh validation, parsing, and compare summary.
tameware Jun 19, 2026
650b7f2
Address PR review comments in benchmark.sh.
tameware Jun 19, 2026
fe17f7b
Improve benchmark run order, summary metrics, and compare sequencing.
tameware Jun 19, 2026
4227f40
Derive avg_user in benchmark when dtest omits the avg line.
tameware Jun 21, 2026
6691f54
Fix benchmark summary ratio when branch_avg is zero.
tameware Jun 21, 2026
d173b08
Interleave branch and compare runs per repeat in benchmark.
tameware Jun 21, 2026
bc93827
Revert "Fix benchmark summary ratio when branch_avg is zero."
tameware Jun 21, 2026
f487aa5
Simplify benchmark cmp/branch ratio when averages are positive.
tameware Jun 21, 2026
fcf7fb8
Show summary only by default when benchmarking with --compare.
tameware Jun 21, 2026
73462d4
Show transient per-run progress during compare benchmarks.
tameware Jun 21, 2026
90dec47
Drop cmp/branch interpretation from benchmark summary header.
tameware Jun 21, 2026
ac8bce5
Add epsilon tolerance for equal benchmark comparisons.
tameware Jun 21, 2026
841fefa
Document --epsilon in benchmark.sh usage examples.
tameware Jun 21, 2026
28f6f22
Note TestTimer ms truncation in benchmark summary comment.
tameware Jun 21, 2026
cd08753
Clarify benchmark comment on zero timing from ms truncation.
tameware Jun 21, 2026
79eb78f
Fix transient progress erase clobbering header line.
tameware Jun 21, 2026
63b3d93
Fix progress_lines guard in clear_transient_progress.
tameware Jun 22, 2026
0bee3b8
Extract resolve_worker_count helper for batch parallelism
zzcgumn Jun 20, 2026
a6cc63f
Rename SetMaxThreads to InitialiseStaticMemory with deprecated alias
zzcgumn Jun 20, 2026
46e85db
Plumb optional max_threads through internal batch solvers
zzcgumn Jun 20, 2026
4b50a1c
Add public *N C variants accepting maxThreads
zzcgumn Jun 20, 2026
da0734c
Add tests for worker-count override and the initialiser rename
zzcgumn Jun 20, 2026
67fa2d4
fix: align argument names and default values.
zzcgumn Jun 21, 2026
538604b
fix: updates documenting comment.
zzcgumn Jun 21, 2026
929b4f7
Apply suggestions from code review
zzcgumn Jun 21, 2026
99a3a43
exports initialise static memory to python and deprecates set max thr…
zzcgumn Jun 22, 2026
50afb9a
fix: removes code duplication and uses nthreads consistently.
zzcgumn Jun 22, 2026
7a858f1
fix: releases the global interpreter lock before doing work in initia…
zzcgumn Jun 22, 2026
ca3d1e2
fix: deletes the input guard on the ignored user_threads argument.
zzcgumn Jun 23, 2026
4a467b0
fix: removes test that is now incorrect.
zzcgumn Jun 23, 2026
9e12ddc
fix: remove mention of the guard on user_threads from the python doc …
zzcgumn Jun 24, 2026
a89fae8
fix: removes incorrect mention of value error.
zzcgumn Jun 25, 2026
9f5adac
fix: renames InitialiseStaticMemory to use the American misspelling.
zzcgumn Jun 25, 2026
efb7e7a
Per Cursor: Allow ASAN and TSAN tests to run on macOS.
tameware Jun 18, 2026
e426b95
Update MODULE.bazel.lock after adding apple_support for macOS ASAN.
tameware Jun 18, 2026
bfec6b3
Cursor added documentation in three places:
tameware Jun 18, 2026
7eb3819
Update docs to remove the --define=asan=true option.
tameware Jun 18, 2026
d8c0ec1
Add ASan and TSan jobs for CI.
tameware Jun 18, 2026
bf3f99c
Add a CI timeout on all platforms.
tameware Jun 18, 2026
66d823d
Fix issues identified by local ASan test.
tameware Jun 18, 2026
f348664
Fix AddressSanitizer (ASAN) ODR (One Definition Rule) violations by m…
tameware Jun 18, 2026
73faa5b
Moved mtx and mtxPrint into an anonymous namespace to address ASan fa…
tameware Jun 18, 2026
a5e29e9
Remove duplicate ThreadMgr to address an ASan error. Per Cursor:
tameware Jun 18, 2026
e6bfbee
Enable DDS_AB_STATS via --define=ab_stats=true.
tameware Jun 25, 2026
cfceffa
Honor dtest -n in loop_calc via CalcAllTablesPBNN.
tameware Jun 25, 2026
5188c46
Stop passing -n to SetResources in dtest drivers.
tameware Jun 26, 2026
66e297c
Simplify
tameware Jun 26, 2026
34f8d66
Use named constant
tameware Jun 26, 2026
7724718
Remove unused itest.cpp test driver.
tameware Jun 27, 2026
8ec7a47
Fix DumpRetrieved call under debug_all builds.
tameware Jun 25, 2026
3462d8c
Restore DumpRetrieved and DumpStored for debug_all builds.
tameware Jun 25, 2026
87a0b26
Fix trump-void1 move ordering to restore v2.9 search efficiency
tameware Jun 27, 2026
4cc0073
Fix incorrect comment
tameware Jun 28, 2026
75a67cd
Fix signed->unsigned cast bugs that corrupted move ordering and pruning
tameware Jun 28, 2026
72d08da
Rebased against develop.
tameware Jul 3, 2026
b8143cd
Fix indentation in weight_alloc_trump_void1 and trump_void3
tameware Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 25 additions & 19 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -19,38 +19,44 @@ build:linux --host_cxxopt=-std=c++20
build:opt --compilation_mode=opt

# AddressSanitizer configuration
# Usage:
# Linux: bazel test --config=asan //path:target
# macOS: bazel test --config=asan --config=asan_macos //path:target
# Usage: bazel test --config=asan //path:target
# macOS uses the Xcode toolchain (build:asan_macos). See docs/BUILD_SYSTEM.md
# ("AddressSanitizer and ThreadSanitizer (macOS)") for clang/Xcode version coupling.
build:asan --config=asan_macos

build:asan --copt=-fsanitize=address
build:asan --linkopt=-fsanitize=address
# Undefine _FORTIFY_SOURCE; it conflicts with ASAN instrumentation.
build:asan --copt=-U_FORTIFY_SOURCE
build:asan --strip=never
build:asan --features=dbg
build:asan --compilation_mode=dbg
test:asan --test_timeout=120,300,900,3600

# GoogleTest headers can trigger conversion warnings on Clang; suppress for tests.
# GoogleTest headers can trigger conversion warnings on Clang; suppress them.
# Scoped to `build` (not `test`) so the suppression also applies to plain
# `bazel build` of test targets and tooling that compiles GoogleTest, not just
# `bazel test`. The `build` config is inherited by `test`, `run`, etc.
# On Linux, use -Wno-conversion for portability when the system compiler is GCC.
test:macos --cxxopt=-Wno-character-conversion
test:linux --cxxopt=-Wno-conversion
# macOS-specific AddressSanitizer runtime lookup configuration.
# The LLVM toolchain bundles the ASAN runtime. On macOS tests run from the
# runfiles tree, so use @loader_path-based rpaths that walk back to execroot
# and then into external/toolchains_llvm...
# Keep the clang major version in these paths aligned with darwin-aarch64
# in MODULE.bazel.
# Bazel test binaries live at different depths under bazel-out/.../bin.
# Provide a small set of distinct @loader_path traversals to reach
# execroot/_main/external from common test binary depths.
build:asan_macos --linkopt=-Wl,-rpath,@loader_path/../../../../../external/toolchains_llvm++llvm+llvm_toolchain_llvm/lib/clang/20/lib/darwin
build:asan_macos --linkopt=-Wl,-rpath,@loader_path/../../../../../../external/toolchains_llvm++llvm+llvm_toolchain_llvm/lib/clang/20/lib/darwin
build:asan_macos --linkopt=-Wl,-rpath,@loader_path/../../../../../../../external/toolchains_llvm++llvm+llvm_toolchain_llvm/lib/clang/20/lib/darwin
build:asan_macos --linkopt=-Wl,-rpath,@loader_path/../../../../../../../../external/toolchains_llvm++llvm+llvm_toolchain_llvm/lib/clang/20/lib/darwin
build:macos --cxxopt=-Wno-character-conversion
build:linux --cxxopt=-Wno-conversion
# macOS AddressSanitizer must use the Xcode compiler/runtime. LLVM-instrumented
# binaries hang with LLVM's ASAN dylib and abort with Xcode's (version mismatch).
# Chained from build:asan; Apple toolchains do not match on Linux and are ignored.
build:asan_macos --extra_toolchains=@local_config_apple_cc_toolchains//:all
build:asan_macos --copt=-Wno-macro-redefined

# ThreadSanitizer configuration
# Usage: bazel test --config=tsan //path:target
# macOS loads Xcode's compiler-rt via build:tsan_macos (rpath uses clang/N).
# Keep N aligned with MODULE.bazel llvm_versions and installed Xcode; see
# docs/BUILD_SYSTEM.md ("AddressSanitizer and ThreadSanitizer (macOS)").
build:tsan --config=tsan_macos
build:tsan --copt=-fsanitize=thread
build:tsan --linkopt=-fsanitize=thread
build:tsan --strip=never
build:tsan --features=dbg
build:tsan --compilation_mode=dbg
test:tsan --test_timeout=120,300,900,3600
# Hardcoded rpath: .../lib/clang/21/... must match MODULE.bazel llvm major and Xcode.
build:tsan_macos --linkopt=-Wl,-rpath,/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/21/lib/darwin
12 changes: 6 additions & 6 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ bazel build -c opt //...
# Build with debug symbols
bazel build -c dbg //...

# Build with specific flags (example: enable ASAN)
bazel build --define=asan=true //...
# Build with AddressSanitizer (see .bazelrc build:asan and docs/BUILD_SYSTEM.md)
bazel build --config=asan //...
```

### Build Time Expectations
Expand Down Expand Up @@ -200,9 +200,9 @@ If CI fails:

Before finalizing changes, optionally run:
```bash
# Check for memory leaks (Linux only)
bazel build --define=asan=true //...
bazel test --define=asan=true //...
# Check for memory leaks (see docs/BUILD_SYSTEM.md for macOS/Linux notes)
bazel build --config=asan //...
bazel test --config=asan //...

# Performance test with real hands
bazel build //library/tests:dtest
Expand Down Expand Up @@ -276,7 +276,7 @@ bazel build //library/tests:dtest

**Problem**: Tests fail with "Segmentation fault"
- **Cause**: Usually memory management bug or uninitialized variable
- **Fix**: Run with ASAN: `bazel test --define=asan=true //library/tests:failing_test`
- **Fix**: Run with ASAN: `bazel test --config=asan //library/tests:failing_test`

**Problem**: Tests fail with different results than expected
- **Cause**: Possibly heuristic sorting or transposition table issues
Expand Down
2 changes: 1 addition & 1 deletion .github/instructions/git.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ alwaysApply: false
2. **Make changes** locally.
3. **Commit** with a clear message.
4. **Push** the branch.
5. **Open a PR** via the `github` MCP server (see `github.instructions.md`).
5. **Open a PR** via the GitHub CLI (`gh`).

---
18 changes: 3 additions & 15 deletions .github/instructions/github.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ alwaysApply: false

## Overview
This project uses GitHub as its primary version control and collaboration platform. All code contributions, fixes, and features must go through a pull request (PR) workflow.
You have access to an MCP server named **`github`** (running `mcp-github`) which can create branches, push commits, and open PRs directly from the Continue.dev environment. See `.vscode/mcp.json` for configuration.

## Branching Strategy
- **Default branch:** `main`
Expand All @@ -29,28 +28,17 @@ You have access to an MCP server named **`github`** (running `mcp-github`) which
- CI build
- All unit and integration tests
- Any lint/format checks
5. Small PRs are preferred — keep them focused on one logical change.
5. Small PRs are preferred — keep each focused on one logical change.

## Tooling
Use the **`github`** MCP server (configured in `.vscode/mcp.json`) to:
Use `git` for local version control, and the GitHub CLI (`gh`) for GitHub operations:
- Create branches
- Commit and push changes
- Open pull requests
- Check PR status
## Example MCP Server Commands
You can instruct Continue.dev to:
- `Use the github MCP server to create a new branch called fix/memory-leak`
- `Push the current branch and open a pull request titled "Fix memory leak in cache manager"`
- `List open pull requests for this repo`
- `Merge PR #45 after approval`

## Automation
- CI/CD runs automatically for all PRs.
- CI runs automatically for all PRs.
- Approved PRs can be merged by maintainers.
- Use **squash merging** to keep history clean.

## Notes for Continue.dev
- You are allowed to automate branch creation and PR submission using the `github` MCP server.
- If multiple PRs are required, ensure each is isolated to its own branch.
- You may request human review before merging.
```
59 changes: 59 additions & 0 deletions .github/workflows/ci_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
jobs:
build_and_test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
# 1️⃣ Checkout the repository
- name: Checkout repository
Expand All @@ -31,3 +32,61 @@ jobs:
# 6️⃣ Run all tests (including Python)
- name: Run all tests
run: bazel test --verbose_failures //...

# 7️⃣ Upload test logs
- name: Upload test logs - Linux
if: always()
uses: actions/upload-artifact@v6
with:
name: bazel-test-logs-linux
path: bazel-testlogs/
if-no-files-found: ignore
retention-days: 30

asan:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Setup Bazelisk
uses: bazel-contrib/setup-bazel@0.19.0
with:
bazelisk-version: "1.29.0"

- name: Run tests (AddressSanitizer)
run: bazel test --config=asan --verbose_failures --test_output=errors //library/tests/...

- name: Upload ASAN test logs
if: always()
uses: actions/upload-artifact@v6
with:
name: bazel-test-logs-linux-asan
path: bazel-testlogs/
if-no-files-found: ignore
retention-days: 30

tsan:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Setup Bazelisk
uses: bazel-contrib/setup-bazel@0.19.0
with:
bazelisk-version: "1.29.0"

- name: Run system tests (ThreadSanitizer)
run: bazel test --config=tsan --verbose_failures --test_output=errors //library/tests/system/...

- name: Upload TSAN test logs
if: always()
uses: actions/upload-artifact@v6
with:
name: bazel-test-logs-linux-tsan
path: bazel-testlogs/
if-no-files-found: ignore
retention-days: 30
38 changes: 38 additions & 0 deletions .github/workflows/ci_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
jobs:
build_and_test:
runs-on: macos-26
timeout-minutes: 20
steps:
# Checkout the repository
- name: Checkout repository
Expand All @@ -30,3 +31,40 @@ jobs:
# Run all tests (including Python)
- name: Run all tests
run: bazelisk test --verbose_failures //...

# Upload test logs
- name: Upload test logs - macOS
if: always()
uses: actions/upload-artifact@v6
with:
name: bazel-test-logs-macos
path: bazel-testlogs/
if-no-files-found: ignore
retention-days: 30

sanitizers:
runs-on: macos-26
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Setup Bazelisk
uses: bazel-contrib/setup-bazel@0.19.0
with:
bazelisk-version: "1.29.0"

- name: Run system tests (AddressSanitizer)
run: bazelisk test --config=asan --verbose_failures --test_output=errors //library/tests/system/...

- name: Run system tests (ThreadSanitizer)
run: bazelisk test --config=tsan --verbose_failures --test_output=errors //library/tests/system/...

- name: Upload sanitizer test logs
if: always()
uses: actions/upload-artifact@v6
with:
name: bazel-test-logs-macos-sanitizers
path: bazel-testlogs/
if-no-files-found: ignore
retention-days: 30
13 changes: 12 additions & 1 deletion .github/workflows/ci_wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
jobs:
build_and_test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
# 1️⃣ Checkout the repository
- name: Checkout repository
Expand All @@ -29,4 +30,14 @@ jobs:

# 4️⃣ Smoke test: run solve_board under Node.js — pass if it does not crash
- name: Smoke test solve_board_wasm
run: node bazel-bin/examples/wasm/solve_board.js
run: node bazel-bin/examples/wasm/solve_board.js

# 5️⃣ Upload test logs
- name: Upload test logs - WASM
if: always()
uses: actions/upload-artifact@v6
with:
name: bazel-test-logs-wasm
path: bazel-testlogs/
if-no-files-found: ignore
retention-days: 30
11 changes: 11 additions & 0 deletions .github/workflows/ci_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
jobs:
build_and_test:
runs-on: windows-latest
timeout-minutes: 20
steps:
# Checkout the repository
- name: Checkout repository
Expand All @@ -26,3 +27,13 @@ jobs:
# Run all tests (including Python)
- name: Run all tests
run: bazel test --verbose_failures //...

# Upload test logs
- name: Upload test logs - Windows
if: always()
uses: actions/upload-artifact@v6
with:
name: bazel-test-logs-windows
path: bazel-testlogs/
if-no-files-found: ignore
retention-days: 30
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,18 @@
!.vscode/mcp.json
!.vscode/tasks.json

# Ignore Cursor or VS Code workspace files
*.code-workspace

# Ignore Visual Studio directory and files
.vs
#*/.vs/*
#*.vsidx
*.vcxproj.user
Build/bin
Build/int
obj
.cr

# Prerequisites
*.d
Expand Down Expand Up @@ -103,3 +108,5 @@ doxygen_output/
.cce/
# Claude Code local settings written by cce init
.claude/settings.local.json

/dotnet/DDS_Core/.github/copilot-instructions.md
17 changes: 11 additions & 6 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ config_setting(
define_values = {"scheduler": "true"},
)

# Enable DDS_AB_STATS via --define=ab_stats=true
config_setting(
name = "ab_stats",
define_values = {"ab_stats": "true"},
)

# Enable DDS_TT_CONTEXT_OWNERSHIP via --define=tt_context_ownership=true
config_setting(
name = "tt_context_ownership",
Expand All @@ -68,12 +74,6 @@ config_setting(
define_values = {"tt_reset_debug": "true"},
)

# Enable AddressSanitizer via --define=asan=true
config_setting(
name = "asan",
define_values = {"asan": "true"},
)

# Matches cc_* targets built under the wasm_cc_binary platform transition.
# Use platform constraints (not deprecated `cpu` select) so this works
# consistently across host OSes, including Windows.
Expand All @@ -93,6 +93,11 @@ genrule(
outs = ["doxygen_docs.zip"],
cmd = """
set -e
case "$$(uname -s)" in
Darwin) PATH="/opt/homebrew/bin:/usr/local/bin:$$PATH" ;;
Linux) PATH="/usr/local/bin:$$PATH" ;;
MINGW*|MSYS*|CYGWIN*) PATH="/usr/bin:/usr/local/bin:$$PATH" ;;
esac
DOXYFILE_GEN="$(@D)/Doxyfile.generated"
OUT_DIR="$(@D)/doxygen_output"
OUT_ZIP="$$(pwd)/$@"
Expand Down
1 change: 0 additions & 1 deletion Build

This file was deleted.

Loading