タイトルはきつねさんシリーズではないですが、相変わらずLLVMネタで同人誌を出します。 タイトルは「ばいなり、こんこん、こんぱいる!」です。 今回は何かをもじってネタにしようということでこの名前になりました。自分が考えた「ggr!きつねさん」は…
Fluentd v0.10.45からin_tailプラグインで複数行のログを読み込めるようになりました。 これは今まで外部プラグイン(fluent-plugin-tail-multiline)として提供されていた機能をマージしたものになります。v0.10.50で複数行ログの読み込みに関するバグ修正が…
Ruby FFIについて ここ最近libclangのRuby Bindingのffi-clangに機能を追加していたのですが、その過程でFFI(Foreign function interface)というものを知りました。FFIとはようするに多言語を呼び出すためのインターフェイスのことのようで、RubyにおけるFFI…
半年に一回がんばる日が来ました。例によってLLVMのリリースノートの訳です。 直訳がほとんどなので気になる人は原文を読みましょう。 12月31日時点でLLVMのダウンロードページやドキュメントページへのリンクがありませんが、直接それっぽいURLにアクセスす…
前回に引き続きClang本を出します。 タイトルは「きつねさんとおぼえる!Clang おかわり」です。 タイトル案を適当にネタで出したらそのまま通って驚愕しているところでございます。 前回はプラットフォームとしてのClangの機能を駆け足で説明しましたが、 …
Fluentdの知られていない6つのこと 本当に知られていないかはわからないです。 公式にはあまり説明されていなかったり調べてもなかなか見つからないことが多いと個人的に思ったものを集めました。 機能や言葉の細かい説明は省いているのである程度使っている…
きつねさんシリーズ第三弾としてClang本を出します。 タイトルは「きつねさんとおぼえる!Clang」です。今までLLVMを扱っていましたが、今回からClangについて紹介していく予定です。 今回はあまり時間が取れなかったため応用的な内容までは紹介することはで…
既にもちさんが紹介記事を書いてる通り、「きつねさんでもわかるLLVM」が商業誌で販売されます。 お話を頂いた時は驚いたと同時にこの体裁(主に表紙)や内容で大丈夫なんだろうかと不安にもなりました。 結果としてはオリジナルの(同人誌らしい)部分をそのま…
半年に一回がんばる日が来ました。例によってLLVMのリリースノートの訳です。 直訳がほとんどなので気になる人は原文を読みましょう。大きな変更点としてはLoop Vectorizerの改良やAMD GPUのサポートなどがよく言われているようです。 個人的に訳していて気…
無事達人出版会様よりきつねさんでもわかるLLVMを公開できました。 それと同時公開を目標に作成したMotiPizzaのサークル公式ページを作成したのでその方法をまとめてみます。 後半の部分の手順忘れてしまったので適当になってますが。今回のポイントとしては…
ようやくLLVM 3.2がでました。今回はスケジュールよりもそれほど遅れませんでした。 前回に引き続き、リリースノートを訳しました。 SROA周りとか訳がぶっこわれているところがありますが、気になる人は原文を読みましょう。 branchを見ながら訳したので抜け…
前回の「3日で出来るLLVM」にひきつづきLLVM解説本をC83で出します。 タイトルは表紙のきつねさんが特徴の「きつねさんとおぼえるLLVM」です。 LLVM狐本で覚えて下さい! フロントエンド,ミドルエンドは柏木餅子(id:motipizza, @sui_moti)、バックエンドは私…
適当にさくっと作ってみた。 ;; flymake settings for verilog mode (defun flymake-verilog-init () (let* ((temp (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local (file-relative-name temp (file-name-directory buffer-fi…
llcを実行したときにどんなPassが実行されるか(PassManagerに追加されるか)が気になったのでざざっとしらべた。 ほぼ自分用のメモです。 createXXX はPassを生成する関数. XXXIDはIDからPassを生成?. どちらもその後PassManagerに追加. 最適化オプションによ…
Emacsでelscreenを使っていてコードリーディングなどをしているとgtagsのタグジャンプを複数のスクリーンでしてしまい、 gtags-pop-stackで元の場所に戻ろうと思ったら別のスクリーンのジャンプ元に戻ったりすることがあります。 gtagsはかなり便利で昔から…
LLVMを使っている言語ってどんなものがあるのか聞かれたり、自分でもどれくらいあるのか気になっていたのでまとめてみた。 フロントエンドはある言語からLLVM IRに変換するもののこと。 バックエンドはLLVM IRから他の言語に変換するもの(トランスレータ)の…
LLVMの解説本をC82の2日目(8/11)西し39aで出します。 タイトルは「3日で出来るLLVM」です. LLVMを使ってコンパイラを作るという内容になっています。 フロントエンドとミドルエンドはid:motipizza(@sui_moti)が担当し、自分はバックエンドの担当です。 表紙…
Emacs24のリリース候補版(Release Candidate)がでました。http://alpha.gnu.org/gnu/emacs/pretest/ 自分はEmacsでもホイールスクロールが使えるようにxterm-mouse-modeを使っていますが、Emacs24ではちょっとだけ挙動が変わったようで追加設定をしないと変…
LLVM3.1が予定より一週間ほど遅れてリリースされました。 今回もいろいろなアップデートがあるのでLLVM 3.1 Release Notesを翻訳します。 訳がかなり怪しいところが一部あります。 イントロダクション このドキュメントはLLVMコンパイラ基盤のリリース3.1に…
puttyでサーバにアクセスしてEmacsを使っているとどうしても不便なのはクリップボードにコピーしにくいことです。 マウスでドラッグすればコピーできますが、画面分割しているとうまくできずにいらっとします。 Emacsに慣れるとクリップボードに入れるつもり…
1年ほど前にTLB(Translation Look-aside Buffer)を使ったアドレス変換処理を実装したのだけど、もう一回実装しようと思ったらあまり覚えてなかったのでまとめておくことにしました。 See MIPS Runを参考にしました。間違っているところがあればご連絡くださ…
前回の続きでBinutilsのツール群の説明をします。 今回はnmとc++filtを説明します。 これらのツールはどれも前回説明したobjdumpの一部の機能みたいなものです。 ソースコード #include <cstdio> const static int CONST_VALUE = 100; int uninitialized_value; clas</cstdio>…
GCCには様々なツールが付属しています。実際にはGCCではなく、一緒にコンパイルされるBinutilsに付属しているものですが。 Binutilsを使うことでプログラムに関する様々な情報を容易に取得できたり、アセンブラレベルでのデバッグや最適化にも有効です。 組…
本来ならGCCの警告を出ないようにするのは良いことではないですが、どうしても警告を消すことができない場合はあると思います。 自分の例では、同じコードをgccとg++の両方でコンパイルすることがあるため、C++スタイルのキャストを使うことができずに警告が…
Emacsではデフォルトでほとんどのキーにコマンドが割り当てられている。しかし、キーによってはほとんど使わないコマンドが割り当てられていたりする。 キーバインドの割当を変更する上でどのキーにどんなコマンドが割り当てられているかを確認し、そのキー…
nitoyonさん、cafelierさん、naoya_tさんのを参考に、TZTesterを更に改良しました。ベースとしてcafelierさんのものを利用しました。 ここでダウンロードできる最新バージョンでは以下の特徴があります。 テストケースを追加しやすい テストケースごとの実行…
JavaScriptのメジャーモードについて Emacs23.2からJavaScriptのメジャーモードが変更され(js-mode)、以前とは比べ物にならない程使い勝手がよくなりました。 しかし、js-modeではリアルタイムでのエラーチェックが行われないためもの足りないと感じます。js…
2011年5月11日にEmacs23.3がリリースされました。 Ubuntu11.04にインストールしようとしたところ、以下のようなエラーがでてmakeが通らなかったので修正方法をメモしておきます。 In file included from /usr/include/glib-2.0/glib/galloca.h:34:0, from /u…