library

libatomic_opsのAO_double_t::AO_parts定義

AO_v1とAO_v2逆じゃない?証拠 (gdb) p/x *addr $4 = { AO_whole = 0x895590c3c908458b, AO_parts = { AO_v1 = 0xc908458b, AO_v2 = 0x895590c3 } }下でテスト通っちゃうんだよな。 AO_INLINE int my_AO_compare_double_and_swap_double_full(volatile AO_do…

Mac OS X 10.5 Leopardのucontextが壊れている問題

昨日twitterで騒いでいた件まとめ。問題解決に7時間つぶれた…。Leopardで有効化されたucontextですが、sizeof(ucontext_t)がAPIとApple側実装とで異なっている為にgetcontext()やswapcontext()を使うとメモリ破壊を引き起こします。詳細は/usr/include/sys/…

libcoroutine: PowerPC Mac対応

G4 Dualが手に入ったので早速portする。ucontextの内部構造体にアクセスしてうにゃうにゃな部分がppcだとうまく動かないらしいので、setjmp()による実装にfallbackしといた。 あとgcc拡張の__threadキーワードもppcだとサポートされてないみたいなので、pthr…

libFreeImage OSX 10.5 Leopard Support patch

いや、おそらく10.3.9のsdk入れればそのまんまビルド可能なんだろうけど…Makefile.osxに当ててください。 http://websvn.nyaxtstep.com/viewvc.cgi/3rdparty/FreeImage393.Makefile.osx.leopard.patch?view=log

libcoroutine依存排除版

Io Languageで使われている最新版コードをもとに作り直しました。http://websvn.nyaxtstep.com/viewvc.cgi/3rdparty/libcoroutine/ svn://home.nyaxtstep.com/svn/3rdparty/libcoroutine/やってること: VisualStudio 2005用solutionファイル&Makefile.am M…

boost: BOOST_FOREACH

http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/foreach.htmlこれは便利ですね。ひたすら使いまくってます。ただ、速度がでるかどうかが心配。少なくとも多くのコンパイラでunrollingは無効化しそう。

boost 1.33 -> 1.34.1にアップデート

Boost Test Libraryを使って書いたテストで謎のメモリリーク(最適化レベル0の癖に関数をインライン化すると消える)が起きたので、1.34.1にアップデートしました。なぜかコレでリークが消えました。boostのバグだったのかな?1.34ではテスト関連の関数名マ…

GridRPC実装の導入の難しさは異常

libnetdistとの比較用にGridRPC実装を導入する試み。 Ninf-G Win実装なし。 Globus Toolkitに依存するらしいのだが、これがJava&PostgreSQLで書かれていて導入が大変。あきらめる GridSolve VisualStudioではクライアントしかビルドできないらしい。サーバ…

EASTLがすごい件

via FumuFumu-Qhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.htmlintrusive container実装とかfixed_vectorとかpush_back(void)とか、他にもSTLに違和感を感じているひとがいたみたい。

libcoroutine

これは恥ずかしい。既に公式であったのか。http://www.dekorte.com/projects/opensource/libCoroutine/自前バージョンから移行せねば。追記: 移行するかと思ったけれど、中身をよく見るとbasekitという謎のCライブラリに依存したまま、libcoroutineディレク…

Boost Concept Check Library

http://www.boost.org/libs/concept_check/concept_check.htmテンプレート型に対するアサーテーションを提供。あとで書く。

Adobe GIL

http://opensource.adobe.com/gil/index.htmlboostに統合予定の画像処理ライブラリ。nytrの依存ライブラリが多すぎなので、FreeImageからこちらに移行するかも。

boost::noncopyableのEBO問題

EBOについてはkmonos.netさんの解説が非常に参考になります。 class A : boost::noncopyable {}; class B : boost::noncopyable { A a; }; now sizeof(B)==2 instead of the expected 1. To fix it, we have to change the interface (or at least allow an …

Boost Pointer Container Library

VIVERのコード読んでたらでてきた。(GPLなので大丈夫)http://www.boost.org/libs/ptr_container/doc/ptr_vector.htmlえええええええ。今までわざわざD-torでdeleteするコード書いてたよ。しかし、VIVERの古橋さん(d:id:viver)は私と同い年(or一才差)だと思…

複雑なCOLLADAがロードできない

これは困った。COLLADA DOMを使っているのですが、Material数が多いファイルのロードに恐ろしく時間がかかる模様。 10分待ってみても終わりませんでした。仕方ないので独自形式フォーマットをでっち上げる予定。

Boost.Wave: A Standard compliant C++ preprocessor library

すげー。

Coro patch

こっそり入れ替えました。amd64でSEGVでるけどとりあえず無視。

Coro: Coroutine library written for IoVM

リファレンスをでっち上げてみる試み。 Coro* Coro_new(void); Coro構造体をメモリ上に確保し、初期化します。 void Coro_free(Coro* self); Coro_newでメモリ上に確保されたCoro構造体を破棄します。 void* Coro_stack(Coro* self); Coroスタックへのアクセ…

coroutine library

d:id:shinichiro_h:20041019パッチ(id:shinichiro_hさん作)を試してみるも、Intel Macではうまくいかない模様。パッチの元ネタであるIo言語のVMソースコードを探っていると、なにやらCoroutineライブラリらしきものが。 http://www.iolanguage.com/scm/git…

libpcl on darwin

動かない。困った。

libpcl and c++ exceptions

てきとーなテストコード書いて問題なかった。somari(Gentoo Linux / Linux 2.6 x86_64)でテスト。あとでpersianのwin32環境でもテストすること。

PCLとGNU Pth

5分で両方のAPIリファレンスを流し読みしただけなので、あんまり参考にしないように。Pthはpthread互換APIを目指してるようなかんじ。APIがみょーに多い。システムコールがスレッドの中で呼ばれることを気にしている様子。(あの悪しきスレッドキャンセルへ…

C++で継続・コルーチン

タスク定義をどうするかが問題。なんとかcontinuation(継続)をC++でかけないものか。必要なのは、いわゆるプログラムカウンタ(+レジスタ群)の保存と、スタック上のローカル変数データの保持。FSMモデルならなんとかかけます。(参考:d:id:yaneurao:200…

マルチスレッド関連

boost::threadにはスレッドキャンセルの仕組みがない。どうするか やっぱりZThreadを使う 最新のGCCでオプション無しでコンパイル不可、もうメンテナンスがされていない boost::threadのラッパーを作り、将来的に自前でpthreadをいじる threadクラスのデスト…

boost::remove_pointer

すげぇ。 template<typename T> inline T FNTNetPacket_safecast(FNTNetPacket* p) { if(p->getType() != boost::remove_pointer<T>::type::msgtype) FECTI_THROWEX(FEX_SOCKET, FEXS_SOCKET_FECTIP, "invalid cast"); return reinterpret_cast<T>(p); } メンバ関数テンプレー</t></t></typename>…

boost::threadにはZThread::Thread::cancelled()の代替がない

ZThreadから移植中。詰まった。追記:boost::thread_specific_ptrで無理やり解決。

boost::Pool

http://boost.cppll.jp/HEAD/libs/pool/doc/index.html自分で書く手間が省けた。

久しぶりのQt

久しぶりのQt。といっても今まで触ってたのはQtopiaだが。いろいろQt4になって変更があるみたい。

Qt/Windows opensource + MingW + Eclipse/CDT環境構築メモ

長いので分割。試行錯誤しながらで所要時間1時間半。 下の手順だとアウト。ハメラレタ。MSYSとMinGW同じディレクトリにインストールするとダメなんて知らないよ。 やり直さねば。 修正しました。動くようにはなった。でもMSYSとMinGWを同じディレクトリにイ…

Qt on Visual Studio .NET

GPLバージョンだと無理みたい。Eclipse+MingW32という手もないわけではないが、とりあえず使い慣れたFOXで行くことにする。