4a0f88b17d
Client.Rust-022 Restored Error::MalformedReply for register / add_item /
add_item2 and the bulk-subscribe / read-bulk / write-bulk
dispatch arms so malformed-but-OK replies fail loudly
instead of returning Vec::new().
Client.Rust-023 Restored next_correlation_id and routed every CLI close /
stream-alarms / acknowledge-alarm / bench-read-bulk call
through it so each call carries a unique opaque token.
Client.Rust-024 Added round-trip tests for read_bulk / write_bulk /
write2_bulk / write_secured_bulk / write_secured2_bulk
plus stream_alarms and percentile_summary unit tests.
Client.Rust-025 RustClientDesign.md re-synced — new bulk SDK, alarms
surface, Error variants, CLI command list, and the
Windows stack workaround.
Client.Rust-026 Session::read_bulk now borrows a tag slice; bench-read-
bulk binds tags once outside the warm-up / steady-state
loops.
Client.Rust-027 .cargo/config.toml selector tightened to
cfg(all(windows, target_env = "msvc")) and comment
rewritten to match reality (release + debug ship the
8 MB reservation).
Client.Rust-028 run_batch removed the empty-line break; stdin EOF is
the only terminator.
Client.Rust-029 Re-applied Client.Rust-001 / 002 / 012 — added the
missing doc comments, renamed BulkReplyKind variants,
and replaced the clone-on-copy with a deref under lock
so cargo clippy -D warnings is clean.
All resolved at 2026-05-24; cargo fmt + check + clippy + test all green
(55 tests).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
20 lines
1.1 KiB
TOML
20 lines
1.1 KiB
TOML
# MSVC-only: bump the default 1 MB Windows stack to 8 MB. clap-derive builds
|
|
# a large Command enum in this CLI (one variant per subcommand, each carrying
|
|
# flag args); in debug builds the enum is materialized on the stack without
|
|
# optimization and overflows the default Windows main-thread stack before
|
|
# even reaching our code.
|
|
#
|
|
# The /STACK: link-arg goes into the PE header's IMAGE_OPTIONAL_HEADER.
|
|
# SizeOfStackReserve at link time and applies to both debug and release
|
|
# builds — release artifacts ship with the same 8 MB stack reservation. At
|
|
# runtime the optimizer elides the enum from the stack frame, so release
|
|
# builds would not overflow without this setting; it is kept on for them so
|
|
# both build flavours produce binaries with identical stack metadata.
|
|
#
|
|
# `/STACK:` is an MSVC-linker (`link.exe` / `lld-link`) directive. The
|
|
# `target_env = "msvc"` selector below scopes the rustflag to the MSVC
|
|
# toolchain so `x86_64-pc-windows-gnu` (mingw) builds, which route link
|
|
# args through the GNU linker and reject `/STACK:`, are unaffected.
|
|
[target.'cfg(all(windows, target_env = "msvc"))']
|
|
rustflags = ["-C", "link-arg=/STACK:8388608"]
|