少し前に出た 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 で組み立てる。 うーん、デストラクタの呼び出し回数が足りてないなぁ…。 面倒臭いけど、ちゃんとドキュメントに目を通さんとダメだね。 :-(
久々に Zsh 使ってみたくなったのでメモ。 Zsh も 4.3.X なら UTF-8 環境で日本語を (まともに?) 扱えるらしい?
zsh に関する情報を集積することを目的として作ってみました。