Граф коммитов

542 Коммитов

Автор SHA1 Сообщение Дата
Yusuke Endoh 2409667aa2 time.c: Fix some bugs about WIDEVALUE
WIDEVALUE differs from VALUE in 32bit platform, but some codes assume
that they are the same.

There is `#define STRUCT_WIDEVAL` mode to check the consistency.
This change allows to build with STRUCT_WIDEVAL.
2019-10-06 11:39:01 +09:00
NARUSE, Yui cbf405fec4 Specify encoding explicitly for sprintf 2019-09-19 20:45:24 +09:00
NARUSE, Yui 5208c431be Separate Time#inspect from to_s and show subsec [Feature #15958] 2019-09-19 20:20:15 +09:00
Masaki Matsushita 0e9d56f5e7 Support timeout for Addrinfo
Addrinfo.getaddrinfo and .foreach now accepts :timeout in seconds as
a keyword argument. If getaddrinfo_a(3) is available, the timeout will be
applied for name resolution. Otherwise, it will be ignored.

Socket.tcp accepts :resolv_timeout to use this feature.

This commit is retry of 6382f5cc91.
Test was failed on Solaris machines which don't have "http" in
/etc/services. In this commit, use "ssh" instead.
2019-09-10 10:10:59 +09:00
Masaki Matsushita c4efbf663e Revert "Support timeout for Addrinfo"
This reverts commit 6382f5cc91.
test failed on Solaris.
2019-09-09 20:34:51 +09:00
Masaki Matsushita 6382f5cc91 Support timeout for Addrinfo
Addrinfo.getaddrinfo and .foreach now accepts :timeout in seconds as
a keyword argument. If getaddrinfo_a(3) is available, the timeout will be
applied for name resolution. Otherwise, it will be ignored.

Socket.tcp accepts :resolv_timeout to use this feature.
2019-09-09 14:34:05 +09:00
卜部昌平 5c7c2d9951 rb_rescue / rb_rescue2 now free from ANYARGS
After 5e86b005c0, I now think ANYARGS is
dangerous and should be extinct.  This commit deletes ANYARGS from
rb_rescue / rb_rescue2, which revealed many arity / type mismatches.
2019-08-27 15:52:26 +09:00
Nobuyoshi Nakada 0ed298f382
Refine time_to_r
* time.c (time_to_r): get rid canonicalize and uncanonicalize
  one-denominator rational, by rb_time_unmagnify_to_rational.
