Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
7e5b6fa
Make crates for this
williamwutq Jul 9, 2026
ab0ee03
Start things
williamwutq Jul 9, 2026
c0f6cca
Make skeleton
williamwutq Jul 9, 2026
513cfb1
Refcount
williamwutq Jul 9, 2026
7f05a50
Make teardown logic and layout
williamwutq Jul 9, 2026
9ef3424
Refactor handle logic and write strong release logic
williamwutq Jul 9, 2026
78a611d
Add concurrency tests
williamwutq Jul 10, 2026
4100793
Block allocation machinary
williamwutq Jul 10, 2026
f2ccbc0
Merge branch 'master' into raii
williamwutq Jul 10, 2026
2d871cf
Lock bytemuck and use published bstack
williamwutq Jul 10, 2026
9775527
Macro works
williamwutq Jul 11, 2026
e88d6c7
Make 8CC more sophiscated
williamwutq Jul 11, 2026
0403b13
Add bstack_cast
williamwutq Jul 11, 2026
6ef61d2
Minor fix
williamwutq Jul 11, 2026
470e4fd
Add session example
williamwutq Jul 11, 2026
ef8a16d
Better readme
williamwutq Jul 11, 2026
69879ab
bstack_move! for Rc
williamwutq Jul 11, 2026
8d6efd3
Support Option<Thing> nullability
williamwutq Jul 11, 2026
8e63467
on disk Vec<T>
williamwutq Jul 11, 2026
94327c7
Macros for vec
williamwutq Jul 11, 2026
a239d20
Allow & but warn and documenting variable length additions
williamwutq Jul 11, 2026
ec895ce
First Drop refactor
williamwutq Jul 11, 2026
2e5d4b8
Drop refactor 2
williamwutq Jul 11, 2026
d033b32
Add vec implementation
williamwutq Jul 21, 2026
30c28b6
Optimize vec by reducing a level of indirection enabled by unique own…
williamwutq Jul 21, 2026
0f10732
Vecs and String now support Option
williamwutq Jul 21, 2026
bc5cffc
Clairfying docs for detachment
williamwutq Jul 21, 2026
d057392
Add bstack enum
williamwutq Jul 22, 2026
531c2d3
bstack_move and bstack_cast implementations for enum
williamwutq Jul 22, 2026
a9be9da
Better README
williamwutq Jul 22, 2026
3b89c1a
Allow explicit repr and tagging for enums
williamwutq Jul 22, 2026
a1fbd2d
Add duplicate discriminant value check in expand_enum function
williamwutq Jul 22, 2026
13c7ab9
Support Pod struct and tuple variants
williamwutq Jul 22, 2026
f1ccba6
Add compile_fail tests for macro input validation in bstack_enum
williamwutq Jul 22, 2026
e69665e
Support edge cases: unit structs, tuple structs, tuple in structs, Op…
williamwutq Jul 24, 2026
cb76a78
Add #[embed] primitive]
williamwutq Jul 25, 2026
7b7485e
Basic clone machinary
williamwutq Jul 25, 2026
8f36c4b
Add clone vec
williamwutq Jul 25, 2026
720118d
Add clone for rc
williamwutq Jul 25, 2026
608c48f
Try clone for all
williamwutq Jul 25, 2026
3deadae
Add README section of cloning
williamwutq Jul 25, 2026
819eb6c
Ensure atomicity for vec
williamwutq Jul 26, 2026
0318bb8
batch rc
williamwutq Jul 26, 2026
213edba
Add WAL
williamwutq Jul 26, 2026
6a7eac0
WAL!
williamwutq Jul 27, 2026
20a2109
Merge branch 'master' into raii for sync
williamwutq Jul 31, 2026
c51c954
Add support for [T; len]
williamwutq Jul 31, 2026
dfc1c65
Support weak for [Weak; size]
williamwutq Jul 31, 2026
eebc378
Support for [Option<T>; size]
williamwutq Jul 31, 2026
4dc6b6c
Support embed for [T; len]
williamwutq Jul 31, 2026
4ecb4f6
optimizations with copy
williamwutq Jul 31, 2026
d9bf7b1
enum variants for [T; N]
williamwutq Jul 31, 2026
b58048a
Support nesting for [[T;N]M]
williamwutq Jul 31, 2026
10a184b
Better error for very weird nesting
williamwutq Jul 31, 2026
f842930
Inline array of vecs
williamwutq Jul 31, 2026
3c3cf61
Add support for `#[bstack_ref] Vec<[T; N]>` with fixed-size arrays of…
williamwutq Jul 31, 2026
14379f6
Vec<[T; N]> now works for all ref types
williamwutq Jul 31, 2026
4fd002d
Add directed error for tuples used as Vec elements
williamwutq Jul 31, 2026
839af5e
support ref vec in enum
williamwutq Aug 1, 2026
9fdae1c
Support pod type in enum vec
williamwutq Aug 1, 2026
87954d2
Update README
williamwutq Aug 1, 2026
e7500f8
Allow genertic blocks types
williamwutq Aug 1, 2026
62db34d
Enhance support for generic block types in `#[bstack_block]` macro fo…
williamwutq Aug 1, 2026
6180966
Support Generic Owned refs
williamwutq Aug 1, 2026
99834cb
Refactor for generics
williamwutq Aug 1, 2026
b8109b0
Enhance generics for pod and embed
williamwutq Aug 1, 2026
5a9f975
Add support for generic enums
williamwutq Aug 1, 2026
167173c
Const generics
williamwutq Aug 1, 2026
7b8719b
Enhance error handling
williamwutq Aug 1, 2026
45e2936
Update README
williamwutq Aug 1, 2026
fc01833
stdlib: Cow
williamwutq Aug 1, 2026
ac78f0d
stdlib: Box
williamwutq Aug 1, 2026
49fd2df
stdlib: LinkedList
williamwutq Aug 2, 2026
384350e
stdlib: Make LinkedList ops atomic
williamwutq Aug 2, 2026
9e2159c
Merge branch 'master' into raii
williamwutq Aug 4, 2026
3162a53
stdlib: Deque
williamwutq Aug 6, 2026
c0753db
stdlib: HashMap
williamwutq Aug 6, 2026
893b661
stdlib: BTreeMap
williamwutq Aug 6, 2026
72a15bc
stdlib: String
williamwutq Aug 6, 2026
4547539
stdlib: Optimization using stack allocated buffers
williamwutq Aug 6, 2026
018d0f1
chore: standarizing reading and writing u64; ran fmt and clippy
williamwutq Aug 6, 2026
2b682b6
stdlib: Extract hash
williamwutq Aug 6, 2026
ae246da
stdlib: HashmMap clippy fix
williamwutq Aug 6, 2026
885d3ab
stdlib: CountingBloomFilter
williamwutq Aug 6, 2026
64df019
stdlib: HashSet and TreeSet (with bloom filter in front)
williamwutq Aug 6, 2026
4509ae7
stdlib: delete in BTree
williamwutq Aug 6, 2026
9804620
stdlib: more String methods
williamwutq Aug 6, 2026
db12914
documentation update
williamwutq Aug 7, 2026
8c08908
stdlib: Heap
williamwutq Aug 7, 2026
509f4d5
stdlib: Fix N io read pattern
williamwutq Aug 7, 2026
77609bc
stdlib: Iterators
williamwutq Aug 7, 2026
ba1017b
stdlib: Advanced map entry API
williamwutq Aug 7, 2026
802c54b
Merge branch 'master' into raii
williamwutq Aug 8, 2026
a52c43d
Extending WAL
williamwutq Aug 8, 2026
f521f46
Add WAL cloning wiring
williamwutq Aug 9, 2026
ae86369
Teardown
williamwutq Aug 9, 2026
6935282
WAL enhancement
williamwutq Aug 9, 2026
90d4473
Use WalAnchor
williamwutq Aug 9, 2026
f58987a
Use WAL Anchor for native types
williamwutq Aug 9, 2026
359b847
Enhance tests
williamwutq Aug 9, 2026
9b94206
fmt
williamwutq Aug 9, 2026
32ee8ea
Rename BStackWalAnchor to BStackRaiiAllocator
williamwutq Aug 9, 2026
0a915cc
Refactor wal.rs to remove BStackOwnedSliceAllocator dependency comple…
williamwutq Aug 9, 2026
790a528
Update bstack
williamwutq Aug 9, 2026
7ff2442
Add parking_lot
williamwutq Aug 9, 2026
dc64d34
foreign: Registery
williamwutq Aug 9, 2026
75f0880
Reserve special points
williamwutq Aug 11, 2026
ee5354d
Rename <field> accessor to get_<field>
williamwutq Aug 11, 2026
9df6fcd
Add raw accessor and ref/pod setters
williamwutq Aug 11, 2026
a2914ba
Add replace accessors
williamwutq Aug 11, 2026
6be7ba8
Basic foreign group
williamwutq Aug 11, 2026
61fccba
Register host pointer locations
williamwutq Aug 11, 2026
7a542bb
Foreign to local and local to foreign
williamwutq Aug 11, 2026
f118c76
Widen wal to support cross-file
williamwutq Aug 11, 2026
9f0d2b1
Foreign teardown
williamwutq Aug 11, 2026
6b04158
Add concurrent tests for teardown
williamwutq Aug 11, 2026
8902d89
Foreign Clone
williamwutq Aug 11, 2026
6817999
Enhance support for foreign in edge cases
williamwutq Aug 11, 2026
d8e8885
Foreign in tuple and enum
williamwutq Aug 11, 2026
6c006d9
Update README
williamwutq Aug 12, 2026
a07fcb7
Add cross file (Foreign) example
williamwutq Aug 12, 2026
b00d898
Add expression tree example
williamwutq Aug 12, 2026
ca12c69
Let replace hand back things
williamwutq Aug 12, 2026
1b0c988
Weak and Weak vec setters now has release on failure to prevent leaks
williamwutq Aug 12, 2026
9902895
Problems
williamwutq Aug 12, 2026
f7ab9a2
Fix clippy issues
williamwutq Aug 12, 2026
d1d709a
Fix dead helpers
williamwutq Aug 12, 2026
d5f2c18
Fix docs
williamwutq Aug 12, 2026
f50ddc5
Fix some problems and mark some as not fixing
williamwutq Aug 12, 2026
f6d58cf
Fix wal surface issue
williamwutq Aug 12, 2026
20c961d
Add deref for rc
williamwutq Aug 12, 2026
8d7a8e1
Change foreign signature
williamwutq Aug 12, 2026
cab4c56
Modify machinary
williamwutq Aug 13, 2026
d558baf
Fix allocation problem for performance
williamwutq Aug 13, 2026
9fe3ff0
Fix duplication in map
williamwutq Aug 13, 2026
c8ff36b
Fix weak upgrade
williamwutq Aug 13, 2026
ba26054
Resolve private problem
williamwutq Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@ name: Check
on:
push:
branches: [ master ]
# The nested bstack_raii crate is its own workspace and not part of the
# bstack package; skip these checks when only it changed.
paths-ignore: [ bstack_raii/** ]
pull_request:
branches: [ master ]
paths-ignore: [ bstack_raii/** ]

permissions:
contents: read
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/devskim.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ name: DevSkim
on:
push:
branches: [ "master" ]
paths-ignore: ['**.md', '**/Makefile', '.gitignore', '.gitattributes', '**.toml', '**.lock']
paths-ignore: ['**.md', '**/Makefile', '.gitignore', '.gitattributes', '**.toml', '**.lock', 'bstack_raii/**']
pull_request:
branches: [ "master" ]
paths-ignore: ['**.md', '**/Makefile', '.gitignore', '.gitattributes', '**.toml', '**.lock']
paths-ignore: ['**.md', '**/Makefile', '.gitignore', '.gitattributes', '**.toml', '**.lock', 'bstack_raii/**']

jobs:
lint:
Expand Down
173 changes: 173 additions & 0 deletions bstack_raii/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions bstack_raii/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[package]
name = "bstack_raii"
version = "0.0.0"
edition = "2024"
authors = ["William Wu <williamwutq@gmail.com>", "Claude <claude@anthropic.com>"]
license = "MIT"
description = "Typed, RAII-style ownership and lifetime layer over the bstack allocation primitives"
repository = "https://github.com/williamwutq/bstack"
publish = false

# This crate is developed inside the `bstack` repository but is NOT part of the
# `bstack` package or its CI. It is its own self-contained workspace so that
# root-level `cargo` commands in the bstack repo never descend into it. See
# RAII.md (in the repo root) for the full design this crate implements.
[workspace]
members = ["derive"]

[features]
# Dev/test only: forwards bstack's fault-injection so crash-recovery tests can arm
# a fault at a chosen `BStack` op (e.g. the clone commit's `inplace_gen`). Off by
# default; enable with `--features fault-injection`. Also requires a debug build.
fault-injection = ["bstack/fault-injection"]

[dependencies]
# RAII requires `alloc` + `set`; `atomic` is needed for the on-disk refcount RMW
# (control blocks, strong/weak counters).
bstack = { version = "=0.4", features = ["alloc", "set", "atomic"] }
bstack_raii_derive = { path = "derive", version = "0.0.0" }

# Gate for POD (plain-old-data) inline fields: any `bytemuck::Pod` type is safe
# to store inline in an on-disk block and receives the blanket no-op BStackDrop.
bytemuck = { version = "=1.25", features = ["derive"] }
parking_lot = "0.12.5"
Loading
Loading