设置沙盒版本的pypy

setting up sandbox version of pypy

为了获得 Pypy 的沙盒版本,首先我使用以下指令从源代码构建 Pypy

pypy ../../rpython/bin/rpython -O2 --sandbox targetpypystandalone  

(然后我将 Pypy-c 重命名为 Pypy-c-sandbox

当我测试时:

./pyinteractive.py  

它工作正常,但是当我想使用这个命令 运行 沙盒版本时:

./pyinteractive.py ../goal/pypy-c-sandbox

出现以下错误:

[platform:execute] gcc -shared /tmp/usession-release-2.5.1-15/module_cache/module_0.o /tmp/usession-release-2.5.1-15/module_cache/module_1.o /tmp/usession-release-2.5.1-15/module_cache/module_2.o /tmp/usession-release-2.5.1-15/module_cache/module_3.o -pthread -Wl,--export-dynamic -lrt -o /tmp/usession-release-2.5.1-15/shared_cache/externmod.so
TypeError: compile() expected string without null bytes

我应该怎么做才能解决这个问题?

您误读了文档:它不是 pyinteractive.py path/to/pypy-sandbox。这是 pypy_interact.py path/to/pypy-sandbox(来自 pypy/sandbox/)。

在沙盒中工作的模块数量非常有限。最近甚至 time 模块也停止工作,因此被删除。我们欢迎贡献,但更多的是 "continued support",这将包括对更多模块的特殊支持和更好的 pypy_interact.py --- 目前的仅用于演示目的。