Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/strscan/commit/df90d541fa
|
|
`$KCODE` has been deprecated and not effective since years ago.
https://github.com/ruby/strscan/commit/7c4dbd4cb3
|
|
|
|
|
|
https://github.com/ruby/stringio/commit/64f2360d38
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3460
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3347
|
|
Before, Socket.getaddrinfo was using a blocking getaddrinfo(3) call.
That didn't allow to wrap it into Timeout.timeout or interrupt the thread in any way.
Combined with the default 10 sec resolv timeout on many Unix systems, this can
have a very noticeable effect on production Ruby apps being not
resilient to DNS outages and timing out name resolution, and being unable to fail fast even
with Timeout.timeout.
Since we already have support for getaddrinfo_a(3), the async version
of getaddrinfo, we should be able to make Socket.getaddrinfo leverage that
when getaddrinfo_a version is available in the system (hence #ifdef
HAVE_GETADDRINFO_A).
Related tickets:
https://bugs.ruby-lang.org/issues/16476
https://bugs.ruby-lang.org/issues/16381
https://bugs.ruby-lang.org/issues/14997
Notes:
Merged-By: mmasaki <glass.saga@gmail.com>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3346
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3338
|
|
|
|
For a regular block, accepting two arguments is fine as the array
will be autosplatted. However, a lambda that accepts two arguments
will not work.
We could change the implementation to yield two arguments instead
of an array with a single argument, but that would be less backwards
compatible.
I'm only changing the call-seq to be precise, other examples pass
a literal block that accepts two arguments, and I left those alone
as that will be the most common usage.
Fixes [Bug #17094]
|
|
I found a way to suppress particular kind of warnings via pragmas.
Notes:
Merged: https://github.com/ruby/ruby/pull/3433
|
|
were not initialized
Notes:
Merged: https://github.com/ruby/ruby/pull/3001
|
|
It seems almost no internal codes use RHASH_TBL any longer. Why not
just eliminate it entirely, so that the macro can be purely ext-only.
Notes:
Merged: https://github.com/ruby/ruby/pull/3426
|
|
The allocation tracing code keeps essentially a weak reference to
objects that have been allocated (storing the allocation information
along with the weak ref). Compacting the heap would break references in
this weak map, so the wrong values could be returned.
This commit just updates the values in the weak ref in order to fix the
allocation tracing book keeping
Notes:
Merged: https://github.com/ruby/ruby/pull/3429
|
|
|
|
|
|
|
|
It's possible to define methods with any name, even if the parser
doesn't support it and it can only be used with ex. send.
This fixes an issue where invalid JSON was output from ObjectSpace.dump
when a method name needed escaping.
Notes:
Merged: https://github.com/ruby/ruby/pull/3383
|
|
|
|
|
|
https://github.com/ruby/racc/commit/51817ce0f6
|
|
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3308
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3349
|
|
https://github.com/ruby/stringio/commit/376516cd2d
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
https://github.com/ruby/stringio/commit/59df1c8293
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
https://github.com/ruby/stringio/commit/f528538d10
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
https://github.com/ruby/stringio/commit/8cbe3f7397
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
As `rb_str_conv_enc()` returns the argument string object itself
unchanged when any conversion failed, check the incompatibility in
that case.
Fixes https://github.com/ruby/stringio/issues/13
https://github.com/ruby/stringio/commit/ede6bdcc71
Notes:
Merged: https://github.com/ruby/ruby/pull/3334
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3310
|
|
imemo_callcache and imemo_callinfo were not handled by the `objspace`
module and were showing up as "unknown" in the dump. Extract the code for
naming imemos and use that in both the GC and the `objspace` module.
Notes:
Merged: https://github.com/ruby/ruby/pull/3304
|
|
https://github.com/ruby/bigdecimal/commit/3fa4f2ac67
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
Fixes #159
https://github.com/ruby/bigdecimal/commit/57ee92e700
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
https://github.com/ruby/bigdecimal/commit/79a819d205
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
https://github.com/ruby/bigdecimal/commit/61ec452599
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
https://github.com/ruby/bigdecimal/commit/97e794ac97
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
This leaves the default definition, which will raise FrozenError.
https://github.com/ruby/bigdecimal/commit/05e843d838
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
https://github.com/ruby/bigdecimal/commit/00795cb01f
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
Both BigDecimal#clone and BigDecimal#dup return self, there is no
reason to have initialize_copy exposed as a Ruby method.
The same is true for initialize_clone and initialize_dup.
https://github.com/ruby/bigdecimal/commit/aaf237fa9e
Notes:
Merged: https://github.com/ruby/ruby/pull/3295
|
|
dd0c75fdc2104a6ba38b68d4431a572504a3bbc2
|
|
|
|
https://github.com/flori/json/commit/26c1769969
|
|
https://github.com/flori/json/commit/ee5b6a74e9
|
|
When use non-frozen string for hash key with `rb_hash_aset()`, it will duplicate and freeze it internally.
To avoid duplicate and freeze, this patch will give a frozen string in `rb_hash_aset()`.
```
Warming up --------------------------------------
json 14.000 i/100ms
Calculating -------------------------------------
json 148.844 (± 1.3%) i/s - 756.000 in 5.079969s
```
```
Warming up --------------------------------------
json 16.000 i/100ms
Calculating -------------------------------------
json 165.608 (± 1.8%) i/s - 832.000 in 5.025367s
```
```
require 'json'
require 'securerandom'
require 'benchmark/ips'
obj = []
1000.times do |i|
obj << {
"id": i,
"uuid": SecureRandom.uuid,
"created_at": Time.now
}
end
json = obj.to_json
Benchmark.ips do |x|
x.report "json" do |iter|
count = 0
while count < iter
JSON.parse(json)
count += 1
end
end
end
```
https://github.com/flori/json/commit/18292c0c1d
|