1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2025-08-04 21:52:54 +02:00
Commit Graph

454 Commits

Author SHA1 Message Date
83a4af7cb8 deps: switch to tikv-jemallocator
It is now a recommended crate for jemalloc and it contains an
[important fix for compilation on riscv64gc-unknown-linux-musl][fix],
I bumped into this when I was trying to
[build ripgrep on OpenWrt][openwrt].

Closes #2889

[fix]: https://github.com/tikv/jemallocator/pull/67
[openwrt]: https://github.com/openwrt/packages/pull/24961
2025-07-26 11:41:17 -04:00
95979048c9 globset: add opt-in Arbitrary trait implementations
This feature is mandatory when using `Glob` in fuzz testing.

Closes #2720
2025-07-26 10:42:28 -04:00
3b7fd442a6 deps: update everything
It looks like a new dependency on `getrandom` was added (which brings in
a few more dependencies itself) because of `jobserver`. Thankfully,
`jobserver` is only used when ripgrep's `pcre2` feature is enabled, so
this still keeps the default set of dependencies very small.
2025-07-04 10:12:38 -04:00
6dfaec03e8 deps: bump crossbeam-channel from 0.5.13 to 0.5.15
Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.13 to 0.5.15.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.13...crossbeam-channel-0.5.15)

---
updated-dependencies:
- dependency-name: crossbeam-channel
  dependency-version: 0.5.15
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-10 10:55:32 -04:00
de4baa1002 globset-0.4.16 2025-02-27 12:46:58 -05:00
4649aa9700 14.1.1 2024-09-08 22:15:00 -04:00
a1960877cf grep-0.3.2 2024-09-08 22:11:00 -04:00
be117dbafa grep-printer-0.2.2 2024-09-08 22:10:29 -04:00
c6c2e69b8f grep-searcher-0.1.14 2024-09-08 22:09:27 -04:00
d33f2e2f70 grep-pcre2-0.1.8 2024-09-08 22:08:41 -04:00
7c8dc332b3 grep-regex-0.1.13 2024-09-08 22:07:52 -04:00
7943bdfe82 grep-cli-0.1.11 2024-09-08 22:06:59 -04:00
ac02f54c89 ignore-0.4.23 2024-09-08 22:06:03 -04:00
a5083f99ce globset-0.4.15 2024-09-08 22:04:48 -04:00
f7b677d136 deps: update everything 2024-09-08 22:03:29 -04:00
e0f1000df6 deps: update everything
This removes `once_cell` (a dependency of `cc`) but adds `shlex` (also a
dependency of `cc`). AFAIK, ripgrep does not utilize anything in `cc`
that requires `shlex`, which is pretty unfortunate that we have to spend
time compiling it. (We use `cc` only when the `pcre2` feature is
enabled.)
2024-08-28 11:38:43 -04:00
02b47b7469 deps: update everything
Notably, this removes winapi in favor of windows-sys, as a result of
winapi-util switching over to windows-sys[1].

Annoyingly, when PCRE2 is enabled, this brings in a dependency on
`once_cell`[2]. I had worked to remove it from my dependencies and now
it's back. Gah. I suppose I could disable the `parallel` feature of
`cc`, but that doesn't seem like a good trade-off.

