* Adding support for shutdown upon Ctrl+C on Windows for LLMP
* PR comments and clippy suggestions addressed
* Enable CI for PR branches and manually triggered CI
* Removed an empty line that broke compilation on some platforms
* Trying to fix nostd compilation
* Trying to fix nostd compilation for nightly toolchain
* Removing use that is unused on some platforms
* Trying to fix build on the nightly toolchain
* Trying to fix build on the nightly toolchain, take 2
* Unifying LlmpShutdownSignalHandler
* Fmt fix
* Making the handler pub(crate)
* Nightly toolchain fmt fixes
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
* create the string classification stage
* modify API to pre-group
* preserving mutator
* more meaningful test
* subproperty mutators + some fixes
* document, finalise, integrate with libafl_libfuzzer
* add example, fix for weird range select
* fix for introspection
* fix fuzzer build
* speed optimisation: allow, but do not require, stacking
* property => category
* token replacement
* fixup: rare case where rust does not agree on valid character
* fix CI again
* again again
* take two: dynamic unicode discovery
* oops
* fix: last byte is never selected
* opt: bias to smaller unicode categories
* fix test
* opt: precompute regions and fix tests
* cache and allow stacking
* document and update libafl_libfuzzer
* oops, use reverse
* fix bolts clippy error
* fixup part 2
* clippy
* part 2
* clippy warning allow
* clippy complaint
* use alloc not std
---------
Co-authored-by: toka <tokazerkje@outlook.com>
* refactor: Remove Debug supertraits
Instead of having the Debug trait as supertrait on several traits, the
Debug trait is now required in bounds in specific implementations that
need this specific trait. This keeps the API cleaner, since users now
don't have to propagate the Debug requirement if they don't need to use
the Debug trait.
* refactor: Reformat code
* improved libfuzzer corpus
* use .into() for converting ids to usize
* oops
* fix warning about unused arg
* fix some lingering CI errors
* actually save the last lmao
* Call the original QEMU user crash handler in libafl_qemu
* Return if real crash or not
* merge
* Fix singal handlers in libafl and libafl_qemu
* doc and clippy
* clippy
* clippy
* clippy
* slirp
* fix
* fix system
* Make xxh3 hashing optional (and default to ahash)
* make xxh3 default anyway
* move import
* fix no_alloc
* No ahash without alloc
* fix import
* Keep xxh3 as default for libafl as well
* no randomness for xoshiro
mostly due std::cell namespace introduction in the 1.70 version.
as rust versions evolve fast enough, it might be easier than
having conditional dependency on he old once_cell crate.