ばいなり、こんこん、こんぱいる!をC87で出します

タイトルはきつねさんシリーズではないですが、相変わらずLLVMネタで同人誌を出します。 タイトルは「ばいなり、こんこん、こんぱいる!」です。 今回は何かをもじってネタにしようということでこの名前になりました。自分が考えた「ggr!きつねさん」は…

Fluentdのin_tailプラグインで複数行のログをよむ方法

Fluentd v0.10.45からin_tailプラグインで複数行のログを読み込めるようになりました。 これは今まで外部プラグイン(fluent-plugin-tail-multiline)として提供されていた機能をマージしたものになります。v0.10.50で複数行ログの読み込みに関するバグ修正が…

Ruby FFIを使ったエクステンションの作り方

Ruby FFIについて ここ最近libclangのRuby Bindingのffi-clangに機能を追加していたのですが、その過程でFFI(Foreign function interface)というものを知りました。FFIとはようするに多言語を呼び出すためのインターフェイスのことのようで、RubyにおけるFFI…

LLVM 3.4 リリースノートの訳

半年に一回がんばる日が来ました。例によってLLVMのリリースノートの訳です。 直訳がほとんどなので気になる人は原文を読みましょう。 12月31日時点でLLVMのダウンロードページやドキュメントページへのリンクがありませんが、直接それっぽいURLにアクセスす…

きつねさんとおぼえる!Clang おかわりをC85で出します

前回に引き続きClang本を出します。 タイトルは「きつねさんとおぼえる!Clang おかわり」です。 タイトル案を適当にネタで出したらそのまま通って驚愕しているところでございます。 前回はプラットフォームとしてのClangの機能を駆け足で説明しましたが、 …

Fluentdの知られていない6つのこと

Fluentdの知られていない6つのこと 本当に知られていないかはわからないです。 公式にはあまり説明されていなかったり調べてもなかなか見つからないことが多いと個人的に思ったものを集めました。 機能や言葉の細かい説明は省いているのである程度使っている…

きつねさんとおぼえる!ClangをC84で出します

きつねさんシリーズ第三弾としてClang本を出します。 タイトルは「きつねさんとおぼえる!Clang」です。今までLLVMを扱っていましたが、今回からClangについて紹介していく予定です。 今回はあまり時間が取れなかったため応用的な内容までは紹介することはで…

商業誌でLLVM本を出します(店頭POPも書きました)

既にもちさんが紹介記事を書いてる通り、「きつねさんでもわかるLLVM」が商業誌で販売されます。 お話を頂いた時は驚いたと同時にこの体裁(主に表紙)や内容で大丈夫なんだろうかと不安にもなりました。 結果としてはオリジナルの(同人誌らしい)部分をそのま…

LLVM 3.3 リリースノートの訳

半年に一回がんばる日が来ました。例によってLLVMのリリースノートの訳です。 直訳がほとんどなので気になる人は原文を読みましょう。大きな変更点としてはLoop Vectorizerの改良やAMD GPUのサポートなどがよく言われているようです。 個人的に訳していて気…

Heroku,Sinatra,Twitter Bootstrapを使ってみました

無事達人出版会様よりきつねさんでもわかるLLVMを公開できました。 それと同時公開を目標に作成したMotiPizzaのサークル公式ページを作成したのでその方法をまとめてみます。 後半の部分の手順忘れてしまったので適当になってますが。今回のポイントとしては…

LLVM 3.2 リリースノートの訳

ようやくLLVM 3.2がでました。今回はスケジュールよりもそれほど遅れませんでした。 前回に引き続き、リリースノートを訳しました。 SROA周りとか訳がぶっこわれているところがありますが、気になる人は原文を読みましょう。 branchを見ながら訳したので抜け…

きつねさんとおぼえるLLVM (LLVM解説本) をC83で出します

前回の「3日で出来るLLVM」にひきつづきLLVM解説本をC83で出します。 タイトルは表紙のきつねさんが特徴の「きつねさんとおぼえるLLVM」です。 LLVM狐本で覚えて下さい! フロントエンド,ミドルエンドは柏木餅子(id:motipizza, @sui_moti)、バックエンドは私…

verilogをflymake

適当にさくっと作ってみた。 ;; 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

llcを実行したときにどんなPassが実行されるか(PassManagerに追加されるか)が気になったのでざざっとしらべた。 ほぼ自分用のメモです。 createXXX はPassを生成する関数. XXXIDはIDからPassを生成?. どちらもその後PassManagerに追加. 最適化オプションによ…

gtagsのスタックをscreen毎に管理するelscreen-gtagsを書いてみた

