I'm bumping this because just today I wished Ruby had this feature (although the discussion above seems to have diverged quite a bit) ```ruby Dependencies = {} def require_dep(filename) Dependencies[filename] = [Time.now] requ...Dan0042 (Daniel DeLorme)
You have mostly convinced me about backward compatibility, but I still find that new API awkward. I may be bikeshedding here, but is there a precedent in Ruby for a macro that assigns multiple variables? Given the new API is meant to ...Dan0042 (Daniel DeLorme)
> I think that we don't need to introduce `RSTRING_RAW_END()` or something. We can just recommend `RSTRING_RAW_PTR() + RSTRING_LEN()` instead of `RSTRING_END()`. Then what was the original purpose of introducing `RSTRING_END()` in the f...Dan0042 (Daniel DeLorme)
> `RSTRING_CSTR()` doesn't check whether `\0` is included in the target content or not. That is a very good point. In that case, perhaps the new NUL-terminated macro should instead alias or behave similarly to `StringValueCStr()`. Other...Dan0042 (Daniel DeLorme)
I agree that completely deprecating RSTRING_PTR might not be strictly necessary, but for the sake of a smooth migration, I highly recommend introducing RSTRING_CSTR as an alias for the new, NUL-terminated RSTRING_PTR behavior. Introdu...Dan0042 (Daniel DeLorme)
duerst (Martin Dürst) wrote in #note-2: > I think it's a good idea to allow "UTF-八" (and probably also full-width "UTF-八") as an alternative to "UTF-8" for internal Ruby use. Indeed, but I believe "UTF-八" would be a better alias here...Dan0042 (Daniel DeLorme)
akr (Akira Tanaka) wrote in #note-14: > My next question is why `io.eof?` and `io.wait_readable(0)` doesn't fulfill your motivation. Might be worth answering this directly... One reason is that `wait_readable` doesn't exist on Str...Dan0042 (Daniel DeLorme)
matz (Yukihiro Matsumoto) wrote in #note-9: > Feeding `Hash()` with a method that may raise depending on runtime content makes the function less predictable, not more. It's important to note that this is **already the case**; if you pas...Dan0042 (Daniel DeLorme)
> > An entry `h0[k0]` in one hash is equal to an entry `h1[k1]` in another hash if and only if the two keys are equal (`k0 == k1`) and their two values are equal (`h0[k0] == h1[h1]`). > ... It doesn't just say "equal", it specifically m...Dan0042 (Daniel DeLorme)
mame (Yusuke Endoh) wrote in #note-7: > I said `Kernel#Hash` is a strict conversion method. It's true that `Integer()` is a strict conversion method, but `Array()` and `String()` are notably more lenient, and I've always seen `Hash()...Dan0042 (Daniel DeLorme)