2008-03-01から1ヶ月間の記事一覧

gtk_test

ちょこちょこ作業を進めていたGTK+/OpenGLのテストプログラムですが、これまでの分はまとめ終わりました。 sandbox/tools/gtk_test/ OpenGLの初期化部分(というかネイティブのハンドル取得部分)は大分修正しました。

Hamigaki 0.42以降の予定

Config テスト環境が分かるように、config_info.cppをboostのものに置き換える Hamigaki.Archivers wpathのサポート UAC対策で、テストプログラムの名前(〜update)を変更する Hamigaki.Audio AudioConverterFillBuffer()をAudioConverterFillComplexBuffer()…

続 ライセンス申請

申請どおり、SF.jpに「Boost Software License (BSL) 1.0」が追加されました。 「プロジェクト管理サマリ」の「ソフトウェアマップカテゴリの変更」から変更できます。

Hamigaki 0.41.0リリース

Boostのリリースにあわせて、Hamigaki 0.41.0をリリースしました。 http://sourceforge.jp/projects/hamigaki/files/ 実質バグフィックスのみです。

Boost 1.35.0リリース

ようやく出ました! http://www.boost.org/users/news/version_1_35_0 予定通りRC3がそのままリリースとなったようです。 トップページも緑を基調にしたものに変わっています。 http://www.boost.org/

reference_closureの継承

C++

http://d.hatena.ne.jp/Cryolite/20080328#p1 のk.inabaさんのコメントにあるようにN2529に書いてありました。 オーバーロードの解決のためだったんですね。 懸念された最適化の問題も、 class F : public std::reference_closure<int (int)> { private: typedef std::r</int>…

reference_closureが必要なわけ

C++

http://d.hatena.ne.jp/faith_and_brave/20080326/1206522694#c http://d.hatena.ne.jp/faith_and_brave/20080328/1206694733 なんで参照渡しの場合だけreference_closureを使えるのかが伝わっていなかったようなので、値渡しの場合の例も書いて説明します。…

reference_closure

C++

http://d.hatena.ne.jp/faith_and_brave/20080326/1206522694 http://d.hatena.ne.jp/Cryolite/20080325#p1 faith_and_braveさんの例を少し変えて、 #include <functional> #include <iostream> int main() { int count = 3; std::reference_closure<int(int)> f = [&](int x){ return x + (+</int(int)></iostream></functional>…

続 キー入力

Hamigaki 0.41リリース準備が整ったので、 http://d.hatena.ne.jp/y-hamigaki/20080310 の続きです。 キーの判定にGdkEventKey::hardware_keycodeを使うことにしたわけですが、 X11版では生の走査コードとなるので機種依存性が問題になります。 このため、XK…

context::output_stream()

昨日のbuiltin_rules_testがFailだったのは、Cygwinのg++パッケージにlibstdc++のDLL版が用意されていないせいで、std::coutがHamigaki.BjamのDLLとテストプログラムのexeの二箇所に生成されていたのが原因でした。 link=staticでビルドすれば回避可能ですが…

続 BOOST_CYGWIN_PATH

Cygwin on Windows 2000 on VMwareでテストをやり直しました。 Windows 2000でもHamigaki.Bjamのbjam_testとglob_testでプロセスが暴走するので調べてみたところ、assert()に失敗していて、その異常終了時に暴走するのはCygwinかBoost.Testの問題みたいでし…

続 MME on Cygwin/Vista

Vista上のCygwinでサウンドがおかしくなる問題が再発しました。 しばらく試してなかったので、SP1が原因かどうかは不明です。 これだけで落ちます。 cat /dev/dsp > /dev/null 動かないのは、 MMEのキャプチャ DirectSoundの再生/キャプチャ です。 クラッシ…

BOOST_CYGWIN_PATH

Cygwinで半年以上テストしていなくて、Boost1.34.1になってから初めてテストしました。 i18n対応の関係でWindows用の実装が既定で使われるようになっていることに今更気が付きました。 マクロの対応はこうです。 マクロ パス*1 API なし Windows Windows BOO…

Hamigaki.CoroutineのTutorial その3

「ジェネレータ」と「コールバック関数」のセクションを追加しました。 ジェネレータの差分 コールバック関数の差分 ビルド済みのものはこちら http://hamigaki.sourceforge.jp/doc/html/coroutine/tutorial.html よく考えてみると、コールバック関数を反復…

Hamigaki.CoroutineのTutorial その2

ようやくTutorialを書き始めました。 tutorial.xml ビルド済みのものはこちら http://hamigaki.sourceforge.jp/doc/html/coroutine/tutorial.html Boost.Coroutineのドキュメントでは整数の半開区間を取り上げているのですが、これだとコルーチンの意味があ…

Hamigaki.CoroutineのTutorial

