hsbt (Hiroshi SHIBATA) wrote: > The mswin platform, which is what `ruby/ruby` CI actually builds and tests with MSVC has had no end-user distribution at all. This is not quite accurate as there have been many efforts by @MSP-Greg (an...Eregon (Benoit Daloze)
Applied in changeset commit:git|db22451d7e1fcb04f033436fe099b0f0489d70d6. ---------- [Bug #22539] Do not apply refinements to the initialize call of opt_new opt_new inlines the call to initialize in the caller's bytecode, which made re...Eregon (Benoit Daloze)
opt_new inlines the call to initialize in the caller's bytecode, which made refinements of #initialize active at the call site of .new apply, unlike Class#new (e.g. via #send) and Ruby <= 3.4. Add the internal VM_CALL_IGNORE_REFINEMENTS...Eregon (Benoit Daloze)
I made a PR to fix this: https://github.com/ruby/ruby/pull/19857 BTW, I think this should be `Bug`, not `Feature` since it's an unintentional incompatibility. I think it may make sense to backport to Ruby 4.0, up to the branch mainta...Eregon (Benoit Daloze)
+1 to deprecate and then remove `String#crypt`. In my understanding it's already widely discouraged and known to have various security issues, so keeping it in Ruby exposes us to more vulnerabilities. It's also not portable as mentione...Eregon (Benoit Daloze)
Regarding "Why not just ice_nine?" one more reason besides performance and "it belongs in the language, we shouldn't need a gem dependency to make constant values immutable", is `ice_nine` doesn't work for T_DATA and notably `Set`, `Stru...Eregon (Benoit Daloze)
Some concrete use cases: Here are some real-world examples of deep freezing objects other than Array, Hash and primitives. They are user-defined objects, Structs, ASTs, config objects and so on. ### Value objects which deep-freeze...Eregon (Benoit Daloze)
To state the obvious: at least the interpreter and JIT should be consistent. I think the interesting part is whether normal `Class#new` calls `initialize` with refinements or not. From: ```ruby class Foo end module R refine Foo do ...Eregon (Benoit Daloze)
I found a related case, which I added to https://github.com/ruby/ruby/pull/19802 as a second commit since it is the same analysis (and both changes touch the same code). A variable assigned only once in the source is considered never rea...Eregon (Benoit Daloze)
When a shareable Proc reads a block parameter (`&b`) of the enclosing method, it gets `nil` if the method did not read `b` before. It does not raise `Ractor::IsolationError` even when the block is not shareable, and it loses the block ev...Eregon (Benoit Daloze)