2013-01-01から1年間の記事一覧

AndroidのRenderScriptのソースでLLVMをつかっているところ

きつねさんのLLVM本を読んで、LLVMのIR(中間表現。bitcodeと等価)に最適化をかけたりネイティブコードに変換するのは"Pass"として実装されていて、それらの"Pass"をたばねるのが"Passmanager"だと知りました。 (ちなみにこの本はコンパイラのことをよく知っ…

Android 4.4のARTのソース解析メモ

チラシの裏に書いておく。gitのタグはandroid-4.4_r1 android-4.4_r1.2でもartに関しては差分なし。 バックエンドの選択 compiler-backendはビルド時に選択する。QuickとPortableの2種類。デフォルトではQuick。 Portableを選択する方法はbuild/Android.comm…

Android 4.4 のARTのコンパイルしたコードを見た感想

前回(Android 4.4 のARTのブートログを見てみた - 組み込みの人。)の続きです。取り出したoatファイルをoatdumpコマンドで見てみます。 $ oatdump --oat-file=system@priv-app@Launcher2.apk@classes.dex > Launcher2.dump Launcher2.dumpの先頭の5000行をこ…

Android 4.4 のARTのブートログを見てみた

前回の記事(Android 4.4に入ったARTのソースを見た感想 - 組み込みの人。)ではソースコードを見ただけで、動かしてはいませんでした。 今回はAndroid 4.4のソースコードを自分でビルドしてemulatorを作り、そのブートログを見て気がついたことを書きます。採…

Android 4.4に入ったARTのソースを見た感想

Android 4.4 (Kitkat) のソースコードが公開されました。話によるとDalvikを置き換えるARTというものが開発者向けに使えるようになっているそうです。面白そうなので調べてみました。以下は全て推測と個人の感想です。 ART とは 公式な情報はこれ https://so…

オーストラリアでプリペイドSIMでAndroid端末を使う

シドニー空港のインターナショナルターミナルの中にOptusとVodafoneがあります。今回はTelstraにしました。Telstraは国内線ターミナルの中にあります。シドニーからメルボルンに乗り継いだのですが、ちょうどそのゲートの隣でした。 今回はホテルのWiFiも有…

clang+llvmでさりげなくすごいコードが生成されていた話の補足。

clang+llvmでさりげなくすごいコードが生成されていた話。 - 組み込みの人。で決着のついていなかった部分について。 1からnの総和を求める関数sum() int sum(int x) { int sum = 0; int i; for (i = 1; i <= x; i++) { sum += i; } return sum; } をclang -…

clang+llvmでさりげなくすごいコードが生成されていた話。

先日llvm 3.3がリリースされました。aarch64(arm 64bit)のコードが生成できるようになったということなので、ソースからビルドして遊んでいたのですが、さりげなく凄く最適化されたコードが生成されているのに気がつきました。aarch64だと今は実行して確認で…

LinuxCon Japanで話をしてきました

http://events.linuxfoundation.org/events/linuxcon-japanで話をしてきました。トラブルシューティングでログをたくさん出すと遅くなる。バッファリングするとクラッシュしたときに最後の瞬間のログが見られない。速度を遅くせずになおかつ最後のログを確実…

KVM上にDebianをインストールする

Ubuntu 12.04 LTS(x86_64) のKVMでDebian wheezy i386を動かしてみる インストール ネットインストール用のCDイメージをダウンロード。 $ wget http://cdimage.debian.org/cdimage/release/current/i386/iso-cd/debian-7.0.0-i386-netinst.iso 空のディスク…

QEMU 1.5.0-rc3をソースからビルドする

ソースを持ってくる 以下のところから、tarアーカイブを持ってきて展開するか、git cloneする。 http://wiki.qemu.org/Download $ git clone git://git.qemu-project.org/qemu.git qemu.git $ cd qemu.git $ git checkout -b work.v1.5.0 v1.5.0-rc3 pixman…

Ruby 2.0をソースからビルドする

Linux上でのネイティブビルド 環境は Ubuntu 12.04LTS (x86_64) $ wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.bz2 $ tar xf ruby-2.0.0-p195.tar.bz2 $ mkdir obj $ cd obj $ ../ruby-2.0.0-p195/configure $ make -j8 $ make test $ s…

将棋の解説を聞く時に知っておきたい将棋の用語

将棋のルール、駒の動かし方は知っているけど将棋の専門書は読んだことがないという方のために、一見専門用語っぽくないけれども、実は将棋独特の意味がある言い方を集めてみました。大盤解説を聞いているときに棋士の先生がさらりと使うので、知っていると…

OSS貢献者賞をいただきました

日本OSS貢献者賞をいただきました。 「第8回 日本OSS貢献者賞・日本OSS奨励賞」受賞者を選定 | 日本OSS推進フォーラム授賞式は2月22日にオープンソースカンファレンス2013 Tokyo/Springの中で行われたのですが、そのとき私はEmbedded Linux Conferenceのため…

ELC2013で話をしてきました

サンフランシスコで開催されたEmbedded Linux Conferenceで話をしてきました。 Tips of Malloc & Free from Tetsuyuki Kobayashi 去年の2月のAndroid Builders Summitでも発表したのですが、そのときは頭が真っ白になって言葉が出なくなったらどうしようと心…

アメリカでプリペイドSIMのデータ定額でAndroid端末を使う(2013年)

昨年と同様にT-MobileのプリペイドのSIMを買って使いました。 アメリカでプリペイドSIMのデータ定額でAndroid端末を使う(2012年) - 組み込みの人。一日2ドルのプランで10ドル分を購入しました。 昨年と違ってSIMそのものは無料でした。そのため支払ったのは1…

gdbで標準ライブラリの中を探検する

Linuxの標準ライブラリの中の動きをデバッガで調べたいときには、デバッグ情報つきのライブラリを追加インストールし、パッケージのソースアーカイブを持ってきてその場所をデバッガのソース検索パスに追加すると便利です。Ubuntu 12.04 (x86_64)を使用して…

Yocto プロジェクトのビルドをしてみた

以下のページを参考にしました。 http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html http://www.ibm.com/developerworks/jp/linux/library/l-yocto-linux/ビルドマシンは Ubuntu 12.04 (x86_64) CPU: Intel Core i7 950 @3.…