gdcのコンパイル

gdcgccをバックエンドにもつD言語の実装。適切にコンパイルするとdmdの3倍以上速い。
研究室のクラスタマシン上でコンパイルする際いろいろ躓いたので、メモを取っておく。

20131008追記 もう公式のドキュメントを見れば大丈夫:http://gdcproject.org/wiki/Installation

さて、基本的にはgoshawk / gdc / wiki / Home — Bitbucketに基づいてコンパイルする。goshawk / gdc / wiki / Home — BitbucketのLast commitは2012/3/14だが、GitHub - D-Programming-GDC/gdc: GNU D Compiler mirrorで引き続き活発に開発が行われているので、gdcのソース自体はGitHub - D-Programming-GDC/gdc: GNU D Compiler mirrorから入手した方が良い。release versionを得るために、configureでは--enable-checking=releaseを指定し、--disable-bootstrapを指定しない。--disable-multilibを指定しないとこけることが多い。速いライブラリを得るためにDFLAGSにいろいろ指定する。make installではgccも一緒にインストールされるのでoptに隔離する。

git clone https://github.com/D-Programming-GDC/GDC.git
wget 'http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2'
cd GDC
git checkout gdc-4.8
mkdir dev
cd dev
tar jxvf ../../gcc-4.8.1.tar.bz2
cd ../
./update-gcc.sh dev/gcc-4.8.1
cd dev/gcc-4.8.1
mkdir objdir
cd objdir
../configure --enable-languages=d --disable-multilib\
        --disable-shared --disable-nls --prefix=/opt/gdc \
        --enable-checking=release \
        --disable-libgomp --disable-libmudflap \
        --disable-libquadmath --disable-libquadmath-support 
DFLAGS="-frelease -fno-bounds-check -fno-assert -fno-invariants -fno-in -fno-out" make -j4

root権限で

DFLAGS="-frelease -fno-bounds-check -fno-assert -fno-invariants -fno-in -fno-out" make install

追記(2012/08/30 15:26)

checking dynamic linker characteristics... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.

Ubuntu in amd64 で上のように怒られる場合は、

export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
export CPATH=/usr/include/x86_64-linux-gnu

をmakeの前に挿入する。

今日のDBCLS

統合TVの吹き出しのテキストから、他の統合TVを推薦する機能を追加中。吹き出しテキストの類似度による推薦と、キーワードによる推薦の両方を作るつもり。
tDiaryの日記のソースはtd2ファイルに保存されるので、「togotv.dbcls.jp:/home/togotv/Mozk/」中にtd2ファイルを取ってくるスクリプトを書いた。

pec / rust

Haskellから、GCを無くして、デフォで正格にして、Cの構造体と親和性の高いデータ宣言ができるようにした言語が欲しい。この2つの言語が気になる。

rustはHindley-Milnerっぽくないけど、にわかに注目されてたので挙げた。

今日のDBCLS

吹き出しExtractorのアップデート。
今まではhttp://togotv.dbcls.jp/20111223.htmlのように「ここを押すと動画のスーパーが読めます」のスーパーがリンク無しだったが、アップデート版(http://togotv.dbcls.jp/20120116.html)ではスーパーに再生時間へのリンクがつくようになった。

統合TVのネタバレスーパーを生成する。 · GitHub