«前の日記(2006.07.16 / Sunday) 最新 次の日記(2006.07.19 / Wednesday)» 編集

Hena Hena Nikki

2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|04|05|06|07|08|10|12|
2013|01|02|04|06|

2006.07.17 / Monday [長年日記]

* [computer] Mac OS X で Boehm-GC を使う

少し前に出た Boehm-GC ver.6.8 を Mac OS X 10.4 で使ってみた。

まずライブラリ自体の組み立て。 もちろん CFLAGS などはお好みで。

$ wget -c http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.8.tar.gz
$ zcat gc6.8.tar.gz | tar xvf -
$ cd gc6.8/
$ ./configure --enable-cplusplus
$ make && make check
$ sudo make install

で、とりあえず以下みたいな感じで使えるんだけど、 最初、GC_INIT() は要らないと思っていて、少しハマッた。

/**
 * @file        main.cpp
 * @brief       Boehm-GC の C++ による実装サンプル
 */
#include <iostream>
#include <gc_cpp.h>
using std::cout;
class Dummy : virtual public gc_cleanup { private: const int integer_; char values_[1024 * 1024 * 4]; public: inline Dummy(const int integer = 0) : integer_(integer) { cout << "コンストラクタ呼び出し (" << integer << ")\n"; } inline virtual ~Dummy(void) { cout << "デストラクタ呼び出し (" << integer_ << ")\n"; } };
int main(void) { GC_INIT(); // Mac OS X でも必要っぽい Dummy* dummy = 0; for (int i(0); i < 100; ++i) { try { dummy = new(UseGC) Dummy(i); // UseGC は冗長 } catch (...) { // これで良いのか? dummy = 0; cout << "メモリ確保失敗 (" << i << ")\n"; } } return 0; }

g++ -Wall -I/usr/local/include -L/usr/local/lib -lgc main.cpp で組み立てる。 うーん、デストラクタの呼び出し回数が足りてないなぁ…。 面倒臭いけど、ちゃんとドキュメントに目を通さんとダメだね。 :-(

* [computer][bookmark] zsh のある暮らし

久々に Zsh 使ってみたくなったのでメモ。 Zsh も 4.3.X なら UTF-8 環境で日本語を (まともに?) 扱えるらしい?

zsh に関する情報を集積することを目的として作ってみました。


  • この日記には本日 名の方が訪問してくださっているようです。 また、昨日は 名の方が訪問してくださったようです。
  • この日記の更新情報の取得には antenna.lirs を利用するのがおすすめです。