2010年04月
2010年04月30日
GCC 本家のサイトトップに、「January 25, 2010 An experimental profile mode has been added. 」と出ているのが気になります。
これは C++ 標準ライブラリ(主にコンテナ系)の使い方についてアドバイスしてくれる機能で、効率改善に役立つとのことです。さっそく試してみました。
2010年04月26日
これもまた、ELC(Embedded Linux Conference)でのセッションの紹介です。
ELCのスライドのページのDenys Vlasenkoさんの"Link time dead code and data elimination using GNU toolchain"を見てください。
2010年04月22日
ELCのスライドのページのMagnus Damm さんの"Kexec - Ready for Embedded Linux? " を見てください。
続きを読む
2010年04月20日
そこで思いがけずCELFの主催者のご好意でデモの場所を貸していただくことになりました。前回のCELFテクニカルジャンボリーの講演資料を基に、QEMUに接続するPARTNERデバッガのデモを行いました。英語で資料を作っておいた甲斐があったというものです。
続きを読む
2010年04月16日
まだ has been released とは書いてないので微妙ですが、一応 GCC 4.5 が Current release series になり、各ミラーサイトに tar ball も上がっているようです。
4.5 の目玉の一つ LTO は、まだ Windows (PE-COFF target) では動かないようですが、patch が投げられているので、おそらく 4.5.1 あたりに入るのではないでしょうか。
[PATCH,4.6/4.5.1,PR42776] Implement LTO for Windows (PE-COFF) targets.
4.5 は他にも Plugin など、面白そうな機能がたくさん入っています。さっそくビルド… といきたいところですが、GMP/MPFR の他に、MPC/PPL/CLooG-PPL とさらに依存ライブラリが増えているので、ちょっと大変そうです。
とりあえずバイナリをダウンロードして試してみましょう。
2010年04月14日
「3.3.1:Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).」
アプリケーションはiPhone OS WebKit engineで処理される為、Objective-C, C, C++または JavaScriptによって書かれなくてはならず、またObjective-C, C, C++または JavaScriptで書かれたコードだけがコンパイルされ、Documented APIにリンクされなくてはならない。(例えば、アプリケーションがintermediary translation(中継の為に変換されたコード)やcompatibility layer or tool(互換性を目的とするレイヤーやツール)を通じてDocumented APIにリンクすることは禁止されている。)
この文章の解釈によっては、Adobe Flash Professional CS5や、NETを利用してiPhoneアプリを開発できる開発環境「MonoTouch」などは禁止という事になるかもしれないようです。
Appleの開発キット以外でアプリを開発するのであれば、Webアプリで開発するように説明してる内容のようです。
Macお宝鑑定団Blog[羅針盤] 2010/04/09 (Fri)
AppleがiPhoneデベロッパライセンス規約を変更し、Adobe Flash Professional CS5などのクロス・コンパイラを禁止に?
(via ただのにっき 2010-04-09(金)■ iPhoneを捨ててAndroidにするよ)
続きを読む
2010年04月12日
Windows で Qt アプリを書いているのですが、Qt の文字列クラス QString はデータを Unicode で持っているので、例えばダイアログから取得した文字列を外部の API や関数に渡す際には Shift-JIS などに変換する必要があります。
# Unicode や Shift-JIS という用語はあいまいなので良くないのですが… 簡単のため。本当は ISO/IEC 10646 や Windows-31J (旧 cp932) と書くべきだと思います。
QTextCodec クラスを使えば良いだけなのですが、なぜか Codec が初期化できなくて苦労しました。(QTextCodec::codecForName("Shift-JIS") が NULL を返す。)
2010年04月08日
(1) C/C++ プログラムの静的解析に使えそう
(2) CPU シミュレータのバックエンドとして使えそう
(デバッガに組み込んだり、QEMU の TCG を置き換えたりできるのでは ?)
などの動機があったわけですが、(2) の方は既にプロジェクトが存在していました。
http://www.libcpu.org/wiki/index.php/Main_Page
twitter で mjt さんに教えていただきました。 (それ以前から mjt さんの日記で存在は知っていたのですが、LLVM を使っていたということは頭から抜け落ちていました。)
libcpu の面白い点として、リンク先の mjt さんの日記にもあるのですが、独自の CPU 仕様記述から CPU シミュレータの自動生成を (将来的には) 目指しているという点があります。あまり開発は活発では無い感じですが、今後に期待したいところです。
また、QEMU の TCG API を LLVM で置き換えるという方も、今ちょっと検索してみたところ、llvm-qemu - Backend for QEMU using LLVM components. というプロジェクトが存在していました。
http://code.google.com/p/llvm-qemu/
2007 年の GSoC ということは、当時はまだ QEMU 0.10.0 は出てないので、TCG ではなく dyngen の時代だと思われます。こちらは開発が停止している感じですね。
2010年04月06日
今回はローカル変数を作ってみました。
また、JIT 実行ではなく、bitcode をファイルに書き出してみました。
WriteBitcodeToFile() API の使い方などは、ModuleMaker.cpp というサンプルを参考にしました。そのままそのサンプルの main() 関数を、後述するものに置き換えて、関連しそうなプロジェクト全てに依存関係を設定すれば、ビルド & 実行できるはずです。
(なぜか HowToUseJIT サンプルでは、関連しそうなプロジェクト全てに依存関係を設定しても、BitcodeWriter.cpp の関数がリンクできませんでした。)
2010年04月02日
評価は、経営サイドの最高責任者(つまり社長)と、技術サイドの最高責任者(CTO)のお二人が行います。人を評価するということは非常に大変なことで、普段はバリバリの技術者である社長たちは、慣れない仕事にかなり消耗していた感じでした。
それでもこのような制度を取っているのは、「誠実でありたい」「(与えられた仕事をこなすだけの)"サラリーマン"になるな」という、常日頃から社長が主張されている信念の表れ(の一つ)なのだろうと思います。
続きを読む