2012-06-01から1ヶ月間の記事一覧

TimSort in JSX

JavaScriptのArray.prototype.sort()のアルゴリズムは特に規定されていないようだ。つまり、stableかどうかや最悪計算量は処理系依存である。その結果、JSXのsort()も同様となっている。そこで、stable sortであるTimSortのJava版をJSXに移植してみた。 http…

Mouse repository has been moved to github

I've fixed several issues, released 0.99, and moved the Mouse repository to github. https://github.com/gfx/p5-Mouse I believe that Mouse is still the best class builder for Perl5. Enjoy Perl ;)

Chrome for iOSのJSエンジンはJITなしのJavaScriptCore

Chrome for iOSが発表されたが、スクリプトエンジンのパフォーマンスパターンがUIWebViewと同じである。したがって、アプリケーションの実装はUIWebViewベースで、スクリプトエンジンはJITのないJavaScriptCoreと考えられる。Chrome for iOS で測定したV8Ben…

node-tick-processorでnodejsのプロファイルを整形する

もともとV8にはプロファイル機能が組み込まれていて、V8のリポジトリにはプロファイルデータを整形して表示するための *-tick-processor というスクリプトが入っている。 https://github.com/v8/v8/tree/master/tools linux-tick-processor mac-tick-process…

nodejsでstdinから同期的に全部読み込む

fs.readFileSync() のようなものがあるのかと期待したら、read(2)相当のものしかなくて困惑した。 #!/usr/bin/env node "use strict"; var fs = require("fs"); var fd = process.stdin.fd; var content = ""; var BUFFER_SIZE = 4096; var buffer = new Buf…

JSXでrequestAnimationFrameを使う

現在requestAnimationFrame()はJSX標準ライブラリの timer.jsx に組み込まれています。 W3Cのanimation-timingで定義されているrequestAnimatioFrame()を使うと、JavaScriptでアニメーションをするときに良い感じのフレームレートで実行してくれる、というこ…

Unit tests for JSX

いずれJSX web siteにも載せますが、JSXには非同期テストにも対応したユニットテスト・フレームワーク、test-case.jsxが標準で添付されています。t/lib/*.jsxはこのtest-case.jsxでテストされています。使い方は以下のようにTestCaseを継承して、"test"で始…