nim-ffi/.gitignore
NagyZoltanPeter a50df01e4b
feat(perf): C++ e2e perf test harness (tests/perf)
Measures the full C++ -> Nim -> C++ foreign round trip across setups:
scalar family (2 x int64 + float64), payload family (seq[byte], size
sweep incl. large payloads), and event delivery — through sync, async
(bounded in-flight window) and event lanes, over a thread-count sweep.

All handlers compute the same O(1) parity predicate, so setups differ
purely in transport cost. Every reply is verified; a bad reply or lost
event exits non-zero.

`nimble perf_cpp_e2e` regenerates the cpp bindings, builds libperfbench
with -d:danger over the NIM_FFI_MM matrix (orc + refc) — deliberately
bypassing the debug-orc nim_ffi_lib.cmake template build — and runs the
Release driver. NIM_FFI_PERF_* env knobs control threads, volume,
iterations and payload sizes; each table row also emits a csv line for
diff-friendly capture.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 12:49:59 +02:00

48 lines
1010 B
Plaintext

nimble.develop
nimble.paths
nimbledeps
nimblemeta.json
# Nim compiler output
*.dylib
*.so
*.dll
*.exe
*.o
*.a
# Compiled test binaries (extensionless executables)
tests/test_*
!tests/test_*.nim
# E2E test build artifacts (e.g. CMake build dirs under tests/e2e/cpp/build/)
tests/e2e/**/build/
# Perf harness artifacts (bench lib + driver, cmake build dir, generated bindings
# — regenerated by `nimble perf_cpp_e2e`)
tests/perf/build/
tests/perf/cpp/build/
tests/perf/benchlib/cpp_bindings/
# Generated binding crates (regenerated by `nimble genbindings_*`)
examples/**/rust_bindings/target/
# Example C++ build artifacts
examples/**/cpp_bindings/build/
# Cargo build artifacts (rust clients / harnesses)
examples/**/rust_client/target/
# Development plans (local only — match PLAN.md and any `*-plan.md` notes)
PLAN.md
*-plan.md
# IDE / editor scratch
.vscode/
.idea/
.DS_Store
# Compiled test binaries (extensionless executables, also under tests/unit/)
tests/unit/test_*
!tests/unit/test_*.nim