2008-11-01から1ヶ月間の記事一覧
>
なわけなのに… struct A{ int i; void setI(int i){ this.i = i; } } A foo(){ A a; a.setI(10); // setI関数が単体としては純粋関数でないばっかりに return a; } void main(){ enum a = foo(); // これがエラーになるのが納得できん。 } http://gcc.gnu.or…
ヒープに関数置けばあまり良い方法で無いにせよできるはず。 ってことで、以下のようなの作った。x86 + cdecl(おまけでD呼び出し規則) + ヒープでコードが実行できる環境向け。 alias extern(C)void function() CFunc; invariant ubyte[] ret = [0xc3]; inva…
https://lists.ubuntu.com/archives/ubuntu-devel-announce/2008-November/000514.html ktktkt! でもこれのせいかLaunchpadのbzr鯖が遅くなって俺涙目w
Ubuntu 8.10ベースで作った。linuxで軽くしかテストしていない。再開発万歳。 https://code.launchpad.net/~lovesyao/+junk/opengl4d glutはfreeglut3-devベース。理由はlibglut-devで入れるとそれが入るから。
volatileとの兼ね合いで、標準でマルチスレッド安全にならないとしたら、別に関係なくね? と思ってしまうが。
pragma(lib,"");がLinuxでも使えるようになったのが大きい。 foreachが内部イテレータから外部イテレータに(empty、head/next、toe/retreat)。 safeはただ追加しただけで実装はまだのようだ。 構造体のthisが参照になるのは悪くない。まぁ参照理解してないと…
lintianに言われた。タブ出力に使っているのだが、どうしろと。 正解はprintfを使う。改行が含まれないので注意。 にしてもprintf使ってくださいと言ってくれればいいのになぁ。
おまけでalchemy。インラインアセンブラのせいでコンパイルできなくてもおかしくない。 がassertで落ちるのでそれ以前の問題。 $ /opt/build/alchemy-ubuntu-v0.4a/bin/llc --march=avm2 ffplay_g.bc llc: /home/user/dev/flacc/llvm-2.1/lib/Bitcode/Reader…
cへの変換も失敗。ただcppへの変換に成功…なんと204.6MB! $ llc --march=cpp ffplay_g.bc /usr/bin/g++ ffmpeg_g.cppでコンパイルしてみた。 $ /usr/bin/g++ ffmpeg_g.cpp In file included from /usr/local/include/llvm/BasicBlock.h:20, from /usr/local/…
続き。JITではinlineアセンブラサポートしていないようなので。 llcでコンパイルしてやる。にしても後でarchが切り替え可能なのに、inline asmでarchが決まってたら勿体ないよなぁ。 $ llc --march=x86 ffplay_g.bc llc: LiveInterval.cpp:257: void llvm::L…
ということでこんなの書いた。既にあるだろうけど、再実装。 https://code.launchpad.net/~lovesyao/+junk/llvm-gcc-compat 使い方は/usr/local/llvm-gcc-compat辺りに移動して export PATH=/usr/local/llvm-gcc-compat:$PATH gcc hello.c ./a.out んで気が…
ただ--enable-finalはKDE系でしか使えなかったはず。ようは一つのファイルにしてコンパイルって話。 -fwhole-program --combineでも良いはず…?
>
http://shinh.skr.jp/m/?date=20081123#p07 この世と別のルールを持った空間ってのが面白いなぁ。 三次元だとどうなるかが気になった。ルールが問題になるのかな。 三次元のライフゲーム見つけた。うーむ。 http://www.nicovideo.jp/watch/sm3035103 http://…
http://d.hatena.ne.jp/amachang/20080509/1210355674 面白そう。後で試す。
gtags (global)より良いらしい。後で試す。
>
ある処理に依存する入力/出力コントロールを明示すれば、自動マルチスレッド化できそうな気がするのだがなぁ。ああ、もちろん駆動はイベントでだけど。
コンパイラフレームワークという立ち位置は正しい。 JITについては懐疑的だが、使わなくても良いというのは良い。 バイトコード変換、バイナリ変換をも纏めるというのは良い。 リンク時の動作もLLVMの方が良かったような。 ということで将来性確実。 という…
一方、D言語は出力関連のを使おうとするとimportが必須で、しかもimport(std.stdio);みたいな書き方は出来ないので無理。 できるよ! int*x;typeof(*x)y;extern(C)typeof(y)printf(char*,...);typeof(y)main(){printf(cast(char*)"Hello,%cworld.",0x20);ret…
ありそうなのから無さそうまで。オモロいなぁ。 動いちゃえざるをですしとしかんく 動けせてはるのでもんくとりましぇん 動けるよりはねとならんかっ 動けるまいなあとのことでさえもへんとは 動くみたいでもあれたし 動けよとのことでさえせられろってんだ …
静的なテーマが主流の今にギミック付きテーマは良いねぇ。
https://code.launchpad.net/~lovesyao/+junk/depgraph パース&ランダム出力してみた。以下出力例。ちゃんとAnthyで一文節で変換される。オモロい。 $ ./depgraph random 動詞終止形 動く 動くやとのことでさえすっかで 動くべければとも 動くさとか 動くみ…
>
http://dehs.alioth.debian.org/uscan.html 正規表現で可能と。 llvmなら version=3 http://llvm.org/releases/download.html \ ([\d\.]*)/llvm-([\d\.]*)\.tar\.gzこんな感じ。
2chで知ったもの。https://launchpad.net/~martin-espinoza/+archiveにhardy向けしか無いのでintrepid向けにして自分のPPAにcopyしてインストール。 んでシステム->設定->Qt 4設定からスタイルをGTKに。 微妙に異なるが以前よりマシ…だがうーむ色々気になる…
http://shinh.skr.jp/m/?date=20081119#p01 ASへの変換kt llvmdc試し時だなぁ。でも今は他の事したいのだが、、、でも他の誰かが試してくれるわけでもなし、、、。
現時点ではD言語最強だよね、という人向けに。 方法。dmdのフロントエンドがオープンソースで公開されているが、バックエンドはgccかllvmかそれとも新しく作るしかないんです。 D言語で書きたいならフロントエンドだけだがdparser(http://www.dsource.org/pr…
2chを参考にしながら作ってみたが、バイナリ表示に一苦労。 コマンド プロンプトはエスケープシーケンスをサポートしてなかったという罠。ビープ音は出るのに…。 utf-16のBOMを区切りとして使って無理やり実装。 Python良く知らんのや面倒という理由でコード…