2007/12/19

背水一戰

和新版 ghc、Agda 以及眾 libraries 拚死一戰 XD。大致解讀關於 ghc 6.8.1 與 Leopard PPC 的討論串,似乎是 ghc 的 native code generator 產生的某種 code pattern 在 Leopard 下的詮釋有問題。討論串上好像有人用 -fvia-C option 編譯成功,所以我也依樣畫葫蘆,在 /usr/local/bin/ghc 裡面轉呼叫 ghc-6.8.1 時加上 -fvia-C option。奇蹟立刻發生了,binary、QuickCheck 等 libraries 不再出現惱人的 "unknown scattered relocation type 4",但 zlib 仍然在 preprocessing 時出現兩行,我只好先祈禱那不影響大局 XD。很可惜,稍後 Agda-2.1.3 雖然看起來編譯成功,Agda mode 卻果然當在那邊不動。多試了幾次以後,我對 zlib source 下指令 runhaskell Setup.hs build --verbose=3 看看到底是誰丟出錯誤訊息,發現兇手只可能是 hsc2hs。在直覺的引導下,我手動把那次 hsc2hs invocation 所用的 linker 從 ghc 改成 gcc 產生 Stream.hs,然後再次建造 zlib ─ 成功了!Agda-2.1.3 編譯再次成功,而且這次 Agda mode 也可以 work 了!!!現在總算可以開始做正事嘍 ─ 等明天圖論期中考考完馬上開始 XD。正事的第一步自然是好好地看一下 standard library 和 scm 老師近幾天生出來的好多 code,然後就可以試著把 insertion sort 湊完。

--
幸好沒掉到水裡 XD。現在趕快讓 Time Machine 備份 XD。


Time Machine 很快就派上用場,因為我大喜之下把先前我寫的 Agda files 刪個精光 XD。當然因為這些 code 大部份都貼到 blog 上了,所以沒有 Time Machine 也不至於太慘重 XD。

--
不過有 Time Machine 還是最方便 XD。

Labels: ,