このエントリーは以下の「Webの未来 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること〜」というスライドへのアンサーエントリーです。 ひょんなことからまとめはじめたのですが、とりあえずタイトルにあがっているようなasm.js(あせむじぇいえす)やPNaCl(ぴなくる)、LLVMという単語が知らない人でもわかないひとがわかった気になれるように書きました。つまりわかってないやつとはエントリを書いている本人のことだよ! PNaClとasm.jsでカワルミライ Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること from Kei Nakazawa 結構ブクマが多いのでみんな気になっているんだろうなぁ、という雰囲気があります。 でも読んでみると良く分からない単語があったり、業界背景を理解して
米Dropboxは4月3日、オープンソースのPython実装「Pyston」を発表した。LLVMのJITエンジンを利用するPython実装で、より高いパフォーマンスを目指すという。 PystonはLLVMおよびLLVMのJIT(Just In Time)実行エンジンを使用して構築されたPython実装。Python 2.7互換の実装で、現時点ではx86_64プラットフォームでのみ動作し、動作テストはUbuntuで行っているという。 パースされたPythonコードをLLVMの中間表現(IR)に変換し、LLVMのオプティマイザを経てLLVM JITエンジンで実行可能なコードを生成する。LLVMには最適化パスなど最適化のための仕組みが多数含まれており、高速なコードを精製できるとしている。現時点での性能については「CPythonよりも上だがPyPyよりは劣る」と報告されている。 Dropboxでは
最近の投稿 今年の進み具合をプログレスバーで表示する 2025/1/5 日曜日 問題: 積み木を10個積み上げるのにかかる時間は 2020/8/20 木曜日 Google の G Suit Team から “[Action Required] Remove internal links to the G Suite Domain Contact page for your organization” ていうメールが来た 2020/8/14 金曜日 NZXT H1 と ROG STRIX B550-I GAMING で組んでみた 2020/7/17 金曜日 花粉症対策2019 2019/3/16 土曜日 マルチディスプレイ時のDisplayPort問題を何とかしてみた 2019/1/12 土曜日 REALFORCEソフトウェアがインストールできない(解決済) 2018/12/6 木曜日 Ge
某会場のLT(5min)において、Dart VMの普及を願い紹介させていただきました。 煽りの入ったLTですが、以下の理由から作成することにしました。 Dart VMを開発しているGoogleのVMチームは、 古くはSunでSelf Hotspot OOVM V8 Dart VMと開発してきた経緯からすると、 HotspotやV8は当時の目標や技術的な課題、制約等あったわけで、 単純に速い遅いと比較するわけにもいかないはずです。 またDart VMもV8も同じ会社で開発している関係上、パフォーマンスがでない理由は百も承知なはずですし、 表立ってdisりにくいのかなと思ったわけです。 私みたいなDart VM WatcherがV8を一人disるくらい問題ないよね、と。 ちょっと補足説明させていただきますと、 Dart VMはia32に限っていうと、各種マイクロベンチマークではよい成績ですし、
Introduction lawk is a jit compiler for awk that targets the llvm (http://www.llvm.org). It was born as a way of experimenting with the llvm infrastructure in a setup more complex than the tutorials. As such, its main purpose is didactic and I do not forsee it becoming a real alternative to the already available implementations of awk. Its foundation lies in GNU awk. State A significant part of aw
前回の「3日で出来るLLVM」にひきつづきLLVM解説本をC83で出します。 タイトルは表紙のきつねさんが特徴の「きつねさんとおぼえるLLVM」です。 LLVM狐本で覚えて下さい! フロントエンド,ミドルエンドは柏木餅子(id:motipizza, @sui_moti)、バックエンドは私が担当しました。 表紙は引き続き矢上さん(blog,tumblr)に書いて頂きました。 (前回同様タイトルと内容があっているとは限りません!!) 内容としては前回からの加筆修正版となっており、主な追加要素としてはJITコンパイルの方法, Passの書き方, バックエンドではオブジェクト生成の方法などがあります。 前回購入された方でも十分満足できる内容が追加されているのではないかと思います。 特に餅さんが担当したJITコンパイルのところは非常に面白い話になっています。 私が担当したバックエンドも構成を見直して
LLVMの解説本をC82の2日目(8/11)西し39aで出します。 タイトルは「3日で出来るLLVM」です. LLVMを使ってコンパイラを作るという内容になっています。 フロントエンドとミドルエンドはid:motipizza(@sui_moti)が担当し、自分はバックエンドの担当です。 表紙は矢上さん(blog)に書いていただきました。かわいい表紙でよくできているのでこれだけでも売れそうです。 目次は以下のようになっています。 はしがき 第一章:はじめに 第二章:コンパイラとLLVM 第三章:環境構築 第四章:LLVM IR 第五章:フロントエンドを作る 第六章:Pass について 第七章:バックエンドを作る あとがき LLVM解説本を作ると決まってからLLVMについていろいろと調べ始めましたが、 ほとんど資料が無く特にバックエンドに関しては皆無のような状態で苦労しました。 自分が理解でき
最近LLVMについて調べてみたのでまとめてみる。自分はコンパイラの専門家でも何でもないので間違った内容があるかもしれない。GCCとコンパイラの仕組みLLVMの前にまずはコンパイラ一般の話。コンパイラはまずソースコードを解析して内部表現にする。これはたいていツリー構造となる。このツリー構造のデータに対して文法チェックを行ったり最適化処理を行ったりした後に、オブジェクトファイルを生成する。コンパイラの内部表現だが、実際には複数の種類の内部表現を使っていることが多いらしく、GCCもそのようになっている([1]の図3)。これによるとまずはその言語固有のツリーにするようだ(C trees, C++ treesなど)。これをGENERICという形式にする。GENERICは名前のとおり言語に依存しない一般的な形式で、どの言語の場合も一度GENERICにする。GENERICはその後さらにGIMPLEという
Early last fall, I started working on a project called js.js with two other graduate students, Naga Katta and Stephen Beard. We started using a public Github repository from the start, and at the beginning of January, the author of three.js found and tweeted a link to our repository to his many followers. Soon after, a post wound up on Hacker News. Unfortunately, we weren’t very far along in the p
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く