Entries from 2013-01-01 to 1 year

Mac OS Xで、再起動せずにスワップを解放する方法

Mac を使っていて、だんだん動きがもっさりしてきたなー*1と思って /private/var/vm/ 下を見ると、案の定スワップファイルが溜まっていることがある。こういうケースでの対策としては、・スワップ禁止にする、・/usr/sbin/purgeする、・再起動する、といった…

__restrict__とインライン展開を用いてCコンパイラのalias analysisを回避する方法

コンパイラ依存ですが、__restrict__ とインライン展開を組み合わせることで、単一の値から派生したふたつのポインタを、互いに相互作用がないかのように最適化させることができます。たとえば以下のコードをコンパイルすると、 extern void f(int* sp); ext…

git で特定のファイルの変更を追う方法

git log -p!GUI ほしいけど、とりあえずは、 (for i in `git log --pretty="format:%h" ファイル名` ; do git show $i ファイル名 ; done)で読むとだいたいわかる。

git branch の結果を時間順にソート

ブランチが大量にあると、git branch の結果を最終更新時間でソートして表示したくなりますよね。以下のワンライナーでできます。 (for i in `git branch | colrm 1 2` ; do echo `git log --date=iso8601 -n 1 --pretty="format:[%ai] %h" $i` $i ; done) |…

Xcode を使わずに iOS 向けのコードをコンパイルする方法

# armv7 clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -c mattn.c ar mattn-armv7.a mattn.o ranlib mattn-armv7.a # i386 clang -arch i386 -isysroot /Applicati…

direnvを使って実行環境(perlとか)の切り替え

plenv の話を聞いていて、別解もありそうだなと思ってググったらあった。以下手順 direnv をインストールする .bashrc あるいは .zshrc の末尾に "eval `direnv hook $0`" と書いておく 適当なディレクトリに perl とかをインストールする 実行したいディレ…