CC = gcc CFLAGS = -O3 -march=native -mtune=native -flto -ffast-math \ -funroll-all-loops -finline-functions -finline-limit=10000 \ -fprefetch-loop-arrays -ftracer -fmodulo-sched \ -fmodulo-sched-allow-regmoves -fgcse-sm -fgcse-las \ -ftree-loop-distribution -ftree-loop-im -ftree-loop-ivcanon \ -fivopts -fvariable-expansion-in-unroller -fvect-cost-model=unlimited \ -mavx2 -mfma -mbmi2 -mlzcnt -mpopcnt \ -pthread all: build run valgrind build_risspam run_risspam build_cpp build_borded_cpp build_py build_jest build: @echo "Compiling retoor_c project.". @$(CC) $(CFLAGS) retoor_c/isspam.c -o isspam build_py: @echo "Copying py file" @cp retoor_c/isspam.py isspam.py build_cpp: @echo "Compiling C++ version of isspam." @g++ -Ofast retoor_c/isspam.cpp -o isspam_cpp build_borded_cpp: @echo "Compiling Borded C++ version of isspam." @g++ -std=c++23 -Ofast borded_cpp/src/main3.cpp -o borded_cpp_exec build_risspam: @echo "Compiling 12bitfloat_risspam project." cd 12bitfloat_rust/risspam && cargo build --release && cp target/release/risspam ../../ build_jest: @echo "compiling jest_rust project" cd jest_rust && cargo build --release && cp target/release/jisspam .. build_all: build build_py build_cpp build_borded_cpp build_risspam build_jest run: run_spam wl run_not_spam run_risspam: run_spam_risspam run_not_spam_risspam bench_rust: build_risspam benchmark_only bench_rust_only: build_risspam cd 12bitfloat_rust/risspam && time ./target/release/risspam ../../books/*.txt format: clang-format *.c *.h -i wl: @echo "" run_spam: @./isspam ./spam/*.txt run_not_spam: @./isspam ./not_spam/*.txt run_spam_risspam: @./risspam ./spam/*.txt run_not_spam_risspam: @./risspam ./not_spam/*.txt valgrind: build valgrind ./isspam ./spam/*.txt publish: @wget https://retoor.molodetz.nl/api/packages/retoor/generic/env.py/1.0.0/env.py --quiet @wget https://retoor.molodetz.nl/api/packages/retoor/generic/publish/1.0.0/publish --quiet @chmod +x publish @./publish isspam @./publish risspam @rm publish @rm env.py benchmark: -@rm -rf books @echo "Extracting books." @tar -xzf books.tar.gz books/ @echo "Extracted books." @python bench.py # Skip extracting books over and over benchmark_only: @python bench.py