cpplinks
afl-compiler-fuzzer
cpplinks | afl-compiler-fuzzer | |
---|---|---|
15 | 1 | |
3,999 | 110 | |
- | - | |
9.5 | 10.0 | |
about 17 hours ago | about 2 years ago | |
C | ||
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cpplinks
-
Needed an advice in compilers dev!
linking and loading: https://github.com/MattPD/cpplinks/blob/master/executables.linking_loading.md - in addition to the aforementioned books and blog posts, there also some pretty good talks: https://github.com/MattPD/cpplinks/blob/master/executables.linking_loading.md#talks
-
How do you test compiler projects?
For more compilers correctness* resources see https://github.com/MattPD/cpplinks/blob/master/compilers.correctness.md
-
Assemblers and linkers resources
As for linkers and loaders, see https://github.com/MattPD/cpplinks/blob/master/executables.linking_loading.md
-
The Danger of Atomic Operations
More: https://github.com/MattPD/cpplinks/blob/master/atomics.lockfree.memory_model.md
-
How to move onto intermediate c++?
Take the red pill and see how deep the rabbit hole goes... https://github.com/MattPD/cpplinks/ https://github.com/shafik/cpp_learning
-
How should I learn x64 instructions?
x86-64 tutorials here should be a good starting point: https://github.com/MattPD/cpplinks/blob/master/assembly.x86.md#tutorials
-
Where should a static analysis beginner start?
See also static analysis resources (more C++-oriented, although some of the readings are general): https://github.com/MattPD/cpplinks/blob/master/analysis.static.md#readings-books and https://gist.github.com/MattPD/71b63a3e1600c2b52e1db80fa2834e60#correctness-in-practice (formal methods and program analysis in industry).
-
Follow-up resources to Crafting Interpreters
Further readings: Book recommendations in https://github.com/MattPD/cpplinks/blob/master/compilers.md#books as well as program analysis resources (in particular lattice theory, type systems and programming languages theory, related notation): https://gist.github.com/MattPD/00573ee14bf85ccac6bed3c0678ddbef#program-analysis-resources
-
Apple M1 CPU Microarchitectures (Firestorm and Icestorm): instruction tables describing throughput, latency, and uops
Microarchitectural performance analysis research is a pretty active and interesting area--see also: https://github.com/MattPD/cpplinks/blob/master/performance.tools.md#microarchitecture
-
GDB TUI mode
For more on GDB see: https://github.com/MattPD/cpplinks/blob/master/debugging.md#gdb
afl-compiler-fuzzer
-
How do you test compiler projects?
I use fuzzers, as every programmer should, and do not commit unless my compiler can be fuzzed for at least 24 hours without any crashes (if I were selling the software, I'd increase that period). I use AFL++ in LTO mode and comby-decomposer with a crappy script I made to collect crash test cases. I am also interested in afl-compiler-fuzzer, but have not yet tried it. Later, I'd like to try my hand at making a test generator that reaches codegen more often (no compile errors in the random source code). I use afl-tmin to minimize test cases, but the result is always illegible without manual work, and usually has extra junk the minimizer is incapable of deleting. Something like C-Reduce would be useful here.
What are some alternatives?
nvim-gdb - Neovim thin wrapper for GDB, LLDB, PDB/PDB++ and BashDB
wasp - 🐝 Wasp : Wasm programming language
computer-architecture-and-systems-resources - A curated list of Computer Architecture and Systems resources
turnt - simple snapshot-style integration testing for commands
cppcoro - A library of C++ coroutine abstractions for the coroutines TS
hyperfine - A command-line benchmarking tool
lm8 - A custom 8-bit computer and software suite
AFLplusplus - The fuzzer afl++ is afl with community patches, qemu 5.1 upgrade, collision-free coverage, enhanced laf-intel & redqueen, AFLfast++ power schedules, MOpt mutators, unicorn_mode, and a lot more!
.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
emponcc
clang-tutor - A collection of out-of-tree Clang plugins for teaching and learning
xhyve - xhyve, a lightweight OS X virtualization solution