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

466 Коммитов

Автор SHA1 Сообщение Дата
naruse 654788793d fix commit miss
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-21 13:21:12 +00:00
naruse f5715289ac * time.c (mod): Add Fixnum case.
* time.c (quo): c can be Fixnum except a == FIXNUM_MIN && b == -1.
  Such case can be optimized out because quo()'s argument is constant.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-21 13:17:45 +00:00
nobu ce5ba9197d time.c (mul): fix missing return.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-20 11:26:17 +00:00
naruse 148f1b9d57 * internal.h (DLONG): defined if long is 32bit (and LONG_LONG is 64bit;
but LONG_LONG is always defined as 64bit), or there's int128_t.

* internal.h (DL2NUM): defined if DLONG is defined.

* internal.h (rb_fix_mul_fix): defined for `Fixnum * Fixnum`.

* insns.def (opt_mul): use rb_fix_mul_fix().

* numeric.c (fix_mul): ditto.

* time.c (mul): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-20 11:10:43 +00:00
naruse cb390bef8a * time.c (add): remove FIXABLE() which is in LONG2NUM().
* time.c (sub): ditto.

* time.c (mul): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-20 09:47:20 +00:00
naruse 4eb908d21a * time.c (LOCALTIME): organize #ifdefs.
* time.c (GMTIME): define only ifndef HAVE_STRUCT_TM_TM_GMTOFF.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-18 19:06:33 +00:00
naruse 9a8b21446e * configure.in (rb_cv_member_struct_tm_tm_gmtoff): For Linux (glibc)
define _BSD_SOURCE for time.h to define struct tm.tm_gmtoff.

