ladybird/Meta/Lagom/Tools/LibJSGCVerifier
Timothy Flynn b54786ee95 LibJSGCVerifier: Use more general shebang line and clarify instructions
My system's python3 is not in /bin/.

The README did not indicate that a clang-toolchain build of Serenity is
required, so this patch adds that explicit instruction.
2023-11-30 08:49:15 +00:00
..
src LibJSGCVerifier: Use more general shebang line and clarify instructions 2023-11-30 08:49:15 +00:00
.gitignore Lagom: Add a tool to verify correctness of the LibJS GC 2023-03-06 13:05:43 +00:00
CMakeLists.txt Lagom: Add a tool to verify correctness of the LibJS GC 2023-03-06 13:05:43 +00:00
README.md LibJSGCVerifier: Use more general shebang line and clarify instructions 2023-11-30 08:49:15 +00:00

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 GCPtr or NonnullGCPtr, that the wrapped type inherits from Cell
  • For all types not wrapped by GCPtr or NonnullGCPtr, that the wrapped type does not inherit from Cell (otherwise it should be wrapped).

This tool currently requires having first built Serenity with the Clang toolchain for x86_64:

./Meta/serenity.sh build x86_64 Clang

Once Serenity is built, this tool can be built with:

cmake -GNinja -B build
cmake --build build

Then run the tool with:

src/main.py -b <path to serenity>/Build