[#39227] [Ruby 1.9 - Bug #5264][Open] Commit 33157 — Charlie Savage <cfis@...>
[#39241] [Ruby 1.9 - Bug #3422][Closed] Object.const_get(:A, false) can access BasicObject::A — Nobuyoshi Nakada <nobu@...>
On Sat, Sep 3, 2011 at 04:57, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
> Why is this issue closed? Is the current behaviour acceptable?
[#39260] RubySpec vs CRuby's test/... — Marc-Andre Lafortune <ruby-core-mailing-list@...>
Before the release of Ruby 1.9.2 it was decided that Ruby releases
Hi,
(09/05/2011 03:54 AM), Marc-Andre Lafortune wrote:
Hi,
2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:
On Mon, Sep 5, 2011 at 3:08 AM, NARUSE, Yui <naruse@airemix.jp> wrote:
2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:
I'll jump in with some context from the JRuby perspective.
2011/9/7 Charles Oliver Nutter <headius@headius.com>:
On Wed, Sep 7, 2011 at 4:17 AM, NARUSE, Yui <naruse@airemix.jp> wrote:
Hi,
Yukihiro Matsumoto:
(2011/09/09 1:29), Michael Klishin wrote:
On Thu, Sep 8, 2011 at 4:19 PM, NARUSE, Yui <naruse@airemix.jp> wrote:
Hello Luis,
On Thu, Sep 8, 2011 at 5:34 PM, Masaya TARUI <tarui@prx.jp> wrote:
On Thu, Sep 8, 2011 at 3:57 PM, Luis Lavena <luislavena@gmail.com> wrote:
On Thu, Sep 8, 2011 at 5:07 PM, Charles Oliver Nutter
(2011/09/08 15:28), Charles Oliver Nutter wrote:
2011/9/9 Charles Oliver Nutter <headius@headius.com>:
On Thu, Sep 8, 2011 at 9:47 PM, NARUSE, Yui <naruse@airemix.jp> wrote:
I realize that I'm a small fish in this ocean, but for every release
(09/09/2011 03:51 PM), Kirk Haines wrote:
[#39267] [Ruby 1.9 - Bug #5273][Open] Float#round returns the wrong floats for higher precision — Marc-Andre Lafortune <ruby-core@...>
[#39279] [Ruby 1.9 - Bug #5276][Assigned] 4294967295.8.round is 4294967295 on 32bit — Yui NARUSE <naruse@...>
[#39304] [Ruby 1.9 - Bug #5285][Open] Ruby 1.9.2 throws exception on sort of array containing true AND false values — Martin Corino <mcorino@...>
[#39309] [Ruby 1.9 - Bug #5287][Open] 1.9.3 - Interpolation in a string causes the string's encoding to be set to ASCII-8BIT — Jon Leighton <j@...>
[#39326] [Ruby 1.9 - Feature #5291][Open] Enabling GC Profiler GC_PROFILE_MORE_DETAIL and CALC_EXACT_MALLOC_SIZE — Charlie Savage <cfis@...>
[#39360] What is the role of rb_objspace_t in gc.c? — Kurt Stephens <ks@...>
What is the role of rb_objectspace_t and the pointers to it inside gc.c?
[#39380] [Ruby 1.9 - Bug #5299][Open] Segmentation fault when using TweetStream gem in ruby 1.9.3 — Dushyanth Maguluru <dushyanth.maguluru@...>
[#39435] [Ruby 1.9 - Bug #5306][Open] Application Hangs Due to Recent rb_thread_select Changes — Charlie Savage <cfis@...>
[#39450] Comments on HowToReportEnglish — Andrew Grimm <andrew.j.grimm@...>
I've done some proofreading for HowToReportEnglish, and I'd like to
Hello,
Hello
[#39451] File.realpath behavior questions — Luis Lavena <luislavena@...>
Hello,
Hi,
On Sun, Sep 11, 2011 at 4:48 AM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#39480] Modifications to libraries like Rake should be done upstream first — Luis Lavena <luislavena@...>
Hello,
[#39484] [Ruby 1.9 - Bug #5309][Open] 0.6.to_r != "0.6".to_r — Brian Ford <brixen@...>
[#39487] File::BINARY does not behave as advertised — Cameron Pope <camerooni@...>
Hello -
On Mon, Sep 12, 2011 at 16:00, Cameron Pope <camerooni@gmail.com> wrote:
[#39498] [Ruby 1.9 - Feature #5310][Open] Integral objects — Kenta Murata <muraken@...>
On Mon, Sep 12, 2011 at 6:15 PM, Kenta Murata <muraken@gmail.com> wrote:
[#39539] [Ruby 1.9 - Feature #5321][Open] Introducing Numeric#exact? and Numeric#inexact? — Kenta Murata <muraken@...>
[#39597] File.expand_path ~username always trigger ArgumentError on Windows — Luis Lavena <luislavena@...>
Hello,
[#39618] [Ruby 1.9 - Bug #5335][Open] [RFC/PATCH] test_old_thread_select: timing tweaks — Eric Wong <normalperson@...>
[#39627] Re: [ruby-cvs:40472] drbrain:r33294 (trunk): * test/openssl/test_ssl.rb (class OpenSSL): Test — "NARUSE, Yui" <naruse@...>
(2011/09/19 9:28), drbrain@ruby-lang.org wrote:
On Sep 19, 2011, at 11:33 AM, NARUSE, Yui wrote:
2011/9/19 Eric Hodel <drbrain@segment7.net>:
[#39629] [Ruby 1.9 - Feature #5341][Open] Add SSL session reuse to Net::HTTP — Eric Hodel <drbrain@...7.net>
On 10/26/2011 11:39 AM, Eric Hodel wrote:
[#39632] [Ruby 1.9 - Bug #5342][Open] ConditionVariable can wake a Thread that is no longer waiting on it — Mike Perham <mperham@...>
[#39634] [Ruby 1.9 - Bug #5343][Open] Unexpected blocking behavior when interrupt Socket#accept — Tomoyuki Chikanaga <nagachika00@...>
[#39672] [Ruby 1.9 - Feature #5352][Open] How about using <> to represent Here Document? — Joey Zhou <yimutang@...>
[#39673] [Ruby 1.9 - Bug #5353][Open] TLS v1.0 and less - Attack on CBC mode — Martin Bosslet <Martin.Bosslet@...>
[#39684] [Ruby 1.9 - Bug #5357][Open] Indentation of nested operators should nest — Nikolai Weibull <now@...>
[#39690] [Ruby 1.9 - Feature #5360][Open] BasicObject#binding — Thomas Sawyer <transfire@...>
[#39696] Time spent on expanding load path — Juan Wajnerman <jwajnerman@...>
I've been following the performance of Ruby 1.9.x since the beginning. I work with many quite big Rails projects and as the number of used gems explode, the impact on the loading time for the application has increased very noticeably.
[#39700] [Ruby 1.9 - Feature #5364][Open] How about new syntax: "object.\method" returns a Method instance? — Joey Zhou <yimutang@...>
[#39704] [Ruby 1.9 - Bug #5365][Open] WEBrick lacks the application/javascript and image/svg+xml MIME types. — Hal Brodigan <postmodern.mod3@...>
[#39740] [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...>
On Tue, Sep 27, 2011 at 06:18:19PM +0900, Alex Young wrote:
On 27/09/2011 19:46, Aaron Patterson wrote:
On Sep 27, 2011, at 6:52 PM, Alex Young wrote:
Eric Hodel wrote in post #1024462:
Hi,
On 04/10/11 16:52, Nobuyoshi Nakada wrote:
[#39772] ObjectSpace.reference_form(obj) #=> references_array — SASADA Koichi <ko1@...>
Hi,
Hi,
Hi,
(2011/09/30 5:37), hemant wrote:
On 09/30/2011 07:08 AM, SASADA Koichi wrote:
Revisit.
On Sep 20, 2012, at 6:14 PM, SASADA Koichi <ko1@atdot.net> wrote:
(2012/09/25 7:38), Eric Hodel wrote:
I'm sorry for late reply.
(2012/09/25 15:18), Narihiro Nakamura wrote:
[ruby-core:39649] [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number
Issue #4576 has been updated by Yui NARUSE.
I made a patch which fixes following 3 cases:
* the error of loop count
* duplicated values from underflow
* excess of the end value
diff --git a/ChangeLog b/ChangeLog
index 0abb211..0f0c28b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+Wed Sep 21 11:17:22 2011 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * numeric.c (ruby_float_step): improve floating point calculations.
+ [ruby-core:35753] [Bug #4576]
+
+ * numeric.c (ruby_float_step): correct the error of floating point
+ numbers on the excluding case.
+ patched by Masahiro Tanaka [ruby-core:39608]
+
+ * numeric.c (ruby_float_step): use the end value when the current
+ value is greater than or equal to the end value.
+ patched by Akira Tanaka [ruby-core:39612]
+
Tue Sep 20 18:08:51 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_insnhelper.c (vm_get_cvar_base): reduce duplicated checks and
diff --git a/numeric.c b/numeric.c
index 18f5e1c..973da1f 100644
--- a/numeric.c
+++ b/numeric.c
@@ -1689,11 +1689,27 @@ ruby_float_step(VALUE from, VALUE to, VALUE step, int excl)
if (unit > 0 ? beg <= end : beg >= end) rb_yield(DBL2NUM(beg));
}
else {
+ double prev = beg == 0 ? -1 : 0;
if (err>0.5) err=0.5;
- n = floor(n + err);
- if (!excl || ((long)n)*unit+beg < end) n++;
+ if (excl) {
+ if (n>0) {
+ if (n<err)
+ n = 1;
+ else
+ n = floor(n - err) + 1;
+ }
+ } else {
+ n = floor(n + err) + 1;
+ }
for (i=0; i<n; i++) {
- rb_yield(DBL2NUM(i*unit+beg));
+ double d = i*unit+beg;
+ if (d == prev) continue;
+ if (d >= end) {
+ if (!excl) rb_yield(DBL2NUM(end));
+ break;
+ }
+ prev = d;
+ rb_yield(DBL2NUM(d));
}
}
return TRUE;
diff --git a/test/ruby/test_float.rb b/test/ruby/test_float.rb
index e77b9e6..4fc8a6b 100644
--- a/test/ruby/test_float.rb
+++ b/test/ruby/test_float.rb
@@ -508,4 +508,39 @@ class TestFloat < Test::Unit::TestCase
sleep(0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1)
end
end
+
+ def test_step
+ 1000.times do
+ a = rand
+ b = a+rand*1000
+ s = (b - a) / 10
+ assert_equal(11, (a..b).step(s).to_a.length)
+ end
+
+ prev = 0
+ (1.0..(1.0+1E-15)).step(1E-16) do |current|
+ assert_not_equal(prev, current)
+ prev = current
+ end
+
+ (1.0..12.7).step(1.3).each do |n|
+ assert_operator(n, :<=, 12.7)
+ end
+ end
+
+ def test_step_excl
+ 1000.times do
+ a = rand
+ b = a+rand*1000
+ s = (b - a) / 10
+ assert_equal(10, (a...b).step(s).to_a.length)
+ end
+
+ assert_equal([1.0, 2.9, 4.8, 6.699999999999999], (1.0...6.8).step(1.9).to_a)
+
+ e = 1+1E-12
+ (1.0 ... e).step(1E-16) do |n|
+ assert_operator(n, :<, e)
+ end
+ end
end
----------------------------------------
Bug #4576: Range#step miss the last value, if end-exclusive and has float number
http://redmine.ruby-lang.org/issues/4576
Author: Joey Zhou
Status: Open
Priority: Normal
Assignee:
Category: core
Target version: 1.9.4
ruby -v: -
=begin
Hi, I find that:
* if: range.exclude_end? == true
* and: any one in [begin_obj, end_obj, step] is a true Float(f.to_i != f)
* and: unless begin_obj + step*int == end_obj
* then: the result will miss the last value.
for example:
p (1...6.3).step.to_a # => [1.0, 2.0, 3.0, 4.0, 5.0], no 6.0
p (1.1...6).step.to_a # => [1.1, 2.1, 3.1, 4.1], no 5.1
p (1...6).step(1.1).to_a # => [1.0, 2.1, 3.2, 4.300000000000001], no 5.4
p (1.0...6.6).step(1.9).to_a # => [1.0, 2.9], no 4.8
p (1.0...6.7).step(1.9).to_a # => [1.0, 2.9, 4.8]
p (1.0...6.8).step(1.9).to_a # => [1.0, 2.9, 4.8], no 6.7
Maybe the #step is ok on integers, but there's something wrong if the range is end-exclusive and contain float numbers.
=end
--
http://redmine.ruby-lang.org