summaryrefslogtreecommitdiff
path: root/time.c
AgeCommit message (Collapse)Author
5 daysAdded `in:` timezone option to `Time.new` [Feature #17485]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4010
5 daysAllow UTC offset without colons per ISO-8601 [Bug #17504]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4020
6 daysConvert time component strings to integers more strictlyNobuyoshi Nakada
https://bugs.ruby-lang.org/issues/17485#change-89871
6 daysShow seconds of utc_offset if not zeroNobuyoshi Nakada
2020-12-31get_tmopt is no longer usedNobuyoshi Nakada
2020-12-31Moved Time.at to builtinNobuyoshi Nakada
2020-12-31Moved Time.now to builtinNobuyoshi Nakada
2020-12-31Moved time.rb to timev.rbNobuyoshi Nakada
2020-12-31Add time.rb as builtinNobuyoshi Nakada
2020-12-07Removed deprecated Time#succNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3841
2020-11-28Subsecond of Time::tm should be 0Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3821
2020-10-21Use rb_intern_const instead of rb_intern in Init functionsNobuyoshi Nakada
``` find . -name \*.o -exec nm {} + |& sed '/Init_.*\.rbimpl_id/!d;s/^.* b //;s/\.[1-9][0-9]*$//;s/\.rbimpl_id$//' | uniq ``` should be empty.
2020-10-21Don't redefine #rb_intern over and over againStefan Stüben
Notes: Merged: https://github.com/ruby/ruby/pull/3589
2020-07-28Fix Time#ceil when result should be the same as the receiverJeremy Evans
Fixes [Bug #17025] Notes: Merged: https://github.com/ruby/ruby/pull/3362
2020-07-28Use https instead of httpKazuhiro NISHIYAMA
2020-07-24Fix Time#to_a behavior with timezone [Bug #17046]S.H
Notes: Merged: https://github.com/ruby/ruby/pull/3355 Merged-By: nobu <nobu@ruby-lang.org>
2020-07-23Ensure time object meets a given condition [Bug #17042]Nobuyoshi Nakada
2020-07-23Merge pull request #3352 from S-H-GAMELINKS/bug/17042-strftimeS.H
Fix Time#strftime with timezone [Bug #17042] Notes: Merged-By: nobu <nobu@ruby-lang.org>
2020-07-21[DOC] time.c document updated.Tanaka Akira
* fraction -> subsecond for consistency with method name * The sentence, "A non-portable feature allows the offset to be negative on some systems.", is removed. Time before 1970 should work portably now. If localtime() doesn't work before 1970, Ruby should extrapolate it. * Time::new -> Time.new "::" for method call is not common notation now. * Time#to_i truncates subsecond * Time#to_f approximates a value in Time object * Time#to_r The sentence, "You can use this method to convert _time_ to another Epoch.", is removed. It is not clear because no actual example of "another Epoch" is given. * Time#usec truncates fraction of microseconds. * Time#nsec truncates fraction of nanoseconds. * describe Time#inspect shows subsecond since Ruby 2.7.0.
2020-07-12Fixed yday and wday with timezone [Bug #17024]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3312
2020-06-29find_time_t: reset status before goto卜部昌平
Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29add UNREACHABLE_RETURN卜部昌平
Not every compilers understand that rb_raise does not return. When a function does not end with a return statement, such compilers can issue warnings. We would better tell them about reachabilities. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29time_mload: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29indent [ci skip]卜部昌平
Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29find_time_t: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29utc_offset_arg: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29vtm_add_offset: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29num_exact: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-03Append subsec part instead of creating new stringNobuyoshi Nakada
2020-05-11sed -i 's|ruby/impl|ruby/internal|'卜部昌平
To fix build failures. Notes: Merged: https://github.com/ruby/ruby/pull/3079
2020-05-11sed -i s|ruby/3|ruby/impl|g卜部昌平
This shall fix compile errors. Notes: Merged: https://github.com/ruby/ruby/pull/3079
2020-04-08Merge pull request #2991 from shyouhei/ruby.h卜部昌平
Split ruby.h Notes: Merged-By: shyouhei <shyouhei@ruby-lang.org>
2020-03-09Clarify Time::at documentation for in: argumentzverok
Notes: Merged: https://github.com/ruby/ruby/pull/2950
2020-02-27Update docs for Time#at method [ci skip]प्रथमेश Sonpatki
Add docs about all possible options for the `in` argument. Notes: Merged: https://github.com/ruby/ruby/pull/2929 Merged-By: nobu <nobu@ruby-lang.org>
2020-02-10Don't refer Date in the document for Time.Tanaka Akira
2020-02-07more on NULL versus functions.卜部昌平
Function pointers are not void*. See also ce4ea956d24eab5089a143bba38126f2b11b55b6 8427fca49bd85205f5a8766292dd893f003c0e48
2020-01-28ruby_reset_timezone resets leap_second_info.Tanaka Akira
[Bug #15177]
2020-01-28Extract a function, ruby_reset_timezone().Tanaka Akira
Initial implementation of ruby_reset_timezone() assigns ruby_tz_uptodate_p to false.
2020-01-13Simplify obj2ubits checksJohn Hawthorn
If this value is less than zero, then the mask check is guaranteed to fail as well, so we might as well rely on that. Notes: Merged: https://github.com/ruby/ruby/pull/2808
2020-01-13Avoid rb_check_string_type in month_argJohn Hawthorn
This will usually receive a fixnum so we should check that first instead of the more expensive rb_check_string_type check. Notes: Merged: https://github.com/ruby/ruby/pull/2808
2020-01-13Store "UTC" and "" fstring as globals in time.cJohn Hawthorn
Notes: Merged: https://github.com/ruby/ruby/pull/2808
2019-12-26decouple internal.h headers卜部昌平
Saves comitters' daily life by avoid #include-ing everything from internal.h to make each file do so instead. This would significantly speed up incremental builds. We take the following inclusion order in this changeset: 1. "ruby/config.h", where _GNU_SOURCE is defined (must be the very first thing among everything). 2. RUBY_EXTCONF_H if any. 3. Standard C headers, sorted alphabetically. 4. Other system headers, maybe guarded by #ifdef 5. Everything else, sorted alphabetically. Exceptions are those win32-related headers, which tend not be self- containing (headers have inclusion order dependencies). Notes: Merged: https://github.com/ruby/ruby/pull/2711
2019-12-24[DOC] Fix typo in Time#inspectMarcus Stollsteimer
2019-12-22Actualize Time#inspect docszverok
Notes: Merged: https://github.com/ruby/ruby/pull/2768
2019-12-20Fixed misspellingsNobuyoshi Nakada
Fixed misspellings reported at [Bug #16437], only in ruby and rubyspec.
2019-12-17Reduce tzset callsNobuyoshi Nakada
Set up-to-date flag always when calling tzset().
2019-12-17time.c (find_time_t): fix round-to-zero bugYusuke Endoh
`find_time_t` did not work correctly for year older than the Epoch because it used C's integer division (which rounds negative to zero). For example, `TIme.new(1933)` returned a wrong time whose year is 1922 in Asia/Kuala_Lumpur because there is no 00:00:00 1st Jan. 1933 in the time zone. ``` $ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)' 1932-12-31 00:00:00 +0700 ``` This change fixes the issue by using `DIV` macro instead of `/`. Now `Time.new(1933)` returns a time in 1933. ``` $ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)' 1933-01-01 00:20:00 +0720 ``` [Bug #16159]
2019-12-03fix typoKOSAKI Motohiro
2019-12-01Avoid unnecessary tzset() callKOSAKI Motohiro
Akatsuki reported ENV['TZ'] = 'UTC' improved 7x-8x faster on following code. t = Time.now; 100000.times { Time.new(2019) }; Time.now - t https://hackerslab.aktsk.jp/2019/12/01/141551 commit 4bc1669127(reduce tzset) dramatically improved this situation. But still, TZ=UTC is faster than default. This patch removs unnecessary tzset() call completely. Performance check ---------------------- test program: t = Time.now; 100000.times { Time.new(2019) }; Time.now - t before: 0.387sec before(w/ TZ): 0.197sec after: 0.162sec after(w/ TZ): 0.165sec OK. Now, Time creation 2x faster *and* TZ=UTC doesn't improve anything. We can forget this hack completely. :) Side note: This patch slightly changes Time.new(t) behavior implicitly. Before this patch, it might changes default timezone implicitly. But after this patch, it doesn't. You need to reset TZ (I mean ENV['TZ'] = nil) explicitly. But I don't think this is big impact. Don't try to change /etc/localtime on runtime. Side note2: following test might be useful for testing "ENV['TZ'] = nil". ----------------------------------------- % cat <<'End' | sudo sh -s rm -f /etc/localtime-; cp -a /etc/localtime /etc/localtime- rm /etc/localtime; ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ./ruby -e ' p Time.new(2000).zone # JST File.unlink("/etc/localtime"); File.symlink("/usr/share/zoneinfo/America/Los_Angeles", "/etc/localtime") p Time.new(2000).zone # JST (ruby does not follow /etc/localtime modification automatically) ENV["TZ"] = nil p Time.new(2000).zone # PST (ruby detect /etc/localtime modification) ' rm /etc/localtime; cp -a /etc/localtime- /etc/localtime; rm /etc/localtime- End
2019-11-25Improve consistency of bool/true/falseKazuhiro NISHIYAMA