[#46049] [ruby-trunk - Feature #6590] Dealing with bigdecimal, etc gems in JRuby — "mrkn (Kenta Murata)" <muraken@...>
[#46078] [ruby-trunk - Feature #2565] adding hooks for better tracing — "mame (Yusuke Endoh)" <mame@...>
On Mon, Jul 02, 2012 at 03:06:59AM +0900, mame (Yusuke Endoh) wrote:
[#46127] [ruby-trunk - Feature #2565] adding hooks for better tracing — "vo.x (Vit Ondruch)" <v.ondruch@...>
[#46160] [ruby-trunk - Feature #6693][Open] Don't warn for unused variables starting with _ — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>
[#46163] [ruby-trunk - Feature #6695][Open] Configuration for Thread/Fiber creation — "ko1 (Koichi Sasada)" <redmine@...>
[#46172] [ruby-trunk - Feature #6697][Open] [PATCH] Add Kernel#Symbol conversion method like String(), Array() etc. — "madeofcode (Mark Dodwell)" <mark@...>
[#46236] [ruby-trunk - Bug #6704][Open] Random core dump — "trans (Thomas Sawyer)" <transfire@...>
[#46248] building ruby-1.9.3-p194 on AIX 6.1 TL05 SP06 — Perry Smith <pedzsan@...>
I am just now starting to debug this but hoped someone has already blazed this trail.
Hi Perry
Hi Perry,
[#46276] Lambdaification of Method Calls — Robert Klemme <shortcutter@...>
Hi,
[#46320] [ruby-trunk - Feature #6721][Open] Object#yield_self — "alexeymuranov (Alexey Muranov)" <redmine@...>
[#46339] [ruby-trunk - Bug #6724][Open] waaaaaaant! ( — "zenspider (Ryan Davis)" <redmine@...>
On Thu, Jul 12, 2012 at 08:58:36AM +0900, zenspider (Ryan Davis) wrote:
On Tue, Jul 17, 2012 at 6:27 PM, Aaron Patterson
[#46377] [ruby-trunk - Feature #6727][Open] Add Array#rest (with implementation) — "duckinator (Nick Markwell)" <nick@...>
[#46420] [ruby-trunk - Feature #6731][Open] add new method "Object.present?" as a counter to #empty? — "rogerdpack (Roger Pack)" <rogerpack2005@...>
[#46500] [ruby-trunk - Feature #6739][Open] One-line rescue statement should support specifying an exception class — Quintus (Marvin Gülker) <sutniuq@...>
[#46535] [ruby-trunk - Bug #6749][Open] rdoc of Time class (incorrect explanation of leap seconds) — "stomar (Marcus Stollsteimer)" <redmine@...>
Hi Eric,
On Jul 23, 2012, at 11:52 PM, sto.mar@web.de wrote:
Am 24.07.2012 19:44, schrieb Eric Hodel:
[#46546] Fwd: [ruby-cvs:43609] ko1:r36433 (trunk): * thread.c (rb_thread_call_without_gvl2): added. — SASADA Koichi <ko1@...>
Hi,
SASADA Koichi <ko1@atdot.net> wrote:
[#46553] [ruby-trunk - Feature #2565] adding hooks for better tracing — "tenderlovemaking (Aaron Patterson)" <aaron@...>
[#46564] Ruby under CI - Windows — Luis Lavena <luislavena@...>
Hello,
[#46574] [ruby-trunk - Feature #6762][Open] Control interrupt timing — "ko1 (Koichi Sasada)" <redmine@...>
"ko1 (Koichi Sasada)" <redmine@ruby-lang.org> wrote:
I was suggesting "interruptible" as a better alternative for
[#46577] [ruby-trunk - Feature #6763][Open] Introduce Flonum technique to speedup floating computation on th 64bit environment — "ko1 (Koichi Sasada)" <redmine@...>
[#46586] [ruby-trunk - Bug #6764][Open] IO#read(size, buf) causes can't set length of shared string in trunk (2.0.0dev) — "nahi (Hiroshi Nakamura)" <nakahiro@...>
[#46641] [ruby-trunk - Bug #6780][Open] cannot compile zlib module, when cross-compiling. — "jinleileiking (lei king)" <jinleileiking@...>
[#46686] [ruby-trunk - Bug #6784][Open] Test failures related to numeric with x64 mingw — "h.shirosaki (Hiroshi Shirosaki)" <h.shirosaki@...>
[#46741] [ruby-trunk - Bug #6789][Open] parse.y compilation error due not updated id.h — "luislavena (Luis Lavena)" <luislavena@...>
[#46744] [ruby-trunk - Bug #6791][Open] ext/js on/generator/generator.c fails to compile on nightly build (AIX 6.1) — "pedz (Perry Smith)" <pedz@...>
Hi Perry,
[#46772] Ruby 1.9.3 release? — Charles Oliver Nutter <headius@...>
JRuby will soon release 1.7.0pre2, the second preview of 1.7. Perhaps
(2012/07/26 7:07), Charles Oliver Nutter wrote:
On Sat, Jul 28, 2012 at 10:59 PM, NARUSE, Yui <naruse@airemix.jp> wrote:
[#46792] [ruby-trunk - Bug #6799][Open] Digest::*.hexdigest returns an ASCII-8BIT String — "Eregon (Benoit Daloze)" <redmine@...>
[#46832] [ruby-trunk - Bug #6807][Open] Can't compile ruby without ruby — "devcurmudgeon (Paul Sherwood)" <storitel@...>
[#46834] [ruby-trunk - Feature #6808][Open] Implicit index for enumerations — "trans (Thomas Sawyer)" <transfire@...>
[#46838] [ruby-trunk - Bug #6810][Open] `module A::B; end` is not equivalent to `module A; module B; end; end` with respect to constant lookup (scope) — "alexeymuranov (Alexey Muranov)" <redmine@...>
[#46854] [ruby-trunk - Feature #6811][Open] File, Dir and FileUtils should have bang-versions of singleton methods that fails silently — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>
[#46896] (Half-baked DRAFT) new `require' framework — SASADA Koichi <ko1@...>
Hi,
2012/7/31 SASADA Koichi <ko1@atdot.net>
On 31/07/12 13:29, SASADA Koichi wrote:
On Tue, Jul 31, 2012 at 12:07 PM, Alex Young <alex@blackkettle.org> wrote:
On 01/08/2012, at 5:59 AM, Trans wrote:
(2012/07/31 21:29), SASADA Koichi wrote:
If one is considering importing archive files like zip, tar, jar, or gem, I
On Tue, Aug 7, 2012 at 8:48 AM, Rocky Bernstein <rockyb@rubyforge.org> wrote:
[ruby-core:46407] [ruby-trunk - Bug #3589] Converting Bignums to Float for equality checks is wrong
Issue #3589 has been updated by ko1 (Koichi Sasada). Description updated Assignee changed from matz (Yukihiro Matsumoto) to akr (Akira Tanaka) Target version set to 2.0.0 ---------------------------------------- Bug #3589: Converting Bignums to Float for equality checks is wrong https://bugs.ruby-lang.org/issues/3589#change-28026 Author: taw (Tomasz Wegrzanowski) Status: Assigned Priority: Normal Assignee: akr (Akira Tanaka) Category: core Target version: 2.0.0 ruby -v: ruby 1.9.1p429 (2010-07-02 revision 28523) [i386-darwin9] =begin In all versions of Ruby, when comparing Bignums with Floats, Bignum get converted to Floats first. This naturally results in wrong results, as this conversion is lossy. Not only will some unequal number be reported as equal, transitivity of equality gets broken: big = 10**20 bigger = big+1 flt = big.to_f [big == bigger, big == flt, bigger == flt] #=> [false, true, true] Ruby is so close to getting equality right, it would be a shame not to get it totally right. And it's not Float's fault - IEEE 754 defines correct results of all Float operations to the last bit, and all rounding and comparisons between Floats happens with what is mathematically equivalent to infinite precision. = Solution 1 = Now I could be missing something, but it seems to be that it's all as simple as: * perform equality / comparison check like now with bignum.to_f and float * if they're not equal so far, direction of inequality is correct * compare bignum with float.to_i As both Float <=> Float, and Bignum <=> Bignum are exact to the last bit (ignoring issues like -0.0 etc. - they're not relevant here), this means roundtrip conversion is identity, and there can exist no other Float that would be equal to this particular Bignum, and no other Bignum that would be equal to this particular Float. It also seems to me that they'd need to be mathematically equal for that unless I miss something big. The first check ensures all fractional bits are correct (that is if flt has any it will fail as convertion of integer to float is guaranteed not to generate any). The second check ensures that all integer bits are correct (that is every bit exceeding limit of float representation is 0, as correct float to integer conversion is guaranteed not to geterate any there) This leads where we want: [bigger.to_f == flt, bigger == flt.to_i] => [true, false] Some pictures: * Huge BigNum XXXXXXXXXXXXXXXYYYYYYYYYYY.00000000000000 * Huge Float XXXXXXXXXXXXXXX00000000000.00000000000000 * Small BigNum XXXXXXX.000000000000000 * Small Float XXXXXXX.YYYYYYYYY000000 0s are bits that cannot be represented, Xs bits represented by both, Ys bits represented in only one. Someone should double check with all the rounding etc. but it seems to that it's impossible for Ys to exist in both, if they're nearly equal. = Solution 2 = A completely different solution would be converting BigNum to Float with hardware (it's already universally supported, even if standard C tends to ignore it) in two modes - round up and round down (starting from low bits) - they will be the same or differ by 1ulp - so its impossible for the compared float to be between them. If bignum.to_f_up > flt, it's >. If bignum.to_f_down < flt, it's <. If they're all three equal, they're really ==. =end -- http://bugs.ruby-lang.org/