Commit graph

5121 commits

Author SHA1 Message Date
mrkn
bb250b002b * bignum.c (bigmul0): enable big_mul_toom3.
[ruby-core:48552] [Bug #7242]

* bignum.c (bigmul1_toom3): fix incorrect calculation.
  the patch is made by Heesob Park.
  [ruby-core:48552] [Bug #7242]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-08 22:38:03 +00:00
mrkn
22767ffd13 * bignum.c (bigmul0): disable big_mul_toom3_temporalily.
[ruby-core:48552] [Bug #7242]

* test/ruby/test_bignum.rb (test_mul_large_numbers):
  add a test for bigmul1_toom3 suggested in [Bug #7242].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-08 20:38:53 +00:00
naruse
6ce8c33936 * lib/net/protocol.rb (Net::InternetMessageIO#each_crlf_line):
treat \r as newline as mame pointed. [ruby-dev:46425] [Bug #7278]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-08 10:04:24 +00:00
xibbar
edb68694b8 * test/cgi/test_cgi_core.rb: Add test for CGI#header.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-08 06:56:17 +00:00
ayumin
0ab21f9572 * test/ruby/test_enumerator.rb: Add test to shed light upon the bug
which made by r37498. See http://bugs.ruby-lang.org/issues/7298

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-07 15:51:00 +00:00
naruse
a3286ba320 Suppress warning: Bignum out of Float range
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-07 07:03:53 +00:00
naruse
172d8f9b6e * numeric.c (ruby_float_step): fix r37514: it yielded with NaN
if the unit is infinity.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-07 07:03:50 +00:00
shugo
5836962f48 * eval.c (rb_mod_refine): set RMODULE_IS_REFINEMENT to a created
refinement module, and don't override method_added.

* vm_method.c (rb_method_entry_make): check redefinition of
  optimized methods when a method is added to a refinement module.
  [ruby-core:48970] [Bug #7290]

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-07 04:09:51 +00:00
luislavena
75c20a7902 Remove FIXME skip on Windows test
* test/ruby/test_file_exhaustive.rb: Remove FIXME skip on Windows
  specific test because the test in question was already fixed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 19:40:42 +00:00
marcandre
0814c4ac64 * enumerator.c: Support for lazy.cycle.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:16:58 +00:00
marcandre
7a31096255 * enumerator.c: Add support for lazy.drop.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:16:44 +00:00
marcandre
9aafa954aa * enumerator.c: Support for lazy.take.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:16:29 +00:00
marcandre
5dbbfc3b34 * enumerator.c: Support for lazy.{map|flat_map|...}.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:16:13 +00:00
marcandre
c8426ce840 * enumerator.c: Support for lazy.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:15:59 +00:00
marcandre
4437403426 * string.c: Support for String#{each_byte,each_char,each_codepoint}.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:15:45 +00:00
marcandre
3a4eb4dd39 * numeric.c (int_dotimes): Support for Integer#times.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:15:30 +00:00
marcandre
c2dc0dc1ce * numeric.c (int_upto, int_downto): Support for Integer#{down|up}to.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:15:15 +00:00
marcandre
faed90d814 * range.c: Support for range.step.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:15:00 +00:00
marcandre
28d8bf902d * range.c: Support for Range#size and Range#each.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:14:46 +00:00
marcandre
34be3a5d90 * numeric.c (num_step): Support for Numeric#step.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:14:31 +00:00
marcandre
ce0bf9f43d * struct.c: Support for Struct's enumerators #size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:14:02 +00:00
marcandre
17c0aff0d6 * hash.c: Support for enumerators created by ENV:
each, each_value, ...
  [Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:13:48 +00:00
marcandre
19ed71c8d0 * hash.c: Support for enumerators created by Hash:
delete_if, reject!, ...
  [Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:13:33 +00:00
marcandre
cef054d5b2 * enum.c (enum_cycle): Support for Enumerable#cycle.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:13:19 +00:00
marcandre
fe9386cdcb * enum.c (enum_each_cons): Support for Enumerable#each_cons.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:13:04 +00:00
marcandre
df8451e606 * enum.c (enum_each_slice): Support for Enumerable#each_slice.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:12:50 +00:00
marcandre
c82ad6d207 * enum.c: Support for enumerators created by Enumerable with forwarding:
find_all, reject, ...
  [Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:12:35 +00:00
marcandre
727024fbac * vm_eval.c (rb_f_loop): Support for loop.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:12:20 +00:00
marcandre
b8b01ab995 * array.c (rb_ary_cycle): Support for Array#cycle.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:12:05 +00:00
marcandre
ba59365db9 * array.c (rb_ary_repeated_combination): Support for repeated_combination.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:11:51 +00:00
marcandre
68c90c4a2d * array.c (rb_ary_repeated_permutation): Support for repeated_permutation.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:11:36 +00:00
marcandre
6bbf668d6e * array.c (rb_ary_combination): Support for Array#combination.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:11:21 +00:00
marcandre
1cb9f27c13 * array.c (rb_ary_permutation): Support for Array#permutation.size
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:11:06 +00:00
marcandre
55fb13eff9 * array.c: Support for Enumerator#size in trivial cases:
each, each_index, reverse_each, sort_by, collect,
  collect!, select, select!, keep_if, reject, reject!, delete_if
  [Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:10:50 +00:00
marcandre
57d596cdb4 * enumerator.c: Support #size for enumerators created from enumerators
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:10:35 +00:00
marcandre
acfd34a6a9 * enumerator.c (obj_to_enum): Have #to_enum accept a block
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:10:20 +00:00
marcandre
610eeffa46 * enumerator: New method #size; constructor accepts size
[Feature #6636]

* include/ruby/intern.h: RETURN_SIZED_ENUMERATOR for support of
  sized enumerators

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:10:06 +00:00
marcandre
c73b6bd7eb * enumerator.c (enumerator_initialize): Warn when using deprecated form
[Feature #6636]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:09:43 +00:00
tenderlove
ac7f5157ac * object.c (rb_mod_const_get): Fix constant missing exception class
and message to maintain backwards compatibility. Constant search
  should start at Object when constant starts with '::'

* test/ruby/test_module.rb: test for fixes

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 11:42:24 +00:00
usa
bba3ceafa5 * test/win32ole/test_win32ole.rb: follow other test files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 05:43:47 +00:00
usa
f2fc82fc2a * test/win32ole/test_win32ole.rb: now source encoding is UTF-8, so
binary strings in old scripts are dangerous.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 05:39:36 +00:00
naruse
ccd7a805cc * lib/net/protocol.rb (Net::InternetMessageIO#each_crlf_line):
don't use /n in universal regexp. [ruby-dev:46394] [Bug #7278]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 05:30:17 +00:00
naruse
a6ec258452 * string.c (rb_str_b): Add String#b, returning a copied string
whose encoding is ASCII-8BIT. [ruby-dev:45992] [Feature #6767]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 00:50:02 +00:00
naruse
58ef0f06c6 * ruby.c (load_file_internal): set default source encoding as
UTF-8 instead of US-ASCII. [ruby-core:46021] [Feature #6679]

* parse.y (parser_initialize): set default parser encoding as
  UTF-8 instead of US-ASCII.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 00:49:57 +00:00
shirosaki
c9fc6b08ae * test/ruby/test_require.rb
(TestRequire#test_require_to_path_redefined_in_load_path,
   TestRequire#test_require_to_str_redefined_in_load_path):
  Suppress method redefined warning when test-all with RUBYOPT=-w.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-05 20:55:30 +00:00
shirosaki
d33b9a8a72 Fix compatibility of cached expanded load path
* file.c (rb_get_path_check_to_string): extract from
  rb_get_path_check(). We change the spec not to call to_path of
  String object.

* file.c (rb_get_path_check_convert): extract from rb_get_path_check().

* file.c (rb_get_path_check): follow the above change.

* file.c (rb_file_expand_path_fast): remove check_expand_path_args().
  Instead we call it in load.c.

* file.c (rb_find_file_ext_safe): use rb_get_expanded_load_path() to
  reduce expand cost.

* file.c (rb_find_file_safe): ditto.

* internal.h (rb_get_expanded_load_path): add a declaration.

* internal.h (rb_get_path_check_to_string, rb_get_path_check_convert):
  add declarations.

* load.c (rb_construct_expanded_load_path): fix for compatibility.
  Same checks in rb_get_path_check() are added. We don't replace
  $LOAD_PATH and ensure that String object of $LOAD_PATH are frozen.
  We don't freeze non String object and expand it every times. We add
  arguments for expanding load path partially and checking if load path
  have relative paths or non String objects.

* load.c (load_path_getcwd): get current working directory for checking
  if it's changed when getting load path.

* load.c (rb_get_expanded_load_path): fix for rebuilding cache properly.
  We check if current working directory is changed and rebuild expanded
  load path cache. We expand paths which start with ~ (User HOME) and
  non String objects every times for compatibility. We make this
  accessible from other source files.

* load.c (rb_feature_provided): call rb_get_path() since we changed
  rb_file_expand_path_fast() not to call it.

* load.c (Init_load): initialize vm->load_path_check_cache.

* vm.c (rb_vm_mark): mark vm->load_path_check_cache for GC.

* vm_core.h (rb_vm_struct): add vm->load_path_check_cache to store data
  to check load path cache validity.

* test/ruby/test_require.rb (TestRequire): add tests for require
  compatibility related to cached expanded load path.
  [ruby-core:47970] [Bug #7158]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-05 15:27:08 +00:00
naruse
0ba4526d06 * lib/cgi/core.rb: check if Tempfile is defined before use it.
* lib/cgi/core.rb: remove tempfiles only if tempfiles exist

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-05 02:34:17 +00:00
xibbar
1362d81a22 Mon Nov 5 09:55:05 2012 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
* lib/cgi/core.rb: remove tempfile more early.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-05 00:57:45 +00:00
xibbar
6837f3dc54 Sun Nov 4 20:41:28 2012 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
* lib/cgi.rb, lib/cgi/*/rb: rename CGI#header to
    CGI#http_header,
    add  and update HTML5 tag generater.  [Bug #7110]
    Patch provided by Marcus Stollsteimer, thank you !

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-04 11:48:05 +00:00
glass
a28a060db4 * array.c (recursive_equal): fix to return true when self and other
are resized to same size and the current index become out of
  range.

* test/ruby/test_array.rb: add a test for the above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-04 02:44:58 +00:00