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

Rewrite Vector (now "radix-balanced finger tree vectors"), for performance #8534

Merged
merged 7 commits into from Mar 18, 2020

Commits on Mar 9, 2020

  1. ArraySeq optimization

    szeiger committed Mar 9, 2020
    Configuration menu
    Copy the full SHA
    5f61b54 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    491bb2b View commit details
    Browse the repository at this point in the history
  3. Radix-Balanced Finger Tree Vectors

    This is complete rewrite of the old scala.collection.immutable.Vector.
    The design differs from the old one in one important aspect: Instead
    of a single movable finger (the "display" pointers) it has a fixed
    finger at each end. These fingers are part of the proper data
    structure, not a transient optimization. There are no other ways to
    get to the data in the fingers (it is not part of the main data
    array), no focus point, and no stabilization. As a side-effect, the
    data structure is completely immutable and no extra memory fences are
    required. A second major difference lies in the implementation.
    Whereas the old Vector uses a single class for collections of all
    supported sizes, the new one is split into Vector0 to Vector6 for the
    different dimensions of the main data array.
    szeiger committed Mar 9, 2020
    Configuration menu
    Copy the full SHA
    ba1f161 View commit details
    Browse the repository at this point in the history
  4. Faster Vector filtering

    szeiger committed Mar 9, 2020
    Configuration menu
    Copy the full SHA
    51af9f9 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0da3377 View commit details
    Browse the repository at this point in the history
  6. Fix Vector slicing bug

    szeiger committed Mar 9, 2020
    Configuration menu
    Copy the full SHA
    9b31b3e View commit details
    Browse the repository at this point in the history
  7. Fix some Vector method exceptions

    and more cleanup after review comments and linter warnings
    szeiger committed Mar 9, 2020
    Configuration menu
    Copy the full SHA
    d335189 View commit details
    Browse the repository at this point in the history