本文介绍了三种迷宫生成算法:Aldous Broder 算法、随机深度优先搜索算法和 Wilson 算法。Aldous Broder 算法简单易懂,但效率较低。随机深度优先搜索算法效率较高,但生成的迷宫倾向于有长走廊。Wilson 算法效率和生成效果都比较好,是较为理想的选择。文章还介绍了如何找到迷宫中距离最远的两个点作为起点和终点。
本文介绍了如何通过修改系统调用来降低Python代码的随机性。作者首先解释了Python中随机性的来源,即`os.urandom`和`random.randint`函数,并说明了如何使用`ptrace`系统调用来拦截和修改这些函数的行为。作者提供了一个名为`unrandom`的C程序,该程序可以作为跟踪器附加到Python进程,并在每次调用`getrandom`系统调用时返回零。这将导致`os.urandom`返回全零字节,并使`random.randint`生成确定性的随机数序列。
本文介绍了作者为其 Lisp 编译器添加的一些优化,包括常量折叠与传播、死代码消除等,这些优化可以生成更小、运行速度更快的程序。文章详细介绍了这些优化的实现方法,以及如何通过 AST 变换来优化代码。此外,作者还分享了测试优化效果的经验,并计划在未来添加端到端测试套件。