ToDo:
会社のホワイトボードに
[](){}();
とか書いてあって、 C++0x のラムダキモいとかいう話をしてたのかなぁと思った。 でもなんか思い出してみると記号だけで似たようなもん書ける言語ってのは いくつかあって、
->{}[] ->{}() (\()->())()
とかも書いておいた。 他もありそうだなぁと思ったけど思い出せなかった。
この手の syntax って最初に見た時はびっくりするけど、 慣れるとまぁなんでもないんじゃないかな。 むしろ
(funciton(){ // ... })();
みたいなコードがイディオム化している JS なんかだと、 これもうちょい短かった方が良かったんじゃないかな…とか思う。
(02:03)
http://d.hatena.ne.jp/hirosegolf/
この人が FizzBuzz 54B かつ今 TCO マラソンで僕の一個上にいる人かな…
(11:28)
これ難しいなぁ…と思いつつ 適当に書いたら意外と上の方に来た。 もうほっといても予戦は通れるかな… とも思うけどまぁみんなまだ様子見だろうしな…
うーんでも結構ここから大きく得点良くするのもむつかしそうではあるなあ
(11:32)
よく式を途中のローカル変数の情報つきで dump したくなる。
例えば
a = 42 b = 90 c = 20 dump{(a + b).to_f / c}
とかしたら
6.6 = ((a=42) + (b=90)).to_f / (c=20)
とか出る、というような。
Ruby なら書けるかなあ…ということで書いてみた。
https://github.com/shinh/test/blob/master/dump.rb
呼び出し方が
binding.dump "(a + b).to_f / c"
とかいう感じで文字列で呼ぶ感じになってしまったのが残念。 なんか構文木オブジェクトとか取れるといいんだろうね… あとインスタンス変数とかグローバル変数とかも対処した方がいいし、 途中のメソッド呼び出しとかも対応するといい気もするけど、 まぁこんなもんでもそれなりに良い気もする。
C++ ってか Boost::lambda ならこういうのできていい気がするな…
http://blog.livedoor.jp/sasata299/archives/51382345.html
を参考にさせてもらった
(16:51)
http://partake.in/events/8c2cd95b-b6d4-4d9f-917e-a98ba9aafd25
万が一 ksk さんが消えると人類は二度と 50B FizzBuzz に到達できないのではないか… とか意味わからんことを話してたりしたんですが、 まぁどっかで区切りをつけてどんなコードか見せてもらいたいもんですね… ということでページを作ってみました。 日程は特に反対が無ければ6月あたりかなぁと思ってます。
まぁ興味ある人は適当に参加表明していただければと思います。
しかし kinaba さんのせいで次の参加者の発言が規制されているな…
(21:55)
http://partake.in/events/feac18f7-0b78-4129-92c5-ad0cce8feafb
に行ってきた。 SC2 の MVP vs MKP が気になりつつ遅刻しつつだけど… 後で見たがいい試合だった。
でー言語は久々に見てもこう、 楽しそうというか見るからに TODO がたくさんある感じで、 正直これだけ放置してても僕的にはあんま実用的になってないなあ…という感じというか。 これは褒め言葉で、つまりなんかあれこれ工夫するスキがありまくりっていうか。 maloader 飽きたらやってみたいなぁとか思ったことが色々あった気がする。
見てたのはデバッグしやすくなっただろうか…ということ。
他のメモ
なんか僕はいつも backtrace backtrace とわめくと言われたのだけど、 そうだと思う。 実用性って観点で見ると、 backtrace と printf デバッグって プログラム言語に本当に重要な機能だと思うんだよな。 いつも言ってるけど。 printf デバッグっていうか Ruby の p がコンパイル言語にもあるべき。 後者は D は静的リフレクションでそれなりにできるんだろうなと思ってたけど、 まぁできるとのこと。 よく考えると書いたことある記憶もあるな…
(18:01)
RTLD_GLOBAL と RTLD_LAZY を実装する必要がある。 前者は簡単だけど、後者はどうしよう… あれって正しくやると全コード遅延ロードできるようにする必要あるしな… 次の dlsym の時に eager bind するとかでいいだろうか…
そして lazy bind の反対語は eager bind でいいんだろうか…
(04:07)
なんか hacker news と reddit に載ったらしくて まぁなんか github の watch 数とかがちょっと にぎやかな感じになった…が特に何もない。
そのへんで見る意見をぱっと見るに…
(22:41)
↑のはそんなわけないだろ! と自分を叱責する次第。 原因はあいかわらずわかってないけど。
Mach-O は意味わからず適当にいじってる部分が多くてよくない。 なんか Mach-O のリファレンスみたいなやつって なんか量多いわりにイマイチ情報が足りない気がするんだよな…
適当にぐぐってたところ、このシリーズ勉強になりそうだなぁと発見した。
http://d.hatena.ne.jp/teru_kusu/20100329/1269849713
遅延ロードとか今全然やってないから、 やる気が起きたら参考になりげ…
(17:46)
の apple のソースコードがリリースされてないように思える。
Xcode 3.2.4 の clang は
% clang -v Apple clang version 1.5 (tags/Apple/clang-60) Target: x86_64-apple-darwin10 Thread model: posix
で、
http://opensource.apple.com/release/developer-tools-324/
には clang が無くて、
http://opensource.apple.com/release/mac-os-x-1066/
にあるのは clang-23 とかでだいぶふるい。
Xcode 4 以降は
http://opensource.apple.com/release/developer-tools-40/
にあって clang-137 とかなんでバージョンあってそうだけど…
(18:02)
まぁやっぱ libstdc++.dylib を読む方向性の方が良いかなぁ…とながめてみる。
まずどうもおかしいのが filesize がゼロの LC_SEGMENT があることで、 これはなんか xcode に入ってる libstdc++.dylib は 中身ないんだかなんだか知らんがそうなってるみたいだった。 というわけでとりあえず Mac から取ってきた。
で、 Mac から取ってきた方は初期化ルーチンのところでコケる。 スタックトレースがそれなりに深いけど意味わからんので、 Mach-O のシンボルテーブル使ってスタックトレースが出せるようにしたり。 なんか知らんけど gdb のスタックトレースってのは たいへん優秀で他より情報出がちなんで、 python から gdb いじる系のあれでほげほげしてみる。
結果
#0 0x7ffff79c7ed4 __pthread_mutex_lock #1 __gnu_cxx::__recursive_mutex::lock()(+9) [0x10004ce2d(4ae2d)] #2 0x7fffffffdbb0 None #3 __cxa_guard_acquire(+34) [0x10004cdcd(4adcd)] #4 0x7fffffffdd20 None #5 0x7ffff6eb9d00 None #6 0x7fffffffdc20 None #7 (anonymous namespace)::get_locale_mutex()(+32) [0x10000b702(9702)] #8 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::id(+8) [0x100088540(86540)] #9 std::locale::id::_S_refcount(+8) [0x100088438(86438)] #10 0x7ffff6ec6450 None #11 (anonymous namespace)::locale_cache_mutex(+40) [0x100088760(86760)] #12 vtable for std::basic_streambuf<char, std::char_traits<char> >(+10) [0x100083f90(81f90)] #13 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const(+62dc70) [0x62dc70(62dc70)] #14 __gnu_internal::buf_wcerr(+270) [0x100088410(86410)] #15 0x0 None
よくわからんところで死んでるということはわかった…
(06:11)
前 | 2025年 9月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ Gimite [> (funciton(){ > // ... > })(); そこでCoffee Script、なん..]