一个极有可能彻底解决困扰了人类数学界六十年单砖问题的世纪核验包,这锋利无比的第一刀,竟然砍在了中文路径的编码上。
陈彦深吸了一口气,把这个问题截图,附上环境日志,发给了江临。
仅仅十分钟后,江临就发回了更新后的代码补丁。
他重写了路径处理的模块,添加了强制的UTF-8编码声明和异常捕获机制,干净利落。
第二轮,重新激活。
漫长的六个小时后,跑通了。
屏幕上跳出 Verification Colete. All local cases tched expected signatures. 的绿色字体。
陈彦长长地舒了一口气,刚准备站起来去倒杯水庆祝一下。
计算机右下角,邮件客户端弹出了提示音。
是远在南大的林照野教授发来的邮件。
南大数学院为了配合这次复核,特意腾出了一台专门做代数拓扑计算的高性能集群节点。。
在处理 Tile J 的顶点坐标时,输出表格中的浮点数格式多出了一位极小的误差。
结果本身在拓扑意义上完全一致,并不影响结论。
但是,用于自动化比对的diff脚本却亮起了红灯。
文本对不上。
林照野在邮件里并没有因为这是个高中生就嘴下留情,字里行间透着老牌学者的严谨与苛刻,只写了一句极重的话:“复现说明不能假设全世界的同行都和你用同一台型号的机器、同一个版本的编译器,这是科学的普适性原则。”
陈彦看着邮件,替江临捏了一把汗。
这种吹毛求疵的指责,对一个刚刚做出巨大贡献的年轻人来说,很容易引发逆反心理。
但江临的回信在两分钟后就到了。
“收到。问题确认。。”
第三轮,在北京的邵明棠研究所那边,开始跑用于生成论文附录图谱的关键样例。
运行到第七个小时,又发现了一个致命的格式规范问题。
在处理Tile J的翻面读法时,两个本该归入同一等价类的测试样例,输出在日志里的名称不一致。
一个是按
另一个是按
作为研究者,人类的大脑在看到这两个词时,瞬间就能反应过来它们在数学上指的是同一个拓扑结构。
但机器不知道。
对于哈希算法来说,这是两串截然不同的字符。
如果未来的审稿人,那些可能来自普林斯顿、剑桥或者高等研究院的、挑剔到极点的数学家,拿着放大镜来审查你的核验代码时,他们绝对不会大发慈悲地替你猜这其中的关联。
他们只会冷冷地写下一句:“代码逻辑存在歧义,状态空间分类不严谨。”
于是,江临再次修改。
统一了全局的命名空间,引入了严格的规范化命名函数。
接下来的这几天里,C216讨论室里说得最多的词,不是天才,不是突破,不是单砖。
空气里漂浮的,全都是枯燥到了极点的工程指令。
“重跑!江大节点二号机重新分配内存。”
“日志呢?为什么第4470号状态的衍生日志断掉了?”
“版本号没对齐!?”
“等一下,这个输出结果映射的是草稿里的哪张图?图索引文档更新了吗?”
“R-44的终端输出和附录编号对不上,差了一个位移矢量。”
“别直接改原文档!开新版本分支,我们要保留完整的修改溯源链条。”
“江临,你这个新的README写得象武林秘籍,只有你自己能看懂,你应该假设你的读者是一个只会敲回车键的白痴。”
陈彦一开始觉得无比痛苦。
他觉得自己象个在流水在线拧螺丝的计件工人,而且拧的还是那种随时会爆炸的螺丝。
后来,在高强度的机械重复中,他逐渐麻木了,变成了没有感情的跑码机器。。
因为江临改得太快了。
不是那种学生被老师骂后,满头大汗,急匆匆,乱补的快。
那是一种令人毛骨悚然的、仿佛居高临下的“熟练”。
而是你指出一个问题,他象早就知道那个问题会出现一样,迅速切到映射位置,改掉,补日志,升版本,重新跑,给出差异说明。
有一次,有一次,陈彦忍不住问:“你是不是提前写过这些?”。
“写过类似的。”
“什么时候?”陈彦追问。