| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
@shugo Let me know if you need assistance here. |
Sorry, something went wrong.
Thank you! [Feature #22213] has been accepted by Matz, so I'd like to squash the commits in this branch and make this pull request ready for review. |
Sorry, something went wrong.
Proc#hash was missing, so procs that are eql? (e.g. a proc and its dup) hashed differently. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Since prc.refined(*ms).refined(*ns) is behaviorally equivalent to prc.refined(*ms, *ns), a chained call re-clones from the original closure with the merged module list and the memoized copy is shared by these behaviorally equivalent Procs. The copy of the block's IR is deferred until the first call, so a Proc that is never called is no longer copied at all. [Feature #22213] Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| Back | FazBrowse Home | New Git URL |
Since prc.refined(*ms).refined(*ns) is behaviorally equivalent to prc.refined(*ms, *ns), a chained call re-clones from the original closure with the merged module list and the memoized copy is shared by these behaviorally equivalent Procs. The copy of the block's IR is deferred until the first call, so a Proc that is never called is no longer copied at all.
(https://bugs.ruby-lang.org/issues/22213, ruby/ruby d4a6282429)