Make love, not war


剛剛看到睡長輩http://blog.bsdchat.commake 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”

Leave a Reply

Your email address will not be published. Required fields are marked *