从 Python Bytecode 的角度看 List Comprehension 生成 Tuple

Python List Comprehension 使用非常广泛。通常认为,在生成的 sequence 定长的情况下,应该生成 Tuple 而非 List。出于好奇,我简单研究一下这两者在 Bytecode 的区别。 示例代码如下,很简单的 List Comprehension。 def trans… ...more

March 28, 2021
如何让 Git Submodule 恢复初始状态

这几天在尝试编译 Proton ,不小心把 submodule 搞乱了。如下图所示,submodule 对应的是 origin/master/HEAD,而不是应有的 commit。 proton$ git status On branch proton_5.13 Your branch is up … ...more

February 09, 2021
Git Submodule 从本地源初始化

背景介绍 在使用 Wine 运行 Magic: The Gathering Arena 的过程中,我想自行编译 Wine-Mono。Wine-Mono 用 git submodule 将 Mono 的 codebase 囊括了进来。 在此之前,我在电脑上已经下载过了 Mono 的代码 (git cl… ...more

February 01, 2021
经SSH将Fedora 30升级至31

之前提到,我的 客厅里有了一台服务器。随着 Fedora 31 发布,原有的 Fedora 30 系统得到的更新变得很少,我也有了更新系统的打算。搜索了一些资料,有在2012年的回答说需要使用单独的ssh daemon进行F17升F18的操作。不过,也有人提到,新版本的 dnf-plugin-sys… ...more

January 01, 2020
Fedora 删除 swap 后修复 Kernel Parameters

笔者近日为自己的笔记本电脑升级到了 32G 内存,就想着删掉 swap 分区,为自己捉襟见肘的 SSD 释放一些空间。参考着 Arch Wiki,整体而言比较顺利,但也有一点小小的插曲。 首先,运行 # lvs 查看分区情况。我的系统里,Volume Group 是 fedora_zhenbo。 删… ...more

July 06, 2019
跟着 clang 的 libcxx 学习二分查找

哪个算法简单到初学编程的人都能轻松实现,但有多年编程经验的人也可能会写出严重的 bug 呢?没错,正是二分查找。既然普通人的二分查找容易写错,那专业人士会如何实现二分查找呢?不妨参考一下 clang 7.0 的实现。 lower_bound 在 STL 的定义 给定有序区间 [first, last… ...more

October 26, 2018
用 distcc 加快编译 续篇-clang

上一篇文章 简单介绍了使用 distcc 编译 wine 代码。有人在朋友圈里问我,能不能用 clang 编译。我当时的回答是,为什么不能呢?这周在摸鱼的时候,我完成了测试。 理论分析 我看了一下 distcc 的代码,发现其机制还是比较简单的。distcc 后的一个参数会被当成编译器名称。理论上,… ...more

September 15, 2018
用 distcc 加快编译

我的卧室迎来了新成员 - 拥有双 Xeon E5649 的工作站。在安顿好后,我就第一时间开始研究用 distcc 来加快编译速度了。毕竟,与其让我的 XPS 15 被折磨,不如把这个工作交给局域网内的工作站。官网提供了一份 60-second instructions ,不妨一试。如果你是在60秒… ...more

September 10, 2018