From 639f4185303e5823ff7b7c1e9d2519656b03f9bd Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sun, 19 Jul 2026 11:42:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E4=BA=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=9E=83=E5=9C=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../output/0035c95a18d4f8e8.deps.json | 2 +- .../output/067c78e9f121dce3.deps.json | 2 +- .../output/06f53cc594b4ac6c.deps.json | 2 +- .../output/14d33679f7fadf1f.deps.json | 2 +- .../output/271ea3decb810db2.deps.json | 2 +- .../output/48352329f97d0858.deps.json | 2 +- .../output/5b2e220c5bae60c9.deps.json | 2 +- ...4.deps.json => 622aeae2531892d4.deps.json} | 2 +- .../output/6446627d4f07a1b5.deps.json | 2 +- .../output/72e2d5ccb7cedcf1.deps.json | 2 +- .../output/7e529fe7a078cfef.deps.json | 2 +- .../output/9474791561654346.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 623853 -> 625193 bytes .../output/bbdf3bbd4c3bc28c.deps.json | 2 +- .../output/c9f4be41ca1cc2b4.deps.json | 2 +- .../output/f3560b99de458aec.deps.json | 2 +- .../output/f6b51804a0ba8ff0.deps.json | 2 +- ...c.deps.json => ff46ba125b2759f7.deps.json} | 2 +- .../FakeDuckTest/temp/622aeae2531892d4.pyi | 1 + Test/FakeDuckTest/temp/_phase1_manifest.json | 2 +- Test/FakeDuckTest/temp/_sha1_map.txt | 4 +- Test/FakeDuckTest/temp/f2ecbf8ced20575c.pyi | 30 - ...a2efc4b889fc4.pyi => ff46ba125b2759f7.pyi} | 0 _buildlog.txt | 1 - debug_dict_full.txt | 83 - debug_dict_output.txt | 1 - full_log.txt | 1 - full_log2.txt | 378 ---- includes/_fakeduck.py | 5 + includes/_list.py | 9 +- regression_output.txt | 1710 ----------------- test_inherited_decls.py | 67 - tpc_profile.prof | Bin 345057 -> 0 bytes tpc_profile2.prof | Bin 348527 -> 0 bytes 34 files changed, 33 insertions(+), 2293 deletions(-) rename Test/FakeDuckTest/output/{688a2efc4b889fc4.deps.json => 622aeae2531892d4.deps.json} (52%) rename Test/FakeDuckTest/output/{f2ecbf8ced20575c.deps.json => ff46ba125b2759f7.deps.json} (52%) rename .transpyc_cache/f2ecbf8ced20575c.pyi => Test/FakeDuckTest/temp/622aeae2531892d4.pyi (98%) delete mode 100644 Test/FakeDuckTest/temp/f2ecbf8ced20575c.pyi rename Test/FakeDuckTest/temp/{688a2efc4b889fc4.pyi => ff46ba125b2759f7.pyi} (100%) delete mode 100644 _buildlog.txt delete mode 100644 debug_dict_full.txt delete mode 100644 debug_dict_output.txt delete mode 100644 full_log.txt delete mode 100644 full_log2.txt delete mode 100644 regression_output.txt delete mode 100644 test_inherited_decls.py delete mode 100644 tpc_profile.prof delete mode 100644 tpc_profile2.prof diff --git a/Test/FakeDuckTest/output/0035c95a18d4f8e8.deps.json b/Test/FakeDuckTest/output/0035c95a18d4f8e8.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/0035c95a18d4f8e8.deps.json +++ b/Test/FakeDuckTest/output/0035c95a18d4f8e8.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/067c78e9f121dce3.deps.json b/Test/FakeDuckTest/output/067c78e9f121dce3.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/067c78e9f121dce3.deps.json +++ b/Test/FakeDuckTest/output/067c78e9f121dce3.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/06f53cc594b4ac6c.deps.json b/Test/FakeDuckTest/output/06f53cc594b4ac6c.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/06f53cc594b4ac6c.deps.json +++ b/Test/FakeDuckTest/output/06f53cc594b4ac6c.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/14d33679f7fadf1f.deps.json b/Test/FakeDuckTest/output/14d33679f7fadf1f.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/14d33679f7fadf1f.deps.json +++ b/Test/FakeDuckTest/output/14d33679f7fadf1f.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/271ea3decb810db2.deps.json b/Test/FakeDuckTest/output/271ea3decb810db2.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/271ea3decb810db2.deps.json +++ b/Test/FakeDuckTest/output/271ea3decb810db2.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/48352329f97d0858.deps.json b/Test/FakeDuckTest/output/48352329f97d0858.deps.json index 3e3e186..d4cdf58 100644 --- a/Test/FakeDuckTest/output/48352329f97d0858.deps.json +++ b/Test/FakeDuckTest/output/48352329f97d0858.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json b/Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json +++ b/Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/688a2efc4b889fc4.deps.json b/Test/FakeDuckTest/output/622aeae2531892d4.deps.json similarity index 52% rename from Test/FakeDuckTest/output/688a2efc4b889fc4.deps.json rename to Test/FakeDuckTest/output/622aeae2531892d4.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/688a2efc4b889fc4.deps.json +++ b/Test/FakeDuckTest/output/622aeae2531892d4.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/6446627d4f07a1b5.deps.json b/Test/FakeDuckTest/output/6446627d4f07a1b5.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/6446627d4f07a1b5.deps.json +++ b/Test/FakeDuckTest/output/6446627d4f07a1b5.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/72e2d5ccb7cedcf1.deps.json b/Test/FakeDuckTest/output/72e2d5ccb7cedcf1.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/72e2d5ccb7cedcf1.deps.json +++ b/Test/FakeDuckTest/output/72e2d5ccb7cedcf1.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/7e529fe7a078cfef.deps.json b/Test/FakeDuckTest/output/7e529fe7a078cfef.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/7e529fe7a078cfef.deps.json +++ b/Test/FakeDuckTest/output/7e529fe7a078cfef.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/9474791561654346.deps.json b/Test/FakeDuckTest/output/9474791561654346.deps.json index a97833f..0d0e2b9 100644 --- a/Test/FakeDuckTest/output/9474791561654346.deps.json +++ b/Test/FakeDuckTest/output/9474791561654346.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_fakeduck": "688a2efc4b889fc4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_list": "f2ecbf8ced20575c", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "622aeae2531892d4", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "f3560b99de458aec", "stdint": "f5522571bcce7bcb", "_fakeduck": "ff46ba125b2759f7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/_shared_sym_includes.pickle b/Test/FakeDuckTest/output/_shared_sym_includes.pickle index 2fe9ce408ec7f0d89e3602d8d18853ad4ede0f8e..20f98c9353871fa6c0a2dca4eb53e0ebed0b20a0 100644 GIT binary patch delta 20904 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 delta 20164 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 eTGO_y`0m=Os5*qQ=~J63@E<$b`>! t.CInt: pass - def __init__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __len__(self: list) -> t.CSizeT: pass - def append(self: list, item: T) -> t.CInt: pass - def get(self: list, index: t.CSizeT) -> T: pass - def __getitem__(self: list, index: t.CSizeT) -> T: pass - def set(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def __setitem__(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def pop(self: list) -> T: pass - def clear(self: list) -> t.CInt: pass - def __iter__(self: list) -> list[T] | t.CPtr: pass - def __next__(self: list) -> T: pass \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/688a2efc4b889fc4.pyi b/Test/FakeDuckTest/temp/ff46ba125b2759f7.pyi similarity index 100% rename from Test/FakeDuckTest/temp/688a2efc4b889fc4.pyi rename to Test/FakeDuckTest/temp/ff46ba125b2759f7.pyi diff --git a/_buildlog.txt b/_buildlog.txt deleted file mode 100644 index b5b7fc3..0000000 --- a/_buildlog.txt +++ /dev/null @@ -1 +0,0 @@ -├ INFO: [剥离] 调试段已移除 (llvm-strip) diff --git a/debug_dict_full.txt b/debug_dict_full.txt deleted file mode 100644 index 08af040..0000000 --- a/debug_dict_full.txt +++ /dev/null @@ -1,83 +0,0 @@ -├ INFO: 读取配置文件: Test/DictTest/project.json -├ INFO: 项目目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest -├ INFO: 源目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\App -├ INFO: 临时目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\temp -├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output -├ INFO: 阶段: all -├ INFO: 编译器: llc -filetype=obj -relocation-model=pic -├ INFO: 目标三元组: x86_64-pc-windows-gnu -├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 -├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output -├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\temp -├ INFO: 清理完成 -├ INFO: 已清除全局缓存: D:\Users\TermiNexus\Desktop\TransPyC\.transpyc_cache -├ INFO: 找到 1 个可达源文件(从入口遍历) -├ INFO: [1/1] 生成签名: main.py -├ INFO: -> b3c2b99b6f3be4c7.pyi (签名) -├ INFO: 处理 14 个被引用的 Python 库文件 -├ INFO: 生成签名: _dict.py -> e3e7b6de8d7d8b03.pyi -├ INFO: 生成签名: atom.py -> 271ea3decb810db2.pyi -├ INFO: 生成签名: json\__init__.py -> 57288496f7c2d1ad.pyi -├ INFO: 生成签名: json\__parser.py -> 240a9a4157959a9f.pyi -├ INFO: 生成签名: json\__writer.py -> 20cd49775c100a38.pyi -├ INFO: 生成签名: memhub.py -> f3560b99de458aec.pyi -├ INFO: 生成签名: stdint.py -> f5522571bcce7bcb.pyi -├ INFO: 生成签名: stdio.py -> 6f62fe05c5ea1ceb.pyi -├ INFO: 生成签名: stdlib.py -> 90c53dd6db8d41cf.pyi -├ INFO: 生成签名: string.py -> 9474791561654346.pyi -├ INFO: 生成签名: testcheck.py -> 14d33679f7fadf1f.pyi -├ INFO: 生成签名: viperio.py -> c9f4be41ca1cc2b4.pyi -├ INFO: 生成签名: w32\win32base.py -> 7e529fe7a078cfef.pyi -├ INFO: 生成签名: w32\win32console.py -> bbdf3bbd4c3bc28c.pyi -├ INFO: 结构体注册表: 24 个类型, 0 个枚举 -├ INFO: -> b3c2b99b6f3be4c7.stub.ll (声明) -├ INFO: 生成声明: _dict.py -> e3e7b6de8d7d8b03.stub.ll -├ INFO: 生成声明: atom.py -> 271ea3decb810db2.stub.ll -├ INFO: 生成声明: json\__init__.py -> 57288496f7c2d1ad.stub.ll -├ INFO: 生成声明: json\__parser.py -> 240a9a4157959a9f.stub.ll -├ INFO: 生成声明: json\__writer.py -> 20cd49775c100a38.stub.ll -├ INFO: 生成声明: memhub.py -> f3560b99de458aec.stub.ll -├ INFO: 生成声明: stdint.py -> f5522571bcce7bcb.stub.ll -├ INFO: 生成声明: stdio.py -> 6f62fe05c5ea1ceb.stub.ll -├ INFO: 生成声明: stdlib.py -> 90c53dd6db8d41cf.stub.ll -├ INFO: 生成声明: string.py -> 9474791561654346.stub.ll -├ INFO: 生成声明: testcheck.py -> 14d33679f7fadf1f.stub.ll -├ INFO: 生成声明: viperio.py -> c9f4be41ca1cc2b4.stub.ll -├ INFO: 生成声明: w32\win32base.py -> 7e529fe7a078cfef.stub.ll -├ INFO: 生成声明: w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll -├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\temp -├ INFO: SHA1 映射表 (15 个文件): -├ INFO: includes.binary: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\includes.binary (17 个文件) -├ INFO: 找到 1 个可达源文件(已按依赖排序) -├ INFO: 处理顺序: -├ INFO: 1. main.py -├ INFO: [缓存] 构建共享符号表数据... -├ INFO: [缓存] 共享符号表构建完成 (0.30s, 677 符号, 5 泛型模板, 1 doc 元数据) -├ INFO: -需要翻译 1 个文件 -[DEBUG find_func] FIRST lookup 'dict.__before_init__' already in self.functions -[DEBUG find_func] func.name='e3e7b6de8d7d8b03.dict.__before_init__' args=[< i8*>] -[DEBUG find_func] module_sha1='b3c2b99b6f3be4c7' - File "D:\Users\TermiNexus\Desktop\TransPyC\Projectrans.py", line 22, in - main() - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Config.py", line 266, in main - trans.run() - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 467, in run - self._translate_file(src_path, out_path, prebuilt_ModuleSha1Map=msm) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1039, in _translate_file - result = trans.Convert( - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Shell\TransPyC.py", line 555, in Convert - code: str = self.translator.GenerateCCode(Tree, target='llvm') - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 642, in GenerateCCode - return self.GenerateLlvmDirect(Tree) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 132, in GenerateLlvmDirect - self.ImportHandler._EmitImportDeclarationsLlvm(Node, Gen) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesImports.py", line 103, in _EmitImportDeclarationsLlvm - self._EmitModuleDeclarationsLlvm(name, Gen, register_module_name=current_module) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesImports.py", line 636, in _EmitModuleDeclarationsLlvm - self._EmitExternalClassDeclLlvm(node, Gen, module_name=module_name) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesImports.py", line 1583, in _EmitExternalClassDeclLlvm - self._TryLoadStructFromStub(ClassName, Gen, source_sha1=source_sha1) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesImports.py", line 2009, in _TryLoadStructFromStub - self._TryLoadClassMembersFromPyi(class_name, stub_filename, Gen) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesImports.py", line 2058, in _TryLoadClassMembersFromPyi diff --git a/debug_dict_output.txt b/debug_dict_output.txt deleted file mode 100644 index 05ba769..0000000 --- a/debug_dict_output.txt +++ /dev/null @@ -1 +0,0 @@ -链接失败,立即终止编译。 diff --git a/full_log.txt b/full_log.txt deleted file mode 100644 index 05ba769..0000000 --- a/full_log.txt +++ /dev/null @@ -1 +0,0 @@ -链接失败,立即终止编译。 diff --git a/full_log2.txt b/full_log2.txt deleted file mode 100644 index 689edd5..0000000 --- a/full_log2.txt +++ /dev/null @@ -1,378 +0,0 @@ -├ INFO: 读取配置文件: Test/ZlibTest/project.json -├ INFO: 项目目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest -├ INFO: 源目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\App -├ INFO: 临时目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\temp -├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output -├ INFO: 阶段: all -├ INFO: 编译器: llc -filetype=obj -├ INFO: 目标三元组: x86_64-pc-windows-gnu -├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 -├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output -├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\temp -├ INFO: 清理完成 -├ INFO: 已清除全局缓存: D:\Users\TermiNexus\Desktop\TransPyC\.transpyc_cache -├ INFO: 找到 8 个可达源文件(从入口遍历) -├ INFO: [1/8] 生成签名: __zlib\pyzlib.py -├ INFO: -> 0f8134f67bdaba8f.pyi (签名) -├ INFO: [2/8] 生成签名: __zlib\test_pyzlib.py -├ INFO: -> d855b3e66d1d6522.pyi (签名) -├ INFO: [3/8] 生成签名: __zlib\zchecksum.py -├ INFO: -> cb151b297f4ea56d.pyi (签名) -├ INFO: [4/8] 生成签名: __zlib\zdef.py -├ INFO: -> 9b7d2adaae94f021.pyi (签名) -├ INFO: [5/8] 生成签名: __zlib\zdeflate.py -├ INFO: -> 784dde8a8697b7ab.pyi (签名) -├ INFO: [6/8] 生成签名: __zlib\zhuff.py -├ INFO: -> dd19090b337e9bea.pyi (签名) -├ INFO: [7/8] 生成签名: __zlib\zinflate.py -├ INFO: -> e445a2bb299d1b7d.pyi (签名) -├ INFO: [8/8] 生成签名: main.py -├ INFO: -> 03b24bc1d9327958.pyi (签名) -├ INFO: 处理 8 个被引用的 Python 库文件 -├ INFO: 生成签名: stdint.py -> f5522571bcce7bcb.pyi -├ INFO: 生成签名: stdio.py -> 6f62fe05c5ea1ceb.pyi -├ INFO: 生成签名: stdlib.py -> 90c53dd6db8d41cf.pyi -├ INFO: 生成签名: string.py -> 9474791561654346.pyi -├ INFO: 生成签名: testcheck.py -> 14d33679f7fadf1f.pyi -├ INFO: 生成签名: w32\win32base.py -> 7e529fe7a078cfef.pyi -├ INFO: 生成签名: w32\win32console.py -> bbdf3bbd4c3bc28c.pyi -├ INFO: 生成签名: w32\win32memory.py -> 72e2d5ccb7cedcf1.pyi -├ INFO: 结构体注册表: 27 个类型, 0 个枚举 -├ INFO: -> 0f8134f67bdaba8f.stub.ll (声明) -├ INFO: -> d855b3e66d1d6522.stub.ll (声明) -├ INFO: -> cb151b297f4ea56d.stub.ll (声明) -├ INFO: -> 9b7d2adaae94f021.stub.ll (声明) -├ INFO: -> 784dde8a8697b7ab.stub.ll (声明) -├ INFO: -> dd19090b337e9bea.stub.ll (声明) -├ INFO: -> e445a2bb299d1b7d.stub.ll (声明) -├ INFO: -> 03b24bc1d9327958.stub.ll (声明) -├ INFO: 生成声明: stdint.py -> f5522571bcce7bcb.stub.ll -├ INFO: 生成声明: stdio.py -> 6f62fe05c5ea1ceb.stub.ll -├ INFO: 生成声明: stdlib.py -> 90c53dd6db8d41cf.stub.ll -├ INFO: 生成声明: string.py -> 9474791561654346.stub.ll -├ INFO: 生成声明: testcheck.py -> 14d33679f7fadf1f.stub.ll -├ INFO: 生成声明: w32\win32base.py -> 7e529fe7a078cfef.stub.ll -├ INFO: 生成声明: w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll -├ INFO: 生成声明: w32\win32memory.py -> 72e2d5ccb7cedcf1.stub.ll -├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\temp -├ INFO: SHA1 映射表 (16 个文件): -├ INFO: includes.binary: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\includes.binary (10 个文件) -├ INFO: 找到 8 个可达源文件(已按依赖排序) -├ INFO: 处理顺序: -├ INFO: 1. __zlib\pyzlib.py -├ INFO: 2. __zlib\test_pyzlib.py -├ INFO: 3. __zlib\zchecksum.py -├ INFO: 4. __zlib\zdef.py -├ INFO: 5. __zlib\zdeflate.py -├ INFO: 6. __zlib\zhuff.py -├ INFO: 7. __zlib\zinflate.py -├ INFO: 8. main.py -├ INFO: [缓存] 构建共享符号表数据... -├ INFO: [缓存] 共享符号表构建完成 (0.42s, 873 符号, 5 泛型模板, 8 doc 元数据) -├ INFO: -需要翻译 8 个文件 -├ INFO: 并行翻译 (workers=8) -├ INFO: 共享符号表已序列化 (423KB) -├ INFO: -> cb151b297f4ea56d.ll -├ INFO: [1/8] 完成: __zlib\zchecksum.py -[FATAL] 方法体编译失败 (.append_bytes): TypeError: Type of #1 arg mismatch: i8* != i8 -Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 277, in _HandleCallLlvm - return self._HandleTypedefCastLlvm(Node, FuncName) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 1619, in _HandleTypedefCastLlvm - ArgVal = self.HandleExprLlvm(Node.args[0]) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 255, in _HandleCallLlvm - result = self.Trans.ExprBuiltinHandle._HandleBuiltinCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 179, in _HandleBuiltinCallLlvm - return self._HandleReallocLlvm(Node.args) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 723, in _HandleReallocLlvm - result: ir.Value = Gen.builder.call(realloc_func, [ptr_val, size_val], name="realloc_result") - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) -TypeError: Type of #1 arg mismatch: i8* != i8 -├ ERROR: __zlib\pyzlib.py: Type of #1 arg mismatch: i8* != i8 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\App\__zlib\pyzlib.py, line 387): - 387 | def append_bytes(buf: BYTE | t.CPtr[t.CPtr], length: t.CSizeT | t.CPtr, cap: t.CSizeT | t.CPtr, - Type of #1 arg mismatch: i8* != i8 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\App\__zlib\pyzlib.py, line 391): - 391 | if needed > c.Deref(cap): - Type of #1 arg mismatch: i8* != i8 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\App\__zlib\pyzlib.py, line 394): - 394 | new_buf: BYTEPTR = BYTEPTR(realloc(c.Deref(buf), new_cap)) - Type of #1 arg mismatch: i8* != i8 -Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1039, in _translate_file - result = trans.Convert( - ^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Shell\TransPyC.py", line 555, in Convert - code: str = self.translator.GenerateCCode(Tree, target='llvm') - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 642, in GenerateCCode - return self.GenerateLlvmDirect(Tree) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 179, in GenerateLlvmDirect - self.FunctionHandler._EmitFunctionLlvm(Node, Gen) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 277, in _HandleCallLlvm - return self._HandleTypedefCastLlvm(Node, FuncName) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 1619, in _HandleTypedefCastLlvm - ArgVal = self.HandleExprLlvm(Node.args[0]) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 255, in _HandleCallLlvm - result = self.Trans.ExprBuiltinHandle._HandleBuiltinCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 179, in _HandleBuiltinCallLlvm - return self._HandleReallocLlvm(Node.args) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 723, in _HandleReallocLlvm - result: ir.Value = Gen.builder.call(realloc_func, [ptr_val, size_val], name="realloc_result") - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) -TypeError: Type of #1 arg mismatch: i8* != i8 - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 89, in _parallel_translate_worker - trans._translate_file(src_path, out_path, prebuilt_ModuleSha1Map=prebuilt_ModuleSha1Map) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1055, in _translate_file - raise type(e)(enriched) from e -TypeError: Type of #1 arg mismatch: i8* != i8 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\App\__zlib\pyzlib.py, line 387): - 387 | def append_bytes(buf: BYTE | t.CPtr[t.CPtr], length: t.CSizeT | t.CPtr, cap: t.CSizeT | t.CPtr, - Type of #1 arg mismatch: i8* != i8 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\App\__zlib\pyzlib.py, line 391): - 391 | if needed > c.Deref(cap): - Type of #1 arg mismatch: i8* != i8 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\App\__zlib\pyzlib.py, line 394): - 394 | new_buf: BYTEPTR = BYTEPTR(realloc(c.Deref(buf), new_cap)) - Type of #1 arg mismatch: i8* != i8 - -├ INFO: -> dd19090b337e9bea.ll -├ INFO: [3/8] 完成: __zlib\zhuff.py -├ INFO: -> 03b24bc1d9327958.ll -├ INFO: [4/8] 完成: main.py -├ INFO: -> d855b3e66d1d6522.ll -├ INFO: [5/8] 完成: __zlib\test_pyzlib.py -├ INFO: -> 784dde8a8697b7ab.ll -├ INFO: [6/8] 完成: __zlib\zdeflate.py -├ INFO: -> e445a2bb299d1b7d.ll -├ INFO: [7/8] 完成: __zlib\zinflate.py -├ INFO: -> 9b7d2adaae94f021.ll -├ INFO: [8/8] 完成: __zlib\zdef.py -├ ERROR: -1 个文件翻译失败,继续编译 includes -├ INFO: 翻译总耗时: 2.4s -├ INFO: -[阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output -├ INFO: [includes] 发现 Python 源文件: stdio.py -├ INFO: [includes] 发现 Python 源文件: string.py -├ INFO: [includes] 发现 Python 包文件: w32\fileio.py -├ INFO: [includes] 发现 Python 包文件: w32\win32base.py -├ INFO: [includes] 发现 Python 包文件: w32\win32console.py -├ INFO: [includes] 发现 Python 包文件: w32\win32file.py -├ INFO: [includes] 发现 Python 包文件: w32\win32memory.py -├ INFO: [includes] 发现 Python 包文件: w32\win32process.py -├ INFO: [includes] 发现 Python 包文件: w32\win32sync.py -├ INFO: [includes] 发现 Python 包文件: w32\winsock2.py -├ INFO: [includes] 发现 Python 源文件: stdlib.py -├ INFO: [includes] 发现 Python 源文件: stdint.py -├ INFO: [includes] 发现 Python 源文件: testcheck.py -├ INFO: -[includes 编译] 找到 13 个 Python 源文件 -├ INFO: 跳过(声明文件): stdint.py -├ INFO: 跳过(声明文件): stdio.py -├ INFO: 跳过(声明文件): stdlib.py -├ INFO: 翻译 10 个文件 -├ INFO: -> 9474791561654346.ll -├ INFO: [1/10] 翻译完成: string.py -├ INFO: -> 7e529fe7a078cfef.ll -├ INFO: [2/10] 翻译完成: win32base.py -├ INFO: -> 06f53cc594b4ac6c.ll -├ INFO: [3/10] 翻译完成: win32sync.py -├ INFO: -> 6446627d4f07a1b5.ll -├ INFO: [4/10] 翻译完成: winsock2.py -├ INFO: -> f6b51804a0ba8ff0.ll -├ INFO: [5/10] 翻译完成: win32file.py -├ INFO: -> 067c78e9f121dce3.ll -├ INFO: [6/10] 翻译完成: win32process.py -├ INFO: -> bbdf3bbd4c3bc28c.ll -├ INFO: [7/10] 翻译完成: win32console.py -├ INFO: -> 72e2d5ccb7cedcf1.ll -├ INFO: [8/10] 翻译完成: win32memory.py -├ INFO: -> 0035c95a18d4f8e8.ll -├ INFO: [9/10] 翻译完成: fileio.py -├ INFO: -> 14d33679f7fadf1f.ll -├ INFO: [10/10] 翻译完成: testcheck.py -├ INFO: 编译 10 个 .ll 文件 -├ SUCCESS: [1/10] 编译成功: win32base.py -├ SUCCESS: [2/10] 编译成功: win32process.py -├ SUCCESS: [3/10] 编译成功: testcheck.py -├ SUCCESS: [4/10] 编译成功: win32console.py -├ SUCCESS: [5/10] 编译成功: win32file.py -├ SUCCESS: [6/10] 编译成功: win32memory.py -├ SUCCESS: [7/10] 编译成功: string.py -├ SUCCESS: [8/10] 编译成功: win32sync.py -├ SUCCESS: [9/10] 编译成功: winsock2.py -├ SUCCESS: [10/10] 编译成功: fileio.py -├ INFO: [清理] 删除 10 个过时文件 -├ INFO: -[编译] 找到 7 个 .ll 文件需要编译 -├ INFO: 并行编译 7 个文件 (workers=7) -├ SUCCESS: cb151b297f4ea56d.ll -├ SUCCESS: 03b24bc1d9327958.ll -├ SUCCESS: 784dde8a8697b7ab.ll -├ SUCCESS: dd19090b337e9bea.ll -├ SUCCESS: 9b7d2adaae94f021.ll -├ SUCCESS: e445a2bb299d1b7d.ll -├ SUCCESS: d855b3e66d1d6522.ll -├ INFO: -[链接] 找到 7 个 .obj 文件 -├ INFO: [链接] 额外库文件: 10 个 -├ INFO: - 9474791561654346.obj -├ INFO: - 7e529fe7a078cfef.obj -├ INFO: - bbdf3bbd4c3bc28c.obj -├ INFO: - 14d33679f7fadf1f.obj -├ INFO: - f6b51804a0ba8ff0.obj -├ INFO: - 0035c95a18d4f8e8.obj -├ INFO: - 72e2d5ccb7cedcf1.obj -├ INFO: - 067c78e9f121dce3.obj -├ INFO: - 06f53cc594b4ac6c.obj -├ INFO: - 6446627d4f07a1b5.obj -├ INFO: 执行: clang++ -Wl,--allow-multiple-definition -Wl,--unresolved-symbols=ignore-in-object-files -o D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\ZlibTest.exe D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\03b24bc1d9327958.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\784dde8a8697b7ab.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\9b7d2adaae94f021.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\cb151b297f4ea56d.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\dd19090b337e9bea.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\e445a2bb299d1b7d.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\9474791561654346.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\7e529fe7a078cfef.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\bbdf3bbd4c3bc28c.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\14d33679f7fadf1f.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\f6b51804a0ba8ff0.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\0035c95a18d4f8e8.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\72e2d5ccb7cedcf1.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\067c78e9f121dce3.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\06f53cc594b4ac6c.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\6446627d4f07a1b5.obj -lmsvcrt -lucrt -lpthread -lmingwex -lkernel32 -luser32 -latomic -├ ERROR: 链接失败: D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x216): undefined reference to `0f8134f67bdaba8f.runtime_version' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f6): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x3f4): undefined reference to `0f8134f67bdaba8f.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x525): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x58c): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x5e9): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x646): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x74e): undefined reference to `0f8134f67bdaba8f.compressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x79f): undefined reference to `0f8134f67bdaba8f.Compress.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x866): undefined reference to `0f8134f67bdaba8f.Compress.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x931): undefined reference to `0f8134f67bdaba8f.Compress.flush' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xa2d): undefined reference to `0f8134f67bdaba8f.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xb2b): undefined reference to `0f8134f67bdaba8f.Compress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xbb5): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xbdc): undefined reference to `0f8134f67bdaba8f.decompressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xc50): undefined reference to `0f8134f67bdaba8f.Decompress.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xd58): undefined reference to `0f8134f67bdaba8f.Decompress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xdd6): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xdfd): undefined reference to `0f8134f67bdaba8f.decompressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xe2d): undefined reference to `0f8134f67bdaba8f.Decompress.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xeaf): undefined reference to `0f8134f67bdaba8f.Decompress.unconsumed_tail' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xf30): undefined reference to `0f8134f67bdaba8f.Decompress.flush' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0xf99): undefined reference to `0f8134f67bdaba8f.Decompress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1025): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x10af): undefined reference to `0f8134f67bdaba8f.decompressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x10dc): undefined reference to `0f8134f67bdaba8f.Decompress.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1166): undefined reference to `0f8134f67bdaba8f.Decompress.unused_data' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1209): undefined reference to `0f8134f67bdaba8f.Decompress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x12a6): undefined reference to `0f8134f67bdaba8f.compressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x12c5): undefined reference to `0f8134f67bdaba8f.Compress.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x12e0): undefined reference to `0f8134f67bdaba8f.Compress.copy' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1327): undefined reference to `0f8134f67bdaba8f.Compress.flush' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x137b): undefined reference to `0f8134f67bdaba8f.Compress.flush' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x13ee): undefined reference to `0f8134f67bdaba8f.Compress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x13f8): undefined reference to `0f8134f67bdaba8f.Compress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1473): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x149a): undefined reference to `0f8134f67bdaba8f.decompressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x14a7): undefined reference to `0f8134f67bdaba8f.Decompress.copy' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x150d): undefined reference to `0f8134f67bdaba8f.Decompress.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1533): undefined reference to `0f8134f67bdaba8f.Decompress.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1610): undefined reference to `0f8134f67bdaba8f.Decompress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x161a): undefined reference to `0f8134f67bdaba8f.Decompress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1653): undefined reference to `0f8134f67bdaba8f.zlib_adler32' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x169a): undefined reference to `0f8134f67bdaba8f.zlib_adler32' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x16c2): undefined reference to `0f8134f67bdaba8f.zlib_adler32' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1753): undefined reference to `0f8134f67bdaba8f.zlib_crc32' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1797): undefined reference to `0f8134f67bdaba8f.zlib_crc32' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x17bf): undefined reference to `0f8134f67bdaba8f.zlib_crc32' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x186c): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x190d): undefined reference to `0f8134f67bdaba8f.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1a0e): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1a9b): undefined reference to `0f8134f67bdaba8f.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1bf0): undefined reference to `0f8134f67bdaba8f.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1c52): undefined reference to `0f8134f67bdaba8f.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1dce): undefined reference to `0f8134f67bdaba8f.compressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1e0e): undefined reference to `0f8134f67bdaba8f.Compress.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1e63): undefined reference to `0f8134f67bdaba8f.Compress.flush' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1ebf): undefined reference to `0f8134f67bdaba8f.Compress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1ef4): undefined reference to `0f8134f67bdaba8f.compressobj' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1f0e): undefined reference to `0f8134f67bdaba8f.Compress.compress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1f25): undefined reference to `0f8134f67bdaba8f.Compress.flush' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x1f9a): undefined reference to `0f8134f67bdaba8f.Compress.delete' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2eba): undefined reference to `0f8134f67bdaba8f.decompress' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2eeb): undefined reference to `0f8134f67bdaba8f.get_error_code' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f02): undefined reference to `0f8134f67bdaba8f.get_error' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f19): undefined reference to `0f8134f67bdaba8f.get_error' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f46): undefined reference to `0f8134f67bdaba8f.get_error_code' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f68): undefined reference to `0f8134f67bdaba8f.clear_error' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f74): undefined reference to `0f8134f67bdaba8f.get_error_code' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f96): undefined reference to `0f8134f67bdaba8f.get_error_code' -D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\ZlibTest\output\d855b3e66d1d6522.obj:d855b3e66d1d6522_dso.ll:(.text+0x2f9d): undefined reference to `0f8134f67bdaba8f.get_error' -clang++: error: linker command failed with exit code 1 (use -v to see invocation) -├ ERROR: -链接失败,立即终止编译。 diff --git a/includes/_fakeduck.py b/includes/_fakeduck.py index 94fadf8..af9524b 100644 --- a/includes/_fakeduck.py +++ b/includes/_fakeduck.py @@ -272,14 +272,19 @@ class _str: def split(self, delimiter: str) -> list[str]: stdio.printf("DBG split: entry\n") + stdio.fflush(None) result = list[str](self.__mbuddy__) stdio.printf("DBG split: list created\n") + stdio.fflush(None) src: str = self.__data__ stdio.printf("DBG split: src=%s\n", src) + stdio.fflush(None) length: t.CSizeT = len(src) stdio.printf("DBG split: length=%lu\n", length) + stdio.fflush(None) delim_len: t.CSizeT = string.strlen(delimiter) stdio.printf("DBG split: delim_len=%lu\n", delim_len) + stdio.fflush(None) start: t.CSizeT = 0 i: t.CSizeT = 0 cur: str = src diff --git a/includes/_list.py b/includes/_list.py index 8176346..5624727 100644 --- a/includes/_list.py +++ b/includes/_list.py @@ -1,6 +1,7 @@ import t, c import memhub import string +import stdio from stdint import * @@ -24,8 +25,12 @@ class list[T]: __iter_index__: t.CSizeT def __new__(self, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT = 0): - # 堆分配 list[T] 对象 (6 字段 × 8 = 48 字节,无 vtable) - return pool.alloc(48) + stdio.printf("DBG __new__: entry\n") + stdio.fflush(None) + ret = pool.alloc(48) + stdio.printf("DBG __new__: alloc returned %p\n", ret) + stdio.fflush(None) + return ret def __init__(self, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT = 0): self.__pool__ = pool diff --git a/regression_output.txt b/regression_output.txt deleted file mode 100644 index 270fed7..0000000 --- a/regression_output.txt +++ /dev/null @@ -1,1710 +0,0 @@ -====================================================================== -TransPyC 回归测试 -====================================================================== - -发现 45 个测试项目 - -====================================================================== -阶段一:编译所有项目 -====================================================================== -[1/45] 编译 ArgparseTest ... 通过 (7.9s) -[2/45] 编译 AstTest ... 失败 (42.8s) -[3/45] 编译 BuddyTest ... 通过 (8.0s) -[4/45] 编译 BuiltinDecoratorTest ... 通过 (5.9s) -[5/45] 编译 CPythonTest ... 通过 (8.8s) -[6/45] 编译 ClosureTest ... 通过 (5.0s) -[7/45] 编译 ClosureTest2 ... 通过 (5.4s) -[8/45] 编译 DecoratorMarkerTest ... 通过 (5.2s) -[9/45] 编译 DecoratorTest ... 通过 (6.8s) -[10/45] 编译 DictTest ... 失败 (10.9s) -[11/45] 编译 DocTest ... 通过 (5.6s) -[12/45] 编译 EdgeCaseTest ... 通过 (3.9s) -[13/45] 编译 EqTest ... 通过 (3.9s) -[14/45] 编译 FakeDuckTest ... 失败 (7.2s) -[15/45] 编译 ForAndLoopTest ... 通过 (5.0s) -[16/45] 编译 FormatStringTest ... 通过 (4.4s) -[17/45] 编译 FuncTest ... 通过 (4.7s) -[18/45] 编译 GenericTest ... 通过 (4.4s) -[19/45] 编译 GenericTest2 ... 通过 (4.8s) -[20/45] 编译 HashTableTest ... 通过 (5.1s) -[21/45] 编译 IterTest ... 通过 (4.8s) -[22/45] 编译 JsonTest ... 失败 (6.6s) -[23/45] 编译 LLvmLiteTest ... 通过 (21.8s) -[24/45] 编译 ListTest ... 通过 (4.2s) -[25/45] 编译 LoopTest ... 通过 (4.4s) -[26/45] 编译 MemhubTest ... 通过 (4.5s) -[27/45] 编译 NewAstTest ... 通过 (24.1s) -[28/45] 编译 NoVTableTest ... 通过 (3.5s) -[29/45] 编译 PointerTest ... 通过 (4.3s) -[30/45] 编译 ShortCircuitTest ... 通过 (4.9s) -[31/45] 编译 SimdTest ... 失败 (13.1s) -[32/45] 编译 SprintfTest ... 通过 (4.8s) -[33/45] 编译 StringIterTest ... 通过 (4.8s) -[34/45] 编译 StringTest ... 通过 (4.6s) -[35/45] 编译 StructTest ... 通过 (4.9s) -[36/45] 编译 SysLibTest ... 通过 (9.7s) -[37/45] 编译 TestFBProject ... 通过 (4.5s) -[38/45] 编译 TestProject ... 失败 (14.8s) -[39/45] 编译 TestProject2 ... 失败 (12.1s) -[40/45] 编译 TestProject3 ... 通过 (12.0s) -[41/45] 编译 TypeCastTest ... 通过 (8.1s) -[42/45] 编译 VRandomTest ... 通过 (9.5s) -[43/45] 编译 VariadicTest ... 通过 (7.8s) -[44/45] 编译 WebTest ... 通过 (9.4s) -[45/45] 编译 ZlibTest ... 通过 (10.0s) - -编译阶段: 通过 38, 失败 7 - -====================================================================== -阶段二:运行所有可执行文件 -====================================================================== -找到 38 个可执行文件 - - ArgparseTest: 通过 - BuddyTest: 通过 - BuiltinDecoratorTest: 通过 - CPythonTest: 通过 - ClosureTest: 通过 - ClosureTest2: 通过 - DecoratorMarkerTest: 通过 - DecoratorTest: 通过 - DocTest: 通过 - EdgeCaseTest: 通过 - EqTest: 通过 - ForAndLoopTest: 通过 - FormatStringTest: 通过 - FuncTest: 通过 - GenericTest: 通过 - GenericTest2: 通过 - HashTableTest: 通过 - IterTest: 通过 - LLvmLiteTest: 失败 - ListTest: 通过 - LoopTest: 通过 - MemhubTest: 通过 - NewAstTest: 通过 - NoVTableTest: 通过 - PointerTest: 通过 - ShortCircuitTest: 通过 - SprintfTest: 通过 - StringIterTest: 通过 - StringTest: 通过 - StructTest: 失败 - SysLibTest: 通过 - TestFBProject: 通过 - TestProject3: 通过 - TypeCastTest: 通过 - VRandomTest: 通过 - VariadicTest: 通过 - WebTest: 通过 - ZlibTest: 通过 - -运行阶段: 通过 36, 失败 2 - -====================================================================== -回归测试报告 -====================================================================== -总计: 45 通过: 36 失败: 9 - ----------------------------------------------------------------------- -失败项目详情: ----------------------------------------------------------------------- - -【AstTest】编译失败 - ... (省略前 4 行) ... - ├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output - ├ INFO: 阶段: all - ├ INFO: 编译器: llc -filetype=obj -relocation-model=pic - ├ INFO: 目标三元组: x86_64-pc-windows-gnu - ├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 - ├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output - ├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\temp - ├ INFO: 清理完成 - ├ INFO: 找到 1 个可达源文件(从入口遍历) - ├ INFO: [1/1] 生成签名: main.py - ├ INFO: -> 0853acdbdfc9b27c.pyi (签名) - ├ INFO: 处理 24 个被引用的 Python 库文件 - ├ INFO: 生成签名: ast\__init__.py -> 34548789d646f432.pyi - ├ INFO: 生成签名: ast\astaux.py -> 4337fb260448bbe2.pyi - ├ INFO: 生成签名: ast\base.py -> 5dab8cb390496d22.pyi - ├ INFO: 生成签名: ast\exprs.py -> 47767b5026a8ee15.pyi - ├ INFO: 生成签名: ast\lexer.py -> 0c212981c180e7fb.pyi - ├ INFO: 生成签名: ast\match.py -> 4dd6b3f1427d1cc5.pyi - ├ INFO: 生成签名: ast\parser.py -> ee52c08239684346.pyi - ├ INFO: 生成签名: ast\stmts.py -> 657e182b27c2a022.pyi - ├ INFO: 生成签名: ast\tokens.py -> b547ac4f380bddb6.pyi - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.pyi - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.pyi - ├ INFO: 生成签名: platmacro.py -> 93c1d18e35d188d6.pyi - ├ INFO: 生成签名: posix.py -> 6503c97dde0c79c4.pyi - ├ INFO: 生成签名: stdarg.py -> 71e0a3ffcb3ebfad.pyi - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.pyi - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.pyi - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.pyi - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.pyi - ├ INFO: 生成签名: sys.py -> b5a965302cded36b.pyi - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.pyi - ├ INFO: 生成签名: viperlib.py -> c3b259b4059f8668.pyi - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.pyi - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.pyi - ├ INFO: 缓存命中(全局): w32\win32process.py -> 067c78e9f121dce3.pyi - ├ INFO: 结构体注册表: 103 个类型, 7 个枚举 - ├ INFO: -> 0853acdbdfc9b27c.stub.ll (声明) - ├ INFO: 生成声明: ast\__init__.py -> 34548789d646f432.stub.ll - ├ INFO: 生成声明: ast\astaux.py -> 4337fb260448bbe2.stub.ll - ├ INFO: 生成声明: ast\base.py -> 5dab8cb390496d22.stub.ll - ├ INFO: 生成声明: ast\exprs.py -> 47767b5026a8ee15.stub.ll - ├ INFO: 生成声明: ast\lexer.py -> 0c212981c180e7fb.stub.ll - ├ INFO: 生成声明: ast\match.py -> 4dd6b3f1427d1cc5.stub.ll - ├ INFO: 生成声明: ast\parser.py -> ee52c08239684346.stub.ll - ├ INFO: 生成声明: ast\stmts.py -> 657e182b27c2a022.stub.ll - ├ INFO: 生成声明: ast\tokens.py -> b547ac4f380bddb6.stub.ll - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.stub.ll - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.stub.ll - ├ INFO: 生成声明: platmacro.py -> 93c1d18e35d188d6.stub.ll - ├ INFO: 生成声明: posix.py -> 6503c97dde0c79c4.stub.ll - ├ INFO: 生成声明: stdarg.py -> 71e0a3ffcb3ebfad.stub.ll - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.stub.ll - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.stub.ll - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.stub.ll - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.stub.ll - ├ INFO: 生成声明: sys.py -> b5a965302cded36b.stub.ll - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.stub.ll - ├ INFO: 生成声明: viperlib.py -> c3b259b4059f8668.stub.ll - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.stub.ll - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll - ├ INFO: 生成声明: w32\win32process.py -> 067c78e9f121dce3.stub.ll - ├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\temp - ├ INFO: SHA1 映射表 (25 个文件): - ├ INFO: 找到 1 个可达源文件(已按依赖排序) - ├ INFO: 处理顺序: - ├ INFO: 1. main.py - ├ INFO: 过滤旧文件: stub 29->25, sig 42->25 - ├ INFO: [缓存] 构建共享符号表数据... - ├ INFO: [缓存] 共享符号表构建完成 (0.72s, 2373 符号, 5 泛型模板, 10 doc 元数据) - ├ INFO: - 需要翻译 1 个文件 - ├ INFO: -> 0853acdbdfc9b27c.ll - ├ INFO: [1/1] main.py (2.2s) - ├ INFO: 翻译总耗时: 2.2s - ├ INFO: - [阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output - ├ INFO: [includes] 发现 Python 源文件: stdint.py - ├ INFO: [includes] 发现 Python 源文件: sys.py - ├ INFO: [includes] 发现 Python 源文件: string.py - ├ INFO: [includes] 发现 Python 包文件: w32\fileio.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32base.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32console.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32file.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32memory.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32process.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32sync.py - ├ INFO: [includes] 发现 Python 包文件: w32\winsock2.py - ├ INFO: [includes] 发现 Python 包文件: ast\astaux.py - ├ INFO: [includes] 发现 Python 包文件: ast\base.py - ├ INFO: [includes] 发现 Python 包文件: ast\exprs.py - ├ INFO: [includes] 发现 Python 包文件: ast\lexer.py - ├ INFO: [includes] 发现 Python 包文件: ast\match.py - ├ INFO: [includes] 发现 Python 包文件: ast\parser.py - ├ INFO: [includes] 发现 Python 包文件: ast\stmts.py - ├ INFO: [includes] 发现 Python 包文件: ast\tokens.py - ├ INFO: [includes] 发现 Python 包文件: ast\__init__.py - ├ INFO: [includes] 发现 Python 源文件: memhub.py - ├ INFO: [includes] 发现 Python 源文件: stdio.py - ├ INFO: [includes] 发现 Python 源文件: stdlib.py - ├ INFO: [includes] 发现间接依赖: platmacro.py - ├ INFO: [includes] 发现间接依赖: posix.py - ├ INFO: [includes] 发现间接依赖: viperlib.py - ├ INFO: [includes] 发现间接依赖: viperio.py - ├ INFO: [includes] 发现间接依赖: stdarg.py - ├ INFO: [includes] 发现间接依赖: atom.py - ├ INFO: - [includes 编译] 找到 29 个 Python 源文件 - ├ INFO: 跳过(预编译): atom.py -> 271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(声明文件): platmacro.py - ├ INFO: 跳过(声明文件): stdarg.py - ├ INFO: 跳过(声明文件): stdint.py - ├ INFO: 跳过(声明文件): stdio.py - ├ INFO: 跳过(声明文件): stdlib.py - ├ INFO: 跳过(预编译): string.py -> 9474791561654346.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): viperio.py -> c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): memhub.py -> f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32base.py -> 7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32console.py -> bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 翻译 18 个文件 - ├ INFO: -> 6503c97dde0c79c4.ll - ├ INFO: [1/18] 翻译完成: posix.py - ├ INFO: -> b547ac4f380bddb6.ll - ├ INFO: [2/18] 翻译完成: tokens.py - ├ INFO: -> 06f53cc594b4ac6c.ll - ├ INFO: [3/18] 翻译完成: win32sync.py - ├ INFO: -> 067c78e9f121dce3.ll - ├ INFO: [4/18] 翻译完成: win32process.py - ├ INFO: -> 6446627d4f07a1b5.ll - ├ INFO: [5/18] 翻译完成: winsock2.py - ├ INFO: -> 72e2d5ccb7cedcf1.ll - ├ INFO: [6/18] 翻译完成: win32memory.py - ├ INFO: -> f6b51804a0ba8ff0.ll - ├ INFO: [7/18] 翻译完成: win32file.py - ├ INFO: -> b5a965302cded36b.ll - ├ INFO: [8/18] 翻译完成: sys.py - ├ INFO: -> 0c212981c180e7fb.ll - ├ INFO: [9/18] 翻译完成: lexer.py - ├ INFO: -> c3b259b4059f8668.ll - ├ INFO: [10/18] 翻译完成: viperlib.py - ├ INFO: -> 0035c95a18d4f8e8.ll - ├ INFO: [11/18] 翻译完成: fileio.py - ├ INFO: -> 5dab8cb390496d22.ll - ├ INFO: [12/18] 翻译完成: base.py - ├ WARN: HandlesBase: 忽略异常 'NoneType' object is not subscriptable - ├ INFO: -> 4dd6b3f1427d1cc5.ll - ├ INFO: [13/18] 翻译完成: match.py - ├ INFO: -> 4337fb260448bbe2.ll - ├ INFO: [14/18] 翻译完成: astaux.py - ├ INFO: -> 657e182b27c2a022.ll - ├ INFO: [15/18] 翻译完成: stmts.py - ├ INFO: -> 47767b5026a8ee15.ll - ├ INFO: [16/18] 翻译完成: exprs.py - ├ WARN: HandlesBase: 忽略异常 'NoneType' object is not subscriptable - ├ INFO: -> ee52c08239684346.ll - ├ INFO: [17/18] 翻译完成: parser.py - ├ WARN: HandlesBase: 忽略异常 'NoneType' object is not subscriptable - ├ INFO: -> 34548789d646f432.ll - ├ INFO: [18/18] 翻译完成: __init__.py - ├ INFO: 编译 18 个 .ll 文件 - ├ SUCCESS: [1/18] 编译成功: posix.py - ├ SUCCESS: [2/18] 编译成功: astaux.py - ├ SUCCESS: [3/18] 编译成功: lexer.py - ├ SUCCESS: [4/18] 编译成功: base.py - ├ SUCCESS: [5/18] 编译成功: tokens.py - ├ SUCCESS: [6/18] 编译成功: match.py - ├ WARN: [7/18] 编译失败: stmts.py: llc.exe: error: llc.exe: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output\657e182b27c2a022_dso.ll:4476:1: error: expected instruction opcode - } - ^ - ├ WARN: [8/18] 编译失败: parser.py: llc.exe: error: llc.exe: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output\ee52c08239684346_dso.ll:4282:1: error: expected instruction opcode - } - ^ - ├ WARN: [9/18] 编译失败: __init__.py: llc.exe: error: llc.exe: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output\34548789d646f432_dso.ll:1865:1: error: expected instruction opcode - } - ^ - ├ SUCCESS: [10/18] 编译成功: viperlib.py - ├ SUCCESS: [11/18] 编译成功: exprs.py - ├ SUCCESS: [12/18] 编译成功: win32memory.py - ├ SUCCESS: [13/18] 编译成功: fileio.py - ├ SUCCESS: [14/18] 编译成功: win32file.py - ├ SUCCESS: [15/18] 编译成功: sys.py - ├ SUCCESS: [16/18] 编译成功: win32process.py - ├ SUCCESS: [17/18] 编译成功: win32sync.py - ├ SUCCESS: [18/18] 编译成功: winsock2.py - ├ WARN: 保留失败文件以便调试: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output\657e182b27c2a022.ll - ├ WARN: 保留失败文件以便调试: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output\ee52c08239684346.ll - ├ WARN: 保留失败文件以便调试: D:\Users\TermiNexus\Desktop\TransPyC\Test\AstTest\output\34548789d646f432.ll - ├ ERROR: - includes 文件编译失败 - [FATAL] 方法体编译失败 (list[str].append): TypeError: 'NoneType' object is not subscriptable - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 490, in _HandleCallLlvm - return self._HandleMethodCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 2509, in _HandleMethodCallLlvm - VtableSlotPtr = Gen.builder.gep(ObjVal, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name=f"vtable_slot_{ClassName}") - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 927, in gep - instr = instructions.GEPInstr(self.block, ptr, indices, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 563, in __init__ - lasttyp, typ = typ, typ.gep(i) - ^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\types.py", line 633, in gep - return self.elements[i.constant] - ~~~~~~~~~~~~~^^^^^^^^^^^^ - TypeError: 'NoneType' object is not subscriptable - [FATAL] 方法体编译失败 (list[str].append): TypeError: 'NoneType' object is not subscriptable - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 490, in _HandleCallLlvm - return self._HandleMethodCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 2509, in _HandleMethodCallLlvm - VtableSlotPtr = Gen.builder.gep(ObjVal, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name=f"vtable_slot_{ClassName}") - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 927, in gep - instr = instructions.GEPInstr(self.block, ptr, indices, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 563, in __init__ - lasttyp, typ = typ, typ.gep(i) - ^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\types.py", line 633, in gep - return self.elements[i.constant] - ~~~~~~~~~~~~~^^^^^^^^^^^^ - TypeError: 'NoneType' object is not subscriptable - [FATAL] 方法体编译失败 (list[str].append): TypeError: 'NoneType' object is not subscriptable - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 490, in _HandleCallLlvm - return self._HandleMethodCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 2509, in _HandleMethodCallLlvm - VtableSlotPtr = Gen.builder.gep(ObjVal, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name=f"vtable_slot_{ClassName}") - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 927, in gep - instr = instructions.GEPInstr(self.block, ptr, indices, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 563, in __init__ - lasttyp, typ = typ, typ.gep(i) - ^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\types.py", line 633, in gep - return self.elements[i.constant] - ~~~~~~~~~~~~~^^^^^^^^^^^^ - TypeError: 'NoneType' object is not subscriptable - -【DictTest】编译失败 - ├ INFO: 读取配置文件: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\project.json - ├ INFO: 项目目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest - ├ INFO: 源目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\App - ├ INFO: 临时目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\temp - ├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output - ├ INFO: 阶段: all - ├ INFO: 编译器: llc -filetype=obj -relocation-model=pic - ├ INFO: 目标三元组: x86_64-pc-windows-gnu - ├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 - ├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output - ├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\temp - ├ INFO: 清理完成 - ├ INFO: 找到 1 个可达源文件(从入口遍历) - ├ INFO: [1/1] 生成签名: main.py - ├ INFO: -> b3c2b99b6f3be4c7.pyi (签名) - ├ INFO: 处理 14 个被引用的 Python 库文件 - ├ INFO: 生成签名: _dict.py -> e3e7b6de8d7d8b03.pyi - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.pyi - ├ INFO: 生成签名: json\__init__.py -> 57288496f7c2d1ad.pyi - ├ INFO: 生成签名: json\__parser.py -> 240a9a4157959a9f.pyi - ├ INFO: 生成签名: json\__writer.py -> 20cd49775c100a38.pyi - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.pyi - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.pyi - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.pyi - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.pyi - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.pyi - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.pyi - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.pyi - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.pyi - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.pyi - ├ INFO: 结构体注册表: 24 个类型, 0 个枚举 - ├ INFO: -> b3c2b99b6f3be4c7.stub.ll (声明) - ├ INFO: 生成声明: _dict.py -> e3e7b6de8d7d8b03.stub.ll - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.stub.ll - ├ INFO: 生成声明: json\__init__.py -> 57288496f7c2d1ad.stub.ll - ├ INFO: 生成声明: json\__parser.py -> 240a9a4157959a9f.stub.ll - ├ INFO: 生成声明: json\__writer.py -> 20cd49775c100a38.stub.ll - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.stub.ll - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.stub.ll - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.stub.ll - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.stub.ll - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.stub.ll - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.stub.ll - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.stub.ll - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.stub.ll - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll - ├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\temp - ├ INFO: SHA1 映射表 (15 个文件): - ├ INFO: 找到 1 个可达源文件(已按依赖排序) - ├ INFO: 处理顺序: - ├ INFO: 1. main.py - ├ INFO: 过滤旧文件: stub 34->15, sig 56->15 - ├ INFO: [缓存] 构建共享符号表数据... - ├ INFO: [缓存] 共享符号表构建完成 (0.53s, 677 符号, 5 泛型模板, 20 doc 元数据) - ├ INFO: - 需要翻译 1 个文件 - ├ ERROR: main.py: Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\App\main.py, line 14): - 14 | w32.win32console.SetConsoleOutputCP(65001) - Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\App\main.py, line 26): - 26 | d.set_int("beta", 20) - Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - ├ INFO: 翻译总耗时: 1.2s - ├ INFO: - [阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output - ├ INFO: [includes] 发现 Python 包文件: w32\fileio.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32base.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32console.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32file.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32memory.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32process.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32sync.py - ├ INFO: [includes] 发现 Python 包文件: w32\winsock2.py - ├ INFO: [includes] 发现 Python 源文件: string.py - ├ INFO: [includes] 发现 Python 源文件: testcheck.py - ├ INFO: [includes] 发现 Python 源文件: stdlib.py - ├ INFO: [includes] 发现 Python 源文件: memhub.py - ├ INFO: [includes] 发现 Python 源文件: _dict.py - ├ INFO: [includes] 发现 Python 源文件: stdio.py - ├ INFO: [includes] 发现 Python 源文件: stdint.py - ├ INFO: [includes] 发现 Python 包文件: json\__init__.py - ├ INFO: [includes] 发现 Python 包文件: json\__parser.py - ├ INFO: [includes] 发现 Python 包文件: json\__writer.py - ├ INFO: [includes] 发现间接依赖: atom.py - ├ INFO: [includes] 发现间接依赖: viperio.py - ├ INFO: - [includes 编译] 找到 20 个 Python 源文件 - ├ INFO: 跳过(预编译): atom.py -> 271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(声明文件): stdint.py - ├ INFO: 跳过(声明文件): stdio.py - ├ INFO: 跳过(声明文件): stdlib.py - ├ INFO: 跳过(预编译): string.py -> 9474791561654346.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): viperio.py -> c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): memhub.py -> f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32base.py -> 7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32console.py -> bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): testcheck.py -> 14d33679f7fadf1f.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32file.py -> f6b51804a0ba8ff0.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): fileio.py -> 0035c95a18d4f8e8.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32memory.py -> 72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32process.py -> 067c78e9f121dce3.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32sync.py -> 06f53cc594b4ac6c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): winsock2.py -> 6446627d4f07a1b5.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 翻译 4 个文件 - ├ INFO: -> e3e7b6de8d7d8b03.ll - ├ INFO: [1/4] 翻译完成: _dict.py - ├ INFO: -> 20cd49775c100a38.ll - ├ INFO: [2/4] 翻译完成: __writer.py - ├ INFO: -> 240a9a4157959a9f.ll - ├ INFO: [3/4] 翻译完成: __parser.py - ├ INFO: -> 57288496f7c2d1ad.ll - ├ INFO: [4/4] 翻译完成: __init__.py - ├ INFO: 编译 4 个 .ll 文件 - ├ SUCCESS: [1/4] 编译成功: __writer.py - ├ SUCCESS: [2/4] 编译成功: __init__.py - ├ SUCCESS: [3/4] 编译成功: __parser.py - ├ SUCCESS: [4/4] 编译成功: _dict.py - ├ INFO: [清理] 删除 4 个过时文件 - ├ INFO: [编译] 无 .ll 文件需要重新编译 - ├ INFO: - [链接] 找到 0 个 .obj 文件 - ├ INFO: [链接] 额外库文件: 17 个 - ├ INFO: - 271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 9474791561654346.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 14d33679f7fadf1f.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - f6b51804a0ba8ff0.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 0035c95a18d4f8e8.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 067c78e9f121dce3.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 06f53cc594b4ac6c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 6446627d4f07a1b5.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - e3e7b6de8d7d8b03.obj - ├ INFO: - 240a9a4157959a9f.obj - ├ INFO: - 20cd49775c100a38.obj - ├ INFO: - 57288496f7c2d1ad.obj - ├ INFO: 执行: clang++ -Wl,--allow-multiple-definition -o D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output\DictTest.exe D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\9474791561654346.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\14d33679f7fadf1f.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\f6b51804a0ba8ff0.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\0035c95a18d4f8e8.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\067c78e9f121dce3.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\06f53cc594b4ac6c.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\6446627d4f07a1b5.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output\e3e7b6de8d7d8b03.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output\240a9a4157959a9f.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output\20cd49775c100a38.obj D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output\57288496f7c2d1ad.obj -lmsvcrt -lucrt -lpthread -lmingwex -lkernel32 - ├ ERROR: 链接失败: D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output\e3e7b6de8d7d8b03.obj:e3e7b6de8d7d8b03_dso.ll:(.text+0xa64): undefined reference to `e3e7b6de8d7d8b03.write' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\output\e3e7b6de8d7d8b03.obj:e3e7b6de8d7d8b03_dso.ll:(.text+0xa8a): undefined reference to `e3e7b6de8d7d8b03.parse' - D:/msys64/mingw64/bin/ld: D:/msys64/mingw64/lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main': - D:/W/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:62:(.text.startup+0xb6): undefined reference to `WinMain' - clang++: error: linker command failed with exit code 1 (use -v to see invocation) - ├ ERROR: - 链接失败,立即终止编译。 - [FATAL] 方法体编译失败 (.main): TypeError: Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 281, in _HandleCallLlvm - return self._HandleClassNewLlvm(Node, FuncName) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 3456, in _HandleClassNewLlvm - Gen.builder.call(NewFunc, [result], name=f"before_init_{ClassName}") - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) - TypeError: Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1039, in _translate_file - result = trans.Convert( - ^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Shell\TransPyC.py", line 555, in Convert - code: str = self.translator.GenerateCCode(Tree, target='llvm') - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 642, in GenerateCCode - return self.GenerateLlvmDirect(Tree) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 179, in GenerateLlvmDirect - self.FunctionHandler._EmitFunctionLlvm(Node, Gen) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 281, in _HandleCallLlvm - return self._HandleClassNewLlvm(Node, FuncName) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 3456, in _HandleClassNewLlvm - Gen.builder.call(NewFunc, [result], name=f"before_init_{ClassName}") - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) - TypeError: Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - - The above exception was the direct cause of the following exception: - - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 467, in run - self._translate_file(src_path, out_path, prebuilt_ModuleSha1Map=msm) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1055, in _translate_file - raise type(e)(enriched) from e - TypeError: Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\App\main.py, line 14): - 14 | w32.win32console.SetConsoleOutputCP(65001) - Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\Test\DictTest\App\main.py, line 26): - 26 | d.set_int("beta", 20) - Type of #1 arg mismatch: i8* != %"e3e7b6de8d7d8b03.dict"* - -【FakeDuckTest】编译失败 - ├ INFO: 读取配置文件: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\project.json - ├ INFO: 项目目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest - ├ INFO: 源目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\App - ├ INFO: 临时目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\temp - ├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\output - ├ INFO: 阶段: all - ├ INFO: 编译器: llc -filetype=obj -relocation-model=pic - ├ INFO: 目标三元组: x86_64-pc-windows-gnu - ├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 - ├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\output - ├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\temp - ├ INFO: 清理完成 - ├ INFO: 找到 1 个可达源文件(从入口遍历) - ├ INFO: [1/1] 生成签名: main.py - ├ INFO: -> 48352329f97d0858.pyi (签名) - ├ INFO: 处理 14 个被引用的 Python 库文件 - ├ INFO: 生成签名: _fakeduck.py -> 79b337e5ea8951e2.pyi - ├ INFO: 生成签名: _list.py -> f2ecbf8ced20575c.pyi - ├ INFO: 生成签名: _withcontent.py -> 5b2e220c5bae60c9.pyi - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.pyi - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.pyi - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.pyi - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.pyi - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.pyi - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.pyi - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.pyi - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.pyi - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.pyi - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.pyi - ├ INFO: 缓存命中(全局): w32\win32process.py -> 067c78e9f121dce3.pyi - ├ INFO: 结构体注册表: 28 个类型, 0 个枚举 - ├ INFO: -> 48352329f97d0858.stub.ll (声明) - ├ INFO: 生成声明: _fakeduck.py -> 79b337e5ea8951e2.stub.ll - ├ INFO: 生成声明: _list.py -> f2ecbf8ced20575c.stub.ll - ├ INFO: 生成声明: _withcontent.py -> 5b2e220c5bae60c9.stub.ll - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.stub.ll - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.stub.ll - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.stub.ll - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.stub.ll - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.stub.ll - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.stub.ll - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.stub.ll - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.stub.ll - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.stub.ll - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll - ├ INFO: 缓存命中(全局): w32\win32process.py -> 067c78e9f121dce3.stub.ll - ├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\temp - ├ INFO: SHA1 映射表 (15 个文件): - ├ INFO: 找到 1 个可达源文件(已按依赖排序) - ├ INFO: 处理顺序: - ├ INFO: 1. main.py - ├ INFO: 过滤旧文件: stub 37->15, sig 64->15 - ├ INFO: [缓存] 构建共享符号表数据... - ├ INFO: [缓存] 共享符号表构建完成 (0.21s, 725 符号, 5 泛型模板, 25 doc 元数据) - ├ INFO: - 需要翻译 1 个文件 - ├ INFO: -> 48352329f97d0858.ll - ├ INFO: [1/1] main.py (0.7s) - ├ INFO: 翻译总耗时: 0.7s - ├ INFO: - [阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\output - ├ INFO: [includes] 发现 Python 源文件: stdlib.py - ├ INFO: [includes] 发现 Python 源文件: _fakeduck.py - ├ INFO: [includes] 发现 Python 源文件: memhub.py - ├ INFO: [includes] 发现 Python 源文件: _list.py - ├ INFO: [includes] 发现 Python 源文件: testcheck.py - ├ INFO: [includes] 发现 Python 源文件: stdint.py - ├ INFO: [includes] 发现 Python 源文件: string.py - ├ INFO: [includes] 发现 Python 源文件: _withcontent.py - ├ INFO: [includes] 发现 Python 包文件: w32\fileio.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32base.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32console.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32file.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32memory.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32process.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32sync.py - ├ INFO: [includes] 发现 Python 包文件: w32\winsock2.py - ├ INFO: [includes] 发现 Python 源文件: stdio.py - ├ INFO: [includes] 发现间接依赖: atom.py - ├ INFO: [includes] 发现间接依赖: viperio.py - ├ INFO: - [includes 编译] 找到 19 个 Python 源文件 - ├ INFO: 跳过(预编译): atom.py -> 271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(声明文件): stdint.py - ├ INFO: 跳过(声明文件): stdio.py - ├ INFO: 跳过(声明文件): stdlib.py - ├ INFO: 跳过(预编译): string.py -> 9474791561654346.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): viperio.py -> c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): memhub.py -> f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32base.py -> 7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32console.py -> bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): testcheck.py -> 14d33679f7fadf1f.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32file.py -> f6b51804a0ba8ff0.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): fileio.py -> 0035c95a18d4f8e8.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32memory.py -> 72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32process.py -> 067c78e9f121dce3.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32sync.py -> 06f53cc594b4ac6c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): winsock2.py -> 6446627d4f07a1b5.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 翻译 3 个文件 - ├ INFO: -> f2ecbf8ced20575c.ll - ├ INFO: [1/3] 翻译完成: _list.py - ├ INFO: -> 5b2e220c5bae60c9.ll - ├ INFO: [2/3] 翻译完成: _withcontent.py - ├ INFO: -> 79b337e5ea8951e2.ll - ├ INFO: [3/3] 翻译完成: _fakeduck.py - ├ INFO: 编译 3 个 .ll 文件 - ├ SUCCESS: [1/3] 编译成功: _list.py - ├ SUCCESS: [2/3] 编译成功: _withcontent.py - ├ SUCCESS: [3/3] 编译成功: _fakeduck.py - ├ INFO: [清理] 删除 3 个过时文件 - ├ INFO: - [编译] 找到 1 个 .ll 文件需要编译 - ├ INFO: 并行编译 1 个文件 (workers=1) - ├ ERROR: 48352329f97d0858.ll: llc.exe: error: llc.exe: D:\Users\TermiNexus\Desktop\TransPyC\Test\FakeDuckTest\output\48352329f97d0858_dso.ll:3065:62: error: use of undefined value '%call_enter' - %local_free_cast = bitcast %"f3560b99de458aec.MemManager"* %call_enter to i8* - ^ - ├ ERROR: - 1 个文件编译失败 - -【JsonTest】编译失败 - ├ INFO: 读取配置文件: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\project.json - ├ INFO: 项目目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest - ├ INFO: 源目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\App - ├ INFO: 临时目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\temp - ├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output - ├ INFO: 阶段: all - ├ INFO: 编译器: llc -filetype=obj -relocation-model=pic - ├ INFO: 目标三元组: x86_64-pc-windows-gnu - ├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 - ├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output - ├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\temp - ├ INFO: 清理完成 - ├ INFO: 找到 1 个可达源文件(从入口遍历) - ├ INFO: [1/1] 生成签名: main.py - ├ INFO: -> 8a97754e9e3c2b9a.pyi (签名) - ├ INFO: 处理 13 个被引用的 Python 库文件 - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.pyi - ├ INFO: 缓存命中(全局): json\__init__.py -> 57288496f7c2d1ad.pyi - ├ INFO: 缓存命中(全局): json\__parser.py -> 240a9a4157959a9f.pyi - ├ INFO: 缓存命中(全局): json\__writer.py -> 20cd49775c100a38.pyi - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.pyi - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.pyi - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.pyi - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.pyi - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.pyi - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.pyi - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.pyi - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.pyi - ├ INFO: 缓存命中(全局): w32\win32memory.py -> 72e2d5ccb7cedcf1.pyi - ├ INFO: 结构体注册表: 24 个类型, 0 个枚举 - ├ INFO: -> 8a97754e9e3c2b9a.stub.ll (声明) - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.stub.ll - ├ INFO: 缓存命中(全局): json\__init__.py -> 57288496f7c2d1ad.stub.ll - ├ INFO: 缓存命中(全局): json\__parser.py -> 240a9a4157959a9f.stub.ll - ├ INFO: 缓存命中(全局): json\__writer.py -> 20cd49775c100a38.stub.ll - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.stub.ll - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.stub.ll - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.stub.ll - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.stub.ll - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.stub.ll - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.stub.ll - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.stub.ll - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll - ├ INFO: 缓存命中(全局): w32\win32memory.py -> 72e2d5ccb7cedcf1.stub.ll - ├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\temp - ├ INFO: SHA1 映射表 (14 个文件): - ├ INFO: 找到 1 个可达源文件(已按依赖排序) - ├ INFO: 处理顺序: - ├ INFO: 1. main.py - ├ INFO: 过滤旧文件: stub 38->14, sig 73->14 - ├ INFO: [缓存] 构建共享符号表数据... - ├ INFO: [缓存] 共享符号表构建完成 (0.26s, 756 符号, 5 泛型模板, 33 doc 元数据) - ├ INFO: - 需要翻译 1 个文件 - ├ INFO: -> 8a97754e9e3c2b9a.ll - ├ INFO: [1/1] main.py (0.9s) - ├ INFO: 翻译总耗时: 0.9s - ├ INFO: - [阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output - ├ INFO: [includes] 发现 Python 包文件: json\__init__.py - ├ INFO: [includes] 发现 Python 包文件: json\__parser.py - ├ INFO: [includes] 发现 Python 包文件: json\__writer.py - ├ INFO: [includes] 发现 Python 源文件: testcheck.py - ├ INFO: [includes] 发现 Python 包文件: w32\fileio.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32base.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32console.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32file.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32memory.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32process.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32sync.py - ├ INFO: [includes] 发现 Python 包文件: w32\winsock2.py - ├ INFO: [includes] 发现 Python 源文件: memhub.py - ├ INFO: [includes] 发现 Python 源文件: string.py - ├ INFO: [includes] 发现 Python 源文件: stdint.py - ├ INFO: [includes] 发现 Python 源文件: stdio.py - ├ INFO: [includes] 发现间接依赖: viperio.py - ├ INFO: [includes] 发现间接依赖: atom.py - ├ INFO: - [includes 编译] 找到 18 个 Python 源文件 - ├ INFO: 跳过(预编译): atom.py -> 271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(声明文件): stdint.py - ├ INFO: 跳过(声明文件): stdio.py - ├ INFO: 跳过(预编译): string.py -> 9474791561654346.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): viperio.py -> c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): memhub.py -> f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): __parser.py -> 240a9a4157959a9f.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): __writer.py -> 20cd49775c100a38.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): __init__.py -> 57288496f7c2d1ad.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32base.py -> 7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32console.py -> bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): testcheck.py -> 14d33679f7fadf1f.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32file.py -> f6b51804a0ba8ff0.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): fileio.py -> 0035c95a18d4f8e8.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32memory.py -> 72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32process.py -> 067c78e9f121dce3.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): win32sync.py -> 06f53cc594b4ac6c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 跳过(预编译): winsock2.py -> 6446627d4f07a1b5.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - [编译] 找到 1 个 .ll 文件需要编译 - ├ INFO: 并行编译 1 个文件 (workers=1) - ├ SUCCESS: 8a97754e9e3c2b9a.ll - ├ INFO: - [链接] 找到 1 个 .obj 文件 - ├ INFO: [链接] 额外库文件: 16 个 - ├ INFO: - 271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 9474791561654346.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 240a9a4157959a9f.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 20cd49775c100a38.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 57288496f7c2d1ad.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 14d33679f7fadf1f.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - f6b51804a0ba8ff0.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 0035c95a18d4f8e8.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 067c78e9f121dce3.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 06f53cc594b4ac6c.x86_64-pc-windows-gnu.pic.obj - ├ INFO: - 6446627d4f07a1b5.x86_64-pc-windows-gnu.pic.obj - ├ INFO: 执行: clang++ -Wl,--allow-multiple-definition -Wl,--unresolved-symbols=ignore-in-object-files -o D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\JsonTest.exe D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\271ea3decb810db2.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\9474791561654346.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\f3560b99de458aec.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\240a9a4157959a9f.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\20cd49775c100a38.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\57288496f7c2d1ad.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\7e529fe7a078cfef.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\14d33679f7fadf1f.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\f6b51804a0ba8ff0.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\0035c95a18d4f8e8.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\067c78e9f121dce3.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\06f53cc594b4ac6c.x86_64-pc-windows-gnu.pic.obj D:\Users\TermiNexus\Desktop\TransPyC\includes.binary\6446627d4f07a1b5.x86_64-pc-windows-gnu.pic.obj -lmsvcrt -lucrt -lpthread -lmingwex -lkernel32 -luser32 -latomic - ├ ERROR: 链接失败: D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x5f6): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x652): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x68e): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x70e): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x778): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x7cc): more undefined references to `8a97754e9e3c2b9a.parse' follow - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0xa2f): undefined reference to `8a97754e9e3c2b9a.write' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0xa86): undefined reference to `8a97754e9e3c2b9a.write' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0xad8): undefined reference to `8a97754e9e3c2b9a.write' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0xb2a): undefined reference to `8a97754e9e3c2b9a.write' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0xb7a): undefined reference to `8a97754e9e3c2b9a.write' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0xc3c): more undefined references to `8a97754e9e3c2b9a.write' follow - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0xd57): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x1178): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x1222): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x1292): undefined reference to `8a97754e9e3c2b9a.parse' - D:/msys64/mingw64/bin/ld: D:\Users\TermiNexus\Desktop\TransPyC\Test\JsonTest\output\8a97754e9e3c2b9a.obj:8a97754e9e3c2b9a_dso.ll:(.text+0x1302): undefined reference to `8a97754e9e3c2b9a.parse' - clang++: error: linker command failed with exit code 1 (use -v to see invocation) - ├ ERROR: - 链接失败,立即终止编译。 - -【SimdTest】编译失败 - ├ INFO: 读取配置文件: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\project.json - ├ INFO: 项目目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest - ├ INFO: 源目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\App - ├ INFO: 临时目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\temp - ├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\output - ├ INFO: 阶段: all - ├ INFO: 编译器: llc -filetype=obj - ├ INFO: 目标三元组: x86_64-pc-windows-gnu - ├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 - ├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\output - ├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\temp - ├ INFO: 清理完成 - ├ INFO: 找到 1 个可达源文件(从入口遍历) - ├ INFO: [1/1] 生成签名: main.py - ├ INFO: -> 2fcb6780db4d937f.pyi (签名) - ├ INFO: 处理 13 个被引用的 Python 库文件 - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.pyi - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.pyi - ├ INFO: 生成签名: numpy\__init__.py -> c3a6aed1f1fb8b1e.pyi - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.pyi - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.pyi - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.pyi - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.pyi - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.pyi - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.pyi - ├ INFO: 生成签名: vipermath.py -> 3f7c5e78d8652535.pyi - ├ INFO: 生成签名: vipersimd.py -> c24f25b14b4bbd0a.pyi - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.pyi - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.pyi - ├ INFO: 结构体注册表: 23 个类型, 0 个枚举 - ├ INFO: -> 2fcb6780db4d937f.stub.ll (声明) - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.stub.ll - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.stub.ll - ├ INFO: 生成声明: numpy\__init__.py -> c3a6aed1f1fb8b1e.stub.ll - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.stub.ll - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.stub.ll - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.stub.ll - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.stub.ll - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.stub.ll - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.stub.ll - ├ INFO: 生成声明: vipermath.py -> 3f7c5e78d8652535.stub.ll - ├ INFO: 生成声明: vipersimd.py -> c24f25b14b4bbd0a.stub.ll - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.stub.ll - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll - ├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\temp - ├ INFO: SHA1 映射表 (14 个文件): - ├ INFO: 找到 1 个可达源文件(已按依赖排序) - ├ INFO: 处理顺序: - ├ INFO: 1. main.py - ├ INFO: 过滤旧文件: stub 49->14, sig 93->14 - ├ INFO: [缓存] 构建共享符号表数据... - ├ INFO: [缓存] 共享符号表构建完成 (0.41s, 1038 符号, 5 泛型模板, 42 doc 元数据) - ├ INFO: - 需要翻译 1 个文件 - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'printf' - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'printf' - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'printf' - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'CUnsignedChar' - ├ INFO: -> 2fcb6780db4d937f.ll - ├ INFO: [1/1] main.py (3.2s) - ├ INFO: 翻译总耗时: 3.2s - ├ INFO: - [阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\output - ├ INFO: [includes] 发现 Python 源文件: stdlib.py - ├ INFO: [includes] 发现 Python 源文件: memhub.py - ├ INFO: [includes] 发现 Python 源文件: vipersimd.py - ├ INFO: [includes] 发现 Python 源文件: stdio.py - ├ INFO: [includes] 发现 Python 源文件: stdint.py - ├ INFO: [includes] 发现 Python 源文件: testcheck.py - ├ INFO: [includes] 发现 Python 包文件: numpy\__init__.py - ├ INFO: [includes] 发现间接依赖: string.py - ├ INFO: [includes] 发现间接依赖: atom.py - ├ INFO: [includes] 发现间接依赖: viperio.py - ├ INFO: [includes] 发现间接依赖: w32\win32console.py - ├ INFO: [includes] 发现间接依赖: w32\win32base.py - ├ INFO: [includes] 发现间接依赖: vipermath.py - ├ INFO: - [includes 编译] 找到 13 个 Python 源文件 - ├ INFO: 跳过(声明文件): stdint.py - ├ INFO: 跳过(声明文件): stdio.py - ├ INFO: 跳过(声明文件): stdlib.py - ├ INFO: 跳过(预编译): string.py -> 9474791561654346.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32base.py -> 7e529fe7a078cfef.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32console.py -> bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): testcheck.py -> 14d33679f7fadf1f.x86_64-pc-windows-gnu.static.obj - ├ INFO: 翻译 6 个文件 - ├ INFO: -> 271ea3decb810db2.ll - ├ INFO: [1/6] 翻译完成: atom.py - ├ INFO: -> c9f4be41ca1cc2b4.ll - ├ INFO: [2/6] 翻译完成: viperio.py - ├ INFO: -> c24f25b14b4bbd0a.ll - ├ INFO: [3/6] 翻译完成: vipersimd.py - ├ INFO: -> 3f7c5e78d8652535.ll - ├ INFO: [4/6] 翻译完成: vipermath.py - ├ INFO: -> f3560b99de458aec.ll - ├ INFO: [5/6] 翻译完成: memhub.py - ├ INFO: -> c3a6aed1f1fb8b1e.ll - ├ INFO: [6/6] 翻译完成: __init__.py - ├ INFO: 编译 6 个 .ll 文件 - ├ SUCCESS: [1/6] 编译成功: atom.py - ├ SUCCESS: [2/6] 编译成功: viperio.py - ├ SUCCESS: [3/6] 编译成功: vipersimd.py - ├ SUCCESS: [4/6] 编译成功: memhub.py - ├ SUCCESS: [5/6] 编译成功: vipermath.py - ├ SUCCESS: [6/6] 编译成功: __init__.py - ├ INFO: [清理] 删除 6 个过时文件 - ├ INFO: - [编译] 找到 1 个 .ll 文件需要编译 - ├ INFO: 并行编译 1 个文件 (workers=1) - ├ ERROR: 2fcb6780db4d937f.ll: llc.exe: error: llc.exe: D:\Users\TermiNexus\Desktop\TransPyC\Test\SimdTest\output\2fcb6780db4d937f_dso.ll:1934:1: error: expected instruction opcode - endif: - ^ - ├ ERROR: - 1 个文件编译失败 - [FATAL] 方法体编译失败 (ndarray[double].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[float].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[int].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[i32].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[i8].sum): Exception: Undefined function: 'CUnsignedChar' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'CUnsignedChar' - [FATAL] 方法体编译失败 (ndarray[i8].sum): Exception: Undefined function: 'CUnsignedChar' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'CUnsignedChar' - -【TestProject】编译失败 - ├ INFO: 读取配置文件: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\project.json - ├ INFO: 项目目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject - ├ INFO: 源目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\App - ├ INFO: 临时目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\temp - ├ INFO: 输出目录: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\output - ├ INFO: 阶段: all - ├ INFO: 编译器: llc -filetype=obj - ├ INFO: 目标三元组: x86_64-pc-windows-gnu - ├ INFO: 数据布局: e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128 - ├ INFO: output: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\output - ├ INFO: temp: 已清空 D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\temp - ├ INFO: 清理完成 - ├ INFO: 找到 7 个可达源文件(从入口遍历) - ├ INFO: [1/7] 生成签名: config.py - ├ INFO: -> 8e0d8fdba991b3b4.pyi (签名) - ├ INFO: [2/7] 生成签名: main.py - ├ INFO: -> 49cae05490a513cb.pyi (签名) - ├ INFO: [3/7] 生成签名: test_numpy.py - ├ INFO: -> 3cd87018ba1e76bc.pyi (签名) - ├ INFO: [4/7] 生成签名: zc\class_test.py - ├ INFO: -> e5fb16127bce8f68.pyi (签名) - ├ INFO: [5/7] 生成签名: zc\config.py - ├ INFO: -> cfc83b830141b00e.pyi (签名) - ├ INFO: [6/7] 生成签名: zc\logic_test.py - ├ INFO: -> faec3233d98371da.pyi (签名) - ├ INFO: [7/7] 生成签名: zc\test.py - ├ INFO: -> 75583f20a922ab2e.pyi (签名) - ├ INFO: 处理 12 个被引用的 Python 库文件 - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.pyi - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.pyi - ├ INFO: 缓存命中(全局): numpy\__init__.py -> c3a6aed1f1fb8b1e.pyi - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.pyi - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.pyi - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.pyi - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.pyi - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.pyi - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.pyi - ├ INFO: 缓存命中(全局): vipermath.py -> 3f7c5e78d8652535.pyi - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.pyi - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.pyi - ├ INFO: 结构体注册表: 30 个类型, 1 个枚举 - ├ INFO: -> 8e0d8fdba991b3b4.stub.ll (声明) - ├ INFO: -> 49cae05490a513cb.stub.ll (声明) - ├ INFO: -> 3cd87018ba1e76bc.stub.ll (声明) - ├ INFO: -> e5fb16127bce8f68.stub.ll (声明) - ├ INFO: -> cfc83b830141b00e.stub.ll (声明) - ├ INFO: -> faec3233d98371da.stub.ll (声明) - ├ INFO: -> 75583f20a922ab2e.stub.ll (声明) - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.stub.ll - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.stub.ll - ├ INFO: 缓存命中(全局): numpy\__init__.py -> c3a6aed1f1fb8b1e.stub.ll - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.stub.ll - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.stub.ll - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.stub.ll - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.stub.ll - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.stub.ll - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.stub.ll - ├ INFO: 缓存命中(全局): vipermath.py -> 3f7c5e78d8652535.stub.ll - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.stub.ll - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll - ├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\temp - ├ INFO: SHA1 映射表 (19 个文件): - ├ INFO: 找到 7 个可达源文件(已按依赖排序) - ├ INFO: 处理顺序: - ├ INFO: 1. config.py - ├ INFO: 2. test_numpy.py - ├ INFO: 3. zc\class_test.py - ├ INFO: 4. zc\config.py - ├ INFO: 5. zc\logic_test.py - ├ INFO: 6. zc\test.py - ├ INFO: 7. main.py - ├ INFO: 过滤旧文件: stub 63->19, sig 114->19 - ├ INFO: [缓存] 构建共享符号表数据... - ├ INFO: [缓存] 共享符号表构建完成 (0.52s, 1199 符号, 5 泛型模板, 57 doc 元数据) - ├ INFO: - 需要翻译 7 个文件 - ├ INFO: 并行翻译 (workers=7) - ├ INFO: 共享符号表已序列化 (541KB) - ├ INFO: -> 8e0d8fdba991b3b4.ll - ├ INFO: [1/7] 完成: config.py - ├ INFO: -> cfc83b830141b00e.ll - ├ INFO: [2/7] 完成: zc\config.py - ├ INFO: -> e5fb16127bce8f68.ll - ├ INFO: [3/7] 完成: zc\class_test.py - ├ INFO: -> faec3233d98371da.ll - ├ INFO: [4/7] 完成: zc\logic_test.py - ├ INFO: -> 75583f20a922ab2e.ll - ├ INFO: [5/7] 完成: zc\test.py - ├ INFO: -> 49cae05490a513cb.ll - ├ INFO: [6/7] 完成: main.py - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'printf' - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'printf' - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'printf' - ├ WARN: HandlesImports: 忽略异常 Undefined function: 'CUnsignedChar' - ├ INFO: -> 3cd87018ba1e76bc.ll - ├ INFO: [7/7] 完成: test_numpy.py - ├ INFO: 翻译总耗时: 8.2s - ├ INFO: - [阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\output - ├ INFO: [includes] 发现 Python 源文件: testcheck.py - ├ INFO: [includes] 发现 Python 源文件: vipermath.py - ├ INFO: [includes] 发现 Python 源文件: stdint.py - ├ INFO: [includes] 发现 Python 包文件: numpy\__init__.py - ├ INFO: [includes] 发现 Python 源文件: stdlib.py - ├ INFO: [includes] 发现 Python 源文件: string.py - ├ INFO: [includes] 发现 Python 源文件: stdio.py - ├ INFO: [includes] 发现 Python 源文件: memhub.py - ├ INFO: [includes] 发现间接依赖: w32\win32console.py - ├ INFO: [includes] 发现间接依赖: w32\win32base.py - ├ INFO: [includes] 发现间接依赖: atom.py - ├ INFO: [includes] 发现间接依赖: viperio.py - ├ INFO: - [includes 编译] 找到 12 个 Python 源文件 - ├ INFO: 跳过(预编译): atom.py -> 271ea3decb810db2.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(声明文件): stdint.py - ├ INFO: 跳过(声明文件): stdio.py - ├ INFO: 跳过(声明文件): stdlib.py - ├ INFO: 跳过(预编译): string.py -> 9474791561654346.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): viperio.py -> c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): memhub.py -> f3560b99de458aec.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): vipermath.py -> 3f7c5e78d8652535.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): __init__.py -> c3a6aed1f1fb8b1e.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32base.py -> 7e529fe7a078cfef.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32console.py -> bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): testcheck.py -> 14d33679f7fadf1f.x86_64-pc-windows-gnu.static.obj - ├ INFO: - [编译] 找到 7 个 .ll 文件需要编译 - ├ INFO: 并行编译 7 个文件 (workers=7) - ├ SUCCESS: 8e0d8fdba991b3b4.ll - ├ SUCCESS: 49cae05490a513cb.ll - ├ ERROR: 3cd87018ba1e76bc.ll: llc.exe: error: llc.exe: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject\output\3cd87018ba1e76bc_dso.ll:1761:1: error: expected instruction opcode - endif: - ^ - ├ SUCCESS: e5fb16127bce8f68.ll - ├ SUCCESS: cfc83b830141b00e.ll - ├ SUCCESS: 75583f20a922ab2e.ll - ├ SUCCESS: faec3233d98371da.ll - ├ ERROR: - 1 个文件编译失败 - [FATAL] 方法体编译失败 (ndarray[double].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[float].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[int].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[i32].print_arr): Exception: Undefined function: 'printf' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 32, in HandleBodyLlvm - self.Trans.IfHandler._HandleIfLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesIf.py", line 193, in _HandleIfLlvm - self.Trans.BodyHandler.HandleBodyLlvm(Node.body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'printf' - [FATAL] 方法体编译失败 (ndarray[i8].sum): Exception: Undefined function: 'CUnsignedChar' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'CUnsignedChar' - [FATAL] 方法体编译失败 (ndarray[i8].sum): Exception: Undefined function: 'CUnsignedChar' - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 30, in HandleBodyLlvm - self.Trans.AnnAssignHandler._HandleAnnAssignLlvm(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 289, in _HandleAnnAssignLlvm - self._HandleAnnAssignLlvmInner(Node) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesAnnAssign.py", line 487, in _HandleAnnAssignLlvmInner - InitValue = self.HandleExprLlvm(Node.value, VarType=VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBase.py", line 526, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 352, in _HandleCallLlvm - raise Exception(f"Undefined function: '{FuncName}'") - Exception: Undefined function: 'CUnsignedChar' - -【TestProject2】编译失败 - ... (省略前 17 行) ... - ├ INFO: 处理 22 个被引用的 Python 库文件 - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.pyi - ├ INFO: 生成签名: binascii.py -> 257e074b935c33b4.pyi - ├ INFO: 生成签名: hashlib\__init__.py -> 96837bcc64032444.pyi - ├ INFO: 生成签名: hashlib\__md5.py -> 19f8024d10c828e8.pyi - ├ INFO: 生成签名: hashlib\__sha1.py -> 0df65b8ed15664b0.pyi - ├ INFO: 生成签名: hashlib\__sha256.py -> c9d54a4158f7f5a8.pyi - ├ INFO: 生成签名: hashlib\__sha512.py -> 6ff26590374ae6fc.pyi - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.pyi - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.pyi - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.pyi - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.pyi - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.pyi - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.pyi - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.pyi - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.pyi - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.pyi - ├ INFO: 生成签名: zlib\pyzlib.py -> 1c46d554b3a3f9f3.pyi - ├ INFO: 生成签名: zlib\zchecksum.py -> 8ebed83a7817fa0c.pyi - ├ INFO: 生成签名: zlib\zdef.py -> 213348433fb01cc6.pyi - ├ INFO: 生成签名: zlib\zdeflate.py -> 90921d009fdd674c.pyi - ├ INFO: 生成签名: zlib\zhuff.py -> d541ade6afb689a5.pyi - ├ INFO: 生成签名: zlib\zinflate.py -> 451745df21e598af.pyi - ├ INFO: 结构体注册表: 35 个类型, 0 个枚举 - ├ INFO: -> 541a1ed9b8be53c8.stub.ll (声明) - ├ INFO: -> cfc83b830141b00e.stub.ll (声明) - ├ INFO: 缓存命中(全局): atom.py -> 271ea3decb810db2.stub.ll - ├ INFO: 生成声明: binascii.py -> 257e074b935c33b4.stub.ll - ├ INFO: 生成声明: hashlib\__init__.py -> 96837bcc64032444.stub.ll - ├ INFO: 生成声明: hashlib\__md5.py -> 19f8024d10c828e8.stub.ll - ├ INFO: 生成声明: hashlib\__sha1.py -> 0df65b8ed15664b0.stub.ll - ├ INFO: 生成声明: hashlib\__sha256.py -> c9d54a4158f7f5a8.stub.ll - ├ INFO: 生成声明: hashlib\__sha512.py -> 6ff26590374ae6fc.stub.ll - ├ INFO: 缓存命中(全局): memhub.py -> f3560b99de458aec.stub.ll - ├ INFO: 缓存命中(全局): stdint.py -> f5522571bcce7bcb.stub.ll - ├ INFO: 缓存命中(全局): stdio.py -> 6f62fe05c5ea1ceb.stub.ll - ├ INFO: 缓存命中(全局): stdlib.py -> 90c53dd6db8d41cf.stub.ll - ├ INFO: 缓存命中(全局): string.py -> 9474791561654346.stub.ll - ├ INFO: 缓存命中(全局): testcheck.py -> 14d33679f7fadf1f.stub.ll - ├ INFO: 缓存命中(全局): viperio.py -> c9f4be41ca1cc2b4.stub.ll - ├ INFO: 缓存命中(全局): w32\win32base.py -> 7e529fe7a078cfef.stub.ll - ├ INFO: 缓存命中(全局): w32\win32console.py -> bbdf3bbd4c3bc28c.stub.ll - ├ INFO: 生成声明: zlib\pyzlib.py -> 1c46d554b3a3f9f3.stub.ll - ├ INFO: 生成声明: zlib\zchecksum.py -> 8ebed83a7817fa0c.stub.ll - ├ INFO: 生成声明: zlib\zdef.py -> 213348433fb01cc6.stub.ll - ├ INFO: 生成声明: zlib\zdeflate.py -> 90921d009fdd674c.stub.ll - ├ INFO: 生成声明: zlib\zhuff.py -> d541ade6afb689a5.stub.ll - ├ INFO: 生成声明: zlib\zinflate.py -> 451745df21e598af.stub.ll - ├ SUCCESS: 声明接口生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject2\temp - ├ INFO: SHA1 映射表 (24 个文件): - ├ INFO: 找到 2 个可达源文件(已按依赖排序) - ├ INFO: 处理顺序: - ├ INFO: 1. main.py - ├ INFO: 2. zc\config.py - ├ INFO: 过滤旧文件: stub 70->24, sig 127->24 - ├ INFO: [缓存] 构建共享符号表数据... - ├ INFO: [缓存] 共享符号表构建完成 (0.65s, 951 符号, 5 泛型模板, 58 doc 元数据) - ├ INFO: - 需要翻译 2 个文件 - ├ INFO: 并行翻译 (workers=2) - ├ INFO: 共享符号表已序列化 (451KB) - ├ INFO: -> cfc83b830141b00e.ll - ├ INFO: [1/2] 完成: zc\config.py - ├ INFO: -> 541a1ed9b8be53c8.ll - ├ INFO: [2/2] 完成: main.py - ├ INFO: 翻译总耗时: 0.9s - ├ INFO: - [阶段二完成] .ll 文件生成到: D:\Users\TermiNexus\Desktop\TransPyC\Test\TestProject2\output - ├ INFO: [includes] 发现 Python 包文件: w32\fileio.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32base.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32console.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32file.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32memory.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32process.py - ├ INFO: [includes] 发现 Python 包文件: w32\win32sync.py - ├ INFO: [includes] 发现 Python 包文件: w32\winsock2.py - ├ INFO: [includes] 发现 Python 源文件: stdint.py - ├ INFO: [includes] 发现 Python 源文件: testcheck.py - ├ INFO: [includes] 发现 Python 包文件: zlib\pyzlib.py - ├ INFO: [includes] 发现 Python 包文件: zlib\zchecksum.py - ├ INFO: [includes] 发现 Python 包文件: zlib\zdef.py - ├ INFO: [includes] 发现 Python 包文件: zlib\zdeflate.py - ├ INFO: [includes] 发现 Python 包文件: zlib\zhuff.py - ├ INFO: [includes] 发现 Python 包文件: zlib\zinflate.py - ├ INFO: [includes] 发现 Python 包文件: zlib\__init__.py - ├ INFO: [includes] 发现 Python 包文件: hashlib\__init__.py - ├ INFO: [includes] 发现 Python 包文件: hashlib\__md5.py - ├ INFO: [includes] 发现 Python 包文件: hashlib\__sha1.py - ├ INFO: [includes] 发现 Python 包文件: hashlib\__sha256.py - ├ INFO: [includes] 发现 Python 包文件: hashlib\__sha512.py - ├ INFO: [includes] 发现 Python 源文件: binascii.py - ├ INFO: [includes] 发现间接依赖: stdio.py - ├ INFO: [includes] 发现间接依赖: stdlib.py - ├ INFO: [includes] 发现间接依赖: string.py - ├ INFO: [includes] 发现间接依赖: memhub.py - ├ INFO: [includes] 发现间接依赖: atom.py - ├ INFO: [includes] 发现间接依赖: viperio.py - ├ INFO: - [includes 编译] 找到 29 个 Python 源文件 - ├ INFO: 跳过(预编译): atom.py -> 271ea3decb810db2.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(声明文件): stdint.py - ├ INFO: 跳过(声明文件): stdio.py - ├ INFO: 跳过(声明文件): stdlib.py - ├ INFO: 跳过(预编译): string.py -> 9474791561654346.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(声明文件): __init__.py - ├ INFO: 跳过(预编译): viperio.py -> c9f4be41ca1cc2b4.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): memhub.py -> f3560b99de458aec.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32base.py -> 7e529fe7a078cfef.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32console.py -> bbdf3bbd4c3bc28c.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): testcheck.py -> 14d33679f7fadf1f.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32file.py -> f6b51804a0ba8ff0.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): fileio.py -> 0035c95a18d4f8e8.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32memory.py -> 72e2d5ccb7cedcf1.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32process.py -> 067c78e9f121dce3.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): win32sync.py -> 06f53cc594b4ac6c.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(预编译): winsock2.py -> 6446627d4f07a1b5.x86_64-pc-windows-gnu.static.obj - ├ INFO: 跳过(声明文件): __init__.py - ├ INFO: 翻译 11 个文件 - ├ INFO: -> c9d54a4158f7f5a8.ll - ├ INFO: [1/11] 翻译完成: __sha256.py - ├ INFO: -> 257e074b935c33b4.ll - ├ INFO: [2/11] 翻译完成: binascii.py - ├ ERROR: __sha512.py: Type of #2 arg mismatch: i8* != i32 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\includes\hashlib\__sha512.py, line 48): - 48 | memset(self, 0, sha512.__sizeof__()) - Type of #2 arg mismatch: i8* != i32 - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1039, in _translate_file - result = trans.Convert( - ^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Shell\TransPyC.py", line 555, in Convert - code: str = self.translator.GenerateCCode(Tree, target='llvm') - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 642, in GenerateCCode - return self.GenerateLlvmDirect(Tree) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 164, in GenerateLlvmDirect - self.ClassHandler._EmitClassLlvm(Node, Gen) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesClassDef.py", line 675, in _EmitClassLlvm - self.Trans.FunctionHandler._EmitFunctionLlvm(item, Gen, ClassName=ClassName) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 255, in _HandleCallLlvm - result = self.Trans.ExprBuiltinHandle._HandleBuiltinCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 185, in _HandleBuiltinCallLlvm - return self._HandleMemsetLlvm(Node.args) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 804, in _HandleMemsetLlvm - Gen.builder.call(memset_func, [dst, val, size], name="memset_call") - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) - TypeError: Type of #2 arg mismatch: i8* != i32 - - The above exception was the direct cause of the following exception: - - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 89, in _parallel_translate_worker - trans._translate_file(src_path, out_path, prebuilt_ModuleSha1Map=prebuilt_ModuleSha1Map) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1055, in _translate_file - raise type(e)(enriched) from e - TypeError: Type of #2 arg mismatch: i8* != i32 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\includes\hashlib\__sha512.py, line 48): - 48 | memset(self, 0, sha512.__sizeof__()) - Type of #2 arg mismatch: i8* != i32 - - ├ INFO: -> 19f8024d10c828e8.ll - ├ INFO: [4/11] 翻译完成: __md5.py - ├ INFO: -> 0df65b8ed15664b0.ll - ├ INFO: [5/11] 翻译完成: __sha1.py - ├ INFO: -> 8ebed83a7817fa0c.ll - ├ INFO: [6/11] 翻译完成: zchecksum.py - ├ INFO: -> 213348433fb01cc6.ll - ├ INFO: [7/11] 翻译完成: zdef.py - ├ ERROR: zhuff.py: Type of #2 arg mismatch: i8* != i32 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\includes\zlib\zhuff.py, line 32): - 32 | memset(bl_count, 0, bl_count.__sizeof__()) - Type of #2 arg mismatch: i8* != i32 - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1039, in _translate_file - result = trans.Convert( - ^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Shell\TransPyC.py", line 555, in Convert - code: str = self.translator.GenerateCCode(Tree, target='llvm') - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 642, in GenerateCCode - return self.GenerateLlvmDirect(Tree) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Translator\LlvmGenerator.py", line 164, in GenerateLlvmDirect - self.ClassHandler._EmitClassLlvm(Node, Gen) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesClassDef.py", line 675, in _EmitClassLlvm - self.Trans.FunctionHandler._EmitFunctionLlvm(item, Gen, ClassName=ClassName) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 255, in _HandleCallLlvm - result = self.Trans.ExprBuiltinHandle._HandleBuiltinCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 185, in _HandleBuiltinCallLlvm - return self._HandleMemsetLlvm(Node.args) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 804, in _HandleMemsetLlvm - Gen.builder.call(memset_func, [dst, val, size], name="memset_call") - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) - TypeError: Type of #2 arg mismatch: i8* != i32 - - The above exception was the direct cause of the following exception: - - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 89, in _parallel_translate_worker - trans._translate_file(src_path, out_path, prebuilt_ModuleSha1Map=prebuilt_ModuleSha1Map) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\Projectrans\Phase2Translator.py", line 1055, in _translate_file - raise type(e)(enriched) from e - TypeError: Type of #2 arg mismatch: i8* != i32 - 源代码 (D:\Users\TermiNexus\Desktop\TransPyC\includes\zlib\zhuff.py, line 32): - 32 | memset(bl_count, 0, bl_count.__sizeof__()) - Type of #2 arg mismatch: i8* != i32 - - ├ INFO: -> 451745df21e598af.ll - ├ INFO: [9/11] 翻译完成: zinflate.py - ├ INFO: -> 90921d009fdd674c.ll - ├ INFO: [10/11] 翻译完成: zdeflate.py - ├ INFO: -> 1c46d554b3a3f9f3.ll - ├ INFO: [11/11] 翻译完成: pyzlib.py - ├ ERROR: - 2 个 include 文件翻译失败 - [FATAL] 方法体编译失败 (sha512.__init__): TypeError: Type of #2 arg mismatch: i8* != i32 - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 255, in _HandleCallLlvm - result = self.Trans.ExprBuiltinHandle._HandleBuiltinCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 185, in _HandleBuiltinCallLlvm - return self._HandleMemsetLlvm(Node.args) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 804, in _HandleMemsetLlvm - Gen.builder.call(memset_func, [dst, val, size], name="memset_call") - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) - TypeError: Type of #2 arg mismatch: i8* != i32 - [FATAL] 方法体编译失败 (zhuff_tree.build_codes): TypeError: Type of #2 arg mismatch: i8* != i32 - Traceback (most recent call last): - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesFunctions.py", line 1741, in _EmitFunctionLlvm - self.Trans.BodyHandler.HandleBodyLlvm(func_body) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 22, in HandleBodyLlvm - self.HandleExprLlvm(Node.value) - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesBody.py", line 77, in HandleExprLlvm - return self.Trans.ExprHandler.HandleExprLlvm(Node, VarType) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExpr.py", line 63, in HandleExprLlvm - return self.Trans.ExprCallHandle._HandleCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprCall.py", line 255, in _HandleCallLlvm - result = self.Trans.ExprBuiltinHandle._HandleBuiltinCallLlvm(Node) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 185, in _HandleBuiltinCallLlvm - return self._HandleMemsetLlvm(Node.args) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Users\TermiNexus\Desktop\TransPyC\lib\core\Handles\HandlesExprBuiltin.py", line 804, in _HandleMemsetLlvm - Gen.builder.call(memset_func, [dst, val, size], name="memset_call") - File "D:\Python312\Lib\site-packages\llvmlite\ir\builder.py", line 881, in call - inst = instructions.CallInstr(self.block, fn, args, name=name, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "D:\Python312\Lib\site-packages\llvmlite\ir\instructions.py", line 105, in __init__ - raise TypeError(msg) - TypeError: Type of #2 arg mismatch: i8* != i32 - -【LLvmLiteTest】运行失败 (编译耗时 21.8s) - [运行] LLvmLiteTest.exe: 退出码 3221225477 - -【StructTest】运行失败 (编译耗时 4.9s) - [运行] StructTest.exe: 退出码 3221225477 - -====================================================================== -有 9 个测试失败,请检查上方详情。 -====================================================================== diff --git a/test_inherited_decls.py b/test_inherited_decls.py deleted file mode 100644 index 11cf4fb..0000000 --- a/test_inherited_decls.py +++ /dev/null @@ -1,67 +0,0 @@ -import ast -import sys -sys.path.insert(0, 'd:\\Users\\TermiNexus\\Desktop\\TransPyC') - -from lib.Projectrans.DeclarationGenerator import DeclarationGenerator -from lib.includes import t - -# 读取 memhub.pyi -with open('d:\\Users\\TermiNexus\\Desktop\\TransPyC\\.transpyc_cache\\f3560b99de458aec.pyi', 'r', encoding='utf-8') as f: - pyi_content = f.read() - -tree = ast.parse(pyi_content) - -# 查找 MemBuddy 类 -mem_buddy_node = None -mem_manager_node = None -for node in ast.iter_child_nodes(tree): - if isinstance(node, ast.ClassDef): - if node.name == 'MemBuddy': - mem_buddy_node = node - elif node.name == 'MemManager': - mem_manager_node = node - -print(f"Found MemBuddy: {mem_buddy_node is not None}") -print(f"Found MemManager: {mem_manager_node is not None}") - -if mem_buddy_node: - print(f"\nMemBuddy bases: {[ast.dump(b) for b in mem_buddy_node.bases]}") - print(f"MemBuddy methods: {[item.name for item in mem_buddy_node.body if isinstance(item, ast.FunctionDef)]}") - -if mem_manager_node: - print(f"\nMemManager methods: {[item.name for item in mem_manager_node.body if isinstance(item, ast.FunctionDef)]}") - -# 创建 DeclarationGenerator 实例 -decl_gen = DeclarationGenerator( - struct_names={'MemManager', 'MemBuddy', 'MemPool', 'MemSlab'}, - enum_names=set(), - module_sha1='f3560b99de458aec', - struct_sha1_map={'MemManager': 'f3560b99de458aec', 'MemBuddy': 'f3560b99de458aec'}, - class_def_map={'MemManager': mem_manager_node, 'MemBuddy': mem_buddy_node} -) - -# 设置 _pyi_tree -decl_gen._pyi_tree = tree - -# 构建 _t_alias_map -decl_gen._t_alias_map = {} -for node in ast.iter_child_nodes(tree): - if isinstance(node, ast.ImportFrom): - if node.module in ('t', 'c'): - for alias in node.names: - name = alias.name - asname = alias.asname or name - t_cls = getattr(t, name, None) - if isinstance(t_cls, type): - decl_gen._t_alias_map[asname] = t_cls - -# 测试 _is_marker_base -print(f"\n_is_marker_base('MemManager'): {decl_gen._is_marker_base('MemManager')}") - -# 测试 _generate_inherited_method_decls -if mem_buddy_node: - struct_type_name = '%"f3560b99de458aec.MemBuddy"' - decls = decl_gen._generate_inherited_method_decls(mem_buddy_node, 'MemBuddy', struct_type_name) - print(f"\nInherited method decls ({len(decls)}):") - for d in decls: - print(f" {d}") diff --git a/tpc_profile.prof b/tpc_profile.prof deleted file mode 100644 index 0ebeab3cffb482e95b1e0e200927c4c17eb43fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345057 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

)MH}^k-|Gtbe$^DCTa*1Vyb|<(_`KYfU|LbY( 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≷rPS{lUL9^~l`qlPX&%blL+`1jYzg#Ri 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

t-(cHg#i7DQ8SJr-4kp@A;cFxvy_B= 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 z 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

%3&uWdfo^KZC)JqAO_6X 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