Boost1.35がリリースされたらHamigaki0.41もリリースする予定なので、あまりコードを弄りたくなく、ドキュメントを書くことにしました。 ざっと見て、Hamigaki.CoroutineのTutorialがなかったので書いてみることにします。 ただ、よい例題が思い浮かばず考え…

SP1を入れてみた

WindowsUpdateで70MB程度。 ダウンロードとインストールに2時間ぐらいかかりました。 何の問題もなくインストールできましたが、何も変わった気がしません。

Compiler Status更新

Fedora8も直ったので、Boost1.35前にRegression Testsを実行しました。 が、既にSF.jpのメンテが始まってしまったのかシェルサーバーからSVNに繋がらなくて、Webはそのままです。 http://hamigaki.sourceforge.jp/status/ なお、Hamigaki.Uuidのserializatio…

ライセンス申請

http://d.hatena.ne.jp/uskz/20080317/p6 を読んでSourceForge.jpのライセンスにBSL追加してもらうの忘れていたので申請しておきました。 未だに本家が「Other/Proprietary License 」になっているので無理かもしれませんが。

コンテキスト設定ミス発覚

W.DeeさんからHamigaki.Coroutineでクラッシュする報告を受けたので調べたところ、Fiberのコンテキストを保存する部分にバグを見つけました。 Boost.Coroutineのコード見てよく分からず削っていた部分が原因でした。(そりゃバグりますよね) 今日の差分 例外…

WindowsユーザーのためのPATH講座

なんか、UNIXやMS-DOSを知らないけどgccのためにCygwin使っている人が多い感じなので、パスについて簡単に書いておきます。 まず、/foo/barという実行ファイルがあったとして、bashから起動するには、 /foo/bar とします。 毎回フルパスで指定するのは面倒な…

複数バージョンの使い分け

GCC

http://d.hatena.ne.jp/haru-s/20080314/1205496895gccはドライバプログラム(gcc)と同じディレクトリに「i686-pc-cygwin-gcc-3.4.4」のような名前の実行ファイルがあれば、-Vオプションや-bオプションで複数のバージョンを切り替えて使用することができます…

Boost.Asio + Coroutine

まもなくBoost 1.35 RC1リリースということで、Boost.Asioを弄ってみました。 Boost.Asioの非同期メカニズムはよくできているんですが、処理待ちのたびにコールバックするためどうしても処理の流れが分かりにくくなります。 そこで、Hamigaki.Coroutineを使…

patch for NTFS symbolic links

MLでBoost.FilesystemにNTFSシンボリックリンクのサポートを追加する話が出てたので、取り急ぎHamigaki.Filesystemからポートしたものを送ってみました。 http://svn.boost.org/trac/boost/ticket/1681 Hamigaki.Filesystemはワイド文字非対応のままだったの…

コード整理とか

GTK+に慣れてきた感じです。 GdkGCとかなくてもHDCやDISPLAYを取得できることが分かったのでgraphic_contextを削除しました。 差分 あと、X11版でどうしても最大化ボタンを無効に出来なかったので、ウィンドウサイズの変更に対応させました。 WM_SIZE相当の…

pkg-configの注意点

X11版gl_test.cppのJamfileがいろいろバグっていたので修正しました。 差分 VMwareを落とした後でJamfile書いたので、テストしてませんでした。すみません。 GTK+2のコンパイルオプションを調べるために、 local gtk-cflags = [ SHELL "pkg-config --cflags …

Re: C++0x コンストラクタの引数をとる push_back

C++

http://d.hatena.ne.jp/faith_and_brave/20080310/1205149207 なんでメモリリークするのかは考えてもらう(笑)として、検証用にアロケータを作成したので貼っておきます。

キー入力

今日はGTK+のキー入力について調べました。 WindowsのGetAsyncKeyStateやDirectInputのポーリングと違って明示的にキーの状態を問い合わせることは出来なくて*1、キーが押されたらkey-press-eventシグナルが、放されたらkey-release-eventシグナルが発行され…

続 テクスチャとレンダリングコンテキスト

昨日のレンダリングコンテキストの扱いが気になって、もう少し調べてみました。 まず、C/C++以外ではどうかなと思って、JavaのJOGLを調べました。 https://jogl.dev.java.net/ ドキュメントによると、Textureクラスはレンダリングコンテキスト(GLクラス)とは…

ようやくgcc4.3.0ビルド完了

「GMPとMPFRをgccのソースツリーにコピーしたらビルド楽だよ」と書こうと思って試したんですが、こうするとgccのビルドステップ毎にGMPとMPFRまでビルドされてすごい時間がかかりました。 昨日寝る前に仕込んで、Pen4 2.6GHzで16時間(C/C++のみ)、、、。 Cyg…