[#51834] [ruby-trunk - Bug #7780][Open] Marshal & YAML should deserialize only basic types by default. — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>
[#51864] [ruby-trunk - Bug #7784][Open] [mingw] r39055 creates test failures and functionality loss — "jonforums (Jon Forums)" <redmine@...>
[#51870] [Backport93 - Backport #7786][Assigned] fix for abstract namespace — "shugo (Shugo Maeda)" <redmine@...>
[#51897] [ruby-trunk - Feature #7791][Open] Let symbols be garbage collected — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
(2013/02/06 22:50), shyouhei (Shyouhei Urabe) wrote:
A slightly different idea, closer to the existing garbage collection:
I think Koichi's approach is a better one. I don't think there are any
(2013/02/07 20:25), Rodrigo Rosenfeld Rosas wrote:
On Wed, Feb 6, 2013 at 2:37 PM, rosenfeld (Rodrigo Rosenfeld Rosas)
[#51898] [ruby-trunk - Feature #7792][Open] Make symbols and strings the same thing — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
On 8 February 2013 03:01, jeremyevans0 (Jeremy Evans) <
Em 07-02-2013 19:15, Matthew Kerwin escreveu:
Hi,
Em 07-02-2013 21:58, Yukihiro Matsumoto escreveu:
You don't need to hijack any code for it, you'd just use it as
Em 06-02-2013 12:36, Yorick Peterse escreveu:
I don't think I'm following you, can you explain what's supposedly
Em 06-02-2013 13:25, Yorick Peterse escreveu:
> What I'm trying to say is that the main reason why symbols exist in
Em 06-02-2013 16:22, Yorick Peterse escreveu:
> And "growing until you hit your memory limit" is actually only valid
On 7 February 2013 20:46, rosenfeld (Rodrigo Rosenfeld Rosas) wrote:
Em 07-02-2013 10:04, Matthew Kerwin escreveu:
On 7 February 2013 23:09, Rodrigo Rosenfeld Rosas wrote:
On Feb 7, 2013, at 10:43, David MacMahon <davidm@astro.berkeley.edu> wrote:
Issue #7792 has been updated by dsferreira (Daniel Ferreira).
[#51965] [ruby-trunk - Feature #7795][Open] Symbol.defined? and/or to_existing_symbol — "Student (Nathan Zook)" <blogger@...>
[#51977] [ruby-trunk - Feature #7797][Open] Hash should be renamed to StrictHash and a new Hash should be created to behave like AS HashWithIndifferentAccess — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
[#52042] [ruby-trunk - Bug #7805][Open] ruby 2.0rc2 core on solaris — "groenveld@... (John Groenveld)" <groenveld@...>
[#52048] [ruby-trunk - Bug #7806][Open] inconsistency between Method#inspect and Method#name — "Hanmac (Hans Mackowiak)" <hanmac@...>
[#52073] [ruby-trunk - Bug #7815][Open] Backport: Warning about TracePoint events to 2.0.0 — "zzak (Zachary Scott)" <zachary@...>
[#52075] [ruby-trunk - Feature #7816][Open] Don't invalidate method caches when defining a new method on a class without subclasses — "charliesome (Charlie Somerville)" <charlie@...>
[#52077] [ruby-trunk - Bug #7817][Open] (Unable to compile Ruby 2.0.0-rc2 on OSX (clang version 2.1) — "injekt (Lee Jarvis)" <ljjarvis@...>
[#52087] [ruby-trunk - Bug #7820][Assigned] Let's decide Ruby 2.0 supported platform list — "mame (Yusuke Endoh)" <mame@...>
Dne 10.2.2013 13:01, mame (Yusuke Endoh) napsal(a):
[#52130] [ruby-trunk - Bug #7829][Open] Rounding error in Ruby Time — "loirotte (Philippe Dosch)" <loirotte@...>
2013/2/22 David MacMahon <davidm@astro.berkeley.edu>:
2013/4/4 David MacMahon <davidm@astro.berkeley.edu>:
2013/4/5 David MacMahon <davidm@astro.berkeley.edu>:
[#52131] [ruby-trunk - Bug #7830][Open] Ruby packages should not build with -Werror when distributed — "kremenek (Ted Kremenek)" <kremenek@...>
[#52165] [ruby-trunk - Feature #7839][Open] Symbol.freeze_symbols — "tenderlovemaking (Aaron Patterson)" <aaron@...>
[#52206] [ruby-trunk - Bug #7842][Assigned] An alias of a "prepend"ed method skips the original method when calling super — "mame (Yusuke Endoh)" <mame@...>
[#52215] [ruby-trunk - Bug #7845][Open] Strip doesn't handle unicode space characters in ruby 1.9.2 & 1.9.3 (does in 1.9.1) — "timothyg56 (Timothy Garnett)" <timothyg@...>
[#52254] p385 breaks bakward compatibility — V咜 Ondruch <v.ondruch@...>
Hi,
On 02/14 06:06, V?t Ondruch wrote:
[#52267] [ruby-trunk - Feature #7854][Open] New method Symbol[string] — "Student (Nathan Zook)" <blogger@...>
[#52371] Broken email notification from Redmine? — =?ISO-8859-2?Q?V=EDt_Ondruch?= <v.ondruch@...>
Hi,
[#52492] Redmine & utf in title bug — Marc-Andre Lafortune <ruby-core-mailing-list@...>
I notice a lot of
[#52495] [ruby-trunk - Bug #7879][Open] File.readable? fails when ruby runs as root — "balbi (Feliple Balbi)" <balbif@...>
[#52508] Should I document refinements in a PickAxe update? — Dave Thomas <dave@...>
Gentle core folk:
On Feb 18, 2013, at 19:58, Dave Thomas <dave@pragprog.com> wrote:
> I think a document in a PickAxe update with appropriate warnings would
2013/2/19 Dave Thomas <dave@pragprog.com>:
[#52581] Fwd: Fixnum: freeze status on ruby 2.0.0 rc2 — Ryan Davis <ryand-ruby@...>
[#52596] [CommonRuby - Feature #7895][Open] Exception#backtrace_locations to go with Thread#backtrace_locations and Kernel#caller_locations — "headius (Charles Nutter)" <headius@...>
(2013/02/21 6:02), headius (Charles Nutter) wrote:
On Thu, Feb 21, 2013 at 8:36 AM, SASADA Koichi <ko1@atdot.net> wrote:
[#52701] [ruby-trunk - Feature #7914][Open] Case for local class methods — "trans (Thomas Sawyer)" <transfire@...>
[#52704] Feature Request w/ Patch: CSV::Row, adds ".each_pair" as an alias for ".each" — Ryan Dowell <ssstarduster@...>
A very simple patch. Adds ".each_pair" as an alias to ".each" in
[#52722] [ruby-trunk - Bug #7917][Open] Can't write to a Logger in a signal handler — "mperham (Mike Perham)" <mperham@...>
"mperham (Mike Perham)" <mperham@gmail.com> wrote:
[#52723] Improving order of NEWS — Marc-Andre Lafortune <ruby-core-mailing-list@...>
I feel the NEWS are in the wrong order: C API, builtin classes, std-lib,
[#52727] [ruby-trunk - Feature #7918][Open] Create Signal.in_trap?() — "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>
(2013/02/23 11:31), kosaki (Motohiro KOSAKI) wrote:
[#52737] What's the *right* way to build Ruby from source on a Linux system that doesn't yet have Ruby? — Paul Sherwood <paul.sherwood@...>
We'd like to add Ruby support in a clean Linux environment which has
On Sat, Feb 23, 2013 at 9:38 AM, Paul Sherwood
On 23/02/2013 13:16, Luis Lavena wrote:
> On 23/02/2013 13:16, Luis Lavena wrote:
[#52876] [ruby-trunk - Bug #7957][Open] rb_str_modify() does not prevent shared string from rb_str_set_len() — "normalperson (Eric Wong)" <normalperson@...>
[#52877] Any documentation about debugging in Ruby 2.0.0 — Rodrigo Rosenfeld Rosas <rr.rosas@...>
Hi, I couldn't find how to debug Ruby 2.0.0 programs, but only a few
On Monday, February 25, 2013, Rodrigo Rosenfeld Rosas wrote:
Em 25-02-2013 10:47, Jeremy Kemper escreveu:
(2013/02/26 0:22), Rodrigo Rosenfeld Rosas wrote:
(2013/02/26 2:34), SASADA Koichi wrote:
Em 26-02-2013 15:14, SASADA Koichi escreveu:
(2013/02/27 4:19), Rodrigo Rosenfeld Rosas wrote:
Em 26-02-2013 17:23, SASADA Koichi escreveu:
I rewrite a debugger for Ruby 2.0.
Thank you very much, Koichi, but I couldn't get it to work yet:
[#52997] [ruby-trunk - Feature #7978][Open] boolean to_i — "alexeymuranov (Alexey Muranov)" <redmine@...>
[#53017] [ruby-trunk - Bug #7982][Open] rb_raise segfaults on %lli format with (0xffffffff + 1) — "erik.s.chang (Erik Chang)" <erik.s.chang@...>
[#53035] [ruby-trunk - Feature #7986][Open] Custom case statement comparison method — "trans (Thomas Sawyer)" <transfire@...>
[ruby-core:52586] Re: [ruby-trunk - Bug #7829] Rounding error in Ruby Time
On Feb 20, 2013, at 7:46 AM, loirotte (Philippe Dosch) wrote:
> Typing this instruction:
>
> irb(main):001:0> Time.utc(1970,1,1,0,0,12.860).strftime("%H:%M:%S,%L")
> => "00:00:12,859"
>
> gives an unexpected intuitive result.
I totally agree with you that this is an unexpected, unintuitive result. The "problem" arises from the fact that you are passing in a Float for the number of seconds yet I suspect that Time uses Rational to support arbitrary precision. The conversion from the 12.860 literal to double precision floating point is limited in precision. The nearest representable value in this case is less than the "true" value. Converting Float to Rational is "perfect" in that the conversion back to Float results in the same (limited precision) value. The storing of 12.86 also "wastes" some bits of precision on the integer portion of the value:
>> 12.86-12
=> 0.8599999999999994
You can avoid this "problem" by passing in a Rational instead of a Float for the seconds:
irb(main):001:0> Time.utc(1970,1,1,0,0,Rational(12860,1000)).strftime("%H:%M:%S,%L")
=> "00:00:12,860"
The DateTime class, which I think also uses Rational internally, does not seem to suffer the same problem:
irb(main):001:0> DateTime.civil(1970,1,1,0,0,12.86).strftime('%H:%M:%S,%L')
=> "00:00:12,860"
If DateTime also got it wrong I'd say it's just a limitation of floating point representation. The fact that DateTime behaves as expected leads me to believe that maybe Time's implementation could be altered to match. My guess is that Time uses Float.to_r on the seconds parameter directly thereby getting a power-of-2 denominator in the Rational whereas DateTime defaults to nanosecond precision thereby getting a denominator of 86,400,000,000,000 (or a factor thereof) which is the number of nanoseconds per day.
Perhaps it would be a nice feature to allow user specified precision on instances of these classes. That can already be done by passing in a Rational, but it could be convenient to have a separate parameter for this purpose. For example, to limit an instance to millisecond precision:
Time.utc(1970, 1, 1, 0, 0, 12.86, precision: 1000)
I know that millisecond precision would normally be specified as 1e-3, but that gets into floating point issues so I think it's cleaner to specify precision using the inverse.
## Not using precision (or precision=1)
>> 12.86.to_r-12
=> (60517119992791/70368744177664)
## Using precision=1000
>> Rational(12.86*1000).to_r/1000-12
=> (43/50)
This is not perfect since it still breaks when the integer portion in large, but it would work well for values representing seconds which are typically 60.0 (for leap seconds) or less. Maybe it would even be useful to add an optional precision parameter to Float#to_r, i.e. Float#to_r(precision=1), which would then return the equivalent of "Rational(self*precision, precision)".
Interestingly, Ruby 1.9 has String#to_r which leads to this::
>> Time.utc(1970,1,1,0,0,12.86.to_s.to_r).strftime("%H:%M:%S,%L")
=> "00:00:12,860"
Please let me know if this would be more appropriate for ruby-talk.
Thanks,
Dave