I'm afraid the new implementation's behavior is different from Ruby's. As far as I remember, Ruby's implementation produces different strings for different floats as follows. ``` % ruby -e '1000.times { n = rand; p n.to_s != n.next_...akr (Akira Tanaka)
The cast is required if BDIGIT is longer than int. However BDIGIT is always equal or smaller than int according to internal/bignum.h, though.akr (Akira Tanaka)
I think `rmtree` should be reimplemented in C using `openat`, as it is a safer approach for deleting directories recursively. As for `find` and `mktmpdir`, duplicating code is undesirable because it increases maintenance costs. Transl...akr (Akira Tanaka)
I think it is better for error messages to start with a fixed string, since that makes them easier to search for mechanically. Therefore, I do not like the current proposed patch (which inserts the hostname between reason and gai_stre...akr (Akira Tanaka)
The separation of allocation and initialization is essential to marshal cyclically referenced objects. We can use Marshal to dump and load cyclically referenced objects: ``` x = [] y = [x] x << y z = Marshal.load(Marshal.dump(x...akr (Akira Tanaka)
rb_process_status_new is declared in the PR as follows. ``` /** * Creates a new instance of Process::Status. * * @param[in] pid The process ID. * @param[in] status The "waitpid status", as returned by waitpid(2). This is NOT ...akr (Akira Tanaka)
I prefer an exception for popcount to negative values. I think an array of Fixnums (63 bit signed integers) can be used for mutable bit array. (Ruby's Integer is immutable. So mutable bit array needs a mutable data structure.) In...akr (Akira Tanaka)
What is the behavior for negative values? The proposal describes two implenentations that returns different values. ``` p (-5).to_s(2).count("1") #=> 2 def bit_count(n) count = 0 while n > 0 n &= n - 1 # Flip the lea...akr (Akira Tanaka)