Use latest doublets-rs (0.3.0) and switch to stable Rust#24
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: #23
- Switch rust-toolchain.toml and CI workflow from nightly-2022-08-22 to stable - Bump doublets dependency from git (0.1.0-pre+beta.15) to crates.io 0.3.0 - Replace nightly features (allocator_api, generic_associated_types) usage: - Alloc<T, std::alloc::Global> -> doublets::mem::Global<T> (Global::new()) - Remove #![feature(allocator_api)] from benches - Migrate API: LinkType -> LinkReference, T::ZERO -> T::from_byte(0), .as_i64() -> as_i64() helper (TryInto<i64>) - Handle Flow without nightly Try: handler(..)? -> is_break() + early return - Fix elided-lifetime lint in Benched::fork signatures - Remove placeholder .gitkeep Refs #23
Document in docs/case-studies/issue-23/: - All extracted requirements (R1-R8) with resolution status - Online research: doublets-rs release history, v0.3.0 BREAKING notes, transitive dependency versions (platform-mem/data/num, allocator-api2) - Root-cause analysis of the prior nightly requirement - Per-requirement solution options with chosen approach + full API migration map - Survey of existing components/libraries - Evidence and verification steps Refs #23
Working session summaryCI is still running the benchmarks. The background poller ( All implementation work is complete and pushed. Here's where things stand: Completed:
In progress: Waiting on CI run I'll report the CI conclusion as soon as the run finishes. This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:Claude Opus 4.8: (2 sub-sessions)
Total: (21.2K new + 343.8K cache writes + 9.0M cache reads) input tokens, 57.3K output tokens, $8.198766 cost 🤖 Models used:
📎 Log file uploaded as Gist (3362KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
Summary
Resolves the two core requirements of #23:
doublets-rs— replaced the git-pinned pre-release0.1.0-pre+beta.15with the published crates.io releasedoublets = "0.3.0"(the newest version; confirmed via
cargo search doublets).rust-toolchain.tomland the CI workflow now usestable; all nightly feature gates (allocator_api,generic_associated_types)and nightly-only API usage have been removed/migrated.
It also delivers the documentation deliverables the issue asks for: a deep case
study in
docs/case-studies/issue-23/covering every requirement (R1–R8), online research, root-cause analysis,
per-requirement solution plans, and a survey of existing components/libraries.
API migration map (nightly
beta.15→ stable0.3.0)#![feature(allocator_api, generic_associated_types)]allocator_apiprovided viaallocator-api2)Alloc<T, std::alloc::Global>doublets::mem::Global<T>(built withGlobal::new())doublets::data::LinkTypedoublets::data::LinkReferenceT::ZEROT::from_byte(0)value.as_i64()as_i64(value)helper wrappingTryInto<i64>handler(link)?(relied on nightlyTry for Flow)if handler(link).is_break() { return Flow::Break; }doublets::parts::LinkPartdoublets::unit::LinkPartnightly-2022-08-22stableThe PostgreSQL backend logic (
client.rs,transaction.rs) needed onlymechanical symbol renames because
doublets'sLinks<T>/Doublets<T>traitskept their
Link<T>-based handler signatures.Exclusive<T>already satisfiesthe new
Send + Syncbound onLinks<T>.Verification
rustc 1.95.0(stable). Benchmarks connect to PostgreSQL only at runtime, whichCI provides via its
postgresservice; locally, compilation is the verifiablestep.
Files changed
rust-toolchain.toml,.github/workflows/rust.yml— toolchain →stablerust/Cargo.toml,rust/Cargo.lock—doublets = "0.3.0"rust/src/{lib,client,transaction}.rs,rust/src/benched/*— API migrationrust/benches/**— removed#![feature],Alloc<…>→Global<…>docs/case-studies/issue-23/README.md— case study (R3–R7)Closes #23