2011年12月17日土曜日

HomebrewでSpidermonkeyのデバッグビルドをインストール

デバッグモードでビルドしないとディスアセンブルする関数が使えないので、デバッグビルドしてインストールします。

デフォルトのFormulaはデバッグビルドがOFFになっているので、

➜  ~  brew edit spidermonkey

で、js/src/configureのところに(二箇所configureがあるけど下のやつ)

--enable-debug --disable-optimize

のオプションを追加します。 via SpiderMonkey Build Documentation - MDN

NewImage

これで、dis関数が使えるSpidermonkeyがビルドできるようになるので、

➜  ~  brew install spidermonkey

でインストール

JavaScriptの無名関数の実行 (function(){})() と (function(){}()) の違い | 圧縮電子精神音楽浮遊構造体を見て、やってみたかっただけです。

js> dis(function(){ new function(){} });
flags: LAMBDA NULL_CLOSURE
main:
00000:  trace
00001:  lambda (function () {})
00004:  null
00005:  new 0
00008:  pop
00009:  stop

Source notes:
  0:     5 [   5] pcbase   offset 4
js> dis(function(){ (function(){})() });
flags: LAMBDA NULL_CLOSURE
main:
00000:  trace
00001:  lambda (function () {})
00004:  null
00005:  call 0
00008:  trace
00009:  pop
00010:  stop

Source notes:
  0:     5 [   5] pcbase   offset 4
js> dis(function() { (function(){}()) });
flags: LAMBDA NULL_CLOSURE
main:
00000:  trace
00001:  lambda (function () {})
00004:  null
00005:  call 0
00008:  trace
00009:  pop
00010:  stop

Source notes:
  0:     5 [   5] pcbase   offset 4

2011年12月5日月曜日

Redmineにgitレポジトリを認識させる

Redmineから参照するgitレポジトリはbareというレポジトリにしないと認識しないらしい

コラム:公開リポジトリと通常のリポジトリとbareリポジトリ  Gitの公開リポジトリは通常、管理ファイルのみを持つ「bareリポジトリ」として作成される。通常bareリポジトリでは作業ツリーの変更やコミットといった操作は行わず、ファイルのやりとりにのみ使用する。また、慣例としてbareリポジトリとして使用するディレクトリには「.git」という拡張子が付けられる。  bareリポジトリは、「--bare」オプションを付けてでgit initを実行することで作成できる。

Gitを使いこなすための20のコマンド - SourceForge.JP Magazine : オープンソースの話題満載

サーバ上のgitレポジトリでbareレポジトリを作る必要があったりして面倒

$git init --bare
$git flow init #ローカルでgit flow導入してるならサーバへgit push --allでもOK
$git symbolic-ref HEAD refs/heads/develop

bareレポジトリはブランチを変えられないそうなので、git checkout developの代わりに、シンボリックリンク的に貼る必要がある。

普通のレポジトリを認識して欲しい。