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

456 Коммитов

Автор SHA1 Сообщение Дата
Jeremy Evans a5cff7cc5d Make Enumerable#each_cons return object if over size
This behavior changed in dfb47bbd17,
but only for normal exit, not for early exit.  Fix it for early
exit as well.

While here, fix example code in documentation so that it doesn't
indicate that the method returns nil.
2021-11-16 19:31:35 -08:00
Jeremy Evans e83c02a768 Delegate keywords from Enumerable#to_a to #each
Fixes [Bug #18289]
2021-11-05 06:22:14 -09:00
TSUYUSATO Kitsune dfb47bbd17
Fix `Enumerable#each_cons` and `Enumerable#each_slice` to return a receiver
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2021-10-25 12:13:44 +09:00
Nobuyoshi Nakada 4fb71575e2
[DOC] Fix code markup [ci skip]
Code markup in RDoc must not be concatenated with anothr word.
2021-10-25 01:04:51 +09:00
Burdette Lamar 7caeead36f
Accommondate earlier reviews of RDoc for Enumerable (#4943) 2021-10-06 19:06:17 -05:00
Burdette Lamar fb122042e0
Enhanced RDoc for Enumerable (#4941)
Treated:

    #sum
    #uniq
    #compact
2021-10-06 15:51:49 -05:00
Burdette Lamar abd473928e
Enhanced RDoc for Enumerable (#4938)
Treats:

    #slice_after
    #slice_when
    #chunk_while
2021-10-05 18:57:06 -05:00
Burdette Lamar 279b2b5b60
Enhanced RDoc for Enumerable#slice_before (#4932)
* Enhanced RDoc for Enumerable#slice_before

* Enhanced RDoc for Enumerable#slice_before
2021-10-05 10:52:51 -05:00
Burdette Lamar 8dc546b6b6
Enhanced RDoc for Enumerable#chunk (#4930) 2021-10-04 10:41:12 -05:00
S.H dc9112cf10
Using NIL_P macro instead of `== Qnil` 2021-10-03 22:34:45 +09:00
Burdette Lamar 8c10fd2583
Enhanced RDoc for Enumerable (#4922)
Treated:

    #drop
    #drop_while
    #cycle
2021-10-01 17:51:39 -05:00
Burdette Lamar 27d9935d51
Enhanced RDoc for Enumerable (#4918)
Treats:

    #zip
    #take
    #take_while
2021-10-01 13:44:28 -05:00
Burdette Lamar a55a5fc684
Enhanced RDoc for Enumerable (#4917)
Treats:

    #each_with_index
    #reverse_each
    #each_entry
    #each_slice
    #each_cons
    #each_with_object
2021-09-30 15:46:54 -05:00
Burdette Lamar 49edaa061f
Enhanced RDoc for Enumerable (#4910)
Treats:

    #min
    #max
    #minmax
    #min_by
    #max_by
    #minmax_by
    #include?
2021-09-29 18:04:29 -05:00
Burdette Lamar 0182bf615a
Enhanced RDoc for Enumerable (#4908)
Treated:

    #none?
    #one?
    #min
2021-09-28 18:20:58 -05:00
Burdette Lamar 1e10099e09
Enhanced RDoc for Enumerable (#4906)
Treats:

    #partition
    #group_by
    #tally
    #first
    #sort
    #sort_by
    #all?
    #any?
2021-09-28 11:38:35 -05:00
Burdette Lamar 046f1bf492
Enhanced RDoc for Enumerable#inject (#4876) 2021-09-20 18:19:21 -05:00
S-H-GAMELINKS 032534dbdf Using RB_BIGNUM_TYPE_P macro 2021-09-11 09:13:24 +09:00
Burdette Lamar 967b9743fa
Enhanced RDoc for Enumerable (#4808)
#to_a
    #to_h
    #inject
2021-09-10 17:21:21 -05:00
Nobuyoshi Nakada 03e7fc895e Extracted repeatedly defined IDs 2021-07-27 15:40:27 +09:00
Burdette Lamar d2d443efc1
Enhanced RDoc for Enumerable (#4479)
Methods treated:

    #count
    #find
    #find_index
    #select
    #filter_map
    #reject
    #map
    #flat_map
2021-05-10 14:00:36 -05:00
Burdette Lamar 43380401fa
Enhanced RDoc for Enumerable (#4473)
Enhanced RDoc for Enumerable: #grep and #grep_v.
2021-05-08 14:50:15 -05:00
Kenichi Kamiya aceb8c0b4b
Fix Enumerable#tally with some arguments pattern [Feature #17744]
* Add test cases for Enumerable#tally with hash argument

* Add ruby/spec for Enumerable#tally with hash argument

* Fix Enumerable#tally does not update given frozen hash

* Add test cases for Enumerable#tally with hash convertible arguments

* Fix SEGV when Enumerable#tally takes non Hash convertible

* FIx cosmetic damage enum.c
2021-03-27 12:55:46 +09:00
Nobuyoshi Nakada 9143d21b1b
Enumerable#tally with the resulting hash [Feature #17744] 2021-03-26 16:29:21 +09:00
Nobuyoshi Nakada cfadbf2fc4
Add write-barrier in tally 2021-03-20 23:53:57 +09:00
Marc-Andre Lafortune a85ed626f1 Fix Enumerable#inject with high negative fixnums [Bug #17731] 2021-03-19 00:21:41 -04:00
Nobuyoshi Nakada 382d3a4516
Improve Enumerable#tally performance
Iteration per second (i/s)

|       |compare-ruby|built-ruby|
|:------|-----------:|---------:|
|tally  |      52.814|   114.936|
|       |           -|     2.18x|
2021-03-16 23:06:41 +09:00
Burdette Lamar f2d0d4cb0a
RDoc: Enhanced introduction for Enumerable (#4004)
* RDoc: Enhanced introduction for Enumerable

* RDoc: Enhanced introduction for Enumerable

* RDoc: Enhanced introduction for Enumerable
2021-01-04 23:39:13 -05:00
Kazuhiro NISHIYAMA 3fee9e7021
Fix indent [ci skip]
Suggested by @hanachin at
https://github.com/rurema/doctree/pull/2425#discussion_r551327592
2021-01-05 00:19:48 +09:00
zverok b8d33df1d9 Add Enumerable#compact and Enumerator::Lazy#compact 2021-01-02 17:27:24 +09:00
Nobuyoshi Nakada b30d7fea56
Removed leading spaces [ci skip] 2020-12-16 12:14:30 +09:00
Marc-Andre Lafortune d5f0d338c7 Optimize `Enumerable#grep{_v}`
[Bug #17030]
2020-12-15 12:54:45 -05:00
Nobuyoshi Nakada b958e2add8 Removed canonicalization for mathn 2020-11-10 11:14:15 +09:00
S-H-GAMELINKS 8b3653b484 Fix links 2020-11-10 11:04:00 +09:00
Stefan Stüben 8c2e5bbf58 Don't redefine #rb_intern over and over again 2020-10-21 12:45:18 +09:00
Nobuyoshi Nakada 3ead2770a1
Respect visibility in non-array Enumerable#inject [Bug #13592] 2020-07-24 21:08:50 +09:00
卜部昌平 c47b805d8c add spaces [ci skip] 2020-06-29 11:05:41 +09:00
卜部昌平 d060ebf83c sum_iter: do not goto into a branch
I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea.  Better refactor.
2020-06-29 11:05:41 +09:00
Jeremy Evans b212c7c7d1 Update example code in Enumerator#chunk documentation [ci skip]
The code assumed that /usr/share/dict/words did not use mixed
case, and it does at least on a few operating systems.

From CryptoRAT (Luke Elliot)

Fixes [Bug #16957]
2020-06-12 09:11:43 -07:00
szTheory fa37a220f6 docs: fix typo 2020-06-07 10:32:33 +09:00
Masataka Pocke Kuwabara a3f498e44c
Fix max, min, minmax documentation (#3131)
They only need that all objects implement <=>,
but the documentation said it needs Comparable.
2020-05-26 23:48:46 -07:00
Nobuyoshi Nakada 5d430c1b34
Added more NORETURN declarations 2020-05-11 00:40:14 +09:00
卜部昌平 5e22f873ed decouple internal.h headers
Saves comitters' daily life by avoid #include-ing everything from
internal.h to make each file do so instead.  This would significantly
speed up incremental builds.

We take the following inclusion order in this changeset:

1.  "ruby/config.h", where _GNU_SOURCE is defined (must be the very
    first thing among everything).
2.  RUBY_EXTCONF_H if any.
3.  Standard C headers, sorted alphabetically.
4.  Other system headers, maybe guarded by #ifdef
5.  Everything else, sorted alphabetically.

Exceptions are those win32-related headers, which tend not be self-
containing (headers have inclusion order dependencies).
2019-12-26 20:45:12 +09:00
Marcus Stollsteimer bb05cdcd78 [DOC] Improve documentation for Enumerable#tally 2019-12-22 22:36:14 +01:00
Eli Sadoff 7e9b1609da Added documentation for integer range sums (#1593) 2019-12-11 11:25:54 +09:00
Corey Farwell 69aa927a40 Indicate `find_all` and `select` methods are aliases.
This matches the documentation for `Enumerable::inject` and `Enumerable::reduce` which are also aliases.
2019-12-11 11:15:12 +09:00
Koichi Sasada 36da0b3da1 check interrupts at each frame pop timing.
Asynchronous events such as signal trap, finalization timing,
thread switching and so on are managed by "interrupt_flag".
Ruby's threads check this flag periodically and if a thread
does not check this flag, above events doesn't happen.

This checking is CHECK_INTS() (related) macro and it is placed
at some places (laeve instruction and so on). However, at the end
of C methods, C blocks (IMEMO_IFUNC) etc there are no checking
and it can introduce uninterruptible thread.

To modify this situation, we decide to place CHECK_INTS() at
vm_pop_frame(). It increases interrupt checking points.
[Bug #16366]

This patch can introduce unexpected events...
2019-11-29 17:47:02 +09:00
Kazuki Tsujimoto ff41663403
Fix memory corruption in Enumerable#reverse_each [ruby-dev:50867] [Bug #16354] 2019-11-19 15:35:14 -06:00
Jeremy Evans ffd0820ab3 Deprecate taint/trust and related methods, and make the methods no-ops
This removes the related tests, and puts the related specs behind
version guards.  This affects all code in lib, including some
libraries that may want to support older versions of Ruby.
2019-11-18 01:00:25 +02: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