toge's diary

コンピュータ関連の趣味をつらつらと。

C++

既存のPDFをPoDoFoで変換

C++

ふとしたことでそこらへんに転がっているPDFを加工したいことがあります。 PDFを生成するライブラリではなくて、PDFのパーザが必要になるのですがC++でやるには何がいいんですかね〜。今回は、ざっと探して最初に見つかったPoDoFoを使おうと思ってます。 PoD…

最近のC++に追い付こうと思います

C++で書きなぐるがの楽しかったのですが、そろそろ限界を感じてきたので、C++14とかをちゃんと勉強しようと思ってます。 私はC++98の知識しかないので、ここ2、3年のドラスティックな変化に全然対応できないと痛感してます。ひとまず以下をサクっと読んで文…

シンプルな構成のC++のHTTPクライアントライブラリは無いものか

C++

「libcurl使えば一発じゃん」と言われればそれまでなのですが、 C++界隈の一部ではheader only libraryが大人気なわけです。Boostやfollyみたいなガチなものから、もっとホビーなものまで沢山あるのに、 案外無いのがHTTPクライアント。 C++バリバリな方々は…

OpenGL3.xを使うためにどうすれば・・・

もう時代はOpenGL4.0だというのに、OpenGL3.x系に対応したライブラリの少ないことよ。新規のOpenGLプログラムを作るときにせっかくなのでOpenGL3.2で作ろうと思うのです。 ところがマルチプラットフォームでOpenGL3.xを使おうとすると、選択肢が殆どなくなっ…

gcc4.5 RC

C++

公開されてますね。 早速ビルドしようとしたら、ご覧のありさま。 checking for the correct version of gmp.h... buggy but acceptable checking for the correct version of mpfr.h... buggy but acceptable checking for the correct version of mpc.h...…

gcc 4.5はまだ先か

C++

[Phoronix] GCC 4.5 Is Still Not Ready For Releaseうーん、gcc 4.5はまだ先か。Ubuntu 10.04にはgcc 4.5は入らなさそうだな。自分で4.5の野良ビルドすることにするか。

aggの勝手ががらっと変わってるな

C++

http://www.antigrain.com/news/index.htmlAnti-Grain Geometryの仕様が2002年ごろとだいぶ変わってるな。 おかげで公式サイトのサンプルも一部動かないし。開発が2007年で止まっているし、その頃ってC++的に激動の時代だったので、何が正しいかの切り分けが…

GCC 4.5.0の足音

C++

http://www.phoronix.com/scan.php?page=news_item&px=Nzc2MQうん、そろそろGCC 4.5.0ですな。ltoがどれくらい最適化に貢献するのか楽しみです。毎週ビルドするのを再開しようかな・・・。コンパイルするものがないけど。

MK script languageっていうのを見つけた

C++

http://mk-script.sourceforge.jp/なんでだか分かんないけどたまたま見つけました。そしてコンパイルしようとして見事にハマり中。 lexer->stream.current = lexer->stream.getc(lexer->stream.stream ); こんな簡単なコードが通らないので何事と思ってプリ…

gcc vs llvmのベンチマーク

C++

http://vmakarov.fedorapeople.org/spec/面白い。こんなのが常に更新されているとは・・・。とりあえずgcc -O3だとllvmにもほぼ全項目で勝っているので安心しました。 ここにiccとかVisual C++が入ってくるとボロ負けだし、どんぐりの背比べなんだろうけどね…

mongoose ほどほど最小サンプル

C++

以前話したmongooseをやっとこさ弄りはじめました。 触っていると分かりますが、小さいけれど必要十分の事ができる素敵ライブラリです。で、公式のソースだとmain.cは色々やりすぎだし、test/embed.cは色々はしょりすぎなので、中庸的なソースコードを作って…

文字コード変換に完全ハッシュ関数を使う

C++

帰りの電車の中でふっとこんなことが頭に浮かんだ。 なぜ完全ハッシュ関数なんて数年来使ってない単語が出てきたのかまったく謎だ。で、ちょっと調べてみたら、そんなの常識らしい。iconvはgperfを使っているし、こんな日記を書いている方も居た。http://cvs…

