You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Crash] The script generated by --enable-rft may be crashed in a few platforms #2306
Disable builtins refactor and enable simple import refactor by this way
$ pyarmor cfg rft_simple_import=1 rft_enables="import function class global local"
$ pyarmor gen --enable-rft test.py
$ python dist/test.py
# Output: this platform is arm
Use Pyarmor v9 new features pyarmor build --rft
$ pyarmor init -e test.py
$ pyarmor build --rft
It will generate one reformed script to dist/test.py, then obfuscate it as before.
Activity
htMarquee-owner commentedon Apr 5, 2026
Adding another data point: same issue on linux.aarch64 (Raspberry Pi 5), not just armv7.
Environment
python:3.13-bookworm, Python 3.13.12Findings
I narrowed it down to specific Python patterns. Simple functions work fine with RFT cross-compilation — the crash only happens with type annotations:
--enable-rft --platform linux.aarch64def hello(): return "world"pyarmor__1async def check(): return Trueimport logging; logging.getLogger(__name__)def deco(f): async def w(*a,**k): return await f(*a,**k); return wfrom dataclasses import dataclass; @dataclass class Info: name: strfrom typing import Optional; _cache: Optional[str] = NoneThe
pyarmor_runtime.soloads correctly — the crash is in the__pyarmor__()call processing the RFT-obfuscated bytecode.Without
--enable-rft, all modules (including dataclass/typing) work perfectly with--platform linux.aarch64.Minimal reproduction
Will try the
rft_simple_import=1workaround next.jondy commentedon Apr 9, 2026
For
linux.aarch64with Python 3.13 issue, it has been fixed. Please upgrade the following packages: