Avril
13be69c884
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...
...
Fortune for reverse's current commit: Half blessing − 半吉
9 months ago
Avril
0ce496cafd
Added `CachelineBuffer` and `AlignedCachelineBuffer`: Byte buffers that are the size of one cacheline (2nd: and aligned to cacheline boundary.)
...
Fortune for reverse's current commit: Half blessing − 半吉
9 months ago
Avril
03a3a1bfd0
part: Reworked capacity calculation (static & dynamic,) growth, and bounding to be globally compile-time configurable.
...
TODO: Make that calculation configuration compile-time env-var configurable in debug & test builds (for benchmarking.)
Fortune for reverse's current commit: Future small blessing − 末小吉
9 months ago
Avril
49e0dd6073
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.
...
Main thread yields once before starting its search loop.
Fortune for reverse's current commit: Curse − 凶
9 months ago
Avril
9d2ae29e8b
part: `SearchSeq` now uses capacity-extended-switching between forward and backward searching (like `SearchPar` does.)
...
part: Fixed bug where `cap` may grow above buffer-halve length (in `SearchSeq` and `SearchPar`.)
part: TODO: Added test skeleton for testing `SearchSeq` and `SearchPar` correctness. Implement these tests!
Fortune for reverse's current commit: Small blessing − 小吉
9 months ago
Avril
f9068beca1
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.)
...
Fortune for reverse's current commit: Future blessing − 末吉
9 months ago
Avril
ff898fc9b3
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.)
...
Started module `part`: Partitioning of memory areas (halve-then-`{r,m}emchr("\n")` pivot calculation) (parallelised via rayon + crossbeam-queue (+maybe tokio_uring?) if `threads` feature enabled.
Fortune for reverse's current commit: Middle blessing − 中吉
9 months ago
Avril
5144539191
Re-worked cargo features & dependencies: Removed previous config features. Added `threads` parallelisation (+ auto `threads-async` internal io_uring support) feature and `unstable` feature for unstable-api using deps.
...
Fortune for reverse's current commit: Blessing − 吉
9 months ago
Avril
ecbcc6ccfb
Removed useless TODO
...
Fortune for reverse's current commit: Middle blessing − 中吉
3 years ago
Avril
bd3af1b167
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.
...
Fortune for reverse's current commit: Small curse − 小凶
3 years ago
Avril
67aee7c96e
Added feature (default) `byte-strings`: Operate on raw byte strings instead of UTF8 strings.
...
Fortune for reverse's current commit: Blessing − 吉
3 years ago
Avril
7c85310ca5
Start feature `byte-strings`: Operate on raw byte strings instead of UTF8 strings.
...
TODO: Test with args. Reading from stdin: check TODO in there, and test.
Fortune for reverse's current commit: Future blessing − 末吉
3 years ago
Avril
a705723837
Added README.md
...
Fortune for reverse's current commit: Future blessing − 末吉
3 years ago
Avril
5f8d472483
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.
...
Fortune for reverse's current commit: Curse − 凶
3 years ago
Avril
0a78bcfd55
TODO: collect_input(): Use non-panicking functions for getting args/lines (so in release builds, no panic handler is generated)
...
Fortune for reverse's current commit: Half curse − 半凶
3 years ago
Avril
ed75b8b766
Added default features: buffer-output, ignore-output-errors
...
Fortune for reverse's current commit: Half blessing − 半吉
3 years ago
Avril
5a9edf3f5c
Added testing features for buffering output, and ignoring output errors.
...
Fortune for reverse's current commit: Curse − 凶
3 years ago
Avril
47df7a1e91
Changed print output to line-by-line (can be re-set to debug print output with feature flag.)
...
Fortune for reverse's current commit: Middle blessing − 中吉
3 years ago