gcc 4.4.1は6月末か

C++

Mark Mitchell - GCC 4.4.1 Status Report (2009-05-05)なるへそ、4.4.1は6/21ね。まあその通り出たためしないから、6月末から7月中旬ぐらいかね。 そういや4.5.0の開発が進んでるけど、そろそろ利用価値ないように思うのでlibgcjあたりは外してほしいと思う…

luaで設定ファイルは最強です

C++

まったくそのとおりの考え方をしていて、実際に使いまくっています。 その例: reflect.lua - reflectblade - シンプルなボートレースゲーム - Google Project HostingLuaConstants.cpp - reflectblade - シンプルなボートレースゲーム - Google Project Hos…

boost 1.39リリース

C++

Version 1.39.01.38の新機能を1回もいじらないうちに1.39が出てしまった。 まあ、今回の更新は私的には小さなものなので、まだ追従可能かな?

RapidXMLをBOOST_FOREACHに対応させる

C++

RapidXMLのノードをBOOST_FOREACHをつかってループする - :set titlestring=秀丸RapidXMLをさわりながら「いつかやらなきゃなぁ」と思っていたことを、さくっと実現されていたので、使わせてもらいます。m(__)m

gcc4.4 リリース直前

C++

http://gcc.gnu.org/ml/gcc/2009-04/msg00406.html If nothing serious is reported, I'd like to release 4.4.0 next week. ということでいよいよ来週にはgcc 4.4.0が出るらしいぞ。 もうrc1も出てるしね。速く広まるといいなぁ。

shttpd→mongoose

C++

2005-12-12 - togeの日記3年以上前にとりあげてくだらんプログラムで使い潰したshttpdですが、プロジェクト名をmongooseに代えて生き残っていました。SHTTPD - an embeddable Web server mongoose - Mongoose - easy to use web server - Google Project Hos…

SDL 1.3お試し

C++

http://www.libsdl.org/tmp/SDL-1.3.zipちょっと耐えられなくなってSDL 1.3を入れてみた。 おおっ既存のコードと互換性を保ちながら複数Windowに対応してるんですけどっ。 ついでにOpenGL, OpenGL ESにも対応しているっぽいんですけどっ。リリースはまだ先み…

gccはそんなに悪い子じゃないよっ

C++

gcc vs MSVCこういう記事があると脊髄反射で検証してしまうダメな私です。さてVisualC++は全然興味が無いし、おそらく最適化オプション調整すればもっと速いコードが出てくるはずなので「Visual C++より速いとか遅いとか」で一喜一憂する気はありません。な…

TDM's GCC/mingw32 Builds

C++

昨日のMinGW cross compiling environment経由で知りました。MinGWのgccがいつまでたっても3.x系なのに痺れを切らしている人は多いはず。 そんな人のためのプロジェクトです。昔はご丁寧に"experimentation"なんて言葉を使っていたみたいですが、今では"hear…

Graphiteが何をやるのか?が書いてあった

C++

http://gcc.gnu.org/gcc-4.4/changes.html知らないうちにchangesにGraphiteが何をやってくれるのか書いてくれてますね。 簡単に言えば単純なループを、メモリアクセスとか並列性を確保するために、変形しちゃえってものらしい。ここらへんの機能がSIMDな命令…

MinGW cross compiling environment再び

C++

去年11月に取り上げたMinGW cross compiling environmentが2.0から2.3にバージョンアップしていた。色々変わってますな。一通りビルドされるものの差とか出してみますか。 追加 boost 1.37 bzip2 1.05 gcc gmp 4.2.4 gcc mpfr 2.3.2 バージョンアップ curl 7…

boost 1.38か

C++

なんかひっそり公開されてますね。 私の視界ではあんまり触れている人をみかけないな。すぐにも使えそうなScopeExitとSwapと、新しいプロジェクトじゃないと大変なことになりそうなflyweightが追加されてますな。・・・っていうか1.37で追加されたライブラリ…

