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

pthread の フェアネス (と ocamloptのコンテキストスイッチ)

pthread のスケジューリングがイマイチ公平でないように見えたので各環境での振る舞いについてざっと調べた. (あんまりOCamlと関係ない) 動機 前回のコードは 私の環境(MacOSX 10.5.8)では コンテキストスイッチがなかなか起こらず しばらく片方のスレッド…

マルチスレッドなFFIの実装

マルチスレッドでOCamlからCを呼ぶ場合、または CからOCamlにコールバックする場合、 C側からOCaml のデータを触るとき C側からOCaml のコードを呼ぶとき は、その部分を (OCamlを触らないコード) leave_blocking_section(); (OCamlを触るコード) enter_bloc…

メモリアロケーションとコンテキストスイッチの関係

OCamlのコンテキストスイッチのタイミングを調べた。OCaml では OSネイティブのスレッド (pthread) を使える。 しかし、OCamlのランタイム内で同時に走るネイティブスレッドは1本だけ、という制限がある。OCamlはスレッドセーフなGCを備えていないためだ。 …

OCamlをAndroidにポーティングした

最新版はこちら (2010/12/8)OCaml を Android に移植しました。具体的には OCaml のバイトコードを Android で実行できるようになった OCaml のソースから Androidのネイティブコードを生成できるようになった という感じです。 caml-listにもポストしたよ。…

Android (Googleケータイ) でデモをつくった

某Webアプリに飽きたのでさくっとお気に入りのデモを作ってみた。 たぶんこれ以上は作らない。 動画 ソース http://sites.google.com/site/koyamakannon/Home/android-plasma.zip

型レベルの何か

apply (undefined :: n -> Succ (Succ n)) Zero :: Succ (Succ Zero) 型レベルのλ (System FのΛ)があったらいいのにーという風に理解したのですがそりゃ難しそうに思えます. 難しくありませんでした.何かそれっぽいのができました.知りもしないのに適当な…

Mac OS X で F#

MacPorts から F# を入れて触ってみました. インストール sudo port install fsharp インタプリタの起動 fsi しばらく待つと mono がむっくりと起き上がって,プロンプトがでます。 もし起動しない場合は, bashrc に export DYLD_FALLBACK_LIBRARY_PATH=/us…