金曜日からやってるんですが、あんまり、進まず。
LLVM 4.0が出てる
なるほど。こっちは、cmake になった。なんだけど、
cmake ってparallel make どうやるの?
と思ったら、
makeではなくて、ninja を使え
http://jpospisil.com/2014/03/16/replacing-make-with-ninja.html
本気ですか。でも、cmake が ninja 用の設定をはいてくれるので実は簡単。
cmake -G Ninja -D CMAKE_BUILD_TYPE:STRING=Debug CMAKE_INSTALL_PREFIX:PATH=`pwd` ~/hg/CbC/LLVM_original
cmake --build .
ぐらいで良いらしい。
lldb -- bin/clang-4.0 -cc1 -triple x86_64-apple-macosx10.10.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -main-file-name hoge-if.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 253.9 -v -dwarf-column-info -debugger-tuning=lldb -resource-dir /Users/one/src/llvm/bin/../lib/clang/4.0.0 -fdebug-compilation-dir /Users/one/src/llvm -ferror-limit 19 -fmessage-length 138 -stack-protector 1 -fblocks -fobjc-runtime=macosx-10.10.0 -fencode-extended-block-signature -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -x c hoge-if.c
とかやって追っていきます。
golang 側は、
go1.4 をまずコンパイル
それを使ってgo1.7を作る
けど、gdb でしかソースコードデバッグできない。なんだけど、 gdbを動かすには、
sudo で動かすか
certificateをKeyChainで作って、それを使って、gdbに code sign してやる
https://gcc.gnu.org/onlinedocs/gnat_ugn/Codesigning-the-Debugger.html
というのが必要らしい。これが結構煩雑で間違いやすい... でも、これで動くみたいです。
で、土曜日は
golang入門
https://tour.golang.org/
して、日曜日の午前中は、
golangのrun time
を読んでました。
go routineの作成
channel のsend/recv
辺りは golang で書かれていて、
systemstack というスタック切替ルーチン
がアセンブラで書かれているってのがわかりました。Thread local 使いまくりですか、そうですか。
あと、午後を乗り切れば...
No comments:
Post a Comment