Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | trie: Switch the tag bits around | Tavian Barnes | 2024-10-08 | 1 | -31/+28 |
| | | | | | | First of all, almost all checks were !trie_is_leaf(), so it makes sense to use trie_is_node() instead. Secondly, using the tag bit for internal nodes allows us to remove some NULL checks. | ||||
* | trie: Add some extra bounds checking | Tavian Barnes | 2024-10-08 | 1 | -13/+24 |
| | |||||
* | opt: Remove duplicate assignment in canonicalize_not() | Tavian Barnes | 2024-10-04 | 1 | -1/+0 |
| | |||||
* | color: Fix an assertion failure with embedded NUL bytes | Tavian Barnes | 2024-10-02 | 3 | -0/+42 |
| | | | | | | | | | | | | | Leading NUL bytes (e.g. `*\0.gz=...`) could cause us to insert a non-prefix-free set of strings into the case-insensitive extension trie, which would lead to crashes like bfs: trie_split@src/trie.c:538: Assertion failed: `key_nibble != rep_nibble` and OOB accesses to trie leaf keys. Fix it by ignoring those extensions, since filenames cannot contain NUL bytes. Fixes: 08030aea ("color: Delay the case_sensitive decision") | ||||
* | Write @arg instead of @param arg in doc comments | Tavian Barnes | 2024-10-01 | 27 | -367/+367 |
| | |||||
* | ci: Group distcheck messages | Tavian Barnes | 2024-10-01 | 1 | -0/+2 |
| | |||||
* | build: Add -Wundef-prefix=BFS_ | Tavian Barnes | 2024-10-01 | 4 | -0/+22 |
| | |||||
* | list: Make SLIST_REMOVE() more type-safe | Tavian Barnes | 2024-09-30 | 1 | -25/+20 |
| | | | | | | This avoids what might be a strict aliasing violation in some models. Link: https://github.com/llvm/llvm-project/pull/108385#issuecomment-2352938645 | ||||
* | Fix spelling | Tavian Barnes | 2024-09-23 | 15 | -17/+17 |
| | |||||
* | list: New drain_slist() macro | Tavian Barnes | 2024-09-19 | 4 | -39/+49 |
| | |||||
* | build/prelude: Remove vestigal OBJS definition | Tavian Barnes | 2024-09-18 | 1 | -11/+0 |
| | |||||
* | Release 4.0.24.0.2 | Tavian Barnes | 2024-09-17 | 3 | -3/+37 |
| | |||||
* | opt: #include "xspawn.h" before #ifdef POSIX_SPAWN_SETRLIMIT | Tavian Barnes | 2024-09-17 | 1 | -0/+1 |
| | | | | Fixes: 65a7814 ("opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn()") | ||||
* | opt: Fix an invalid assertion in sink_not_comma() | Tavian Barnes | 2024-09-17 | 3 | -4/+39 |
| | | | | | | | When optimizing -not \( -a , -b \), the child is a comma expression, not the parent. Fixes: 4a36bb9 ("expr: Make expressions variadic") | ||||
* | parse: Add a "logo" to bfs --version | Tavian Barnes | 2024-09-14 | 1 | -1/+32 |
| | |||||
* | dstring: New dstrepeat() function | Tavian Barnes | 2024-09-14 | 2 | -0/+22 |
| | |||||
* | build: Remove gen/deps.mk | Tavian Barnes | 2024-09-14 | 5 | -84/+68 |
| | | | | | | | | | | | | | | | | Since commit 3552b79 ("build/flags: Infrastructure to detect compiler flag support"), this file only listed a bunch of lines like -include obj/src/alloc.d -include obj/src/bar.d ... We can do that just as well from the main Makefile, and in one line too: -include ${OBJS:.o=.d} This lets us pull the list of all objects out of build/prelude.mk and put it closer to where those objects are actually used. | ||||
* | opt: Add missing newline to debug statement | Tavian Barnes | 2024-09-12 | 1 | -1/+1 |
| | | | | Fixes: 9b8cf46 ("opt: Warn about all ignored tests") | ||||
* | ci: Remove vmactions pip workaround | Tavian Barnes | 2024-09-08 | 1 | -10/+0 |
| | |||||
* | build/flags: Use auto-detection for all warning flags | Tavian Barnes | 2024-09-05 | 9 | -12/+73 |
| | |||||
* | docs/bfs.1: Fix some mandoc lint warnings | Tavian Barnes | 2024-09-05 | 3 | -12/+11 |
| | | | | And add mandoc -Tlint to make check-man. | ||||
* | build/embed.sh: Simplify a sed expression | Tavian Barnes | 2024-09-03 | 1 | -1/+1 |
| | |||||
* | build: Mark some recipes as .SILENT | Tavian Barnes | 2024-09-03 | 1 | -4/+7 |
| | | | | | | | | | This suppresses output like this on a no-op remake with BSD make: $ make -j8 --- gen/config.mk --- --- gen/version.i.new --- --- gen/version.i --- | ||||
* | distcheck: Pass MAKE="${MAKE}" to ./configure | Tavian Barnes | 2024-09-03 | 1 | -1/+1 |
| | | | | | Otherwise ./configure will run with the default make but inherit MAKEFLAGS from the current make, breaking e.g. gmake distcheck on BSD. | ||||
* | Fix includes | Tavian Barnes | 2024-08-29 | 14 | -10/+10 |
| | |||||
* | build: Move feature test macros to prelude.h | Tavian Barnes | 2024-08-28 | 59 | -100/+62 |
| | | | | | | This replaces the explicit CPPFLAGS list in flags.mk with just `-include src/prelude.h`, shortening our compiler command lines and allowing them to be easily documented. | ||||
* | prelude: Split bfs-specific utilities into new bfs.h header | Tavian Barnes | 2024-08-28 | 63 | -201/+373 |
| | |||||
* | prelude: Rely more on __has_include() | Tavian Barnes | 2024-08-28 | 7 | -96/+31 |
| | | | | | Rather than a bunch of manual fallback macros, just provide a fallback definition that returns false. | ||||
* | build: Move tsan/target_clones conflict to the prelude | Tavian Barnes | 2024-08-28 | 2 | -5/+3 |
| | |||||
* | prelude: Define __SANITIZE_*__ | Tavian Barnes | 2024-08-28 | 6 | -24/+21 |
| | |||||
* | diag: Get rid of bfs_static_assert() | Tavian Barnes | 2024-08-28 | 4 | -44/+39 |
| | | | | | In most cases, it's not too annoying to specify a message. For tests/bit.c, we can manually polyfill the 1-argument version. | ||||
* | prelude: Define thread_local | Tavian Barnes | 2024-08-28 | 3 | -12/+17 |
| | |||||
* | build: Move per-file flag support into cc.sh | Tavian Barnes | 2024-08-28 | 3 | -11/+33 |
| | |||||
* | build: Move the "compiler works at all" test earlier | Tavian Barnes | 2024-08-28 | 3 | -12/+19 |
| | |||||
* | build: Include the auto-flag build logs in config.log | Tavian Barnes | 2024-08-28 | 2 | -1/+2 |
| | |||||
* | build/flags-if: Fix sed expression on BSD | Tavian Barnes | 2024-08-28 | 1 | -1/+1 |
| | | | | | | | | `p` needs a terminating semicolon; otherwise we get sed: 1: "\|^///|{s|^/// ||; s|[^ ...": extra characters at the end of p command Fixes: 3552b79 ("build/flags: Infrastructure to detect compiler flag support") | ||||
* | bftw: Handle a hypothetical platform where AT_FDCWD == -1 | Tavian Barnes | 2024-08-28 | 1 | -2/+2 |
| | |||||
* | docs/BUILDING: Update example test output | Tavian Barnes | 2024-08-28 | 1 | -4/+4 |
| | |||||
* | build: Allow ./configure --version=X.Y.Z | Tavian Barnes | 2024-08-28 | 2 | -5/+8 |
| | |||||
* | build/version.sh: Move version calculation here | Tavian Barnes | 2024-08-28 | 2 | -7/+19 |
| | |||||
* | build: Add check-{install,man} to distcheck | Tavian Barnes | 2024-08-28 | 1 | -1/+3 |
| | |||||
* | build: Fix ./configure --help | Tavian Barnes | 2024-08-23 | 1 | -2/+2 |
| | | | | Fixes: 49a5d48 ("configure: Fix VAR=value before --option") | ||||
* | prelude: Stub out __has_builtin() if necessary | Tavian Barnes | 2024-08-23 | 1 | -0/+4 |
| | | | | Fixes: c964524 ("atomic: Add a spin_loop() hint") | ||||
* | ci: Update runners to Ubuntu 24.04 | Tavian Barnes | 2024-08-23 | 3 | -8/+18 |
| | |||||
* | Release 4.0.14.0.1 | Tavian Barnes | 2024-08-19 | 3 | -2/+13 |
| | |||||
* | eval: Don't warn about suppressed errors without -noerror | Tavian Barnes | 2024-08-19 | 2 | -1/+3 |
| | |||||
* | tests/bfs: Add -noerror tests | Tavian Barnes | 2024-08-19 | 7 | -0/+21 |
| | |||||
* | bench: Remove workaround for : in $PATH | Tavian Barnes | 2024-08-18 | 1 | -6/+1 |
| | |||||
* | sighook: Fix typo in comment | Tavian Barnes | 2024-08-17 | 1 | -1/+1 |
| | |||||
* | eval: Capitalize -noerror warning message | Tavian Barnes | 2024-08-17 | 1 | -1/+1 |
| |