Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn() | Tavian Barnes | 2024-05-23 | 4 | -0/+22 |
| | | | | | | | | | | If we raise RLIMIT_NOFILE, we have to lower it before calling exec() for compatibility with select(). If posix_spawn() doesn't support that, we fall back to fork(), which is quite a bit slower. Therefore, if we're going to exec() on most files, it's better to keep RLIMIT_NOFILE the same to avoid the fork() cost, even though it makes bftw() somewhat slower. | ||||
* | opt: true is true with probability 1, not 0 | Tavian Barnes | 2024-05-23 | 1 | -1/+1 |
| | |||||
* | opt: Implement a general estimate_odds() function | Tavian Barnes | 2024-05-23 | 1 | -9/+17 |
| | |||||
* | expr: New for_expr macro | Tavian Barnes | 2024-05-23 | 6 | -14/+20 |
| | |||||
* | tests: Make hide_bar actually hide the bar | Tavian Barnes | 2024-05-22 | 2 | -1/+15 |
| | |||||
* | tests: Print progress outside the scroll region | Tavian Barnes | 2024-05-22 | 3 | -44/+132 |
| | |||||
* | tests: Restart wait when interrupted by a signal | Tavian Barnes | 2024-05-22 | 1 | -6/+15 |
| | |||||
* | build: Simplify flags.mk | Tavian Barnes | 2024-05-21 | 1 | -64/+43 |
| | |||||
* | build: Fix ubsan CFLAGS typo | Tavian Barnes | 2024-05-21 | 1 | -1/+1 |
| | |||||
* | build: Allow flags.mk to override command line variables | Tavian Barnes | 2024-05-21 | 4 | -31/+31 |
| | | | | | | | | Previously, during something like ./configure LDFLAGS=..., any additions to LDFLAGS from the generated makefiles were ignored. I had thought that sub-make invocations would allow those variables to be overridden, but that is not the behaviour of make. So instead, set _LDFLAGS etc. in the generated files so that they don't conflict. | ||||
* | prelude: Remove max_align_t polyfill | Tavian Barnes | 2024-05-20 | 3 | -24/+0 |
| | | | | | | This has been fixed in Cosmopolitan. Link: https://github.com/jart/cosmopolitan/issues/944 | ||||
* | trie: Add some more target_clones wrappers | Tavian Barnes | 2024-05-20 | 1 | -2/+12 |
| | |||||
* | prelude: Make sure to grab __GLIBC__ | Tavian Barnes | 2024-05-20 | 1 | -1/+2 |
| | |||||
* | Stop using %m | Tavian Barnes | 2024-05-20 | 10 | -52/+34 |
| | |||||
* | build: Remove unused configure test | Tavian Barnes | 2024-05-19 | 1 | -13/+0 |
| | |||||
* | printf: The ' ' (space) flag must be numeric | Tavian Barnes | 2024-05-19 | 3 | -2/+3 |
| | |||||
* | dir: Use posix_getdents() on all platforms | Tavian Barnes | 2024-05-17 | 1 | -2/+6 |
| | |||||
* | dir: Add support for posix_getdents() | Tavian Barnes | 2024-05-17 | 4 | -4/+35 |
| | | | | | | | | This will be added to the next POSIX standard, and is already implemented in musl. Link: https://www.austingroupbugs.net/view.php?id=697 Link: https://git.musl-libc.org/cgit/musl/commit/?id=1b0d48517f816e98f19111df82f32bfc1608ecec | ||||
* | Cast AT_FDCWD to int for comparisons | Tavian Barnes | 2024-05-17 | 6 | -8/+8 |
| | | | | | Some platforms define AT_FDCWD to a constant like 0xFFFAFDCD that gets typed as an unsigned int. | ||||
* | ci: Surface compiler warnings/errors as GitHub actions messages | Tavian Barnes | 2024-05-17 | 2 | -7/+23 |
| | |||||
* | build: Add missing SPDX headers | Tavian Barnes | 2024-05-17 | 3 | -0/+9 |
| | |||||
* | diag: New helpers to include xstrerror(errno) automatically | Tavian Barnes | 2024-05-17 | 12 | -56/+93 |
| | |||||
* | stat: Support __st_birthtim on OpenBSD | Tavian Barnes | 2024-05-16 | 3 | -0/+13 |
| | |||||
* | distcheck: Disable tsan on FreeBSD | Tavian Barnes | 2024-05-16 | 1 | -1/+1 |
| | | | | | | | | | ThreadSanitizer has some FreeBSD-specific bugs that are too difficult to work around. In particular, deadlock is possible if any signal with a user-defined handler interrupts an atomic operation. Link: https://github.com/llvm/llvm-project/issues/92313 Link: https://github.com/llvm/llvm-project/issues/92437 | ||||
* | Work around https://github.com/llvm/llvm-project/issues/88163 | Tavian Barnes | 2024-05-16 | 4 | -3/+24 |
| | |||||
* | ctx: Try to reset TTY state when terminating abnormally | Tavian Barnes | 2024-05-16 | 3 | -51/+105 |
| | | | | Fixes: https://github.com/tavianator/bfs/issues/138 | ||||
* | bar: Use atsigexit() to reset the bar | Tavian Barnes | 2024-05-16 | 1 | -132/+47 |
| | |||||
* | sighook: New utilities for hooking signals | Tavian Barnes | 2024-05-16 | 7 | -0/+777 |
| | | | | This allows multiple hooks to be installed for a single signal. | ||||
* | atomic: Add a spin_loop() hint | Tavian Barnes | 2024-05-15 | 1 | -0/+14 |
| | |||||
* | atomic: Add atomic_{thread,signal}_fence() wrappers | Tavian Barnes | 2024-05-15 | 1 | -0/+19 |
| | |||||
* | xspawn: Mask signals before fork() | Tavian Barnes | 2024-05-15 | 1 | -8/+29 |
| | | | | This prevents signal handlers from running in the child before execve(). | ||||
* | bar: Make SIGWINCH move the cursor out of the bar | Tavian Barnes | 2024-05-15 | 1 | -23/+16 |
| | |||||
* | bar: Defend bfs_bar::fd against signal handler races | Tavian Barnes | 2024-05-09 | 1 | -31/+102 |
| | | | | | This is not currently a problem because bfs_bar_hide() is only ever called while single-threaded, but we might as well program defensively. | ||||
* | build: Sort generated headers | Tavian Barnes | 2024-05-08 | 1 | -4/+4 |
| | |||||
* | dstring: Make dstrprintf() return dchar * | Tavian Barnes | 2024-05-08 | 2 | -4/+4 |
| | |||||
* | build/has/getdents: Squelch warnings | Tavian Barnes | 2024-05-07 | 3 | -9/+6 |
| | |||||
* | ci: Save config.log files | Tavian Barnes | 2024-05-07 | 1 | -5/+30 |
| | |||||
* | distcheck: Don't build with make -s | Tavian Barnes | 2024-05-07 | 1 | -6/+6 |
| | | | | That way I can see the ./configure output on CI. | ||||
* | prelude: Kill #include <sys/param.h> | Tavian Barnes | 2024-05-07 | 1 | -7/+0 |
| | | | | We don't check for `BSD` anymore. | ||||
* | build: Check for 1- and 2-argument getmntent() variants | Tavian Barnes | 2024-05-07 | 4 | -2/+23 |
| | |||||
* | build: Add a check for getmntinfo() | Tavian Barnes | 2024-05-07 | 3 | -2/+12 |
| | |||||
* | mtab: Fix getmntinfo() error check | Tavian Barnes | 2024-05-07 | 1 | -1/+1 |
| | | | | The man pages all say "if an error occurs, zero is returned" | ||||
* | build: Add checks for strtofflags() and string_to_flags() | Tavian Barnes | 2024-05-07 | 4 | -7/+29 |
| | |||||
* | prelude: Remove unused __GLIBC_PREREQ() polyfill | Tavian Barnes | 2024-05-07 | 1 | -4/+0 |
| | |||||
* | stat: Remove __GNU__ guard | Tavian Barnes | 2024-05-07 | 1 | -1/+1 |
| | | | | | The number of people running bfs on Hurd with an outdated glibc version is vanishingly small (I hope). | ||||
* | stat: Prefer fstat(fd) to fstatat(fd, "", AT_EMPTY_PATH) | Tavian Barnes | 2024-05-07 | 1 | -19/+13 |
| | | | | | | | | | This lets us get rid of the runtime probe for AT_EMPTY_PATH support, and should be more efficient anyway. We still use statx(fd, "", AT_EMPTY_PATH) if available. Link: https://lore.kernel.org/linux-fsdevel/CAHk-=wiYnnv7Kw7v+Cp2xU6_Fd-qxQMZuuxZ61LgA2=Gtftw-A@mail.gmail.com/ | ||||
* | prelude: Kill unused __NetBSD_Prereq__() polyfill | Tavian Barnes | 2024-05-07 | 1 | -4/+0 |
| | |||||
* | xtime: Don't use timegm() on FreeBSD+msan | Tavian Barnes | 2024-05-06 | 1 | -1/+3 |
| | |||||
* | xtime: Use the libc's timegm() if present | Tavian Barnes | 2024-05-06 | 4 | -7/+51 |
| | |||||
* | build: Don't look for -s inside VAR=val in $MAKEFLAGS | Tavian Barnes | 2024-05-03 | 1 | -0/+2 |
| |