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

Speed up permsort by utilizing stability of the default sorting algorithm #47587

Draft
wants to merge 41 commits into
base: master
Choose a base branch
from

Commits on Nov 8, 2022

  1. initial functionality

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    42c70a1 View commit details
    Browse the repository at this point in the history
  2. support 5- and 3-argument sort! for backwards compatability

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    61e4006 View commit details
    Browse the repository at this point in the history
  3. test for bug that slipped through test suite

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    901182c View commit details
    Browse the repository at this point in the history
  4. fix bug

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    e032ba6 View commit details
    Browse the repository at this point in the history
  5. make send_to_end more human friendly (and less compiler friendly! int…

    …roduces regressions.)
    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    e6cfee0 View commit details
    Browse the repository at this point in the history
  6. Give each sorting pass and DEFAULT_STABLE a docstring

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    f160582 View commit details
    Browse the repository at this point in the history
  7. add tests and fix typos they unveiled

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    15a4484 View commit details
    Browse the repository at this point in the history
  8. avoid potential name conflict

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    d82b090 View commit details
    Browse the repository at this point in the history
  9. switch to custom keyword handling

    FIXES UNEXPECTED ALLOCATIONS
    removes code that previously harbored bugs that slipped through the test suite
    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    029cbae View commit details
    Browse the repository at this point in the history
  10. remove InsertionSortAlg and MergeSortAlg

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    d3bdca3 View commit details
    Browse the repository at this point in the history
  11. better algorithm display

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    2232cac View commit details
    Browse the repository at this point in the history
  12. stop passing U around

    Fixes a few remaining unexpected allocations
    U can be statically computed from the type of v and order so there is no need.
    Further, U is infered as ::DataType rather than Type{U} which causes type instabilities.
    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    a574c7f View commit details
    Browse the repository at this point in the history
  13. remove lenm1

    it is invalid to cache lenm1 because lo and hi may be redefined
    and we have no cache invalidation system
    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    05de36e View commit details
    Browse the repository at this point in the history
  14. fix unexpected allocations in Radix Sort

    fixes JuliaLang#47474
    in this PR rather than separate to avoid dealing with the merge
    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    70290d6 View commit details
    Browse the repository at this point in the history
  15. fix doctests? I have no idea how

    Lilith Hafner authored and Lilith Hafner committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    f06de10 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2022

  1. support and test backwards compatability with packages that depend in…

    … sorting internals
    Lilith Hafner authored and Lilith Hafner committed Nov 9, 2022
    Configuration menu
    Copy the full SHA
    38f4512 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'master' into sort-dispatch

    Lilith Hafner authored and Lilith Hafner committed Nov 9, 2022
    Configuration menu
    Copy the full SHA
    383b9d2 View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2022

  1. improve extensibility tests

    Lilith Hafner authored and Lilith Hafner committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    d8ae968 View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2022

  1. overhall scratch space handling

    make _sort! return scratch space rather than sorted vector
    so that things like IEEEFloatOptimization can re-use the
    scratch space allocated on their first recursive call
    Lilith Hafner authored and Lilith Hafner committed Nov 11, 2022
    Configuration menu
    Copy the full SHA
    c633419 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2022

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

Commits on Nov 15, 2022

  1. Consistency with other constructors

    Lilith Hafner authored and Lilith Hafner committed Nov 15, 2022
    Configuration menu
    Copy the full SHA
    a2c2646 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    71e8fa1 View commit details
    Browse the repository at this point in the history
  3. Fix a mistake

    petvana committed Nov 15, 2022
    Configuration menu
    Copy the full SHA
    812c917 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2022

  1. pass around even fewer easily computed things in kw to reduce load on…

    … the compiler
    Lilith Hafner authored and Lilith Hafner committed Nov 18, 2022
    Configuration menu
    Copy the full SHA
    e752ea7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    15666f2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    04399d9 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2022

  1. Configuration menu
    Copy the full SHA
    34621c7 View commit details
    Browse the repository at this point in the history
  2. Restore the PR

    petvana committed Dec 5, 2022
    Configuration menu
    Copy the full SHA
    7e6f103 View commit details
    Browse the repository at this point in the history
  3. Rename to PermFast

    petvana committed Dec 5, 2022
    Configuration menu
    Copy the full SHA
    77b2b08 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    36d3ff3 View commit details
    Browse the repository at this point in the history
  5. Fix spacing

    petvana committed Dec 5, 2022
    Configuration menu
    Copy the full SHA
    1fe68d9 View commit details
    Browse the repository at this point in the history
  6. Fix trailing whitespace

    petvana committed Dec 5, 2022
    Configuration menu
    Copy the full SHA
    dd1d89b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    91c2d2a View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2022

  1. Small fixes

    petvana committed Dec 6, 2022
    Configuration menu
    Copy the full SHA
    20ddeb4 View commit details
    Browse the repository at this point in the history
  2. Fix sortperm!

    petvana committed Dec 6, 2022
    Configuration menu
    Copy the full SHA
    c14432b View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2022

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

Commits on Dec 14, 2022

  1. Commit suggestion from review

    Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com>
    petvana and LilithHafner authored Dec 14, 2022
    Configuration menu
    Copy the full SHA
    a2f9710 View commit details
    Browse the repository at this point in the history
  2. De-duplicate code

    petvana committed Dec 14, 2022
    Configuration menu
    Copy the full SHA
    2d2cf4d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ef8e8eb View commit details
    Browse the repository at this point in the history
  4. Re-use scratch array

    petvana committed Dec 14, 2022
    Configuration menu
    Copy the full SHA
    3b972eb View commit details
    Browse the repository at this point in the history

Commits on Dec 28, 2022

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