git clone https://codeberg.org/tondik/recu
cd recu
Zde naleznete návod k instalaci pro Nix.
Projekt využívá Nix flake, který definuje vývojové prostředí se všemi potřebnými závislostmi.
Pro vstup do vývojového prostředí, v kořenovém adresáři projektu zadejte:
nix develop
Pro většinu závislostí je možné použít preferovaný správce balíčků, ale Zig není možné nainstalovat pomocí standardního správce balíčků, protože projekt vyžaduje specificky verzi 0.16.0-dev.2860+9c5460316. Nabízí se několik možností:
Ukázkové příklady se v rámci projektu nacházejí v adresáři tests/behavior a zároveň slouží k otestování správnosti implementace.
Pro spuštění určitého příkladu, v kořenovém adresáři projektu zadejte:
cd tests/behavior/<název>
zig build run
Pro interoperabilitu s jinými jazyky je k dispozici C API s hlavičkovým souborem include/recu.h. Sestavením do statické knihovny je možné projekt využít z libovolného programovacího jazyka podporujícího volání funkcí s C ABI.
V kořenovém adresáři projektu zadejte:
nix build .
nebo
zig build
Výsledek kompilace bude v adresáři zig-out/lib.
-Doptimize - Úroveň optimalizace (Debug, ReleaseSafe, ReleaseFast, ReleaseSmall).-Dllvm - Použití LLVM backendu. Ve výchozím stavu zapnuto pro non-debug buildy.-Dlld - Použití LLD linkeru. Ve výchozím stavu zapnuto při -Dllvm.-Dstrip - Odstranění debug symbolů. Ve výchozím stavu zapnuto pro non-debug buildy.-Dtest-filters - Filtr pro testy.-Dtest-foreign - Spuštění testů na cizích architekturách pomocí QEMU.--fuzz - Spuštění fuzz testování.--help - Zobrazení nápovědy se všemi dostupnými parametry, parametry specifické pro projekt mají prefix -D.Dokumentace je automaticky generována ze zdrojového kódu.
V kořenovém adresáři projektu zadejte:
zig build docs
Výsledek bude v adresáři zig-out/docs.
V adresáři tools/ se nachází pomocné skripty, například pro dešifrování dat z binárního souboru nástroje nvdisasm. Skripty mají nastavená práva pro spuštění a shebang využívající nix-shell.
GDB skripty se spouští pomocí:
gdb -x <skript> -q <sledovaný binární soubor>