Add multi-platform support for pyarmor_runtime executables
1. Platform Detection and Executable Selection:
- Automatically detects OS (Windows, Linux, macOS) and architecture
- Intelligently selects the appropriate executable based on platform
- Supports architecture-specific executables (e.g., pyarmor-1shot-windows-x86_64.exe)
- Falls back to platform-specific and generic executables when needed
2. Runtime File Auto-Detection:
- Added ability to automatically find all pyarmor_runtime files in a directory
- Supports multiple runtime file formats (.pyd, .so, .dylib)
- Recursively searches through all subdirectories
3. New Command-Line Options:
- Added --executable option to specify a custom executable path
- Added --auto-detect-runtime option to automatically detect runtime files
* Port test runner script to Python.
This allows us to keep the test output in sorted order while still running the
tests in parallel. It also now defaults to using the number of available CPU
threads for parallel execution, rather than the previously hard-coded default.
* Also port decompyle_test.sh script to python within run_tests.py
* Fix cmake check target for multi-config generators.
Adds testing of release builds on both MSVC and GCC.
* Fix diff comparisons on Windows
* Ubuntu runners don't have ninja by default
* Support for JUMP_BACKWARD
* Initial support for Python 3.13
* Remove opcode from another old PR, not needed in the current one
* Update bytes/python_3_13.cpp
Co-authored-by: Michael Hansen <zrax0111@gmail.com>
* Update bytecode_ops.inl
Co-authored-by: Michael Hansen <zrax0111@gmail.com>
* Update .gitignore
Co-authored-by: Michael Hansen <zrax0111@gmail.com>
* Update bytecode_ops.inl
---------
Co-authored-by: Michael Hansen <zrax0111@gmail.com>
* Support for JUMP_BACKWARD
* Add missed flag CO_ASYNC_GENERATOR
* Revert "Support for JUMP_BACKWARD"
This reverts commit 81543ece8c481b6e6b0f5724d8aa6766d3dcb8ae.
* Modify .gitignore
* Added support for SWAP and WITH_EXCEPT_START, WITH_EXCEPT_START is simply added on top of SETUP_WITH_A so that it works properly.
* Resolve the warning about comparing size_t and int.
* Revert "Resolve the warning about comparing size_t and int."
This reverts commit 54dfe36629855ca557277572d307dacaf6a64fe9.
* Reapply "Resolve the warning about comparing size_t and int."
This reverts commit d21d1681ed6496856ea65151e5fd798f0a718416.
* Modify decompyle_test.sh
* Modify .gitignore
* Fix the logic error by placing the assignment inside the tuple
* Re-adding test files
* Fixing redundant brackets
* Add support for swap bytecode and simple WITH_EXCEPT_START bytecode support.
* Clean up some formatting issues
---------
Co-authored-by: Michael Hansen <zrax0111@gmail.com>
`make check JOBS=4` will spawn 4 workers and spread the tests among them.
`make check FILTER=try` will only run tests that contain `try` in their name.