Strange behavior for Array.min in ruby 2.5.0
[[1, 0.0].max, 1.0].min => 1
[[1, 0.0].max, 1.0].min => 1.0 [[1, 0.0].max, 1.0] => [1, 1.0] [1, 1.0].min => 1
I think it`s regression for ruby 2.5.0
vm_insnhelper.c: search in the indexing order
- vm_insnhelper.c (vm_opt_newarray_max, vm_opt_newarray_min): search in the indexing order, as well as usual methods. [Bug #14350]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
#5 [ruby-core:86724] Updated by cheba (Alexander Mankuta) about 2 months ago
This change afects PrawnPDF gems (I'm a maintainer).
From the maths point of view it is indeed insignificant, but there are other areas where exact value matters. For example, in Prawn these values are serialized. Integer
1 is serialized to a 1-byte string
"1" and Float
1.0 is serialized to 3-byte string
"1.0". While in the context of PDF there's no difference between the values we don't want to change generated documents. PDF is hard to inspect for changes because it's essentially a binary format and a relatively complex one. Most our users rely on binary stability of output for caching purposes and we strive to make the output stable.
With this change we can not provide the stability between Ruby versions. We use it in our test suite among other things.