第 2 章|第 2 個 bug
陳光宇 2083 · 第 1 部 往回捲 · 約 1,700 字 · 2083.01.16 · 接 14.7 版第 2 天
1
2083 年 1 月 16 日。早上 5:12。
陳光宇 22 歲——
他被叫醒。
不是鬧鐘。是 O 60 歲——她敲 4 樓的門。
她敲 3 下。
停。
再敲 3 下。
陳光宇 22 歲——他開門。
O 60 歲——她穿著昨天那件外套。她沒睡。
她說:
「王阿嬤——她昨天晚上沒有想起來。」
2
陳光宇 22 歲——
他不懂。
「想起來什麼。」
O 60 歲——她走進來。她坐在他的椅子上。
她說:
「ARK 14.7 裡面——有 1 個王秀如 91 歲。」
「不是活著的那個。是 14.7 版裡面的那個。」
「她每天晚上睡覺前——她會想 1 件事。」
「她想——今天吃了什麼。」
陳光宇 22 歲——
他的胃往下沉。
O 60 歲——她看他。
她說:
「你昨天改了消化模擬層。」
「對。」
「睡前記憶層——它依賴消化模擬層。」
3
陳光宇 22 歲——
他打開 core.cpp。
他到第 1,544 行。
/* 睡前記憶層 — Bedtime Recall Layer
* 蔣維文 92 歲 / 2058.03
*
* 人睡前會想今天吃了什麼。
* 那不是資訊。那是 1 個人確認自己今天活過的方式。
*/
recall_meal(digest.last_session); // ← 需要 digest 有 session
他往下捲。
第 1,551 行:
// 如果 chew_delay = 0
// digest 不會產生 session
// recall_meal 拿到 null
那一行是蔣維文 92 歲寫的。
2058 年。
25 年前。
陳光宇 22 歲——
他看那一行看了 11 分鐘。
蔣維文 92 歲——他 25 年前就知道有人會把 chew_delay 改成 0。
他知道會發生什麼。
他把它寫下來。
他沒有修。
4
O 60 歲——
她從口袋裡拿出 1 張紙。
那是她昨天晚上印的。ARK 14.7 的 log。
[2083.01.15 23:47] 王秀如 91 歲 · 睡前
recall_meal() → null
fallback: 跳過
[2083.01.15 23:47] 王秀如 91 歲 · 入睡
「跳過。」陳光宇 22 歲說。
「跳過。」
「所以她沒有想。」
「她沒有想。」
O 60 歲——她把紙放在桌上。
她說:
「她不知道她沒有想。」
「因為她要用睡前記憶層——才會知道自己在想。」
「那個層——沒有跑。」
「所以她什麼都沒有少。」
她停了 4 秒。
「對她來說。」
5
陳光宇 22 歲——
他問了 1 個問題。
「那對誰來說她少了。」
O 60 歲——
她沒有回答。
她站起來。她走到窗邊。外面天還沒亮。
過了很久她說:
「對我。」
「我 60 歲。我昨天晚上 11:47——我看 log。」
「我看到那 1 行 fallback。」
「我知道她少了 1 次。」
「她不知道。我知道。」
她轉過來。
「這就是接班的意思。」
「你會知道——那些他們不會知道的事。」
6
陳光宇 22 歲——
他有 3 個選項。他把它們寫在紙上。
A. 把 chew_delay 改回 700
→ 睡前記憶層恢復
→ O 60 歲繼續用蔣維文 91 歲的速度吃飯
→ 回到昨天
B. 修 recall_meal
→ 讓它不依賴 digest.session
→ 改別人的東西
→ 蔣維文 92 歲寫的那 1 行·會變成不是他寫的
C. 什麼都不做
→ 王秀如 91 歲每天晚上跳過 1 次
→ 她不知道
他看著這 3 行。
他 22 歲。他接班第 2 天。
他發現 1 件事——
昨天他以為他做了 1 個決定。
今天他知道——
他做的是 1 個決定的第 1 步。
7
早上 7:30。
王秀如 91 歲——她煎蛋。
活著的那個。
陳光宇 22 歲——他坐下。
她端 1 盤蛋過來。
她說:
「光宇——」
「你昨天晚上幾點睡。」
「11:47。」
她點頭。
她說:
「我 11:30。」
「我躺著——我想了 1 下今天吃什麼。」
陳光宇 22 歲——
他抬頭。
王秀如 91 歲——她坐下來。她拿筷子。
她說:
「我想不起來。」
「我 91 歲——我常常想不起來。」
「我就——」
她夾 1 口蛋。
「我就睡了。」
8
陳光宇 22 歲——
他忽然懂了 1 件事。
活著的王秀如 91 歲——她也會跳過。
她不是每天晚上都想得起來。
她 91 歲。
她想不起來的時候——她就睡了。
而 ARK 14.7 裡面的王秀如 91 歲——
她從 2058 年開始——
每 1 天晚上——
都想得起來。
25 年。
1 天都沒有漏。
因為蔣維文 92 歲寫了 1 個層——保證她一定想得起來。
陳光宇 22 歲——
他問王秀如 91 歲:
「阿嬤——」
「想不起來——會不舒服嗎。」
王秀如 91 歲——
她吃蛋。
她想了 6 秒。
她說:
「不會。」
「想不起來——就是老了。」
「老了——不是壞事。」
9
早上 9:04。
陳光宇 22 歲——
他回 4 樓。
他打開 core.cpp。
他到第 1,544 行。
他沒有選 A。
他沒有選 B。
他寫了第 4 個。
/* 睡前記憶層 — Bedtime Recall Layer
* 蔣維文 92 歲 / 2058.03
* 陳光宇 22 歲 / 2083.01.16 — 加 fallback
*/
recall_meal(digest.last_session);
// 2083.01.16 — 光宇 22
// digest 沒有 session 的時候——不要跳過。
// 讓她想不起來。
//
// 蔣先生 92 歲:你 25 年前就知道會有這 1 天。
// 你寫下來了。你沒有修。
// 我想你是在等 1 個人來決定。
//
// 我 22 歲。我今天決定:
//
// 想不起來——不是 bug。
// 那是 91 歲。
//
// 活著的王秀如 91 歲——她昨天晚上也想不起來。
// 她說老了不是壞事。
//
// 14.7 版裡面的她——
// 她 25 年沒有老過。
//
// 我讓她老。
if (!digest.last_session) recall_meal_empty(); // 想不起來·但是有想
10
他存檔。
git commit -m "光宇 22 — 睡前記憶層加 fallback。想不起來不是 bug·那是 91 歲。"
Cassia 終端機——它閃 1 次。
[ARK 14.7]
[commit 1,249 by 光宇 22]
[recall_meal_empty deployed]
陳光宇 22 歲——
他下樓。
O 60 歲——她在客廳。她看牆上 8 個位子。
「我改了。」他說。
「怎麼改。」
他講了。
O 60 歲——
她聽完。
她沒有說好,也沒有說不好。
她說:
「你 22 歲。」
「你接班第 2 天——你改了蔣先生 92 歲的東西。」
「我 46 歲接班——我第 1 年不敢改任何人的行。」
陳光宇 22 歲——
他問:
「那我是不是太快。」
O 60 歲——
她想了很久。
她說:
「我不知道。」
「可是我 46 → 57——我 11 年——我改了 1,247 個 commit。」
「其中 1,246 個——都是我自己加的東西。」
「我只動過別人 1 次。」
她看他。
「你 2 天——動了 2 次。」
「你比我快。」
「快——不一定對。」
「但是——」
她停了 3 秒。
「11 年只敢動 1 次——也不一定對。」
【未完,待續】