PyPy Python 解释器选项¶
以下选项可以在 rpython targetpypystandalone
之后使用,也可以作为 py.py
的选项使用。
- –allworkingmodules: 使用尽可能多的工作模块
- –ext: 以逗号分隔的第三方内置模块列表
- –hash: 用于字符串的哈希函数:来自 CPython 2.7 的 fnv 或来自 CPython >= 3.4 的 siphash24
- –objspace-disable_call_speedhacks: 确保所有调用都通过 space.call_args
- –objspace-disable_entrypoints: 禁用外部入口点,特别是 cpyext 模块和 cffi 的嵌入模式。
- –objspace-honor__builtins__: 尊重模块字典的 __builtins__ 键
- –objspace-lonepycfiles: 导入没有匹配 py 文件的 pyc 文件
- –objspace-std-intshortcut: 在 BINARY_ADD//BINARY_SUBTRACT 及其就地对应项中对两个整数的加法和减法进行特殊情况处理
- –objspace-std-methodcachesizeexp: 2 ** methodcachesizeexp 是方法缓存的大小
- –objspace-std-newshortcut: 缓存和快捷方式从内置类型调用 __new__
- –objspace-std-optimized_list_getitem: 对 ‘list[integer]’ 表达式进行特殊情况处理
- –objspace-std-reinterpretasserts: 在断言失败时执行重新解释(仅与测试相关)
- –objspace-std-withliststrategies: 启用优化存储基本类型列表的方式
- –objspace-std-withmethodcachecounter: 尝试缓存方法并在 __pypy__ 中提供计数器。仅用于测试目的。
- –objspace-std-withprebuiltint: 预先构建常用的 int 对象
- –objspace-std-withsmalllong: 在 C long long 中使用 ‘long’ 的版本
- –objspace-std-withspecialisedtuple: 使用专门的元组
- –objspace-std-withtproxy: 支持透明代理
- –prebuiltintfrom: 预先构建的最低整数
- –prebuiltintto: 预先构建的最高整数
- –soabi: 用于区分针对不同 Python 解释器构建的扩展模块的标签
- –translationmodules: 仅使用在 pypy 上运行 translate.py 所需的那些模块
- –withmod-__builtin__: 使用模块 __builtin__
- –withmod-__pypy__: 使用模块 __pypy__
- –withmod-_ast: 使用模块 _ast
- –withmod-_cffi_backend: 使用模块 _cffi_backend
- –withmod-_codecs: 使用模块 _codecs
- –withmod-_collections: 使用模块 _collections
- –withmod-_continuation: 使用模块 _continuation
- –withmod-_cppyy: 使用模块 _cppyy
- –withmod-_csv: 使用模块 _csv
- –withmod-_demo: 使用模块 _demo
- –withmod-_io: 使用模块 _io
- –withmod-_jitlog: 使用模块 _jitlog
- –withmod-_locale: 使用模块 _locale
- –withmod-_lsprof: 使用模块 _lsprof
- –withmod-_md5: 使用模块 _md5
- –withmod-_minimal_curses: 使用模块 _minimal_curses
- –withmod-_multibytecodec: 使用模块 _multibytecodec
- –withmod-_multiprocessing: 使用模块 _multiprocessing
- –withmod-_pypyjson: 使用模块 _pypyjson
- –withmod-_random: 使用模块 _random
- –withmod-_rawffi: 使用模块 _rawffi
- –withmod-_sha: 使用模块 _sha
- –withmod-_socket: 使用模块 _socket
- –withmod-_sre: 使用模块 _sre
- –withmod-_testing: 使用模块 _testing
- –withmod-_vmprof: 使用模块 _vmprof
- –withmod-_warnings: 使用模块 _warnings
- –withmod-_weakref: 使用模块 _weakref
- –withmod-_winreg: 使用模块 _winreg
- –withmod-array: 使用模块 array
- –withmod-binascii: 使用模块 binascii
- –withmod-bz2: 使用模块 bz2
- –withmod-cStringIO: 使用模块 cStringIO
- –withmod-cmath: 使用模块 cmath
- –withmod-cpyext: 使用模块 cpyext
- –withmod-crypt: 使用模块 crypt
- –withmod-errno: 使用模块 errno
- –withmod-exceptions: 使用模块 exceptions
- –withmod-faulthandler: 使用模块 faulthandler
- –withmod-fcntl: 使用模块 fcntl
- –withmod-gc: 使用模块 gc
- –withmod-imp: 使用模块 imp
- –withmod-itertools: 使用模块 itertools
- –withmod-marshal: 使用模块 marshal
- –withmod-math: 使用模块 math
- –withmod-micronumpy: 使用模块 micronumpy
- –withmod-mmap: 使用模块 mmap
- –withmod-operator: 使用模块 operator
- –withmod-parser: 使用模块 parser
- –withmod-posix: 使用模块 posix
- –withmod-pwd: 使用模块 pwd
- –withmod-pyexpat: 使用模块 pyexpat
- –withmod-pypyjit: 使用模块 pypyjit
- –withmod-select: 使用模块 select
- –withmod-signal: 使用模块 signal
- –withmod-struct: 使用模块 struct
- –withmod-symbol: 使用模块 symbol
- –withmod-sys: 使用模块 sys
- –withmod-termios: 使用模块 termios
- –withmod-thread: 使用模块 thread
- –withmod-time: 使用模块 time
- –withmod-token: 使用模块 token
- –withmod-unicodedata: 使用模块 unicodedata
- –withmod-zipimport: 使用模块 zipimport
- –withmod-zlib: 使用模块 zlib
内部选项¶
- –withmod-_file: 使用模块 _file
- –withmod-_pickle_support: 使用模块 _pickle_support
通用翻译选项¶
以下是 bin/rpython
的选项。它们必须在命令行上的 targetxxx
之前给出。
- –opt -O: 设置优化级别 [0, 1, size, mem, 2, 3]
- -b –backend: 用于代码生成的后台
- –cc: 指定用于编译生成的 C 的编译器
- –continuation: 启用单次延续
- –dont-write-c-files: 使 C 后端将所有内容写入 /dev/null。这对基准测试很有用,因此您实际上不会涉及磁盘
- –dump_static_data_info: 转储静态数据信息
- –entrypoints: 选择辅助入口点的键的逗号分隔列表
- –fork-before: (UNIX) 在步骤之前创建可重启的检查点
- –gc: 垃圾收集策略
- –gcremovetypeptr: 从每个对象中删除 typeptr
- –gcrootfinder: 查找 GC 根的策略(仅限框架 GC)
- –if-block-merge: 合并 if … elif 链
- –inline-threshold: 内联函数的阈值
- –jit-backend: 选择 JIT 的后端
- –keepgoing: 在遇到错误时继续注释,并在注释阶段结束时报告所有错误
- –listcompr: 如果为真,则查找并特殊处理列表推导产生的操作序列,并尝试预先分配列表
- –lldebug: 如果为真,则生成 lldebug 构建
- –lldebug0: 如果为真,则生成 lldebug0 构建
- –log: 在翻译中包含调试打印(PYPYLOG=…)
- –lto: 启用链接时优化
- –make-jobs: 指定用于编译的 -j 参数(仅限 C 后端)
- –no__thread: 不要使用 __thread 来实现 TLS
- –output: 输出文件名
- –platform: 目标平台
- –profopt: 启用配置文件引导优化。默认情况下,为 PyPy 启用此功能。对于其他训练工作负载,请在 profoptargs 中指定它们
- –profoptargs: 配置文件引导优化训练脚本的绝对路径 + 脚本的必要参数
- –revdb: 提供一个可执行文件,该文件写入日志文件以进行反向调试
- –sandbox: 生成一个完全沙箱化的可执行文件
- –shared: 构建为共享库
- –thread: 启用线程原语的使用
- –translation-backendopt-constfold: 常量传播
- –translation-backendopt-inline: 进行基本的内联和 malloc 删除
- –translation-backendopt-mallocs: 删除 mallocs
- –translation-backendopt-none: 不运行任何后端优化
- –translation-backendopt-print_statistics: 在优化时打印统计信息
- –translation-backendopt-profile_based_inline: 使用调用计数分析来驱动内联,指定参数
- –translation-backendopt-profile_based_inline_threshold: 基于分析的内联中内联函数的阈值
- –translation-backendopt-really_remove_asserts: 真正删除看起来像“raise AssertionError”的操作,而不依赖于 C 编译器
- –translation-backendopt-remove_asserts: 删除看起来像“raise AssertionError”的操作,这使得 C 优化器可以删除断言
- –translation-backendopt-storesink: 执行存储下沉
- –translation-countfieldaccess: 统计 C 结构体的字段访问次数
- –translation-icon: 可执行文件要使用的(Windows)图标的路径
- –translation-jit: 生成一个 JIT
- –translation-jit_opencoder_model: 模型限制了跟踪的最大长度。如果您想比默认值更大,请使用 big
- –translation-jit_profiler: 将分析器支持集成到 JIT 中
- –translation-libname: Windows:要创建的 lib 文件的名称和可能的位置
- –translation-manifest: 要嵌入到可执行文件中的(Windows)清单的路径
- –translation-rpython_translate: 由 rpython/bin/rpython 和 translate.py 设置为 true
- –translation-rweakref: 后端支持 RPython 级别的弱引用
- –translation-split_gc_address_space: 确保 GC 指针和非 GC 指针完全分离
- –translation-taggedpointers: 为 true 时,启用标记指针的使用。如果为 false,则使用正常的装箱
- –translation-withsmallfuncsets: 将少于此数量的函数组表示为数组中的索引
- –verbose: 打印额外的信息
内部选项¶
- –inline-heuristic: 内联启发式函数的点分名称
- –translation-backendopt-profile_based_inline_heuristic: 基于分析的内联启发式函数的点分名称