mirror of
https://github.com/RGBCube/serenity
synced 2025-05-22 18:35:18 +00:00
![]() The dollar sign is a special character in POSIX shells and in the Ninja build file format. If the file name contains a `$`, something goes wrong in the escaping/unescaping of this symbol, and CMake/GCC/Clang generate invalid dependency files where not all instances of `$` are escaped properly. Because of this, Ninja fails to rebuild `$262Object.cpp` if the headers included by it have changed. Stale `$262Object.cpp.o` files have been the cause of mysterious crashes multiple times which only go away after doing a clean build. Let's prevent these from happening again by removing the `$` from the filename. |
||
---|---|---|
.. | ||
src | ||
.gitignore | ||
CMakeLists.txt | ||
README.md |
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
orNonnullGCPtr
, that the wrapped type inherits fromCell
- For all types not wrapped by
GCPtr
orNonnullGCPtr
, that the wrapped type does not inherit fromCell
(otherwise it should be wrapped).
Usage:
cmake -GNinja -B build
cmake --build build
src/main.py -b <path to serenity>/Build