[#58730] [ruby-trunk - misc #9188][Open] r43870 make benchmark/bm_so_k_nucleotide.rb slow — "authorNari (Narihiro Nakamura)" <authorNari@...>

17 messages 2013/12/01

[#58732] [ruby-trunk - Bug #9189][Open] Build failure on Windows in case of nonascii TEMP environment. — "phasis68 (Heesob Park)" <phasis@...>

11 messages 2013/12/01

[#58750] [ruby-trunk - Feature #9190][Open] Expose serial helper macros — "simeonwillbanks (Simeon Willbanks)" <sfw@...>

13 messages 2013/12/01

[#58756] [ruby-trunk - Bug #9192][Open] Inconsistent comparison between Float and BigDecimal — "vatsu (Gustavo Sales)" <vatsu21@...>

18 messages 2013/12/02

[#58797] [ruby-trunk - Bug #9198][Open] Segfault in TestException#test_machine_stackoverflow — "vo.x (Vit Ondruch)" <v.ondruch@...>

11 messages 2013/12/02

[#58833] [ruby-trunk - Bug #9205][Open] Assertion failed: heap_pages_deferred_final == 0 — "phasis68 (Heesob Park)" <phasis@...>

11 messages 2013/12/03

[#58866] [ruby-trunk - misc #9215][Open] Maintenance Policy for Future Releases (2.1.0 & beyond) — "hone (Terence Lee)" <hone02@...>

17 messages 2013/12/05

[#58876] [ruby-trunk - Bug #9221][Open] Time.parse performance becomes exponentially worse as string length grows — "mpelzsherman (Michael Pelz-Sherman)" <mpelzsherman@...>

15 messages 2013/12/05

[#58948] [ruby-trunk - Bug #9226][Open] Getting method `inspect' called on unexpected T_NODE object (0x000000025ddea8 flags=0x109089c klass=0x0) (NotImplementedError) from Hash#inspect — "myronmarston (Myron Marston)" <myron.marston@...>

11 messages 2013/12/07

[#59032] [ruby-trunk - Bug #9239][Open] Array#to_h ignores flat arrays — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

15 messages 2013/12/10

[#59122] [ruby-trunk - Bug #9251][Open] ! operator has lower precedence than = in an assignment expression — "rits (First Last)" <redmine@...>

26 messages 2013/12/15

[#59198] [ruby-trunk - Bug #9262][Open] global_method_cache should be configurable or grow automatically — "tmm1 (Aman Gupta)" <ruby@...1.net>

28 messages 2013/12/19

[#59209] [ruby-trunk - Bug #9264][Open] Compiling error: encdb.bundle Undefined symbols for architecture x86_64 — "spastorino (Santiago Pastorino)" <santiago@...>

15 messages 2013/12/19
[#59211] [ruby-trunk - Bug #9264][Feedback] Compiling error: encdb.bundle Undefined symbols for architecture x86_64 — "zzak (Zachary Scott)" <e@...> 2013/12/19

[#59212] Re: [ruby-trunk - Bug #9264][Feedback] Compiling error: encdb.bundle Undefined symbols for architecture x86_64 — Santiago Pastorino <spastorino@...> 2013/12/19

zzak, make distclean is the first thing I've ran. Read the gist again :),

[#59213] Re: [ruby-trunk - Bug #9264][Feedback] Compiling error: encdb.bundle Undefined symbols for architecture x86_64 — Zachary Scott <e@...> 2013/12/19

Sorry I missed the gist, can you try building outside of $srcdir?

[#59214] Re: [ruby-trunk - Bug #9264][Feedback] Compiling error: encdb.bundle Undefined symbols for architecture x86_64 — Santiago Pastorino <spastorino@...> 2013/12/19

It works if I do ...

[#59215] Re: [ruby-trunk - Bug #9264][Feedback] Compiling error: encdb.bundle Undefined symbols for architecture x86_64 — Zachary Scott <e@...> 2013/12/19

I've been using the following:

[#59255] [ruby-trunk - Bug #9276][Open] "RUBY_FREE_MIN is obsolete. Use RUBY_GC_HEAP_FREE_SLOTS instead" warning should not be issued when both ENV vars are set. — "myronmarston (Myron Marston)" <myron.marston@...>

10 messages 2013/12/21

[#59260] [ruby-trunk - Feature #9278][Open] Magic comment "immutable: string" makes "literal".freeze the default for that file — "colindkelley (Colin Kelley)" <colin@...>

12 messages 2013/12/22

[#59343] [ruby-trunk - Bug #9309][Open] Crash while running tests — "mdemare (Michiel de MAre)" <merloen@...>

12 messages 2013/12/27

[#59345] [ruby-trunk - Bug #9310][Open] inheritance.rb: 27: [BUG] Segmentation fault at 0x00000c — "jasnow (Al Snow)" <jasnow@...>

10 messages 2013/12/27

[#59349] [ruby-trunk - Bug #9312][Open] Build the ruby executable in bin/ — "postmodern (Hal Brodigan)" <postmodern.mod3@...>

13 messages 2013/12/28

[#59365] [ruby-trunk - Bug #9316][Open] BigDecimal division in Ruby 2.1 — "abernardes (Andre Oliveira)" <abernardes@...>

15 messages 2013/12/28

[#59398] [ruby-trunk - Bug #9321][Open] rb_mod_const_missing does not generate a c-return event — "drkaes (Stefan Kaes)" <stkaes@...>

41 messages 2013/12/30

[#59429] [ruby-trunk - Feature #9330][Open] [PATCH 0/3] avoid redundant fcntl/fstat syscalls for cloexec sockets — "normalperson (Eric Wong)" <normalperson@...>

10 messages 2013/12/31

[ruby-core:59075] [ruby-trunk - Bug #7458][Closed] Depending on value of BigDecimal::limit, addition can give inaccurate results

From: "mrkn (Kenta Murata)" <muraken@...>
Date: 2013-12-12 17:08:13 UTC
List: ruby-core #59075
Issue #7458 has been updated by mrkn (Kenta Murata).

Status changed from Assigned to Closed

I've fix this issue in r44153.
----------------------------------------
Bug #7458: Depending on value of BigDecimal::limit, addition can give inaccurate results
https://bugs.ruby-lang.org/issues/7458#change-43628

Author: bpow (Bradford Powell)
Status: Closed
Priority: Normal
Assignee: mrkn (Kenta Murata)
Category: ext
Target version: next minor
ruby -v: 2.0.0dev
Backport: 


=begin
This bug is present in ruby-trunk and also in 1.8.7 and 1.9.3p125.

I apologize that I cannot figure out what exactly is going wrong and how to patch, but at least I have a small reproducible test case.

When adding very small numbers (like 7E-19) to 1, the result should be very close to 1. However, depending on the limit to BigDecimal's precision, this is not always what is resulted, as this script demonstrates:

  
 require 'bigdecimal'
 
 one = BigDecimal('1')
 smallnum = BigDecimal('7E-19')
 0.upto(20) do |lim|
   BigDecimal::limit(lim)
   result = one + smallnum
   puts "result is #{result}, as float is #{result.to_f} with limit #{lim}"
 end

When run in trunk (or 1.8.7), the results it gives are:

 result is 0.10000000000000000007E1, as float is 1.0 with limit 0
 result is 0.1E1, as float is 1.0 with limit 1
 result is 0.1E1, as float is 1.0 with limit 2
 result is 0.1E1, as float is 1.0 with limit 3
 result is 0.1E1, as float is 1.0 with limit 4
 result is 0.1E1, as float is 1.0 with limit 5
 result is 0.1E1, as float is 1.0 with limit 6
 result is 0.1E1, as float is 1.0 with limit 7
 result is 0.1E1, as float is 1.0 with limit 8
 result is 0.1E1, as float is 1.0 with limit 9
 result is 0.2E1, as float is 2.0 with limit 10
 result is 0.2E1, as float is 2.0 with limit 11
 result is 0.2E1, as float is 2.0 with limit 12
 result is 0.2E1, as float is 2.0 with limit 13
 result is 0.2E1, as float is 2.0 with limit 14
 result is 0.2E1, as float is 2.0 with limit 15
 result is 0.2E1, as float is 2.0 with limit 16
 result is 0.2E1, as float is 2.0 with limit 17
 result is 0.2E1, as float is 2.0 with limit 18
 result is 0.1000000000000000001E1, as float is 1.0 with limit 19
 result is 0.10000000000000000007E1, as float is 1.0 with limit 20

So the results with limit <=9 or >=19 are as expected, but in between the result returned is equal to 2.0

A test that demonstrates this (suitable for inclusion in (({test/bigdecimal/test_bigdecimal.rb})) is:

 def test_limited_one_plus_small
    one = BigDecimal('1')
    smallnum = BigDecimal('0.7E-18')
    BigDecimal::save_limit do
      1.upto(20) do |lim|
        BigDecimal::limit(lim)
        result = (one + smallnum).to_f.to_s
        assert_equal("1.0", result, "Error adding a small number to one with BigDecimal::limit(#{lim})")
      end
    end
 end

I think this is different from #7404 (from what I can tell by google translate), but I apologize for the duplicate if not.
=end


-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next