Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Persistent collections updates (part 8) #184

Merged
merged 17 commits into from
Sep 26, 2022

Commits on Sep 23, 2022

  1. Configuration menu
    Copy the full SHA
    8c9ae08 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9407eff View commit details
    Browse the repository at this point in the history
  3. [tests] Delay checking Indices until we’re done with the collection i…

    …tself
    
    Also, don’t check `DefaultIndices` — it’s fine to
    assume it implements Collection as long as the base collection is
    correct.
    lorentey committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    a453335 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    eefef1e View commit details
    Browse the repository at this point in the history
  5. [PersistentCollections] Implement structural index(_:offsetBy:) & ind…

    …ex(_:offsetBy:limitedBy:)
    lorentey committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    77f205f View commit details
    Browse the repository at this point in the history
  6. [PersistentCollections] Fix indexing oversight when spawning a new ch…

    …ild in a non-unique node
    
    Oops, this did not account for reversed item order, so it was spawning the new child with the wrong item.
    lorentey committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    287c677 View commit details
    Browse the repository at this point in the history
  7. [PersistentCollections] Cache the item hash within collision nodes

    This will simplify merge operations as we no longer have to spend effort on preventing repeated rehashings of items within collision nodes.
    
    Also, review and simplify node allocation and lookup code.
    lorentey committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    9150bbf View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2193e79 View commit details
    Browse the repository at this point in the history
  9. [PersistentDictionary] Add a quick&dirty memory benchmark

    The new executable target `memory-benchmark` collects some memory usage statistics and outputs average memory efficiency for a range of sizes in CSV format.
    
    Bump required toolchain version for benchmarks to Swift 5.5.
    lorentey committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    92d1d12 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2022

  1. Configuration menu
    Copy the full SHA
    d87f5fd View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2022

  1. [PersistentSet] Add ExpressibleByArrayLiteral, Codable, Custom[Debug]…

    …StringConvertible, CustomReflectable conformances
    lorentey committed Sep 25, 2022
    Configuration menu
    Copy the full SHA
    00ae83d View commit details
    Browse the repository at this point in the history
  2. [PersistentSet] Flesh out isSubset/iSuperset/isDisjoint/etc overloads…

    … (untested)
    
    This adds an experimental _FastMembershipCheckable protocol to speed
    up these relationship predicates when possible — having separate
    overloads for each known collection with a fast containment check
    is not going to scale for long.
    
    This commit also introduces a set of isEqual(to:) methods that
    generalize ==.
    lorentey committed Sep 25, 2022
    Configuration menu
    Copy the full SHA
    3d10964 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1c6e5cb View commit details
    Browse the repository at this point in the history
  4. [PersistentDictionary] Implement structural filter & compactMapValues

    Plus add tests covering these as well and mapValues.
    lorentey committed Sep 25, 2022
    Configuration menu
    Copy the full SHA
    826e22c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c92b0fa View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    590dfeb View commit details
    Browse the repository at this point in the history
  7. [PersistentDictionary] Add a structural initializer that takes a Pers…

    …istentSet and a value transform
    lorentey committed Sep 25, 2022
    Configuration menu
    Copy the full SHA
    ba303dc View commit details
    Browse the repository at this point in the history