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

mqo2smesh

以前紹介したムービーの作者の方が partixを組み込んでらっしゃるということなので、 ちょびっと説明を。 partix/examplesディレクトリに mqo2smeshというプロジェクトが入っています。 これをビルドするとmqo2smesh.exeという実行ファイルが 作成されますの…

ねたばれ

ZEDっていったら時空超越の呪文に決まってるだろうが 知らないやつが多くて困る

 わろた

【経済】アメリカン・インターナショナル・グループ(AIG)は、あと48時間〜72時間しか存続できない可能性がある 593 名前:名無しさん@九周年[sage] 投稿日:2008/09/16(火) 00:04:43 ID:/Nng5os7O >>537 マッドマックスじゃないか? 資本主義が崩壊→核戦争→…

例外処理

例外処理を実装しようと目論む。 …… 何もオブジェクトをthrowしないで フロー制御するだけなら何も考えずに書けるようだけど、 オブジェクトをthrowしようとすると そうもいかないらしい。 少し考えねば。 llvm.eh.exceptionを使ってどっかよくわからん場所…

バージョンアップ(2008-09-14)

caperをバージョンアップしました。 変更点は 出力コードのインデント等を美しくした 出力コードの重複部分などの無駄を最適化 ※重要※ postの返値を 「accept || error」にしました。従ってエラーチェック ( parser.error() ) はループ脱出後に行う必要があ…

すばらしいゲーム

http://www.watch.impress.co.jp/game/docs/20080912/jrm.htm partixを使ってぷよぷよを作るのはおもしろいかもしれない

schemeと私

schemeでアクセスしてくる人が結構多いようなので、 昔語りをしてみます。 何を隠そう私は、つい7〜8年前、schemeのインタプリタを作って 公開していました。一応まだそのページ残ってます。 http://www.jah.ne.jp/~naoyuki/Programs/Programs.html (いま…

スキャナ

http://d.hatena.ne.jp/higepon/20080912/1221232779 スキャナかあ 私が昔schemeのインタプリタ書いたときは SJISとEUCくらい読めればよかったんで おおざっぱにハードコーディングしてた こんな感じで: letter [\x00-\xff] kanji ([\x80-\xff]{letter}) ide…

評論

http://guideline.livedoor.biz/archives/51118768.html 人工無能かなんかに使えそうないいデータ

構造体と構造体リテラル

構造体実装した。 require leaf; struct Foo { x: char; y: short; z: int; w: long; }; fun main(): int { var foo = Foo { x = 13@char; y = 75@short; z = 46@int; w = 2@long; }; 0; }こんなソースが ; ModuleID = 'test' declare i32 @puti(i32) declar…

キャスト

キャスト演算子を@にしてしばらく書いてみたけど アセンブリみたいでキモい foo as int とかにしようかと思ったけど asみたいな短い文字列を変数名に使えないのはハマりそう foo cast int かなあ でもいまいち意味が取りづらい foo => int とか? うーん foo…

遅延評価

遅延評価をデフォルトにすると リアルタイムプログラミングと折り合いが悪すぎると思ってるので scheme R5RSみたいに Promiseの作成は明示的 Promiseの起動は暗黙 って感じがいいかなと思ってます。 正確に言うと、R5RSでは、作成(delay)は明示的だけど 起動…

というわけで

leafもそういう方向性で進めたいわけですが、 OOとはどう折り合いをつけるのかな…… 前にOCamlでコンパイラ書いたときも gensymとintern以外破壊的操作を行わない縛りで作業したんだけども、 ASTや functional intermediate representation に ちょっとした情…

ゲーム業界も

http://d.hatena.ne.jp/Florian/20080912/1221182604ゲーム業界も えーマジ代入!? 破壊的代入が許されるのは小学生までだよねー キャハハハハハハ という方向に進んでください。 お願いします。

名前

いま気づいたleafってエロゲ屋の名前じゃねえか シナプスが全く結合してなかった まいいやいまから変えるのめんどくさい

多値

今生きてるバグレポートはこれっすかねhttp://llvm.org/bugs/show_bug.cgi?id=2660まあ待つか sretってなんだろ? はあ、返り値をポインタ渡しするための引数の修飾子か ポインタ渡しと実際の返り値とを フロントエンドの時点で恣意的に分別するのはやだな …

多値続き

ああなるほど、多値サポートなくなって struct返しが普通になるのかhttp://lists.cs.uiuc.edu/pipermail/llvmbugs/2008-July/005462.htmlsubversionのレポジトリから持ってきた方に 多値Returnがなかったので、なんかおかしいなと思ってた (複数環境をインス…

多値

struct返しにしてもだめなもんはだめだった ジェネレータの問題みたいだからほっとくしかないか 手動にしてもいいけど 私の勘違いかもしれないし そのうち直るかもしれないから 別のことやるか lli -force-interpreter=true t.bcってやったら lli: Interpret…

調子に乗って

もうちょっと楽にならないか考えてみる template < class T > struct CompareMixin { public: bool operator<( const T& x ) const { return static_cast<const T*>(this)->totuple() < static_cast<const T*>(&x)->totuple(); } }; struct Foo : public CompareMixin<Foo> { int m0; </foo></const></const>…

operator

lexicographical_compareをtupleに適用するような何かってないですか?operator struct Foo { Bar* m0; Baz* m1; Zot* m2; bool operator<( const Foo& x ) const { return lc( make_tuple( m0, m1, m2 ), make_tuple( x.m0, x.m1, x.m2 ) ) < 0; } };こんな…

多値続き

ググったらBugzillaでなんかやってたX86のABIでレジスタが余ってなかったらだめとかなんとか 他にもいろいろ問題あるみたいで 要するに多値はまともに機能してなさそう 実装変えるか

多値

超必死こいて多値の実装をしていたわけですが、 よくみたらLLVMの多値( Multiple Return Value => MRV )って 2.3で新しく入った機能なのね!!! でもって、 require leaf; fun foo( n: int ): int, char { n, n@char; } fun main(): int { var a, b = foo(3…

テンキーレスリアルフォース

相手は死ぬ

86U

くればリー2号店に普通に10個くらい置いてあったので 1個買ってきた。明日会社持ってく。 あと行きの総武線で 向かいの青年がCODE COMPLETE読んでた。

 クロージャ

ふひー やっとこのコードが通った 10時間くらいかかった require leaf; fun foo( n: int ): fun ( int ): int { fun( m: int ): int { n * m; }; } fun main(): int { var f = foo( 3 ); puti( f( 4 ) ); 0; }クロージャに封じてある自由変数の数とか 呼び出…

RealForce 86U

RealForce 86Uおいこらこのクズども!ちゃんとたのみこむでたのみこんだこの私を差し置いて 勝手に売り切れさすなこのボケ! orz

返り値の型とキャスト

今まで手抜きで関数の返値の型を全部Int32Tyにしてたのを ちゃんと型宣言を見てつけるようにした。 そのテストにあたってchar, longなどの値を生成する必要がでたので、 キャスト演算子"@"を実装した。 でも Expr '@' TypeExpr ていう文法にしようとしたら r…

ローゼンメイデンというのは

AI同士を戦わせる遺伝的アルゴリズムの話ですか?