TinyXML++

C++

http://code.google.com/p/ticpp/TinyXMLの後継らしい。 インターフェースの互換性をあえて捨てて、templateを使った使い易いインターフェースにこだわったみたいだ。確かにチュートリアル読む限り使いやすくなっているように見える。速さ的にはRapidXMLには…

printfを使わずに実数を表示する

C++

printf("%f")より速くしようと思ってざっと作ったら、返ってprintfより遅かった。 std::stringなんか使っちゃ行かんのだな。printfの実装を参考にしよう。(それすらやってないんかいっ!)

RapidXMLで辛い点

C++

ちょっとづつ使っているとライブラリの得手不得手が分かるものですね。RapidXMLの場合に私が困るのは次の2点かなぁ。まあ、速度と使いやすさにおいて補って余りある特徴があるから、今の所は困らないけど。 エラー発生場所が分からない 一度メモリに読み込…

gcc 4.4.0の足音

C++

http://gcc.gnu.org/ml/gcc/2009-01/msg00610.html http://gcc.gnu.org/ml/gcc/2009-01/msg00616.htmlとうとうgcc 4.4のbranchが切られるようだ。「FSF、GCCにプラグインアーキテクチャを認めるライセンス除外規定最新版」の動きも含めてリリースするみたい…

iostream使って速くファイルサイズを読み込む

C++

なんか、世の中にはrdb->in_avail()は正しいサイズを返さないって話もあるみたいだが、Linux上のgccでは3.4.6以降どれで別に問題なく使えてる。この部分に関しては、C言語よりC++の方が使っていて楽ですな. // open file const char* filename = argv[1]; st…

RapidXML 触ってみる2

C++

うぬ、rapidxml.hppと一緒に提供されているrapidxml_utils.hppを使えばもっと簡単に書けたみたい。 #include <iostream> #include "rapidxml_utils.hpp" int main(int argc, char* argv[]) { // check parameter if (argc < 2) { std::cerr << "usage : " << argv[0] <</iostream>…

RapidXML 触ってみる

C++

なんか3人の方にブックマークして頂いたようなので、もう少しマシな情報を。 RapidXMLに簡単にXMLを処理させてみました。お手頃なXMLのデータがなかったので、自分のはてなブックマークページをローカルに落として使いました。程よくタグの綴じ漏れがあるデ…

RapidXML

C++

久しぶりにC++でXMLを扱おうと思い立ち、さて何を使ったものかなぁと考えたのです。さすがに未だにTinyXMLってわけにもいかないだろう、POCOの中のXMLか、wmXMLか、はたまた無難にlibXMLか?・・・といろいろ探っていたのですが、どうもしっくりこないのと、…

google ctemplateを再評価

C++

公開当初にちろっとだけ日本語の記事を読んで「大して使えないじゃん」と思って手を出さなかったgoogle ctemplateですが、tengを評価するついでに再評価したら、案外かなり使えることがわかりました。わたしごときの趣味プロでは、これでおなかいっぱいなぐ…

gcc4.3.3リリース

C++

でてた。今コンパイル中。

CLX Library

C++

slashdot.jpの今月のプロジェクトで取り上げられてたのでなんとなく気になっていたプロジェクトです。 とっとと使えるようになってしまおうとドキュメントを一通り読んでおります。恥ずかしながらboostの斬新さと汎用性の高さについていけない私には、至れり…

gcc 4.4.0 とうとう(個人的に)まともに動くようになった

C++

gcc 4.4.0 の 2009/01/16 のスナップショットで、とうとう私の変態プログラムがコンパイル・動作するようになりました。最適化オプションは以下のとおり、「これでもかっ」というもの。 これでも動くようになったのは偉いっ! -O3 -march=core2 -msse -msse2…

gcc 4.3.3 RC公開

C++

GCC 4.3.3 Release Candidate available from gcc.gnu.org http://gcc.gnu.org/ml/gcc/2009-01/msg00244.htmlおおっ来ましたね。 4.4.0はまだまだなので、4.3系が安定に動いてくれるのはとってもありがたい。

