buffer: Added `ThreadPool<"scope = "static>` skeleton. Old design removed, redesign using `mpsc` (`crossbeam::channel`) instead of bare-bones channel impl we were using with `Arc<(Condvar, Mutex<...>)>` (See comment in `buffer::thread_pool` about previous impl"s shortcomings and needless complexity.)Avril2024-04-06 23:58:00 +0100
buffer: Added `ThreadPool<"scope = "static>` skeleton. TODO: Re-design using normal `mpsc` channel instead of implementing my own fucking channel with the `Arc<(Condvar, Mutex)>` stuff...
refactor-thread-pool-no-channel-cmpext
Avril2024-04-06 23:51:34 +0100
Added `CachelineBuffer` and `AlignedCachelineBuffer`: Byte buffers that are the size of one cacheline (2nd: and aligned to cacheline boundary.)Avril2024-04-03 23:40:45 +0100
part: Removed unneeded 2nd thread spawn in `SearchPar`"s `search_combined()`: Backwards searching is done on main thread, forward searching is done on background thread.
refactor-search-capext
Avril2024-04-03 00:12:01 +0100
part: started `partition_one_with()`: Perform one nearest-needle-to-half partition on a buffer. The behaviour of this partition can be controlled with its `method` parameter. There are currently two: `SearchSeq` - search forward then backward in sequence. `SearchPar` - search forward and backward in parallel (NOTE: `SearchPar` is heavy and not well optimised, it will *always* spawn at least one thread.)Avril2024-04-02 18:16:32 +0100
Added feature `mapped-file`: Attempt to `mmap()` input where possible to avoid reads. (NOTE: This should be replaced with a cfg-target-unix check, for now it is a default feature that can be disabled.)Avril2024-04-01 15:24:16 +0100
Removed `byte-strings` as a default feature: It causes a slight slowdown, and most people won"t need it"s functionality. `ignore-invalid-arguments` is thus prefered as default.Avril2022-04-06 17:54:42 +0100
Added ignore-invalid-args: (default feature flag) Invalid utf8 arguments are ignored from the input arguments (as they are from the stdin lines.) If disabled, the invalid arg is kept and invalid utf8 characters are replaced with the unicode "invalid character" character instead.Avril2022-04-05 02:33:19 +0100
TODO: collect_input(): Use non-panicking functions for getting args/lines (so in release builds, no panic handler is generated)Avril2022-04-04 22:00:19 +0100