この前、Twitter で立体視用の画像が貼られていたのですが、私は裸眼で side by side の画像を立体視出来るほど器用ではないので、簡易なビューアを作りました。
side by side 画像をアナグリフ表示や、3Dディスプレイ(3D Vision その他)への表示ができるので、楽に立体視画像を楽しめると思います。
俺言語「詞葉」のバージョン3.0のドキュメントにこんなことを書く事になるとは。
従って、詞葉コンパイラは常に最適化を優先します。エイリアスアクセスで問題が生じる場合には、次のように_m_fence文を記述してプログラマがコンパイラに知らせる必要があります。
int foo( void ) naked
{
int a = 1 ;
int b ;
int * p = &a ;
a = 2 ;
_m_fence ; // メモリへの反映を保証
b = *p ;
return b ;
}
の _m_fence ですが。まあ、ただのメモリエイリアスです。
普通のC++コンパイラだとエイリアスの可能性のある変数に対しては常に問題の生じないコードを出力するわけですが(大抵オプションスイッチなどで切り
替え可能だと思いますが、実際にはエイリアスの問題が無くても可能性があれば逐一メモリアクセスしてしまうので高速化の障害になる)、詞葉では常に無視し
て高速化を優先する、というルールにしたということですね。
まあ、ある程度はエイリアス解析はするんで、実際には殆ど _m_fence を書く必要はないと思いますが。(ただ、詞葉の場合は、コンパイラが確実にエイリアスになるのが分かった場合のみ対処して、可能性があるというだけの場合は無視(コードで明示が必要)するということで)
因みに、この高速性を重視した naked モード。まだデバッグ中ですが、現状で(当初の推定通り)既に10数倍は高速になっています。
更にコードの最適化で高速化した上で、詞葉 3.1 で実行時にネイティブコード(SSE2)に変換して実行する機構も追加予定です。
ただ、直近の目論見としては Android での高速な自前のスクリプト言語を獲得することですけどね。
純粋なスクリプト上の演算ループなどでは、Android 1.6 の Java より高速に実行出来そうな気がしています。(ネイティブコードに変換しない実行でも)
アニメのイラストを描きたいのですが、そんな時間もないです。
なので、誰得?な俺言語「詞葉」の最新バージョンのドキュメントとサンプルソースとサンプルをexe化したものの詰め合わせでも置いておきます。
個人的には、詞葉2.3で導入されたポインタの概念が素敵過ぎて笑えてくるのですが、どうでしょうか?w
因みに、サンプルソースは、stdinout以外はそのままAndroidでも動きます。
Android版も、3D関係の機能をほぼ実装し終えたので、特殊なクラス以外は大体使えるようになりました。(上の写真とか)
まあ、何に役に立つのか、現時点でかなり疑問ですがw
|