今日の OCaml RSS

OCaml 3.11.1 は二週間後

という電波をどこからか受信した。バグフィックスっぽい。

arm backend / OCaml on iPhone

Caml-list: (http://groups.google.com/group/fa.caml/browse_thread/thread/e411d2051ead4b4/4d6185121fe2efbd?lnk=gst&q=arm+backend#4d6185121fe2efbd)

Jeffrey Scofield to caml-list

Xavier Leroy writes:

> Concerning the iPhone, it is not supported out of the box by
> 3.11 nor by the CVS trunk code. For 3.11, several patches have
> been mentioned on this list; it would be great if someone with
> iPhone development experience could combine them and publish a
> unified patch.

I'm happy to provide a unified patch containing everything we use to cross-compile OCaml for iPhone. Note that our patches are against OCaml 3.10.2. This is simpler for us because we started with patches by Toshiyuki Maeda that are for 3.10.2. I would imagine that the changes for 3.11 are minimal, but we haven't tried it yet. When we move to 3.11, I'd be happy to provide new patches (if nobody else does so earlier).

東大の前田さんの OCaml on iPhone パッチ(http://www.yl.is.s.u-tokyo.ac.jp/~tosh/ocaml-on-iphone/)を元に、さらに改造したクロスコンパイラが出来ているっぽいです。GUI も書いたとの事。iPhone ユーザーとしては楽しみですが、コードを書く時間がない。

Custom blocks and finalization

Caml-list: (http://groups.google.com/group/fa.caml/browse_thread/thread/cd0ff9523ed1b6cd/93d1401e47a5ffa0?lnk=raot&pli=1)

Markus Mottl to OCaml

Hi,

we've recently run into a class of bugs concerning finalization functions with custom blocks that is probably not uncommon in OCaml bindings (e.g. Postgresql-bindings, SSL-bindings, likely others). It seems somewhat unintuitive, but finalizers registered from within C do _not_ behave the same as ones registered from OCaml-code with the
Gc-module.
[略]

ウチの会社の Markus が C での finalizer 関数についての落とし穴に付いて指摘しています。OCaml のマニュアルにも書いてはあるのですが、 OCaml 上での finalizer と違って、 C 上での finalizer にはかなり沢山制限があります。これを知らずに C finalizer を使っていると seg faults の原因になります。しかも、finalizer 内でクラッシュする訳でもないため、とても原因が把握しづらい。C でのインターフェースを書いている人は要注意!

  • value を allocate しちゃ駄目
  • callback 呼んじゃ駄目
  • root を登録、解除しちゃ駄目
  • OCaml のランタイムのロックを取ったり開放しちゃ駄目

で、実際幾つかのライブラリにはやっちゃいけないことをやっている物があるらしい!!

OCamlRuby : OCaml で書かれた Ruby サブセットインタプリタ

http://ocaml-nagoya.g.hatena.ne.jp/yoshihiro503/20090502/1241272434

OCamlRubyを更新した。

IT プランニングの id:yoshihiro503 さんが、パーサだけじゃなくてインタプリタも書かれたそうです。

現在のコードの行数は512行

この短さがすごい。