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

32820 Коммитов

Автор SHA1 Сообщение Дата
akr 0c3d124571 * bignum.c (bytes_2comp): Define it only for little endian
environment.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 22:41:07 +00:00
knu 7cc26c722c Fix and add tests for Numeric#step.
* test/ruby/test_float.rb (TestFloat#test_num2dbl): Allow nil as
  step, as with the keyword argument.

* test/ruby/test_numeric.rb (TestNumeric#test_step): Add tests for
  nil as step or limit.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 22:39:24 +00:00
knu 4993cf9e24 Numeral#step should raise TypeError if a non-numeric parameter is given.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 22:39:22 +00:00
akr 3065dd71e8 * internal.h (bit_length): Add casts to fix complation error with
clang 3.0 -Werror,-Wshorten-64-to-32.
  [ruby-dev:47687] reported by SASADA Koichi.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 22:29:48 +00:00
svn 69d0f84bfa * 2013-09-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 18:21:21 +00:00
ko1 41234c5ca3 * vm_insnhelper.c (vm_search_super_method): use ci->argc instead of
ci->orig_argc. ci->argc can be changed by splat arguments.
  [ruby-list:49575]
  This fix should be applied to Ruby 2.0.0 seriese.
* test/ruby/test_super.rb: add a test for above.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 18:21:13 +00:00
knu fd4b5b8dc8 Enhance Numeric#step.
* numeric.c (num_step): Default the limit argument to infinity and
  allow it to be omitted.  Keyword arguments (by: and to:) are
  introduced for ease of use. [Feature #8838] [ruby-dev:47662]
  [ruby-dev:42194]

* numeric.c (num_step): Optimize for infinite loop.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 14:56:06 +00:00
nobu a94833eb50 test_string.rb: yet another test
* test/ruby/test_string.rb (TestString#test_frozen_string_adjacent):
  option is allowed after the last string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 14:56:03 +00:00
nobu 306cf3ac03 parse.y: valid suffix word only
* parse.y (parser_str_options): use valid suffix word only, as well as
  numeric literal, for the backward comatibility.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 14:46:25 +00:00
nobu 57d06d7b3f test_string.rb: remove duplicated code
* test/ruby/test_string.rb (TestString#test_frozen_dstring): remove
  duplicated assertion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 14:33:56 +00:00
akr 1d7611ff48 * bignum.c (ISDIGIT): Unused macro removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 13:56:23 +00:00
akr 5f61a592e9 * bignum.c (str2big_poweroftwo): Extracted from rb_cstr_to_inum.
(str2big_normal): Ditto.
  (str2big_karatsuba): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 13:52:05 +00:00
nobu 93ea04ecec parse.y: force_encoding
* parse.y (str_suffix_gen): String#b creates new string object, use
  force_encoding instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 08:53:40 +00:00
charliesome a056098cb7 * NEWS: Add note about frozen string literals
* compile.c (case_when_optimizable_literal): optimize NODE_LIT strings
  in when clauses of case statements

* ext/ripper/eventids2.c: add tSTRING_SUFFIX

* parse.y: add 'f' suffix on string literals for frozen strings

* test/ripper/test_scanner_events.rb: add scanner tests

* test/ruby/test_string.rb: add frozen string tests

[Feature #8579] [ruby-core:55699]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 07:11:41 +00:00
knu 78c75d91ae Add forgotton [DOC].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 05:48:36 +00:00
knu 1b4addb445 Process#setproctitle,argv0: Fix and improve rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 05:42:02 +00:00
mrkn 01983c97a9 * NEWS: fix description of number literal suffixes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 05:16:39 +00:00
charliesome 0732ed367c * test/rake/test_rake_rules.rb: add space after string literal to
prevent conflict with string options syntax "foo"opts

* test/rss/rss-assertions.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 05:08:20 +00:00
akr dd9c8b88af * test/ruby/test_bignum.rb (test_interrupt_during_to_s): Disable it
when GMP is used.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-02 03:29:16 +00:00
akr 0effd06122 * bignum.c (Init_Bignum): Define Bignum::GMP_VERSION when GMP is used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 22:04:35 +00:00
akr c48e169fb9 * bignum.c (big2str_generic): Reduce arguments.
(big2str_gmp): Ditto.
  (rb_big2str1): Follow the above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 16:47:20 +00:00
akr a3e3cce183 Fix funciton name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 16:06:20 +00:00
svn 0b8c55f7f3 * 2013-09-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 15:09:12 +00:00
akr 8a108ffc21 * process.c (get_mach_timebase_info): Extracted from rb_clock_gettime.
(rb_clock_gettime): Use get_mach_timebase_info.
  (rb_clock_getres): Support MACH_ABSOLUTE_TIME_BASED_CLOCK_MONOTONIC.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 15:09:06 +00:00
akr b64c2c348f * bignum.c (GMP_BIG2STR_DIGITS): New constant.
(big2str_gmp): New function.
  (rb_big2str1): Use big2str_gmp for big bignums.

* internal.h (rb_big2str_gmp): Declared.

* ext/-test-/bignum/big2str.c (big2str_gmp): New method.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 14:34:53 +00:00
akr 4dd7a13a0a * bignum.c (bary_mul_gmp): Use mpz_init and mpz_clear instead of
mpz_inits and mpz_clears.
  Older GMP don't have them.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 13:38:49 +00:00
akr 28130c1c63 * test/net/http/test_http.rb (test_bind_to_local_port): Choose an open
port more reliably.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 12:19:15 +00:00
nobu ed5de3814a * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 11:38:40 +00:00
akr 7dd1604603 * bignum.c (big2str_base_poweroftwo): Renamed from
big2str_base_powerof2.
  (rb_big2str_poweroftwo): New function for test.
  (big2str_generic): Extracted from rb_big2str1.
  (rb_big2str_generic): New function for test.

* internal.h (rb_big2str_poweroftwo): Declared.
  (rb_big2str_generic): Ditto.

* ext/-test-/bignum/big2str.c: New file.

* test/-ext-/bignum/test_big2str.rb: New file.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 11:35:57 +00:00
nobu cec97f40f6 process.c: suppress warning
* process.c (rb_clock_getres): move conditionally used variable to the
  proper block.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 09:04:10 +00:00
akr 34004844cd * bignum.c (big2str_2bdigits): Renamed from big2str_orig.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 06:21:52 +00:00
akr 6fe40011a8 * bignum.c: Remove BITSPERDIG >= INT_MAX test. The static assertion,
SIZEOF_BDIGITS <= sizeof(BDIGIT) is enough.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 04:03:32 +00:00
akr c9b3571ceb * bignum.c (maxpow_in_bdigit): Removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 02:39:05 +00:00
akr e8d8e0696f Add assertions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 01:57:45 +00:00
akr 77f245e62e * numeric.c (rb_fix_bit_length): Moved from bignum.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 01:31:16 +00:00
akr a0a0b61b68 [DOC]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 01:00:15 +00:00
akr 7bb549d6b5 * internal.h (bit_length): Moved from bignum.c.
(nlz_int): Ditto.
  (nlz_long): Ditto.
  (nlz_long_long): Ditto.
  (nlz_int128): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-01 00:57:00 +00:00
akr 8bd7af6794 * bignum.c (bit_length): Renamed from bitsize.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 18:34:42 +00:00
akr 4ac5f5710e updated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 15:12:39 +00:00
svn feb9806237 * 2013-09-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 15:09:25 +00:00
akr 89744e75bd * bignum.c (rb_big_bit_length): New method.
(rb_fix_bit_length): Ditto.
  [ruby-core:56247] [Feature #8700]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 15:09:20 +00:00
akr a926a1f41c mention that Process.clock_getres is a CRuby feature.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 13:25:05 +00:00
akr 23da5a785e * process.c (rb_clock_getres): New method.
(timetick2dblnum_reciprocal): New function.

* configure.in: Check clock_getres.

[ruby-core:56780] [Feature #8809] accepted at
DevelopersMeeting20130831Japan
https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20130831Japan



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 13:21:48 +00:00
akr 83a0709174 * bignum.c: Use GMP to accelerate big Bignum multiplication.
(bary_mul_gmp): New function.
  (bary_mul): Use bary_mul_gmp.
  (bigsq): Use different threshold with GMP.

* configure.in: Detect GMP.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 12:17:18 +00:00
charliesome d0d63cff8a * compile.c (NODE_MATCH3): pass CALL_INFO to opt_regexpmatch2
* insns.def (opt_regexpmatch2): use CALL_SIMPLE_METHOD to call =~ if
  the receiver is not a T_STRING [Bug #8847] [ruby-core:56916]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 06:07:21 +00:00
charliesome e1fd7fa03e * vm_insnhelper.h (CALL_SIMPLE_METHOD): change name of 'recv' argument
so that other variable names may be used when calling this macro

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 05:45:10 +00:00
akr 7a4feec795 * lib/securerandom.rb (random_bytes): Use Process.clock_gettime.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 05:07:56 +00:00
nobu 9eb141196b proc.c: preserve encodings
* proc.c (mnew_from_me, rb_mod_define_method, umethod_bind),
  (method_inspect): preserve class name encodings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 04:30:30 +00:00
nobu bdbda951d1 proc.c: local variable
* proc.c (umethod_bind): extract a local variable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 04:30:28 +00:00
nobu 378161fe68 dir.c: reduce string object
* dir.c (dir_each): get rid of allocate new string from UTF-8 string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-31 04:30:25 +00:00