Sfoglia il codice sorgente

add a new util script

blueloveTH 1 anno fa
parent
commit
8c8c5f13cf
3 ha cambiato i file con 21 aggiunte e 1 eliminazioni
  1. 1 0
      .github/workflows/main.yml
  2. 20 0
      scripts/check_pragma_once.py
  3. 0 1
      src/compiler/compiler.c

+ 1 - 0
.github/workflows/main.yml

@@ -70,6 +70,7 @@ jobs:
       if: github.ref == 'refs/heads/main'
     - name: Compile and Test
       run: |
+        python scripts/check_pragma_once.py include
         mkdir -p output/x86_64
         python cmake_build.py
         python scripts/run_tests.py

+ 20 - 0
scripts/check_pragma_once.py

@@ -0,0 +1,20 @@
+import os
+import sys
+
+def check_pragma_once_in_dir(path):
+    for root, dirs, files in os.walk(path):
+        if 'include/pocketpy/xmacros' in root or 'include/pybind11' in root:
+            continue
+        for file in files:
+            if file.endswith(".c") or file.endswith(".h"):
+                with open(os.path.join(root, file), "r", encoding='utf-8') as f:
+                    print(f"==> {os.path.join(root, file)}")
+                    text = f.read()
+                    assert text.count("#pragma once") == 1, "#pragma once should appear exactly once"
+
+if __name__ == "__main__":
+    if len(sys.argv) < 2:
+        print("Usage: python scripts/check_pragma_once.py <path>")
+        sys.exit(1)
+
+    check_pragma_once_in_dir(sys.argv[1])

+ 0 - 1
src/compiler/compiler.c

@@ -2858,7 +2858,6 @@ const static PrattRule rules[TK__COUNT__] = {
 };
 // clang-format on
 
-#undef static_assert_expr_size
 #undef vtcall
 #undef vtemit_
 #undef vtemit_del