sequence point

這個名詞就算是國內做 compiler 的實驗室成員可能也未必聽過,畢竟國內沒什麼教授有種去帶領自己的團隊寫一套新的 compiler。
這原因除了短視近利等心理因素外,也還牽涉到不得不短視近利(或說隨波逐流)的民生問題
這個名詞其實也沒有那麼重要,原則上來說只要負責實作 compiler parser 部分的人懂就好了。
實作 compiler 但不負責寫 parser 的人不懂其實也無所謂,只是要做好被外面不懂 compiler 內部分工細節的人取笑的心理準備。

實務上沒有什麼人會真的去寫到非得注意這東西的程式碼,如果真的有的話他的同事會先讓他整個人黏在牆壁上
簡而言之這東西的用途除了跟 compiler 內部的最佳化機制有關外,在使用方面來說就單純只是測試 compiler 到底是否完全符合語言標準,
以及為了可憐一下那些初學程式設計的新手,而給他們一個可以依歸的準則罷了。
國內最容易讓人重新注意到這類問題的主要亂源,常常是不懂又亂出考題的學校老師和公司的面試官 (雖然我相信有很小一部份是真的故意出來考人)。
其次的亂源,就是自以為把程式寫到讓大家看不懂或容易看錯就代表很強的神經病

Read moresequence point

編 editors/koffice-kde4 的時候系統上不能有 qt3

簡單來說就是編完 KDE4 之後如果想編 KOffice 的話就會遇上,
錯誤訊息大概會長這樣:

[ 44%] Building CXX object
filters/kspread/latex/export/CMakeFiles/kspreadlatexexport.dir/cell.o
In file included from /usr/ports/editors/koffice-
kde4/work/koffice-2.2.0/filters/kspread/latex/export/xmlparser.h:28,
from /usr/ports/editors/koffice-
kde4/work/koffice-2.2.0/filters/kspread/latex/export/format.h:30,
from /usr/ports/editors/koffice-
kde4/work/koffice-2.2.0/filters/kspread/latex/export/cell.h:30,
from /usr/ports/editors/koffice-
kde4/work/koffice-2.2.0/filters/kspread/latex/export/cell.cc:25:
/usr/local/include/qdom.h:97: error: function definition does not declare
parameters
/usr/local/include/qdom.h:122: error: function definition does not declare
...

Read more編 editors/koffice-kde4 的時候系統上不能有 qt3

在 FreeBSD 裝了 squid 後記得調整 shutdown timeout 的長度

有裝過 squid 的應該多多少少會有印象,
每次 restart squid 的時候如果有人在使用就會等 30 秒才會停掉。
關機或重開時更是會卡在 squid 等不到 30 秒就被強制中斷關機程序,
其它 daemons 會被逕行終止造成系統變成不正常關機狀態。

Read more在 FreeBSD 裝了 squid 後記得調整 shutdown timeout 的長度

FreeBSD 上的 LDAP server 和 client 在同一台的時候記得設定啟動順序

雖然這個算是超級 FAQ 了,
不過趁還想寫的時候來寫一下。
畢竟現在的硬體配備都不差,
為了充分利用硬體資源很少人會把 LDAP server 單獨放在獨立的機器上。
結果常常開機時某些 service 比 slapd 先起來,
關機或重開時這些 service 又會比 slapd 晚停止,
造成了一個不大也不小的困擾。

Read moreFreeBSD 上的 LDAP server 和 client 在同一台的時候記得設定啟動順序