Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: BurntSushi/memchr
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2.4.1
Choose a base ref
...
head repository: BurntSushi/memchr
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2.5.0
Choose a head ref
  • 7 commits
  • 14 files changed
  • 6 contributors

Commits on Dec 22, 2021

  1. impl: add wasm simd support

    This commit adds simd acceleration support to the `memmem` module. This
    is added with the freshly-stabilized support from rust-lang/rust#86204.
    This mostly just cribs off the generic simd support for 128-bit types
    built for sse, copying bits and pieces of code here and there. Some
    refactoring happened internally to help reduce duplication where
    possible.
    
    I ran some initial benchmarks with the `memmem/krate/*` regex and a
    hacked up single-threaded version of criterion. Some [initial
    comparisons][compare] using Wasmtime as a runtime do indeed show a lot
    of improvements, but there are indeed some slowdowns as well.
    
    [compare]: https://gist.github.com/alexcrichton/6a72e682e7b6d505ade605359fbe3f2d
    
    PR #84
    alexcrichton authored Dec 22, 2021
    Configuration menu
    Copy the full SHA
    cfa2fda View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2022

  1. bench: add WASM benchmark output

    This is a long overdue benchmark of the WASM implementation that landed
    in #84. I tried to do this a few months ago, but I mucked it up and
    never got back around to it. (This is also why I haven't put out a new
    release with the WASM implementation, since I wanted to do a sanity
    benchmark run first.)
    BurntSushi committed Apr 30, 2022
    Configuration menu
    Copy the full SHA
    2598db3 View commit details
    Browse the repository at this point in the history
  2. readme: fix crates.io badge

    Closes #90, Closes #93
    atouchet authored and BurntSushi committed Apr 30, 2022
    Configuration menu
    Copy the full SHA
    4f4b574 View commit details
    Browse the repository at this point in the history
  3. doc: find_iter, rfind_iter return non-overlapping matches

    The documentation for FindIter and FindRevIter already include
    this detail. However, it was not immediately clear to me from
    the documentation what find_iter and rfind_iter do about
    overlapping matches. This commit resolves that confusion by addiing
    "non-overlapping" to the description.
    
    Closes #95
    evanj authored and BurntSushi committed Apr 30, 2022
    Configuration menu
    Copy the full SHA
    d04ceb3 View commit details
    Browse the repository at this point in the history
  4. api: add Find{,Rev}Iter::into_owned

    `memmem::Finder::new(needle).into_owned().find_iter(haystack)` returns
    a `FindIter` that borrows the `Finder`. That `Finder` owns a copy of
    the needle.
    
    `memmem::find_iter(haystack, needle)` returns a `FindIter` that owns a
    `Finder` that borrows the needle.
    
    There is currently no way to get a `FindIter` (or `FindRevIter`) that
    owns a `Finder` that owns a copy of the needle. This prevents storing a
    `FindIter` in some struct without `Box`ing the `Finder`.
    
    This change adds just that.
    
    Closes #99
    glandium authored and BurntSushi committed Apr 30, 2022
    Configuration menu
    Copy the full SHA
    1769cd6 View commit details
    Browse the repository at this point in the history
  5. tests: generate prefilter tests lazily

    Generating all the prefilter test cases at once caused memory usage to
    spike up to ~7.1 GB. This lazy implementation sees ~100 MB peak.
    
    More specifically, this crate always OOMs in crater due to the sandbox
    limits. In fact, its test suite can hit a peak memory usage of ~7.1 GB
    which as far as one can tell is a comfortable 2x greater than any other
    crate in the top 1,000 by downloads.
    
    Closes #105
    saethlin authored and BurntSushi committed Apr 30, 2022
    Configuration menu
    Copy the full SHA
    b516165 View commit details
    Browse the repository at this point in the history
  6. 2.5.0

    BurntSushi committed Apr 30, 2022
    Configuration menu
    Copy the full SHA
    c555971 View commit details
    Browse the repository at this point in the history
Loading