2019-08-06 23:39:14 +09:00
Nobuyoshi Nakada 4ea5c5610a
Predefine some IDs 2019-08-03 10:18:39 +09:00
Jeremy Evans 177731aadf Document that Timezone argument for Time uses dst? if available [ci skip] 2019-07-29 11:06:43 -07:00
Nobuyoshi Nakada 149e414ed5
Initialize DST flag
* time.c (zone_timelocal): initialize DST flag by asking the
  timezone object.  [Bug #15988]
2019-07-27 12:41:33 +09:00
Nobuyoshi Nakada f487e5b7a4
Expanded buf to copy at once
Build dumped string from base packed data and extended year at
once.  Although currently ruby_marshal_write_long() never writes
more than 5 bytes per its format specification, allocate
`sizeof(long)+1` for the sanitation.
2019-07-17 08:34:19 +09:00
Nobuyoshi Nakada ed2f2b4f98
Named the backward compatible dump size 2019-07-17 07:28:17 +09:00
Yusuke Endoh d37da60128 time.c (time_mdump): use another buffer for year_extend
ruby_marshal_write_long may write 9 bytes, but buf has only 8 bytes.
So the buffer cannot be reused.  This issue was found by Coverity Scan.
2019-07-15 06:44:16 +09:00
Yusuke Endoh 219643c075 Add a /* fall through */ comment 2019-07-14 14:28:01 +09:00
Nobuyoshi Nakada e690df1f1e
Marshal distant past/future
[Feature #15160]
2019-06-19 15:26:53 +09:00
Nobuyoshi Nakada 45ad375acc
[DOC] Use Rational literals than to_r in examples 2019-05-24 16:10:10 +09:00
Nobuyoshi Nakada 1a4080cb0a
Hoisted out ndigits_denominator
* time.c (ndigits_denominator): calculate the denominator for
  digits.
2019-05-24 15:16:19 +09:00
git 0b4d51b055 * expand tabs. 2019-05-23 22:39:54 +09:00
manga_osyo f5415a95ce
Add `Time#ceil`.
Closes: https://github.com/ruby/ruby/pull/2133
2019-05-23 22:30:19 +09:00
Marcus Stollsteimer 60de17258b [DOC] Shorten examples for Time#{round,floor} 2019-05-18 13:06:49 +02:00
Marcus Stollsteimer cc0e460bcc [DOC] Improve documentation for Time#floor
Use numbers that are more illustrative for #floor.
2019-05-18 13:06:10 +02:00
Nobuyoshi Nakada b9e52db283
Add a pathologic check 2019-05-04 22:00:22 +09:00
svn 5d9acf07fb * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-20 05:00:45 +00:00
nobu 1686c0d470 Add `Time#floor`
[Feature #15653]
[Fix GH-2092]

From: manga_osyo <manga.osyo@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-20 05:00:43 +00:00
nobu 4dd1cf3b27 time.c: added in: option to Time.now
* time.c (time_s_now): added in: option to Time.now as well as
  Time.at.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-19 08:53:40 +00:00
stomar 6833fbcfaf time.c: [DOC] small improvement
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-20 15:04:41 +00:00
nobu 665d9a4331 time.c: separate sign argument
* time.c (vtm_add_offset): separate sign argument to get rid of
  repeated negations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-13 04:36:45 +00:00
nobu 019c891508 time.c: do not set utc_offset in vtm_add_offset
* time.c (vtm_add_offset): just add offset to other components
  only.  removed subtraction of utc_offset as it is overwritten
  always immediately in callers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-13 03:31:01 +00:00
nobu 347f3f30d6 time.c: update error message for invalid utc_offset
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-09 13:58:51 +00:00
nobu 8371a9a4ce time.c: support military time zone names
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-07 07:03:23 +00:00
nobu 4f9ab3a01a time.c: UTC and Z timezones should be utc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-07 06:59:46 +00:00
nobu d747ecc0c4 time.c: zone in fixoff mode
* time.c (time_set_utc_offset): reset zone when setting to fixoff
  mode.  while previously TZMODE_SET_FIXOFF has reset it always,
  the zone is kept for loaded zone since r65025.
  [ruby-core:90627] [Bug #15439]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-24 01:46:48 +00:00
nobu 95fbd87fab Range check is only for interaval
* time.c (time_timespec): range check is only for time interval
  value if time_t is signed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-17 00:43:40 +00:00
nobu 9446db408c Refine error message for time interval
* time.c (time_timespec): Time interval value can be zero, not
  only positive.  [ruby-dev:50709] [Bug #15420]

From: shuujii (Shuji KOBAYASHI) <shuujii@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-16 12:55:59 +00:00
stomar 52a71df01b time.c: [DOC] improve docs for tz argument of Time.new
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-15 21:28:34 +00:00
stomar bd78a07f46 time.c: improve docs for Time
* time.c: [DOC] fix typos, drop unnecessary `p' from code examples,
  add missing `#' for return values, other small improvements.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-13 22:41:44 +00:00
nobu 98e65d9d92 Prefer rb_check_arity when 0 or 1 arguments
Especially over checking argc then calling rb_scan_args just to
raise an ArgumentError.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-06 07:49:24 +00:00
nobu 4b85e88174 Prefer rb_check_arity when 0 or 1 arguments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-04 02:24:15 +00:00
nobu 4471d4a3e5 time.c: rescue find_timezone when loading
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 14:08:35 +00:00
nobu ab73b30539 Time.at in: tz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 14:08:33 +00:00
nobu bdfc701b85 Timezone at Time.at
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 14:08:32 +00:00
nobu 337b4b6344 Try Time.find_timezone to convert name to timezone
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 14:08:31 +00:00
nobu fe08f99e93 Try Time.find_timezone to load
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 14:08:30 +00:00
naruse 2c652768a8 Normalize month-mday before finding epoch
Especially over the year 2038, 30 Feb and so on may cause odd behavior
on validating found epoch with given year-month-day [Bug #15340]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-25 16:23:18 +00:00
nobu f167ff47a6 Hide Time::TM as Time::tm
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 02:09:01 +00:00
nobu 5bb1f4e73f time.c: [DOC] fix method names to refer class methods [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-29 08:11:25 +00:00
nobu b361c8e3d5 time.c: added Time::TM#+ and Time::TM#-
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28 12:05:19 +00:00
nobu d59ad98f6a time.c: ignore 7th arg
* time.c (tm_initialize): allow 7th argument as well as
  Time#initialize, but just ignore.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28 12:05:18 +00:00
nobu c4be18c28b time.c: [DOC] add description and fix markups [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-28 12:05:17 +00:00