From: "h.shirosaki (Hiroshi Shirosaki)" Date: 2012-11-19T22:55:22+09:00 Subject: [ruby-core:49581] [ruby-trunk - Bug #7383] Use stricter cache check in load.c Issue #7383 has been updated by h.shirosaki (Hiroshi Shirosaki). File 0001-Fix-cache-validity-check-of-require.patch added Yura, thank you. Indeed rb_ary_shared_with_p does not react against #shift or #pop. Original array remains shared with the snapshot. However, I think adding a check of array length would be sufficient for that. This fix has no performance impact, still O(1). I've attached a patch with tests. Are there any reasons that such a strict check is needed? ---------------------------------------- Bug #7383: Use stricter cache check in load.c https://bugs.ruby-lang.org/issues/7383#change-33097 Author: funny_falcon (Yura Sokolov) Status: Open Priority: High Assignee: h.shirosaki (Hiroshi Shirosaki) Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-11-18 trunk 37708) [x86_64-linux] rb_ary_shared_with_p does not react when #shift or #pop is called on original array. This patch introduce rb_ary_dup_of_p , which makes more adequate check for duplicate of array. https://github.com/ruby/ruby/pull/216 https://github.com/ruby/ruby/pull/216.patch -- http://bugs.ruby-lang.org/