tengは難しいなぁ

C++

http://d.hatena.ne.jp/toge/20081213#1229132824C++のテンプレートエンジンとしてtengを紹介しましたが、コンパイル大変だなぁと放り投げ気味です。開発も殆ど止まっちゃってるし。やっぱりまともにメンテナンスされているgoogle ctemplateの出番ですかにゃ…

Ubuntu8.10でwx-configが見つからない

Ubuntu8.10でwxWidgetsのプログラムをつくろうとしたら、wx-configがなくて右往左往する。 wx-commonにあるんじゃないかぁと思ってたんだけど、そこにはない。同じこと考える人がいて、質問してくれていました。https://bugs.launchpad.net/ubuntu/+source/w…

gcc 4.4.0はまだ先か・・・

C++

http://gcc.gnu.org/ml/gcc/2009-01/msg00051.htmlげげっ、holiday seasonがあったからバシバシ使われてregressionsが増えたようだ。4.4のbranchの作成はP1が0になって、P1+P2+P3が100になることらしいんだが、 現在はP1が12でP1+P2+P3が128。今までの減り具…

gcc4.2 branch終了?

C++

http://gcc.gnu.org/ml/gcc/2008-12/msg00316.html色々話題のつきなかったgcc 4.2もとうとう終焉を向かえそうです。 主要ディストリビューションでもgcc 4.3が積極的に使われていますし、以前のような最新版とディストリビューションの収録版に乖離がある状…

Graphiteが使えないなんてっ その後

C++

昔(id:toge:20081127#1227804595)に「使えない」とぶーたれていたgcc 4.4.0の新機能Graphiteですが、snapshot 20081212を使ったところ、無事コンパイルが通るようになりましたよ!コンパイルしたバイナリはまた最適化に失敗しているらしく、あっさり落ちるけ…

Native Client動かないなぁ

Google Native Clientで画像を表示するやつが、Firefox3上で動かない。 なんか設定ミスっているのかな・・・。画像表示できなかったらおもしろくないもんなぁ。

teng 1.0.4

C++

http://sourceforge.net/projects/teng/C++で書かれたテンプレートエンジン。この手で有名なのはClearSilver(http://www.clearsilver.net/)だけど、 こっちの方がシンプルで使いやすそう。サイズも小さいし。ソースコード量も小さいので比較的把握しやすいで…

LTOどころか、WHOPRですか

C++

http://journal.mycom.co.jp/news/2008/11/28/005/index.htmlおお、Googleも本気だねぇ。Graphiteじゃないけど、きちんと動くものになるとうれしいな。

Graphiteが使えないなんてっ

C++

gcc 4.4では最適化オプションが少し追加されています。中でも大きいのがGraphiteの追加・・・のはずなのですが、gcc -fgraphiteとかすると sorry, unimplemented: Graphite loop optimizations cannot be usedと出てしまう。うーん・・・とソース(gcc/graphi…

gcc4.4

C++

一度粘着し出したら止まらない。毎週1回snapshotをビルドする予定です。

SVML使うよ

C++

gcc 4.4の新機能(http://gcc.gnu.org/gcc-4.4/changes.html)のうち、個人的な注目機能の一つにSVMLへの対応があります。SVMLっていうのはShort Vector Math Libraryの略でIntelが出しているSSEとか使ってばりばり高速に演算しちゃおう・・・というものです。…

C++でFlashなんて時代がくるとはね

C++

http://labs.adobe.com/technologies/alchemy/C++でFlashなんてプロジェクトは去年のMAXでもチロッと触れられたように思うけど、まさか実現するとは、しかもLinuxまで一気に対応・・・すげ〜。とりえあずC++だという理由だけで落として触ってみることにして…

 gcc4.4

C++

しばらく前からgcc 4.4.0のsnapshotを毎週入れて使ってます。まったくもって直感的で定量的なデータはどこにもないのですが、4.3.2よりも速いデータがとれていそうな気がします。 3.4.6に比べるとどうかと言われるとちと怪しいですけど。