剛剛看到睡長輩在 http://blog.bsdchat.com 的 make love (羞)這篇提到在 FreeBSD 下 make love 的結果改變了。
原本是這樣的
FreeBSD 6.3-RELEASE-p2 # make love
make: don’t know how to make love. Stop
現在變成
FreeBSD 7.2-PRERELEASE # make love
Not war.
原本以為 Not war. 這段 code 是在這幾年才加進去的,後來翻了一下 cvs 的紀錄發現,其實這個笑話從 1998/04/28 r1.8 就加進去了,只不過 OLD_JOKE 被定義為 0,所以一直都不會有這個效果。
+#if OLD_JOKE + if (strcmp(gn->name,"love") == 0) + (*abortProc)("Not war."); + else +#endif + (*abortProc)("%s %s. Stop", msg, gn->name);
然後到了 2008/03/04,就有人說「No need to tell make to DTRT with “make love”, just do it.」,不過他最後還是補上了 WITHOUT_OLD_JOKE,讓人有機會用 CFLAGS 回到之前的狀況……。
+#ifndef WITHOUT_OLD_JOKE if (strcmp(gn->name,"love") == 0) (*abortProc)("Not war."); else +#endif (*abortProc)("%s %s. Stop", msg, gn->name); return (FALSE);
其實還蠻有意思的,原本 Make, not war 這句話是 1960 年代美國反戰(越戰)的標語,卻沒想到今天會在 FreeBSD 的原始碼得見他的蹤跡。
即使不用檢視原始碼,許多知名的 Easter egg 也帶給使用者不少樂趣。如果再進一步檢視原始碼,或許更能看見每個專案的心路歷程,又或者是工程師對於專案的看法等等。
(我去年 6/19 的 submit log 好像寫著「祝我自己生日快樂」,這或許也是一種悲傷吧 XD)
而每個專案的 version control 就這樣忠實紀錄下來每一個點點滴滴,就算人開始遺忘,那也無法抹除那曾經存在過的事實。
One response to “Make love, not war”
我也埋了一個… ㄎㄎ