Linus 亲自动手,阻止内核开发者用空格替换制表符

来源: OSCHINA
编辑:
2024-04-18 10:51:00

在最近的Linux 6.9-rc4版本中,Linus Torvalds 采取了一个特别的方法来应对那些不能正确处理制表符(tabs)的Kconfig解析器。Kconfig是Linux内核配置系统的一部分,用于定义内核的可配置选项。

事件起因是有一个等待被合并的内核补丁引起了Linus注意,该补丁目的是将内核跟踪(kernel tracing)Kconfig文件中的一个制表符替换为一个空格字符。这个替换导致某些第三方的内核配置解析工具在处理制表符时出现了问题。

Linus Torvalds决定亲自动手,为那些不能处理制表符的Kconfig解析器编写了一个补丁——他故意在处理页面大小的通用Kconfig文件中加入了一些制表符,以此来干扰任何不能正确处理这些制表符的解析器

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?utm_source=anzwix&id=d5cf50dafc9dd5faa1e61e7021e3496ddf7fd61e

Linus在补丁中写道,之前的一个提交【Commit d96c36004e31 ("tracing: Fix FTRACE_RECORD_RECURSION_SIZE Kconfig entry")】移除了一个隐藏的制表符,因为它在某些第三方的内核配置解析工具中导致了问题。

他指出,如果一个工具不能将制表符作为空白字符解析,那么它就不应该用来解析内核的Kconfig文件。因为制表符在Kconfig文件中是至关重要的。

Linus强调,如果解析器不能正确处理制表符,那么它们也不应该能够处理页面大小的配置。

Linus还提到,制表符与空格的混淆在Unix系统中是一个历史遗留问题,例如'make'工具在这方面就存在问题。但他明确表示,这并不意味着这是可以接受的。

他还说道,如果发现更多这种愚蠢的工具,他可能会在Kconfig文件中加入更多的随机制表符,尽管他不想让事情变得不必要地丑陋。

展开阅读全文
点击加入讨论🔥(23) 发布并加入讨论🔥
本篇精彩评论
tab是本源, 空格是拖鞋. py尤为明显, 被不会用乱用tab的人折磨几次后, 只能妥协开始用空格了.
2024-04-18 11:51
7
举报
怎么感觉有一股子毛子的彪悍风格
2024-04-18 11:30
3
举报
美剧硅谷里的情节😉
2024-04-19 20:19
1
举报
tab 本质就是列表的含义,自带的预成型格式化,而空格这是直通型控制符,无关编辑器。对于一些友好的ide来说,tab确实是最佳选择,因为它并不强执行。
2024-04-19 08:41
1
举报
程序兼容性本来就是基本啊
2024-04-18 18:05
1
举报
23 评论
4 收藏
分享
返回顶部
顶部