1. Included versions
| Upstream project | Version | Fixed commit | License |
|---|---|---|---|
| cameron314/readerwriterqueue | v1.0.6 | 8e7627d18c2108aca178888d88514179899a044f |
BSD-2-Clause; embedded zlib |
| rigtorp/SPSCQueue | commit | 1053918dbd251fbff69b24ef27fa5d51c29ec2af |
MIT |
| max0x7ba/atomic_queue | commit | 74fb62f86e6c3b0db824932a5c5e4bfb0125e2cc |
MIT |
This is the subset needed by the benchmarks, rather than full upstream repository copies. Original headers, copyright notices and license files are retained without changes. ReaderWriterQueue also contains the zlib-licensed semaphore implementation within atomicops.h.
The authoritative file list, source URLs and SHA-256 values are in benchmarks/spsc/spsc_dependencies.json. Neither the upstream revisions nor the benchmark workload changed when these files were bundled.
2. Build without downloading
From the repository root:
python3 benchmarks/spsc/bootstrap_spsc.py --check-only
cmake -S . -B build-bench -DCMAKE_BUILD_TYPE=Release -DBRQ_BUILD_SPSC_BENCHMARKS=ON
cmake --build build-bench --parallel
ctest --test-dir build-bench --output-on-failure -L performance_harnessCMake defaults BRQ_SPSC_DEPS to third_party/spsc/ and checks every listed header and license against its pinned hash. An explicit -DBRQ_SPSC_DEPS=/absolute/path/to/deps still selects another directory, with the same verification.
3. Restore or update dependencies
If a file was removed, python3 benchmarks/spsc/bootstrap_spsc.py can download missing files from the fixed commits. Existing files with differing hashes are rejected rather than overwritten. --check-only never accesses the network.
To deliberately change a dependency version, update its commit, URLs and hashes in the dependency manifest, replace the corresponding upstream files and retain their licenses, then rebuild and validate all adapters. Recorded historical benchmark results are not rewritten by an update.
See benchmark entry points for experiment choices and reproduction commands.