Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
This drops `spin` and `autocfg`, yay.
|
|
There are some nice removals. It looks like rand has slimmed down, and
smallvec is gone now as well.
|
|
|
|
|
|
|
|
|
|
|
|
This brings in a bug fix that no longer tries to run `git` to update the
submodule if the `git` command doesn't exist.
This is useful is more restricted build contexts where `git` isn't
installed. Such as in the docker image used for running `cross`.
|
|
It turns out that musl's allocator is slow enough to cause a fairly
noticeable performance regression when ripgrep is built as a static
binary with musl. We fix this by using jemalloc when building with musl.
We continue to use the default system allocator in all other scenarios.
Namely, glibc's allocator doesn't noticeably regress performance compared
to jemalloc. But we could add more targets to this logic if other
system allocators (macOS, Windows) prove to be slow.
This wasn't necessary before because rustc recently stopped using jemalloc
by default.
Fixes #1268
|
|
|
|
This brings in a fix for a regression introduced in ripgrep 11.
Fixes #1247
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This comes with PCRE 10.32 and a few new options we'll use in subsequent
commits.
|
|
This makes the case of searching for a dictionary of a very large number
of literals much much faster. (~10x or so.) In particular, we achieve this
by short-circuiting the construction of a full regex when we know we have
a simple alternation of literals. Building the regex for a large dictionary
(>100,000 literals) turns out to be quite slow, even if it internally will
dispatch to Aho-Corasick.
Even that isn't quite enough. It turns out that even *parsing* such a regex
is quite slow. So when the -F/--fixed-strings flag is set, we short
circuit regex parsing completely and jump straight to Aho-Corasick.
We aren't quite as fast as GNU grep here, but it's much closer (less than
2x slower).
In general, this is somewhat of a hack. In particular, it seems plausible
that this optimization could be implemented entirely in the regex engine.
Unfortunately, the regex engine's internals are just not amenable to this
at all, so it would require a larger refactoring effort. For now, it's
good enough to add this fairly simple hack at a higher level.
Unfortunately, if you don't pass -F/--fixed-strings, then ripgrep will
be slower, because of the aforementioned missing optimization. Moreover,
passing flags like `-i` or `-S` will cause ripgrep to abandon this
optimization and fall back to something potentially much slower. Again,
this fix really needs to happen inside the regex engine, although we
might be able to special case -i when the input literals are pure ASCII
via Aho-Corasick's `ascii_case_insensitive`.
Fixes #497, Fixes #838
|
|
|
|
This commit adds a new encoding feature where the -E/--encoding flag
will now accept a value of 'none'. When given this value, all encoding
related machinery is disabled and ripgrep will search the raw bytes of
the file, including the BOM if it's present.
Closes #1207, Closes #1208
|
|
|
|
We do the simplest possible change to migrate to the new version.
Fixes #1228
|
|
This updates all dependencies to their latest versions.
We tolerate a duplicative aho-corasick for now, which we will fix in the
next commit.
|
|
This brings in a new API for disabling BOM sniffing.
This is part of the work toward completing
https://github.com/BurntSushi/ripgrep/issues/1207
|
|
See
* https://github.com/rust-lang/regex/commit/661bf53d5b2b6dde25549aaad601ad8c59b37bfd
* https://github.com/rust-lang/regex/commit/edf45e6f5fa54705298ba14f3216cfb5277c0908
for details on the bug fix, which was in the regex engine.
Fixes #1203
|
|
|
|
This gets rid of the unmaintained crates `unreachable` and `void`. Yay!
|
|
This brings in a fix for this bug:
https://github.com/BurntSushi/aho-corasick/issues/37
Fixes #1079
|
|
|
|
|
|
|
|
|
|
This undoes the patch to stop using bytecount on big-endian
architectures. In particular, we bump our bytecount dependency to the
latest release, which has a fix.
This reverts commit a4868b88351318182eed3b801d0c97a106a7d38f.
Fixes #1144 (again), Closes #1194
|
|
|
|
This brings in an updated `encoding_rs` crate that uses `packed_simd`,
which compiles on the latest nightly. Compilation times do appear to be
impacted significantly though.
Fixes #1175 (again)
|
|
|
|
This drops dependencies on parking_lot and rand from ripgrep.
(rand is still used for tests.)
|
|
This is going to be annoying for a while if one switches between the
latest nightly compiler and older compilers. Sigh.
|
|
This commit fixes a bug where ripgrep only treated files beginning with
a `.` as hidden. On Windows, we continue this tradition, but
additionally check whether a file has the special Windows "hidden"
attribute set. If so, we treat it as a hidden file.
In order to make this work without an additional stat call, we had to
rearrange some of the plumbing from the directory traverser.
Fixes #1154
|
|
This is necessary for the use of the new is_line_anchored_{start,end}
APIs.
|