gcc 4.5でのビルド


gccは4.5から-static-libstdc++ができるようになったので、gccの公式配布に切り替えた。gcc4.5はまだリリース版が無いが、そのうちリリースされると見られる。
Moshは未だWine上では動作しないので、Cygwingccを--target=i686-pc-mingw32としてビルドして使っている。Cygwinbinutilsはgcc4.5の出力するバイナリを処理出来ないので、先に最新のbinutilsを導入する必要がある。

まだGUI関連のライブラリを含んでいない。また、REPLの置き換えも出来ない。
expanderはまだ最適化されていないので、(fmt)のような複雑なライブラリを最初にロードするときは非常に時間が掛かる。
ちなみに-static-libstdc++は扱いが難しくて、

  • Darwinだとstaticなlibstdc++は何か間違ったことが起こる。
  • Windowsでは逆にstaticなlibstdc++を使う必要がある。

ちなみに、gccのリンク時最適化はELFに依存しているので、PE/COFFなWindows上では利用できない。
Windows固有の問題として、一部のSRFIシンボリックリンクに依存しているので正常に機能しないというものがある。どちらにせよ、nmoshのキャッシュシステムはincludeのような操作を想定していないので、SRFIだけをアップデートすると何か間違ったことが起こる。