Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | trie: Fix varena_free() with wrong size | Tavian Barnes | 3 days | 1 | -8/+8 |
| | | | | | | | In trie_remove(), clearing the bit before trie_node_collapse() causes us to free the old node with size 1 instead of 2, putting it on the wrong freelist. This is technically safe with the current arena implementation, but not intentional. | ||||
* | 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 |
| | |||||
* | build: Move feature test macros to prelude.h | Tavian Barnes | 2024-08-28 | 1 | -1/+0 |
| | | | | | | 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 | 1 | -0/+3 |
| | |||||
* | diag: Get rid of bfs_static_assert() | Tavian Barnes | 2024-08-28 | 1 | -1/+1 |
| | | | | | 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: Simplify attributes | Tavian Barnes | 2024-07-28 | 1 | -9/+9 |
| | |||||
* | trie: Don't pass a bitfield directly to has_single_bit() | Tavian Barnes | 2024-05-30 | 1 | -1/+1 |
| | |||||
* | trie: Add some more target_clones wrappers | Tavian Barnes | 2024-05-20 | 1 | -2/+12 |
| | |||||
* | Rename config.h to prelude.h | Tavian Barnes | 2024-04-19 | 1 | -1/+1 |
| | |||||
* | trie: Calculate representative indices branchlessly | Tavian Barnes | 2024-03-23 | 1 | -3/+4 |
| | |||||
* | Re-run include-what-you-use | Tavian Barnes | 2024-03-11 | 1 | -2/+0 |
| | |||||
* | config: New variadic attr(...) macro | Tavian Barnes | 2023-12-18 | 1 | -1/+1 |
| | |||||
* | config: New attr_target_clones() macro | Tavian Barnes | 2023-11-09 | 1 | -8/+8 |
| | |||||
* | list: Assert that we're not inserting already-attached nodes | Tavian Barnes | 2023-10-12 | 1 | -0/+1 |
| | |||||
* | Formatting fixes | Tavian Barnes | 2023-09-27 | 1 | -1/+1 |
| | |||||
* | trie: New trie_clear() function | Tavian Barnes | 2023-08-31 | 1 | -0/+8 |
| | |||||
* | Unify macro naming conventions | Tavian Barnes | 2023-06-24 | 1 | -1/+1 |
| | | | | | In particular, macros that decide whether to use a particular API/ dependency should be spelled BFS_USE_*, and should be configurable. | ||||
* | trie: Arena-allocate nodes and leaves | Tavian Barnes | 2023-06-20 | 1 | -34/+31 |
| | |||||
* | alloc: New header for memory allocation utilities | Tavian Barnes | 2023-06-20 | 1 | -4/+3 |
| | |||||
* | Switch from assert() to bfs_assert()/bfs_verify() | Tavian Barnes | 2023-05-18 | 1 | -17/+16 |
| | |||||
* | trie: Use SIZE_WIDTH | Tavian Barnes | 2023-05-18 | 1 | -6/+6 |
| | |||||
* | bit: Rename int.h to bit.h | Tavian Barnes | 2023-05-18 | 1 | -1/+1 |
| | |||||
* | trie: Use standard bit utilities | Tavian Barnes | 2023-05-16 | 1 | -44/+15 |
| | |||||
* | trie: Use ENDIAN_* and bswap() | Tavian Barnes | 2023-05-16 | 1 | -7/+3 |
| | |||||
* | trie: Use the _WIDTH macros | Tavian Barnes | 2023-05-16 | 1 | -5/+6 |
| | |||||
* | trie: Use bfs_static_assert() | Tavian Barnes | 2023-05-16 | 1 | -1/+2 |
| | |||||
* | config: Provide <stdalign.h> and <stdbool.h> | Tavian Barnes | 2023-05-11 | 1 | -1/+0 |
| | | | | In anticipation of C23, since those headers won't be necessary any more. | ||||
* | config: s/BFS_FLEX_SIZEOF/flex_sizeof/ | Tavian Barnes | 2023-05-10 | 1 | -2/+2 |
| | |||||
* | style: Don't use tabs to indent preprocessor directives | Tavian Barnes | 2023-05-03 | 1 | -15/+15 |
| | |||||
* | list: Use macros instead of type-erased lists | Tavian Barnes | 2023-03-31 | 1 | -4/+4 |
| | |||||
* | trie: Use list.h for the list of leaves | Tavian Barnes | 2023-03-29 | 1 | -24/+4 |
| | |||||
* | Replace license boilerplate with SPDX tags | Tavian Barnes | 2023-01-25 | 1 | -15/+2 |
| | | | | | | | And while I'm at it, remove years from copyright declarations. Link: https://spdx.dev/about/ Link: https://daniel.haxx.se/blog/2023/01/08/copyright-without-years/ | ||||
* | trie: Use static_assert() instead of #error | Tavian Barnes | 2022-12-07 | 1 | -3/+1 |
| | |||||
* | config: Support target_clones on more platforms | Tavian Barnes | 2022-11-21 | 1 | -1/+1 |
| | |||||
* | trie: Limit target_clones to glibc | Tavian Barnes | 2022-11-16 | 1 | -5/+5 |
| | | | | Musl doesn't support ifuncs. | ||||
* | trie: Check __has_attribute(target_clones) before using it | Tavian Barnes | 2022-11-09 | 1 | -1/+1 |
| | |||||
* | config: Split out some of util.h into a new header | Tavian Barnes | 2022-11-06 | 1 | -1/+1 |
| | |||||
* | trie: Optimize trie_mismatch() with tzcnt | Tavian Barnes | 2022-11-01 | 1 | -13/+40 |
| | |||||
* | trie: Use target_clones() for popcnt | Tavian Barnes | 2022-10-30 | 1 | -6/+28 |
| | |||||
* | trie: Refactor insertion to allocate the leaf in one place | Tavian Barnes | 2022-10-30 | 1 | -49/+48 |
| | |||||
* | trie: Make leaves into a linked list | Tavian Barnes | 2022-10-29 | 1 | -20/+49 |
| | |||||
* | trie: New is_power_of_two() helper | Tavian Barnes | 2022-10-29 | 1 | -5/+10 |
| | |||||
* | trie: Convert ASCII art to Unicode art | Tavian Barnes | 2022-10-29 | 1 | -31/+49 |
| | |||||
* | Source / Include Folder (#88) | トトも | 2022-04-16 | 1 | -0/+693 |
Moved Source Files Into `src` Folder |