本文介绍了如何通过修改系统调用来降低Python代码的随机性。作者首先解释了Python中随机性的来源,即`os.urandom`和`random.randint`函数,并说明了如何使用`ptrace`系统调用来拦截和修改这些函数的行为。作者提供了一个名为`unrandom`的C程序,该程序可以作为跟踪器附加到Python进程,并在每次调用`getrandom`系统调用时返回零。这将导致`os.urandom`返回全零字节,并使`random.randint`生成确定性的随机数序列。
阅读更多
本文介绍了作者为其 Lisp 编译器添加的一些优化,包括常量折叠与传播、死代码消除等,这些优化可以生成更小、运行速度更快的程序。文章详细介绍了这些优化的实现方法,以及如何通过 AST 变换来优化代码。此外,作者还分享了测试优化效果的经验,并计划在未来添加端到端测试套件。
阅读更多