2010-01-01から1年間の記事一覧

caml_{enter,leave}_blocking_section

What are caml_{enter,leave}_blocking_section? They are not documented in the OCaml reference manual, but are very important if you tweak C code in multi-thread OCaml environment:Jacque Garrigue wrote: With posix threads (or windows threads…

関数型言語と金融について一席噺してきた

昨日は、某所の先輩である中島さんが社長をやっておられるアーヴァイン・システムズ(http://www.irvinesystems.co.jp/)と香川大学の合同セミナーで、関数型言語と金融について、自由に噺をさせていただきました。深いとこまで話さない(話せない)割には、ずい…

OMake ビルドシステムに関する勉強会

東京で、三月中旬から下旬に開きます。Voluntas さんに atnd を作っていただきました。( http://d.hatena.ne.jp/Voluntas/20100228/1267324828 ) 所詮ツールなので、使用事例の相互紹介とか、こういう事やりたいけど出来なかった、どうしたもんでしょう、と…

OCaml koan

OCaml koan ってなんやろ、オー、キャラメルコーン?違います。 駱駝公案 そう、両手で手をたたくと音がする。では手と手のしわを併せると何になるか?とか、そういう奴。Caml-list でも let rec の rec なんかいらんやん、という質問が。Ashish Agarwal さ…

もなどを、真似したい。

もなど(くらす)を真似したいと、願うのです。 return :: Monad m => a -> m a bind :: Monad m => m a -> (a -> m b) -> m b みたいに type constructor が abstract されているのを OCaml の枠内で出来るだけ簡単に表現したいのです。やりたいのは type cla…

OCamlSpotter 1.1rc2

I have updated OCamlSpotter, a compiler enhancement for source code browsing, to version 1.1rc2, which is aimed for OCaml 3.11.2 and some enhancements since its first release.OCamlSpotter is a tool which finds definition places of various …

ocamldoc -dot で OCaml のモジュール依存グラフを表示する

ocamldoc なんかトンと使っておりませんでしたので、さっき知ったのですが、 ocamldoc -dot *.ml *.mli -o dep.dot でモジュール依存関係をグラフにしてくれるそうですよ、奥様。ちゃんと使うにはインクルードとか設定しないと駄目です。(じゃあ ocamldep の…

単相比較による高速化テクニック、そして、そのあまり知られていない落とし穴

今日は一転、真面目な話ですある程度 OCaml プログラミング経験がある皆様は、 int, string 等の基本型の比較には多相比較ではなく、単相比較を使うべし。最適化された比較関数が使われ、早くなる という教をご存知かと思います。正しいです。でも、そこに実…

俺は Haskell の sieve についてとんでもない思い違いをしていたようだ...

,.‐'´ `''‐- 、._ヽ /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、 [ |、! /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | } ゙l |`} ..:ヽ--゙‐´リ ̄ヽd、 ''''  ̄ ̄ |l !ニ! !⌒ // . i.! l .::::: ソ;;:.. ヽ、._ _,ノ' ゞ)ノ./ ええっとこの読みものは昔から思いこんで…

OMakefile で Makefile で書かれたサブプロジェクトを管理する方法

まだ安定していません。細かいところ予告なく調整していきます。既存 Makefile によるプロジェクトの omake への組み込み方は、二つあります。 OMakefile へ移植 ひとつは、Makefile を OMakefile に移植すること。Makefile が何やってるか完全に理解する必…

使うと「通常の3倍」の速度で OCaml のソースコードを理解できる OCamlSpotter

(その変態的シンタックスに慣れれば) 結構早くプログラムが理解できるとうわさの OCaml ですが、他人の書いた OCaml ライブラリを読んだり、自分が書いた物でも、コード規模が大きくなってきたりすると、 どこかにあるハズの定義が見つからねぇ ってことが多…

OCaml 3.11.2 リリース

今回はバグフィックスリリースです。色々恐ろしいものはこの次の 3.12 で入りますよ。なので、あまり大きく取り上げるものもないですが、、、目立つところでは、 例外をプリントする機構が良くなった Scanf がだいぶ良くなった。でも俺は信用してない Arm 関…

私の今の気分

日本の大学事務は、内部だけに失礼なんだと、思いたかったが、外部に対してもやはり失礼なやつらだと、いうことを、身を持って経験した。日本の大学の教育、研究の質を上げるには、事務を改革するのが、一番、手軽である。

OPA は「綺麗な OCaml」 なのか?

"OPA : my personal Holy Grail of OCaml ?"ホットな内に書いて公開しようと思ったので全然推敲していない文章です。まあ興奮度が伝わればいいかなと思って。OCaml も好いんですけど、やっぱり「ジャイアン」なんです。「綺麗なジャイアン」が欲しいと思うこ…

OCaml の toplevel で日本語文字列 (EUC/UTF-8) がエスケープされていてそれが嫌だという人は

そもそもプログラミング言語システムの挙動が locale とかに引きずられるのは、おかしいと思うんだ。実装側からするとただメンドイだけでバグも入り易いし。まあいいや。 一番簡単なのは、 # let printer ppf = Format.fprintf ppf "\"%s\"";; val printer :…