仮説立つのすごい “この「コード量」や「無関係な変数定義」に挙動が左右されるという状況から、一つの仮説を(略)「インタプリタ全体のシンボルの数が特定の閾値を超えた場合に何かが起きるのでは」というもの”
面白かった〜
“pathnameの組み込みは、あくまで全体のシンボル数を押し上げるトリガーに過ぎず、根本原因はObjectSpace.count_objectsの挙動にありました。 今回は決定論的に再現可能な問題であったため解析は比較的容易でした”
地味に嬉しいかも。 “require "pathname"なしで利用可能になる予定です”
観測すると結果が変わるのは現実では信じられないが、ITの世界では普通によくある。つまり、現実でも同じようなことが起きて結果が変わっているのかもしれないね
むちゃ面白い……
これ自分もnamespace開発中に踏んだことあるな、なんか知らないうちに再現しなくなって放置したやつだ
再現手段が確立できなかったら迷宮入りするやつだ
観測者が観測結果に影響を及ぼすという事例を生で見た。
こんなん突き止められる自信ないな…
面白い
面白かった。非決定的っぽさがある。
“オブジェクト数を数えるという観測行為そのものが、観測対象である配列の数を変えてしまうという、稀な副作用”
「オブジェクト数を数えるという観測行為そのものが、観測対象である配列の数を変えてしまう」
ネイティブコードだと暗黙的なメモリ確保で変更されたアドレスへのdangling pointerが問題を起こすみたいなのはそれなりの頻度でありそうな気がするので、あんまし意外性は無かった(確認難易度は別論)
結論を見るとなるほどと思うけど、途中経過は本当に意味不明の現象だな……。
ハイゼンバグじゃん https://ja.wikipedia.org/wiki/特異なバグ
すごい。AIが絶対たどり着けなそうな問題だ
RubyのPathnameライブラリが本体組み込みになったらGC周りのテスト失敗がおきた - STORES Product Blog
仮説立つのすごい “この「コード量」や「無関係な変数定義」に挙動が左右されるという状況から、一つの仮説を(略)「インタプリタ全体のシンボルの数が特定の閾値を超えた場合に何かが起きるのでは」というもの”
面白かった〜
“pathnameの組み込みは、あくまで全体のシンボル数を押し上げるトリガーに過ぎず、根本原因はObjectSpace.count_objectsの挙動にありました。 今回は決定論的に再現可能な問題であったため解析は比較的容易でした”
地味に嬉しいかも。 “require "pathname"なしで利用可能になる予定です”
観測すると結果が変わるのは現実では信じられないが、ITの世界では普通によくある。つまり、現実でも同じようなことが起きて結果が変わっているのかもしれないね
むちゃ面白い……
これ自分もnamespace開発中に踏んだことあるな、なんか知らないうちに再現しなくなって放置したやつだ
再現手段が確立できなかったら迷宮入りするやつだ
観測者が観測結果に影響を及ぼすという事例を生で見た。
こんなん突き止められる自信ないな…
面白い
面白かった。非決定的っぽさがある。
“オブジェクト数を数えるという観測行為そのものが、観測対象である配列の数を変えてしまうという、稀な副作用”
「オブジェクト数を数えるという観測行為そのものが、観測対象である配列の数を変えてしまう」
ネイティブコードだと暗黙的なメモリ確保で変更されたアドレスへのdangling pointerが問題を起こすみたいなのはそれなりの頻度でありそうな気がするので、あんまし意外性は無かった(確認難易度は別論)
結論を見るとなるほどと思うけど、途中経過は本当に意味不明の現象だな……。
面白い
ハイゼンバグじゃん https://ja.wikipedia.org/wiki/特異なバグ
すごい。AIが絶対たどり着けなそうな問題だ