[#29911] [Bug #3231] Digest Does Not Build — Charlie Savage <redmine@...>

Bug #3231: Digest Does Not Build

19 messages 2010/05/01

[#29920] [Feature #3232] Loops (while/until) should return last statement value if any, like if/unless — Benoit Daloze <redmine@...>

Feature #3232: Loops (while/until) should return last statement value if any, like if/unless

9 messages 2010/05/01

[#29997] years in Time.utc — Xavier Noria <fxn@...>

Does anyone have a precise statement about the years supported by

13 messages 2010/05/04

[#30010] [Bug #3248] extension 'tk' is finding tclConfig.sh and tkConfig.sh incorrectly — Luis Lavena <redmine@...>

Bug #3248: extension 'tk' is finding tclConfig.sh and tkConfig.sh incorrectly

9 messages 2010/05/05

[#30226] [Bug #3288] Segmentation fault - activesupport-3.0.0.beta3/lib/active_support/callbacks.rb:88 — Szymon Jeż <redmine@...>

Bug #3288: Segmentation fault - activesupport-3.0.0.beta3/lib/active_support/callbacks.rb:88

10 messages 2010/05/13

[#30358] tk doesn't startup well in doze — Roger Pack <rogerdpack2@...>

Currently with 1.9.x and tk 8.5,the following occurs

12 messages 2010/05/22

[ruby-core:30029] Re: years in Time.utc

From: Rick DeNatale <rick.denatale@...>
Date: 2010-05-05 17:29:51 UTC
List: ruby-core #30029
On Tue, May 4, 2010 at 8:05 AM, Xavier Noria <fxn@hashref.com> wrote:
> Does anyone have a precise statement about the years supported by
> Time.utc? That is, when does Time.utc(y) gives you a time object in
> year y?

I believe that this is both platform and ruby version dependent.

At least for Ruby 1.8.x the internal representation in time is a
signed integer (not a Ruby Integer or Fixnum but a 'hardware' integer)
representing the number of seconds since (or before for a negative
value) the posix epoch Thu Jan 01 00:00:00 UTC 1970

On 32 bit platforms, this allows times between Fri Dec 13 20:45:52 UTC
1901 and Tue Jan 19 03:14:07 UTC 2038 to be represented as Time
objects.

On 64 bit platforms, the range is much wider, I'm not sure exactly
what it is since you can't seem to add or subtract (2**63 -1) to a
Time representing the epoch in Ruby 1.8.6 or 1.8.7 without running
into an internal gmtime when you inspect the resulting value.  But it
can at least represent times between:

Sun Jul 19 17:33:52 UTC -1141705158 and Sun Jun 13 06:26:08 UTC 1141709097

Which might not stretch back to the current cosmological theories
about the time of the Big Bang, but should be wide enough represent
most times 'iinteresting' to Humans.

Time.utc(y) seems to interpret a y between 0 and 38 as being
2000..2038).  So it will return a Time object whose year is the passed
parameter + 2000.

So for Ruby 1.8.x compiled with 32 bit integers

Time.utc(y).year == y if y is between 1902 and 2038

And when compiled with 64 bit integers it's true if  y is between
    some negative value no larger than -1141705157 and -1
or between
    39 and some positive value at least  1141709097

Ruby 1.9.2 has changed the internal representation, it looks like it
uses a Ruby integer object internally, so the range expands to
bignums. So I think the answer for 1.9.2 is that you can use any
integer value for year.


-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Github: http://github.com/rubyredrick
Twitter: @RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

In This Thread