Skip to content

Releases: bridge-craftwork/Dealer3

dealer3 v1.1.0

Choose a tag to compare

@Rick-Wilson Rick-Wilson released this 14 Sep 18:46
02a5bf8

dealer3 v1.1.0

A Rust implementation of dealer, the bridge hand generator, compatible with its script language and command line, and with the DealerV2_4 extensions.

Highlights

  • Double-dummy that is fast enough to use. tricks(), dds() and par() now go through bridge-solver, at around ten milliseconds a deal instead of minutes, and score() and imps() turn the answers into results.
  • Pre-solved deals. --input-deals reads Richard Pavlicek's library of 10,485,760 solved deals, so double-dummy questions are lookups. A library is read as the run goes, so a run can look through all ten million deals without holding them in memory, and -s picks where in the library to start.
  • Levelling. --level characterizes a scenario's HandType_ categories and deals an even mix (or the one HandType_X_Share asks for). --write-leveled writes the levelled scenario out, and LevelType_ levels on a decomposition of its own.
  • More of DealerV2_4's language. Script parameters ($0–$9, --param), François Dellacherie's shape{...} notation, printrpt, csvrpt with trix(...), printns, printside, two-dimensional frequency, decimal literals, and predeal on several seats.
  • Faster. Dealing is about 1.6× faster, generating a deal nearly 3×, and every run uses all cores (-R / --threads).
  • --stats-json, for tools that read a run's statistics.
  • In the browser. Everything here also runs at https://bridge-craftwork.com/dealer3/, with nothing to install, including the pre-solved library.

Breaking changes

  • A seed no longer reproduces dealer.exe's deals. --legacy and the ported GNU random() are gone; a seed reproduces a dealer3 run. The script language and command line are still dealer.exe's.
  • score()'s numeric contract code now follows the references' own encoding.

See docs/CHANGELOG.md for everything since 1.0.0.

Downloads

Pre-built binaries are attached below for Linux, Windows and macOS (Intel and Apple Silicon). The macOS builds are signed and notarized. Or use https://bridge-craftwork.com/download/dealer3, which picks the right one for your machine.

v1.0.0

Choose a tag to compare

@Rick-Wilson Rick-Wilson released this 17 Feb 15:17

dealer3 v1.0.0

First stable release of dealer3 — a Rust implementation of dealer.exe (bridge hand generator) with full compatibility for the original dealer.exe command-line interface.

Highlights

  • Full dealer.exe compatibility — same RNG, same output, same CLI switches
  • Filter language — hcp, controls, shape, losers, suit_quality, cccc, predeal, average, frequency
  • Output formats — oneline, printall, printew, printpbn, printcompact
  • Cross-platform — Linux, Windows, macOS (x86_64 + Apple Silicon)
  • macOS signed and notarized — passes Gatekeeper without warnings
  • --input-deals mode — replay deals from a file through any filter
  • Parallel mode — fast multi-threaded generation (default) with --legacy for exact RNG match

Downloads

Pre-built binaries are attached below for all platforms.

v0.4.0

v0.4.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Jan 18:34
Release v0.4.0

- Add solver-diag binary for bridge solver debugging
- Refactor solver CLI with clap-based argument parsing
- Fix -v/--verbose behavior (stats hidden by default, -v shows them)
- Fix average/frequency output to stdout (matches dealer.exe)
- Add PBN file format specification documentation

v0.3.0 - Fast Parallel Mode

Pre-release

Choose a tag to compare

@Rick-Wilson Rick-Wilson released this 07 Jan 20:55

Highlights

  • 5x+ faster than C dealer.exe with parallel execution
  • New xoshiro256++ RNG enables stateless deal generation
  • --legacy flag preserves dealer.exe compatibility

New Features

  • Fast parallel mode (default) with xoshiro256++ RNG
  • --legacy flag for dealer.exe-compatible single-threaded mode
  • deal-validator binary for validating deals against filters
  • Chained comparison support (a == b == c)
  • Positional input file argument
  • -g and -p can now be used together

Performance

Implementation Time Speedup
C dealer.exe 16.1s 1.0x (baseline)
Rust legacy 14.0s 1.15x
Rust fast (12 threads) 3.1s 5.2x
  • 3.9x speedup with 12 threads vs single-threaded
  • FxHashMap and reference-based evaluation (9.6x eval speedup)

Bug Fixes

  • Predeal parsing for suit-only holdings
  • Parser compatibility with dlr test suite
  • dealer.exe generate limit (10M) and average format (%g)

Usage

# Fast mode (default) - uses all CPU cores
dealer -p 1000 -s 42 filter.dlr

# Legacy mode - exact dealer.exe compatibility
dealer --legacy -p 1000 -s 42 filter.dlr

# Validate deals against filter
./dealer -p 100 -s 42 -f oneline filter.dlr | ./deal-validator filter.dlr

See CHANGELOG.md for full details.

v0.2.0

v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Jan 03:07
v0.2.0 Release

Release highlights:
- Add bridge-solver binary (double-dummy solver) to releases
- Add 125 upstream test cases for solver verification
- Remove dead code and fix clippy lints
- Update CI/CD to build and test solver for all platforms

v0.1.0

v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Jan 02:41
Update release workflow to use action-gh-release

Modernize the release workflow following current best practices:

**Removed deprecated actions**:
- Removed actions/create-release@v1 (deprecated)
- Removed actions/upload-release-asset@v1 (deprecated)
- Removed separate create-release job

**Modern replacements**:
- Use softprops/action-gh-release@v2 for release creation and asset uploads
- Use Swatinem/rust-cache@v2 instead of manual cache steps
- Added workflow-level permissions: contents: write

**Platform improvements**:
- Added macOS ARM64 (aarch64-apple-darwin) support
- Strip only on Linux to avoid macOS compatibility issues
- Use shell: bash consistently for cross-platform compatibility

**Asset handling**:
- Set fail_on_unmatched_files: false to handle platform-specific archives
- Conditional README.md inclusion (if present)
- Single upload step per platform (uploads all assets at once)

**Build matrix** (4 targets):
- Linux: x86_64-unknown-linux-gnu
- Windows: x86_64-pc-windows-msvc
- macOS Intel: x86_64-apple-darwin
- macOS ARM: aarch64-apple-darwin

All existing asset naming preserved:
- dealer-linux-x86_64.tar.gz + standalone binary
- dealer-windows-x86_64.exe.zip + standalone binary
- dealer-macos-x86_64.tar.gz + standalone binary
- dealer-macos-aarch64.tar.gz + standalone binary

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>