https://twitter.com/kinaba のログ (twilog の方が便利です。)
@nishio ですね。となるとやはり、均等分布でないハッシュ関数(特に、組み込みの整数型のハッシュ関数が恒等関数なケース)と相関(a+bではなくa*31+bな実装が多いのは(a,b)と(b,a)のハッシュ値を変えたいということだろう)をどういうものを想定するか、だなあ | |
@repeatedly 僕まだ特に報告してないっす | |
.@9rnsr さんのパッチは getInternalTypeInfo を getTypeInfo に変えるのは最適化度合いを落としてしまっている気がするのでこれでいいのかよくわかっていない | |
あとこれでtoHash持ちstructの配列の場合どうなんだろう。 | |
まあつぶやいてないで風呂ったら試しまするるるのる | |
@9rnsr 本質的に問題が未解決(構造体で http://ideone.com/DIEhQ 同じ問題が発生)なのと、元々あった最適化が外れてる(http://ideone.com/Edy98 で以前は生成されなかったtypeid(Foo[])が生成)ので、マズいのではという気が | |
連想配列のキーや==演算子などの実行に使われるのはsrc/rt/typeinfo/*で、これはgetInternalTypeInfoから作られる。typeidが返すのはsrc/object_.dの方で、これはgetTypeInfoから。前者だけ作れば済むシーンでは前者だけ作りたい | |
後者のTypeInfo_ArrayのgetHashの実装は、(些細なバグを直した後で)、Class[]の場合とchar[]の場合(だけ、多分)に前者と違う。Class[]とStruct[]の場合にequalsと一貫性がない。ClassとcharとStructの場合をどうにかすべき | |
愚直にTypeInfo_Array.getHashはクラスか構造体かcharかそれ以外かで条件分岐な実装にしちゃえばいいのかな。TypeInfoAxx側にはstaticメソッドも置いといてそれを呼ぶようにすれば変えた時にも一貫性ががが。変にオーバーヘッド入れると嫌がられるかなあ | |
@9rnsr TypeInfo_Array.getHashの実装を、構造体/クラスならvalue.getHashを使って回す、charなら11倍hashを回す、それ以外ならhashOf、と3分岐させるのがとりあえず問題は消す策だと考えています。TypeInfo_ASを作るのは(続 | |
@9rnsr 続)クラスと違ってObject[]へのキャストのようなことができないので、1インスタンスにまとめるのが不可能なんじゃないかと。僕の主張は"""配列に対して"""「基本はビットイメージに対するhash計算」という設計自体が間違ってる、というスタンス | |
近くに http://r.tabelog.com/tokyo/A1307/A130701/13048434/ 海南鶏飯あるじゃないか。勝った | |
電車通勤は、自分でスケジューリングする意志力のない軟弱な自分でも本読むしかすることのない時間を強制的に作れていいけど、代わりに、朝カバンに上巻と間違えて下巻を放り込んだと気付いた時の喪失感が半端ないなあ。 | |
@Cryolite 「Subjectはsignalをemitできることだけを知っている」「Observerはslotに通知を受けられることを知っている」「connectionがsignalとslotを仲立ちする」とconnectionの部分を分離して焦点を当てるのをSignal/ | |
@Cryolite /Slotモデルと呼んでいるような気がするという認識でいました http://www.elpauer.org/stuff/a_deeper_look_at_signals_and_slots.pdf らへんとか | |
FizzBuzz conference http://partake.in/events/8c2cd95b-b6d4-4d9f-917e-a98ba9aafd25 その参加コメントはいいけど一人でもキャンセルしたら崩壊…!と @tsukuno さんに突っ込まれた。本当だヤバい |