Emacsでelscreenを使っていてコードリーディングなどをしているとgtagsのタグジャンプを複数のスクリーンでしてしまい、 gtags-pop-stackで元の場所に戻ろうと思ったら別のスクリーンのジャンプ元に戻ったりすることがあります。 gtagsはかなり便利で昔から…

LLVMのフロントエンドとバックエンド

LLVMを使っている言語ってどんなものがあるのか聞かれたり、自分でもどれくらいあるのか気になっていたのでまとめてみた。 フロントエンドはある言語からLLVM IRに変換するもののこと。 バックエンドはLLVM IRから他の言語に変換するもの(トランスレータ)の…

LLVM解説本をC82で出します

LLVMの解説本をC82の2日目(8/11)西し39aで出します。 タイトルは「3日で出来るLLVM」です. LLVMを使ってコンパイラを作るという内容になっています。 フロントエンドとミドルエンドはid:motipizza(@sui_moti)が担当し、自分はバックエンドの担当です。 表紙…

Emacs 24(RC)のnox11でxterm-mouse-modeを使う

Emacs24のリリース候補版(Release Candidate)がでました。http://alpha.gnu.org/gnu/emacs/pretest/ 自分はEmacsでもホイールスクロールが使えるようにxterm-mouse-modeを使っていますが、Emacs24ではちょっとだけ挙動が変わったようで追加設定をしないと変…

LLVM 3.1 リリースノートの訳

LLVM3.1が予定より一週間ほど遅れてリリースされました。 今回もいろいろなアップデートがあるのでLLVM 3.1 Release Notesを翻訳します。 訳がかなり怪しいところが一部あります。 イントロダクション このドキュメントはLLVMコンパイラ基盤のリリース3.1に…

putty上のEmacsのkill-ringとWindowsのクリップボードを同期する

puttyでサーバにアクセスしてEmacsを使っているとどうしても不便なのはクリップボードにコピーしにくいことです。 マウスでドラッグすればコピーできますが、画面分割しているとうまくできずにいらっとします。 Emacsに慣れるとクリップボードに入れるつもり…

MIPSのアドレス変換周り(TLB)の処理をまとめてみた

1年ほど前にTLB(Translation Look-aside Buffer)を使ったアドレス変換処理を実装したのだけど、もう一回実装しようと思ったらあまり覚えてなかったのでまとめておくことにしました。 See MIPS Runを参考にしました。間違っているところがあればご連絡くださ…

GCC(binutils)のツールの紹介: nm&c++filt

前回の続きでBinutilsのツール群の説明をします。 今回はnmとc++filtを説明します。 これらのツールはどれも前回説明したobjdumpの一部の機能みたいなものです。 ソースコード #include <cstdio> const static int CONST_VALUE = 100; int uninitialized_value; clas</cstdio>…

GCC(binutils)のツールの紹介: objdump

GCCには様々なツールが付属しています。実際にはGCCではなく、一緒にコンパイルされるBinutilsに付属しているものですが。 Binutilsを使うことでプログラムに関する様々な情報を容易に取得できたり、アセンブラレベルでのデバッグや最適化にも有効です。 組…

GCCの警告を部分的にオフにする方法

本来ならGCCの警告を出ないようにするのは良いことではないですが、どうしても警告を消すことができない場合はあると思います。 自分の例では、同じコードをgccとg++の両方でコンパイルすることがあるため、C++スタイルのキャストを使うことができずに警告が…

Emacsでキーバインドの割当変更について

Emacsではデフォルトでほとんどのキーにコマンドが割り当てられている。しかし、キーによってはほとんど使わないコマンドが割り当てられていたりする。 キーバインドの割当を変更する上でどのキーにどんなコマンドが割り当てられているかを確認し、そのキー…

TZTesterを更に改良する

nitoyonさん、cafelierさん、naoya_tさんのを参考に、TZTesterを更に改良しました。ベースとしてcafelierさんのものを利用しました。 ここでダウンロードできる最新バージョンでは以下の特徴があります。 テストケースを追加しやすい テストケースごとの実行…

EmacsでJavaScriptを書くときのおすすめメジャーモード

JavaScriptのメジャーモードについて Emacs23.2からJavaScriptのメジャーモードが変更され(js-mode)、以前とは比べ物にならない程使い勝手がよくなりました。 しかし、js-modeではリアルタイムでのエラーチェックが行われないためもの足りないと感じます。js…

Ubuntu11.04でEmacs23.3をソースからインストール

2011年5月11日にEmacs23.3がリリースされました。 Ubuntu11.04にインストールしようとしたところ、以下のようなエラーがでてmakeが通らなかったので修正方法をメモしておきます。 In file included from /usr/include/glib-2.0/glib/galloca.h:34:0, from /u…