mrkn
aeb0be6ad5
* enum.c (ary_inject_op): put subtract operation out of if-clause.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-23 12:50:24 +00:00
mrkn
e324d29e2b
* enum.c (ary_inject_op): Use Kahan's compensated summation algorithm
...
for summing up float values.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-23 12:41:00 +00:00
akr
087a393fa5
* enum.c (ary_inject_op): Implement the specialized code for sum of
...
float numbers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 15:27:05 +00:00
mame
b3a65c883a
* array.c, enum.c: make rdoc format consistent.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:52:47 +00:00
mame
4ca0483a28
* array.c (rb_ary_max, rb_ary_min): implement Array#max and min with
...
arguments. replace super call with rb_nmin_run.
* enum.c (nmin_run): exported (as rb_nmin_run).
* internal.h: added a prototype for rb_nmin_run.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:37:20 +00:00
mame
68a6f2e9e0
* array.c (rb_ary_max, rb_ary_min): Array#max and Array#min added.
...
[Feature #12172 ]
* internal.h (OPTIMIZED_CMP): moved from enum.c so that array.c can
use it.
* test/ruby/test_array.rb (test_max, test_min): tests for Array#max
and Array#min.
* test/ruby/test_enum.rb (test_max, test_min): revised a bit to test
Enumerable#max and #min explicitly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:14:21 +00:00
mame
a22455199b
* internal.c: struct cmp_opt_data added for refactoring out a data
...
structure for CMP_OPTIMIZABLE
* array.c (struct ary_sort_data): use struct cmp_opt_data.
* enum.c (struct min_t, max_t, min_max_t): use struct cmp_opt_data.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:03:48 +00:00
akr
85473c481e
* enum.c (ary_inject_op): Extracted from enum_inject.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 11:55:58 +00:00
akr
fa153d7435
* enum.c (enum_inject): Implement the specialized code for sum of
...
integers including Bignums.
* internal.h (rb_fix_plus): Declared to be usable from enum_inject.
* numeric.c (rb_fix_plus): Defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 09:50:19 +00:00
akr
32674b167b
* enum.c (enum_inject): Consider redefinition of Fixnum#+.
...
[ruby-dev:49510] [Bug#12178] Reported by usa.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 12:53:06 +00:00
akr
43e20c6a9a
* enum.c (enum_inject): Implement the specialied code for :+ operator
...
for Fixnums.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 11:42:23 +00:00
akr
95d2ec93bc
* enum.c (enum_inject): Implement the specialized code for self is an
...
array and a symbol operator is given.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 11:27:34 +00:00
nobu
93eb95f0b9
Rename parameter name
...
* enum.c (enum_take_while, enum_drop_while): rename block
parameter to obj, since they are generic objects. [Fix GH-1226]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 07:18:10 +00:00
shugo
3dcd4b2a98
* enum.c (enum_min, enum_max): do the same optimization as r53454.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-07 15:07:25 +00:00
shugo
9f44b77a18
* enum.c (enum_minmax): optimize object comparison in
...
Enumerable#minmax.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-07 13:06:23 +00:00
hsbt
52cd994814
* enum.c: fix a typo in documentation.
...
[ci skip][fix GH-1140] Patch by @jutaz
* io.c: ditto.
* iseq.c: ditto.
* numeric.c: ditto.
* process.c: ditto.
* string.c: ditto.
* vm_trace.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 02:52:14 +00:00
akr
8595d3099a
add a comment.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-04 14:42:52 +00:00
akr
ddb3fbc63d
* enum.c (nmin_filter): Fix limit value.
...
patch by Helder Pereira.
[Bug #11471 ] [ruby-core:70477]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-04 14:41:55 +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
hsbt
54a8318ecd
* enum.c: added doc for Enumerable#zip
...
[fix GH-985] Patch by @yui-knk
* test/ruby/test_enum.rb: added tests for Enumerable#zip
[fix GH-985] Patch @yui-knk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-11 01:48:20 +00:00
hsbt
aebf152ea4
* Add test case for empty array and first method with args.
...
Patch by @yui-knk [fix GH-955]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-04 10:43:38 +00:00
normal
df11c9c5e2
enum.c: remove volatile, use RB_GC_GUARD
...
volatile appears unnecessary in most cases as the VALUEs are used as
arguments of uninlined functions. Even worse, volatile can be
insufficient in places where RB_GC_GUARD is necessary.
* enum.c (zip_ary): remove volatile, use RB_GC_GUARD
(zip_i): ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-04 05:49:35 +00:00
hsbt
8430f93b8f
* Add test for Enumerable#none? [fix GH-950] Patch by @yui-knk
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-01 01:55:03 +00:00
normal
9f1c009497
enum.c (enum_minmax): simplify return value creation
...
No need to call three functions on success when one will do.
This results in less LoC and smaller object code, too:
text data bss dec hex filename
33860 0 296 34156 856c gcc/enum.o-before
33852 0 296 34148 8564 gcc/enum.o
* enum.c (enum_minmax): simplify return value creation
* test/ruby/test_enum.rb: test behavior on empty
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-25 23:06:48 +00:00
akr
11aa7c9604
* enum.c (enum_chunk_while): New method Enumerable#chunk_while.
...
[ruby-core:67738] [Feature #10769 ] proposed by Tsuyoshi Sawada.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-14 08:54:19 +00:00
gogotanaka
8305152dc0
enum.c: [DOC] Fix typo [ci skip][Fix GH-904]
...
Patch provided by @jwworth
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-01 05:38:59 +00:00
hsbt
cff3676c94
* enum.c: fix a sample code. Patch by @eagletmt
...
[fix GH-901][ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-16 12:38:11 +00:00
sorah
71588d17e5
* enum.c (enum_grep_v, grep_i, grep_iter_i, Init_enum):
...
Implement Enumerable#grep_v.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-14 10:42:42 +00:00
glass
d77f4934f8
* enum.c (enum_to_a): revert r50457.
...
it requires recursion check.
then, it doesn't make performance improvement.
[Bug #11130 ] [Feature #9118 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-13 08:18:58 +00:00
glass
95f54fb019
* enum.c (enum_to_a): fix incompatibility introduced in r50457.
...
[Bug #11130 ]
* test/ruby/test_enum.rb: test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-12 13:24:53 +00:00
glass
d908180164
* enum.c (enum_to_a): Use size to set array capa when possible.
...
the patch is from HonoreDB <aweiner at mdsol.com>.
[fix GH-444]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-10 02:25:33 +00:00
glass
2ce35ac863
Revert "temp".
...
It's my fault.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-10 02:19:55 +00:00
glass
615a868b4b
Revert "capa"
...
It's my fault.
This reverts commit 5e17fc6bc7cb8b0e58b05fa9ebf2c47ec73ecbb3.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-10 02:12:16 +00:00
glass
7f49c1dd63
Revert "temp"
...
This reverts commit 3482910fc4ca8515b38f56bdd9fa0db7002413ad.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-10 02:10:16 +00:00
glass
e9075024dc
capa
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-10 02:06:14 +00:00
glass
1bb3818bea
temp
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-10 02:06:06 +00:00
akr
774f682952
* enum.c: Enumerable#chunk and Enumerable#slice_before no longer takes
...
the initial_state argument. [Feature #10958 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-06 13:53:24 +00:00
ko1
9c64155f30
* enum.c (enum_sort_by): add WBs.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-18 19:47:36 +00:00
gogotanaka
ffe896c3cb
* enum.c: [DOC] Fixes Enumerable#member? documentation
...
[fix GH-756][ci skip] Patch by @shamanime
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-14 09:15:32 +00:00
ko1
08f3cfb585
* internal.h: use T_IMEMO to represent `struct MEMO' value.
...
memo->v1 and memo->v2 is WB protected values.
So use MEMO_V1/V2_SET() macros to set these values.
memo->u3 is ambiguous (sometimes a VALUE, sometimes an integer
value), so use gc_mark_maybe() in gc.c to mark it.
Rename NEW_MEMO() to MEMO_NEW().
Move MEMO_FOR and NEW_MEMO_FOF macros from node.h.
Export a rb_imemo_new() function for ext/ripper.
* node.h: remove NODE_MEMO.
* enum.c: catch up these change.
* enumerator.c: ditto.
* load.c: ditto.
* ext/objspace/objspace.c (count_nodes): ditto.
* gc.c (gc_mark_children): mark imemo_memo type.
* parse.y (new_args_gen): use T_IMEMO.
(I'm not sure it is working correctly...)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-11 23:13:01 +00:00
ko1
97e21517a3
* internal.h: define struct MEMO.
...
* enum.c: use MEMO.
* enumerator.c: ditto.
* load.c: ditto.
* node.h: return (struct MEMO *) pointer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-11 00:20:45 +00:00
ktsj
f436de8f31
* enum.c (enum_slice_when): [DOC] fix typo.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-10 14:18:20 +00:00
hsbt
5f4f28d669
* enum.c: Fix typo in slice_after's exception message.
...
[fix GH-842][ci skip] Patch by @jsyeo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-04 01:17:02 +00:00
nobu
fe6cf485e6
enum.c: Fixnum only
...
* enum.c (limit_by_enum_size, enum_size_over_p): check only
against Fixnum size.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-28 09:09:18 +00:00
nobu
98273af3f7
enum.c: limit size
...
* enum.c (enum_each_slice, enum_each_cons): limit elements size by
the enumerator size. suggested by Hans Mackowiak <hanmac AT
gmx.de> at [ruby-core:68335]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-28 08:18:42 +00:00
nobu
16294913f7
use rb_funcallv
...
* use rb_funcallv() for no arguments call instead of variadic
rb_funcall().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-16 04:08:52 +00:00
akr
80870e14a7
[DOC]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-12 03:15:56 +00:00
akr
2b9191e557
* internal.h: Gather declarations in non-header files.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-18 15:13:05 +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
nobu
723cee93c4
enum.c: nil if no iteration
...
* enum.c (enum_inject): return nil if no iteration, instead of
Qundef.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 06:27:30 +00:00