mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-12 02:36:39 +00:00
Previously we would only warn about missing calls to visit inside visit_edges implementations, now we warn as well when there's no visit_edges implementation at all.
LibJSGCVerifier
This is a simple Clang tool to validate certain behavior relating to LibJS's GC. It currently validates two things:
- For all types wrapped by
GCPtrorNonnullGCPtr, that the wrapped type inherits fromCell - For all types not wrapped by
GCPtrorNonnullGCPtr, that the wrapped type does not inherit fromCell(otherwise it should be wrapped).
This tool currently support being built with the Serenity Clang toolchain or the lagom Clang toolchain (in which case it won't be able to verify Serenity-only applications)
Building & Running with the Serenity toolchain
First build Serenity with the Clang toolchain for x86_64:
./Meta/serenity.sh build x86_64 Clang
Then build the tool with:
cmake -GNinja -B build
cmake --build build
Then run the tool with:
src/main.py -b <path to serenity>/Build
Building & Running with the Lagom toolchain
First build the Serenity lagom applications with:
./Meta/serenity.sh build lagom
Then build the tool with:
cmake -GNinja -DLAGOM_BUILD=ON -B build
cmake --build build
Then run the tool with:
src/main.py -l -b <path to serenity>/Build