Worktree step1 vec simplify#686
Draft
frankmcsherry wants to merge 8 commits intoTimelyDataflow:master-nextfrom
Draft
Worktree step1 vec simplify#686frankmcsherry wants to merge 8 commits intoTimelyDataflow:master-nextfrom
frankmcsherry wants to merge 8 commits intoTimelyDataflow:master-nextfrom
Conversation
Remove the generic container abstraction layer and collapse to Vec<T> as the sole container type. All reference types are now &T. Removed: - Layout, WithLayout, LayoutExt traits and all implementations - Vector<U>, TStack<U> layout structs - BuilderInput trait (builders accept Vec directly) - TimelyStack<T> BatchContainer impl and columnation imports - All Col* type aliases (ColValSpine, ColKeySpine, etc.) - The layout type alias module Simplified: - TraceReader/BatchReader/Cursor use direct type Key/Val/Time/Diff instead of 12-line LayoutExt bound blocks - OrdValBatch/OrdKeyBatch/RhhValBatch parameterized by Update instead of Layout - Builders destructure Vec tuples directly, compare with == - owned_key/owned_val/owned_time/owned_diff replaced with .clone() 23 files changed, ~740 insertions, ~1200 deletions (net -453 lines). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update dogsdogsdogs operators: KeyOwn→Key, ValOwn→Val, owned_*→clone, BatchContainer methods→Vec methods, add Clone bounds where needed. Fix spines.rs example (Col* → Ord* types). Disable columnar.rs example (references removed Layout trait, will return in step 2). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace push_own/index with Vec::push/indexing, remove unused BatchContainer imports. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nd all columnation vestiges Remove unused traits and types that survived step 1: - BuilderInput trait + Vec impl (zero consumers after step 1) - SliceContainer (demo code, no consumers) - ColumnationChunker (unused after Col* paths removed) - TimelyStack and containers.rs (columnation container) - ColMerger, TimelyStackQueue in merge_batcher - Columnation impls for Present and PointStamp - columnation crate dependency Net -714 lines. Workspace compiles clean. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Data now requires columnar::Columnar, establishing the foundation for step 2 of the columnar migration. All type parameters for keys, values, times, and diffs gain the constraint through Data, Update, TraceReader, BatchReader, and Cursor traits. Propagated to: all Scope<Timestamp:> bounds, TInner bounds in enter/enter_at wrappers, algorithm functions, operator impl blocks. AltNeu in dogsdogsdogs derives Columnar. Demo crates updated. Workspace compiles clean. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add columnar::Columnar bounds to all example Scope<Timestamp:> and function signatures. Derive Columnar on HashWrapper, MinSum. Replace timely Source/Target with (usize, usize) tuples in progress.rs example since those external types lack Columnar. Update mdbook code samples. Workspace compiles clean including all examples. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The mdbook code samples reference columnar::Columnar in where clauses but the mdbook crate was missing the columnar dependency, and the code blocks needed extern crate columnar. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Work in progress to lock in containers a collections of data that are built mutably, but then once built are only referenced. The intended plan has a few steps:
Vecwith the caveat that we should borrow containers before we use them, and only carefully engage owned and mutable data, ideally in "collections" rather than "containers". For example,EditListmutably works with times and diffs, but only once pulled down from collections.Columnarconstraint, and attempt to move instances ofVeccontainers to columnar containers, references from&TtoT::Ref, things like this. This should pressure test the theory that we only need to read borrowed data of no particular structure.