[1]: https://github.com/BurntSushi/winapi-util/pull/13
[2]: https://github.com/rust-lang/cc-rs/pull/1037
2024-04-23 10:46:12 -04:00
eca13f08a2 deps: bump everything else 2024-03-24 18:58:28 -04:00
4f99f82b19 deps: bump pcre2 and pcre2-sys
This moves to PCRE2 10.43.
2024-03-24 18:58:06 -04:00
e9abbc1a02 cargo: nuke 'simd-accel' from orbit
This feature causes nothing but problems and is frequently broken. The
only optimization it was enabling were SIMD optimizations for
transcoding. In particular, for UTF-16 transcoding. This is performed by
the [`encoding_rs`](https://github.com/hsivonen/encoding_rs) crate,
which specifically uses unstable portable SIMD APIs instead of the
stable non-portable SIMD APIs.

SIMD optimizations that apply to search have long been making use of
stable APIs, and are automatically enabled when your target supports
them. This is, IMO, the correct user experience and one that
`encoding_rs` refuses to support. I'm done dealing with it, so
transcoding will only use scalar code until the SIMD optimizations in
`encoding_rs` work on stable. (This doesn't mean that `encoding_rs` has
to change. This could also be fixed by stabilizing `std::simd`.)

Fixes #2748
2024-03-07 09:47:43 -05:00
9bd30e8e48 deps: update everything 2024-03-07 09:38:22 -05:00
e50df40a19 14.1.0 2024-01-06 14:32:27 -05:00
2c3897585d ignore-0.4.22 2024-01-06 14:27:44 -05:00
6e9141a9ca deps: update everything 2024-01-06 14:26:52 -05:00
6c2a550e1e deps: update everything
This drops a dependency on memoffset due to a crossbeam-epoch update.
w00t.
2024-01-04 19:46:29 -05:00
8e8fc9c503 deps: bump pcre2-sys to 0.2.8
This release contains some extra logic to disable the JIT on musleabi
targets.
2024-01-04 19:44:28 -05:00
3f2fe0afee deps: update everything
This also drops a dependency on scopeguard, courtesy of crossbeam-epoch
dropping it. Not sure why they did, but fine by me.
2023-12-17 09:37:33 -05:00
67ad9917ad 14.0.3 2023-11-28 16:18:14 -05:00
6c7947b819 14.0.2 2023-11-27 21:38:21 -05:00
0096c74c11 grep-0.3.1 2023-11-27 21:36:54 -05:00
f9b86de963 grep-printer-0.2.1 2023-11-27 21:36:02 -05:00
a5cbdb3dfe grep-searcher-0.1.13 2023-11-27 21:34:58 -05:00
59f86a45d3 14.0.1 2023-11-26 16:33:35 -05:00
625743d7c8 grep-0.3.0 2023-11-26 15:24:09 -05:00
3d0171040a grep-printer-0.2.0 2023-11-26 15:21:40 -05:00
93429d0f85 14.0.0 2023-11-26 14:19:31 -05:00
179487aaed grep-0.2.13 2023-11-26 14:18:17 -05:00
9bd1e737bc grep-searcher-0.1.12 2023-11-26 14:17:26 -05:00
b0df573834 grep-pcre2-0.1.7 2023-11-26 14:16:46 -05:00
fee7ac79f1 grep-regex-0.1.12 2023-11-26 14:15:44 -05:00
d0251c77fe grep-matcher-0.1.7 2023-11-26 14:13:54 -05:00
6f78d211bf grep-cli-0.1.10 2023-11-26 14:13:03 -05:00
381c521d02 ignore-0.4.21 2023-11-26 14:12:16 -05:00
47e37175ca globset-0.4.14 2023-11-26 14:11:05 -05:00
9b5091b895 deps: bump to memmap2 0.9.0 2023-11-26 13:32:39 -05:00
a4f165e3ab deps: bump everything 2023-11-26 13:32:39 -05:00
d1def67000 deps: bump pcre2 to 0.2.6 2023-11-26 13:32:20 -05:00
ae2a09915f printer: drop dependency on base64 crate
Instead, we just roll our own. A slow version of this is pretty simple
to do, and that's what we write here. The `base64` crate supports a lot
more functionality and is quite fast, but we care about neither of those
things for this particular aspect of ripgrep. (base64 is only used for
non-UTF-8 data or file paths, which are both quite rare.)
2023-11-21 18:39:32 -05:00
9c84575229 printer: drop dependency on serde_derive
As suggested by @epage[1].

Ad hoc timings on my i7-12900K:

    before cargo build: 4.91s
    before cargo build release: 8.05s
    after cargo build: 4.69s
    after cargo build release: 7.83s

... pretty underwhelming if you ask me. Ah well. And on my M2 mac mini:

    before cargo build: 6.18s
    before cargo build release: 14.50s
    after cargo build: 5.52s
    after cargo build release: 13.44s

Still kind of underwhelming, but definitely better. It shaves a full
second off of compile times in release mode. I went back to my
i7-12900K, but passed `-j1` to `cargo build` to force single threaded
mode:

    before cargo build: 19.44s
    before cargo build release: 50.64s
    after cargo build: 16.76s
    after cargo build release: 48.00s

Which seems pretty consistent with the modest improvements above.

Looking at `cargo build --timings`, the beefiest chunk of time is spent
in compiling `regex-automata`, by far. This is fine because it's core
functionality. I wish a fast general purpose regex engine with its
internals exposed as a separately versioned library didn't require so
much code... Blech.

[1]: https://old.reddit.com/r/rust/comments/17rd8ww/faster_compilation_with_the_parallel_frontend_in/k8igjlg/
2023-11-21 18:39:32 -05:00
cddb5f57f8 printer: rejigger how we use serde_derive
The idea is that by bringing derives in via serde's optional feature, it
was inhibiting compilation speed[1]. We try to fix that by depending on
`serde_derive` as a distinct dependency.

It does seem to improve overall compilation time, but only by about 0.5
seconds. With that said, my machine has a lot of cores, so it's possible
this will help more on less powerful CPUs.

[1]: https://old.reddit.com/r/rust/comments/17rd8ww/faster_compilation_with_the_parallel_frontend_in/k8igjlg/
2023-11-21 18:39:32 -05:00