* time.c: define _BSD_SOURCE at the top.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-18 19:06:32 +00:00
hsbt 8709f42ff2 * time.c: Minor typo in Time#dst? documentation.
[ci skip][fix GH-1290]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 00:56:45 +00:00
naruse 911b1c6b06 * time.c (rb_time_timespec_new): swap utc and localtime
to generate gmt flag by INT_MAX - gmtoff.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-10 05:36:47 +00:00
naruse f1df08e76d * time.c (rb_timespec_now): added.
* time.c (rb_time_timespec_new): added.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-10 02:59:47 +00:00
naruse 2b15d16987 fix comment: tobj->gmt is 0:localtime 1:utc 2:fixoff 3:init
see also TIME_UTC_P and TIME_LOCALTIME_P

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-09 17:18:35 +00:00
nobu 4191a6b90d preserve encodings in error messages
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-28 02:40:46 +00:00
akr 3093ffab83 * time.c (time_getlocaltime): [DOC] Add examples of valid utc_offset
formats.
  [ruby-core:68306] [Misc #10905] Patch by Charles Korn.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-14 11:10:49 +00:00
normal f6cd582505 variable.c: avoid compatibility table with generic ivars
This recovers and improves performance of Marshal.dump/load on
Time objects compared to when we implemented generic ivars
entirely using st_table.

This also recovers some performance on other generic ivar objects,
but does not bring bring Marshal.dump/load performance up to
previous speeds.

benchmark results:
minimum results in each 10 measurements.
Execution time (sec)
		name    trunk   geniv   after
marshal_dump_flo        0.343   0.334   0.335
marshal_dump_load_geniv 0.487   0.527   0.495
marshal_dump_load_time  1.262   1.401   1.257

Speedup ratio: compare with the result of `trunk' (greater is better)
		name    geniv   after
marshal_dump_flo        1.026   1.023
marshal_dump_load_geniv 0.925   0.985
marshal_dump_load_time  0.901   1.004

* include/ruby/intern.h (rb_generic_ivar_table): deprecate
* internal.h (rb_attr_delete): declare
* marshal.c (has_ivars): use rb_ivar_foreach
  (w_ivar): ditto
  (w_object): update for new interface
* time.c (time_mload): use rb_attr_delete
* variable.c (generic_ivar_delete): implement
  (rb_ivar_delete): ditto
  (rb_attr_delete): ditto
  [ruby-core:69323] [Feature #11170]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-30 00:20:15 +00:00
naruse 1e4172467f * win32/Makefile.sub: MSVC14 have struct timespec.
* win32/rtname.cmd: support vcruntime140.dll.

* time.c (localtime_with_gmtoff_zone): MSVC14 doesn't have tzname and
  daylight but have _tzname and _daylight.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-23 19:51:18 +00:00
nobu 004ce53b25 time.c: locale time zone name
* time.c (time_zone_name): should be US-ASCII only if all 7-bits,
  otherwise locale encoding.  [ruby-core:68230] [Bug #10887]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-24 02:49:51 +00:00
naruse 5b4afd0281 zone may be ASCII-8BIT on Windows [Bug #10887]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-23 09:32:27 +00:00
eregon 9759173cfc * time.c: zone encoding should be US-ASCII if all 7-bits. Fix r46907.
* test/ruby/test_time.rb, test/ruby/test_time_tz.rb: Update tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-22 22:26:55 +00:00
akr 9bbe6b9d0c * time.c (timelocalw): Set tm_isdst field -1 if vtm->isdst is
VTM_ISDST_INITVAL.  This bug is introduced at packing struct
  vtm (r45155).
  [ruby-core:67345] [Bug #10698] Reported by Boris Ruf.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-06 12:41:20 +00:00
nobu e580a631be use 0 for reserved
use 0 for rb_data_type_t::reserved instead of NULL, since its type
may be changed in the future and possibly not a pointer type.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-01 06:38:04 +00:00
nobu 1e4292a9d0 time.c: indent
* time.c (find_time_t): adjust indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-27 08:08:32 +00:00
akr 15bfc6ffbf * time.c (time_s_mkutc): [DOC] Time.utc's 10 arguments form
doesn't examine wday, yday, isdst and tz.
  (time_s_mktime): [DOC] Time.mktime's 10 arguments form
  doesn't examine wday, yday and tz.
  Suggested by naruse.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-27 03:48:42 +00:00
akr 7cd76ab0c5 * internal.h: Include ruby.h and ruby/encoding.h to be
includable without prior inclusion.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15 11:49:06 +00:00
akr 6c41b73dec update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-04 14:20:56 +00:00
akr 1efb3c31b7 * Avoid undefined behaviors found by gcc -fsanitize=undefined.
gcc (Debian 4.9.1-16) 4.9.1

* include/ruby/ruby.h (INT2FIX): Avoid undefined behavior.

* node.h (nd_set_line): Ditto.

* pack.c (encodes): Ditto.
  (pack_unpack): Ditto.

* regint.h (BIT_STATUS_AT): Ditto.
  (BS_BIT): Ditto.

* time.c (time_mdump): Ditto.
  (time_mload): Ditto.

* vm_core.h (VM_FRAME_MAGIC_MASK): Ditto.

* vm_trace.c (recalc_add_ruby_vm_event_flags): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 08:50:01 +00:00
glass 5697b2f013 * time.c: raise exception when minutes of utc_offset is out of 00-59.
patch is from Kenichi Kamiya.
  [ruby-dev:47539] [Bug #8679]

* test/ruby/test_time.rb: test for above.
  patch is from Kenichi Kamiya.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-21 16:58:47 +00:00
normal 6c396e94f9 time.c: DATA_PTR is never NULL
* time.c (time_mark): remove NULL check
  (time_memsize): ditto
  (time_free): remove, use RUBY_TYPED_DEFAULT_FREE instead
  [Feature #10219]

Tiny improvement on my old Phenom II X4 945 system:
$ ruby --disable=gems -e '6000000.times { Time.now }'
before: 2.51user 0.00system 0:02.51elapsed 100%CPU
 after: 2.45user 0.00system 0:02.45elapsed 100%CPU

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 06:01:36 +00:00
akr 092c647cb7 * time.c (rb_time_unmagnify_to_float): Avoid double rounding.
Reported by Tsuyoshi Sawada.
  https://bugs.ruby-lang.org/issues/10135#note-1



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-26 11:48:21 +00:00
normal ed2e8b2e70 time.c (time_timespec): fix tv_nsec overflow
test/ruby/test_float.rb (test_sleep_with_Float) causes tv_nsec
to hit 1000000000 exactly.  This bug is currently hidden from
our test by the platform-dependent native_cond_timeout
functions, but a future native_cond_timedwait implementation may
prefer relative timeouts to match ConditionVariable#wait
semantics more closely.
[Bug #10144]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-16 01:27:19 +00:00
akr 05e756f367 Revert r46977. [ruby-core:63857] [Bug #10071]
The removed comment is useful to understand the behind idea to
solve the year 2038 problem.

The broken link is replaced to refer the internet archive.
0eed69757d (commitcomment-7166665)



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-14 13:10:07 +00:00
zzak ea418dda41 * time.c: [DOC] Clarify %Y in strftime, which can accept any digits
and will output at least 4 digits as the year. Reported by Yury
  Trofimenko [Bug #8941]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-27 20:58:05 +00:00
zzak 0eed69757d * time.c: [DOC] Remove dead link and old bug report, which hasn't been
reproduced in a few years. Reported by Federico Builes [Bug #10071]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-27 20:14:11 +00:00
nobu 2e8ce8899a time.c: unnecessary encoding
* time.c (time_zone_name): remove unnecessary encoding and
  conversion if it is 7bit-ascii only.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-23 07:20:39 +00:00
akr dd5d029db0 * compile.c (BUFSIZE): Unused macro removed.
* vm.c (BUFSIZE): Ditto.

* pack.c (INT64toNUM): Ditto.
  (UINT64toNUM): Ditto.
  (BYTEWIDTH): Ditto.

* time.c (lshift): Ditto.
  (UINT64toNUM): Ditto.
  (id_lshift): Unused variable removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-11 13:29:16 +00:00
nobu 0989529f88 time.c: fix underflow of unsigned integers
* time.c (vtm_add_offset): get rid of underflow of unsigned
  integers.  fix up r45155.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-02 18:43:23 +00:00
nobu c23a9376ca time.c: fix non-terminated string
* time.c (month_arg, time_strftime): RSTRING_PTR() may not be
  NUL-terminated.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-18 15:09:49 +00:00
normal e0a0edf548 time.c: freeze and preserve marshal-loaded time zone
We need to prevent vtm.zone from pointing to a GC-ed string buffer.
The rb_copy_generic_ivar call misses it because get_attr deleted it.
Thanks to nobu for the rb_str_new_frozen suggestion.

* time.c (time_mload): freeze and preserve marshal-loaded time zone
* test/ruby/test_time.rb: add test for GC on loaded object
  [Bug #9652]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-19 08:19:13 +00:00
nobu fc23374f06 [DOC] add links to `Object#hash`
add links to `Object#hash` to each #`hash` methods rdocs.
[Fixes GH-567]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-14 01:27:43 +00:00
akr abb0286b72 [DOC]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-28 16:01:54 +00:00
nobu cc216f9aae adjust indent and style
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-27 07:10:14 +00:00
nobu df9199d468 configure.in, win32/Makefile.sub: PACKED_STRUCT with VC
* configure.in (PACKED_STRUCT): check VC pragma too, and make
  function-style macro.

* win32/Makefile.sub (PACKED_STRUCT): enable with VC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-25 07:00:10 +00:00
normal 131e4bec04 time: only use packed struct on x86*
* configure.in: define PACKED_STRUCT_UNALIGNED for x86*
* timev.h (struct vtm): use PACKED_STRUCT_UNALIGNED
* time.c (struct time_object): ditto
  [Bug #9558] non-x86 cannot safely access unaligned addresses

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-24 11:10:11 +00:00
normal b2f3063cae time: rearrange+pack vtm and time_object structs
struct time_object shrinks from 88 to 46 bytes on my 64-bit system.

* configure.in: use -Wno-packed-bitfield-compat for GCC 4.4+
  use __attribute__((packed)) if available
* timev.h: shrink and pack struct vtm
* time.c: pack struct time_object and adjust/introduce helpers
  [ruby-core:60794]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-24 03:38:14 +00:00
akr caa3c88040 * time.c (v2w): Normalize a rational value to an integer if possible.
[ruby-core:58070] [Bug #9059] reported by Isaac Schwabacher.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-30 03:22:23 +00:00
ko1 c5e08b764e * add RUBY_TYPED_FREE_IMMEDIATELY to data types which only use
safe functions during garbage collection such as xfree().
  On default, T_DATA objects are freed at same points as fianlizers.
  This approach protects issues such as reported by [ruby-dev:35578].
  However, freeing T_DATA objects immediately helps heap usage.
  Most of T_DATA (in other words, most of dfree functions) are safe.
  However, we turned off RUBY_TYPED_FREE_IMMEDIATELY by default
  for safety.
* cont.c: ditto.
* dir.c: ditto.
* encoding.c: ditto.
* enumerator.c: ditto.
* error.c: ditto.
* file.c: ditto.
* gc.c: ditto.
* io.c: ditto.
* iseq.c: ditto.
* marshal.c: ditto.
* parse.y: ditto.
* proc.c: ditto.
* process.c: ditto.
* random.c: ditto.
* thread.c: ditto.
* time.c: ditto.
* transcode.c: ditto.
* variable.c: ditto.
* vm.c: ditto.
* vm_backtrace.c: ditto.
* vm_trace.c: ditto.
* ext/bigdecimal/bigdecimal.c: ditto.
* ext/objspace/objspace.c: ditto.
* ext/stringio/stringio.c: ditto.
* ext/strscan/strscan.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-29 11:16:54 +00:00
akr 888e5cbbe7 * process.c: Remove spaces between SI prefix and unit to follow
SI brochure.
  http://www.bipm.org/en/si/si_brochure/
  https://www.nmij.jp/library/units/si/

* time.c: Ditto.

* ext/socket/ancdata.c: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-09 12:33:36 +00:00
nobu 5685abe6c3 time.c: ignore invalid data
* time.c (time_mload): ignore invalid offset and zone.
  [ruby-core:56648] [Bug #8795]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-17 13:20:50 +00:00
ktsj f9cbf0e89f * time.c (get_timeval, get_new_timeval): use rb_obj_class()
instead of CLASS_OF() because CLASS_OF() may return
  a singleton class.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-09 01:56:51 +00:00
akr fef170e87c * time.c (time_overflow_p): Avoid signed integer overflow.
(rb_time_new): Fix overflow condition.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-08 12:59:21 +00:00
akr 685597fdc1 Fix the previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-08 12:34:30 +00:00
akr 319dc9f6c6 * time.c (time_overflow_p): Avoid signed integer overflow.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-08 12:13:04 +00:00
zzak 0ea2ae132f * time.c: [DOC] Typo in Time overview by @sparr [Fixes GH-374]
https://github.com/ruby/ruby/pull/374


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06 13:39:15 +00:00
akr a338c4ed5d Unused variable removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-11 16:37:37 +00:00
akr b23d9a8a63 * bignum.c (validate_integer_pack_format): Don't require a word order
flag if numwords is 1 or less.
  (absint_numwords_generic): Don't specify a word order for
  rb_integer_pack.

* hash.c (rb_hash): Ditto.

* time.c (v2w_bignum): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-11 14:40:16 +00:00
akr 0e8caa7d0f * bignum.c (rb_integer_pack): Returns sign instead of words.
(absint_numwords_generic): Follow the above change.
  (big2str_base_powerof2): Follow the above change.

* internal.h: Ditto.

* hash.c (rb_hash): Ditto.

* pack.c (pack_pack): Ditto.

* random.c (int_pair_to_real_inclusive): Ditto.
  (rand_init): Ditto.
  (random_load): Ditto.
  (limited_big_rand): Ditto.

* time.c (v2w_bignum): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-10 10:37:39 +00:00
akr 837392b452 * bignum.c (rb_integer_pack): numwords_allocated argument removed.
* internal.h (rb_integer_pack): Follow the above change.

* hash.c (rb_hash): Ditto.

* time.c (v2w_bignum): Ditto.

* pack.c (pack_pack): Ditto.

* random.c (int_pair_to_real_inclusive): Ditto.
  (rand_init): Ditto.
  (random_load): Ditto.
  (limited_big_rand): Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-09 05:53:00 +00:00
akr 874f10cbf2 * time.c (v2w): Use rb_absint_size instead of RBIGNUM_LEN.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08 13:31:35 +00:00
akr f1a6b64b1d * time.c (v2w_bignum): Simplified using rb_integer_pack.
(rb_big_abs_find_maxbit): Removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08 12:48:39 +00:00
akr 747894a32d * bignum.c (rb_absint_singlebit_p): New function.
* internal.h (rb_absint_singlebit_p): Declared.

* time.c (v2w_bignum): Use rb_absint_singlebit_p instead of
  rb_big_abs_find_minbit.
  (rb_big_abs_find_minbit): Removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08 12:05:57 +00:00
akr af612be8e0 * time.c (rb_big_abs_find_maxbit): Use rb_absint_size.
(bdigit_find_maxbit): Removed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-08 11:25:07 +00:00
ktsj edb98f8b91 fix typos. Patch by k_takata.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 03:10:21 +00:00
akr a4460ddb48 * time.c (localtime_with_gmtoff_zone): musl libc may return NULL for
tm_zone.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-01 12:12:25 +00:00
akr f674d8623d * time.c (time_strftime): Describe %L and %N truncates digits under
the specified length.
  [ruby-core:52130] [Bug #7829]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-04 13:37:22 +00:00
nobu 77ff241fa0 timev.h: move time_t stuffs
* timev.h (TYPEOF_TIMEVAL_TV_SEC, unsigned_time_t): move from time.c.

* thread.c: use definitions in timev.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-30 21:08:36 +00:00
nobu f2e1bfb897 thread.c: format specifiers for time_t
* thread.c (sleep_timeval): fix format specifiers for time_t.

* time.c (DEBUG_REPORT_GUESSRANGE): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-30 21:08:34 +00:00
akr c64f26a281 * time.c (num_exact): use to_r method only if to_int method is
available.
  [ruby-core:53764] [Bug #8173] reported by Hiro Asari.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-27 11:37:59 +00:00
akr bfb0edbad2 * internal.h: Define TIMET_MAX and TIMET_MIN here.
* time.c: Remove TIMET_MAX and TIMET_MIN definitions.

* thread.c: Ditto.

* thread_pthread.c: Remove TIMET_MAX definition.

* thread_win32.c: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-26 14:45:55 +00:00
akr e1540cd74d update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-26 12:22:12 +00:00
kosaki 798ff850e4 * configure.in: check struct timeval exist or not.
* include/ruby/missing.h (struct timeval): check HAVE_STRUCT_TIMEVAL
  properly. and don't include sys/time.h if struct timeval exist.

* file.c: include sys/time.h explicitly.
* random.c: ditto.
* thread_pthread.c: ditto.
* time.c: ditto.
* ext/date/date_strftime.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-16 05:06:47 +00:00
nobu 84085167f8 time.c: check re-initialize
* time.c (GetTimeval): check if already initialized instance.
* time.c (GetNewTimeval): check if newly created instance.
* time.c (time_init_0, time_init_1, time_init_copy, time_mload): must
  be newly created instance.  [ruby-core:53436] [Bug #8099]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-15 14:06:21 +00:00
zzak c2204ca328 * array.c: Document #<=> return values and formatting
* bignum.c: ditto
* file.c: ditto
* object.c: ditto
* numeric.c: ditto
* rational.c: ditto
* string.c: ditto
* time.c: ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-23 03:35:38 +00:00
nobu 44c5c2a312 compar.c: inversed comarison without infinite recursion
* compar.c (rb_invcmp): compare by inversed comarison, with preventing
  from infinite recursion.  [ruby-core:52305] [Bug #7870]
* string.c (rb_str_cmp_m), time.c (time_cmp): get rid of infinite
  recursion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-17 11:55:50 +00:00
nobu a773539d3a time.c: st_update
* time.c (zone_str): lookup or insert by using st_update() at once.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-12 09:27:12 +00:00
naruse 1bb1d096fb * time.c (time_mdump): dump timezone string to private instance variable
on marshaling.

* time.c (time_mload): load timezone string from private instance
  variable named 'zone'.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-07 02:55:35 +00:00
nobu 3faee6520e time.c, vm_method.c: update rdoc
* time.c (time_{mdump,dump,mload,load): update rdoc.

* vm_method.c (obj_respond_to_missing): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-01 13:54:54 +00:00
nobu 9c1b3161f2 complex.c, time.c: make marshal methods private
* complex.c (Init_Complex), time.c (Init_Time): make marshal methods
  private.  [Feature #6539]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-01 09:17:02 +00:00
zzak 088b04e8a4 * time.c: Documentation improvements, grammar and formatting
Patch by Bernd Homuth [ruby-core:49203] [Bug #7326]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-30 04:53:09 +00:00
drbrain b773a4f803 * time.c (time_sec): Remove extra wording about leap seconds and refer
directly to Wikipedia's leap second page for further information.
  [Bug #6749]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-30 21:18:29 +00:00
drbrain 0d8bc52593 * time.c (time_sec): Updated description of leap seconds for accuracy.
Based on patch by Marcus Stollsteimer.  [Bug #6749]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-23 22:23:41 +00:00
akr 83eceb2a79 * time.c (timew_out_of_timet_range): specialization for
SIZEOF_TIME_T == SIZEOF_INT64_T.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-02 12:26:50 +00:00
kosaki 51c44ab1ec * time.c (init_leap_second_info): fix non-ANSI function declaration.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-19 21:50:32 +00:00
nobu 2073258a7d obj_init_copy
* object.c (rb_obj_init_copy): should check if trusted too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-05 11:13:18 +00:00
nobu 18805586d9 utc offset in seconds
* time.c (utc_offset_arg): utc offset can be precision in seconds.
  e.g. old Europe/Lisbon (c.f. [ruby-dev:40066])


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-30 01:58:34 +00:00
tadf 43e8bf0c27 re-modified
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-26 09:21:21 +00:00
tadf 0976f31200 * time.c: modified doc.
* ext/date/date_core.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-26 09:10:42 +00:00
nobu 28e48d3fd8 * time.c (time_init_1): Time.new will accept seconds as string or
int.  [ruby-core:43569][Bug #6193]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-24 13:22:22 +00:00
akr c7c91247e2 typo fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-09 19:21:01 +00:00
akr 4dbafb0d89 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-09 18:54:12 +00:00
nobu 80429eed63 * io.c, process.c, time.c, ext: use rb_sys_fail_str instead of
rb_sys_fail.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-27 01:50:27 +00:00
akr 3ab9be9245 update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-11 16:48:04 +00:00
akr 4e8d188ead update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-11 16:28:13 +00:00
akr 62fed7c91a update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-19 10:48:22 +00:00
akr 6445aab472 * time.c (TIME_COPY_GMT): copy vtm.utc_offset and vtm.zone too.
patch by Tomoyuki Chikanaga.
  [ruby-dev:44827] [Bug #5586]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-19 10:47:03 +00:00
nobu 413f24d3b0 * whitespace cleanup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-04 07:19:23 +00:00
drbrain 9edfa89744 * time.c (Init_Time): Remove editorial comments from Time
documentation, fix link.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-06 00:17:41 +00:00
drbrain 0d900cecdf * time.c (Init_Time): Improve Time documentation. Patch by Shane
Emmons.  [Ruby 1.9 - Bug #5404]
* lib/time.rb:  Improve time.rb documentation including Time.strptime.
  Patch by Shane Emmons.  [Ruby 1.9 - Bug #5402]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-06 00:14:55 +00:00
nobu 8e6e8e6288 * use RB_TYPE_P which is optimized for constant types, instead of
comparison with TYPE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-29 11:07:45 +00:00
akr cf7d76f0bc update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-09 23:14:00 +00:00
naruse 6bc83a18b7 * internal.h (rb_strftime_timespec): moved from time.c and define only
if ruby/encoding.h is included.

* internal.h (rb_strftime): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-27 10:06:25 +00:00
naruse 7412263eba * internal.h (rb_strftime_timespec): move to time.c because it depends
encoding.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-27 09:45:15 +00:00