Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 4 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ repository = "https://github.com/adam-Vandervorst/pathMap/"
keywords = ["trie", "MORK", "path", "algebra"]
categories = ["algorithms", "data-structures", "database-implementations"]
readme = "README.md"
exclude = ["target/", "benches/", "pathmap-book/", ".*"]
exclude = ["target/", "benches/", "pathmap-book/", "tools/", ".*"]

[package.metadata.docs.rs]
rustc-args = ["-C", "target-feature=+aes,+sse2"]
Expand All @@ -19,6 +19,7 @@ name = "pathmap"
path = "src/lib.rs"

[dependencies]
bitcode = { version = "0.6.9", optional = true }
pathmap-derive = { version = "0.3.0", path = "./pathmap-derive" }
maybe-dangling = "0.1.1"
span-timing = { version = "0.1.0" }
Expand All @@ -41,6 +42,7 @@ default = ["graft_root_vals", "slim_ptrs", "serialization"]
nightly = ["fast-slice-utils/nightly"] # Uses features in the nightly tool chain for better performance, and the allocator and coroutine APIs
jemalloc = ["dep:tikv-jemallocator"] # Enables [jemalloc](https://jemalloc.net/) as the default allocator. This dramatically improves scaling for write-heavy workloads and is generally recommended. The only reason it is not the default is to avoid interference with the host application allocator.
zipper_tracking = [] #Exports the zipper_tracking module publicly
trace_zipper = ["dep:bitcode"] # Records zipper operations for replay and visualization
all_dense_nodes = [] # Exclusively use the DenseByteNode type, which generally performs worse but is useful for compatibility and perf comparisons.
arena_compact = ["dep:memmap2"]

Expand Down Expand Up @@ -151,5 +153,5 @@ name = "act_line_cache"
required-features = ["arena_compact", "serialization"]

[workspace]
members = ["pathmap-derive", "examples/sampling", "examples/arena_compact_tests", "differential"]
members = ["pathmap-derive", "examples/sampling", "examples/arena_compact_tests", "differential", "tools/tracer"]
resolver = "2"
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ pathmap = "0.3"

- `zipper_tracking`: Exports the `zipper_tracking` module publicly, allowing the host application to use the conflict-checking logic independently of zipper creation.

- `trace_zipper`: Records zipper operations to buffers or files, for debugging or animated replay.

- `viz`: Provide APIs to inspect and visualize pathmap trie structures. Useful to observe structural sharing.

- `random`: Provides utilities for generating random paths, tries, and zipper movements according to configurable distributions.
Expand Down
3 changes: 3 additions & 0 deletions src/utils/debug/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
mod diff_zipper;
pub use diff_zipper::DiffZipper;

#[cfg(feature = "trace_zipper")]
pub mod zipper_tracing;

mod morphism_debug;
pub use morphism_debug::CatamorphismDebug;

Expand Down
Loading
Loading