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

448 Коммитов

Автор SHA1 Сообщение Дата
Kazuhiro NISHIYAMA 00a941ac4b
Update stdlib versions [ci skip] 2021-12-05 20:34:25 +09:00
Kazuhiro NISHIYAMA 20dfc7621c
Sort URLs by issue numbers [ci skip] 2021-12-05 20:31:58 +09:00
Nobuyoshi Nakada 19f037e452
More indentation in NEWS.md [ci skip]
The current Markdown implementation of RDoc requires list contents
to be indented 4 columns except for the first paragraph.
Maybe fixed as other implementations in the future.
2021-12-05 19:23:42 +09:00
Junichi Ito e818193784 Fix wrong indentation in NEWS.md [ci skip] 2021-12-05 19:07:06 +09:00
John Hawthorn 3be067234f
NEWS for [GH-#5146] [ci skip] (#5210) 2021-12-03 12:58:09 -08:00
Jean Boussier c0c2b31a35 Add Class#subclasses
Implements [Feature #18273]

Returns an array containing the receiver's direct subclasses without
singleton classes.
2021-11-23 10:50:44 +01:00
Jeremy Evans 4adb012926 Anonymous block forwarding allows a method to forward a passed
block to another method without having to provide a name for the
block parameter.

Implements [Feature #11256]

Co-authored-by: Yusuke Endoh mame@ruby-lang.org
Co-authored-by: Nobuyoshi Nakada nobu@ruby-lang.org
2021-11-18 14:17:57 -08:00
Jeremy Evans ab737b1919 Update documentation for Module#{private,public,protected,module_function}
Also, update NEWS for this change and the Kernel#load change.
2021-11-18 10:51:14 -08:00
Samuel Williams 4b89034218 IO::Buffer for scheduler interface. 2021-11-10 19:21:05 +13:00
Kazuhiro NISHIYAMA 56b90cf944
Fix a typo and add `IO.` [ci skip] 2021-11-10 14:09:08 +09:00
Kazuhiro NISHIYAMA 1d609707b4
Fix a link [ci skip] 2021-11-09 11:30:03 +09:00
Peter Zhu e014c9d607 [ci skip] Update NEWS.md for [Feature #18290] 2021-11-08 16:41:03 -05:00
Yusuke Endoh aa5bccfc65 NEWS.md: Mention Process._fork [[Feature #17795]] 2021-11-09 03:38:42 +09:00
Kazuhiro NISHIYAMA ffd8592ebc
Update stdlib version 2021-10-29 10:58:56 +09:00
osyo-manga d51ba1e1be
Add changes Enumerable#each_cons and each_slice in NEWS [ci skip] 2021-10-28 18:21:27 +09:00
Kazuhiro NISHIYAMA 9fc2f5375d
Sort URLs by issue numbers [ci skip] 2021-10-27 16:55:29 +09:00
Kazuhiro NISHIYAMA 219f54152a
Update stdlib versions 2021-10-27 16:22:04 +09:00
Jeremy Evans 717ab0bb2e
Add Class#descendants
Doesn't include receiver or singleton classes.

Implements [Feature #14394]

Co-authored-by: fatkodima <fatkodima123@gmail.com>
Co-authored-by: Benoit Daloze <eregontp@gmail.com>
2021-10-26 12:35:21 -07:00
Kazuhiro NISHIYAMA aa09c8dae0
Fix links [ci skip] 2021-10-25 08:38:44 +09:00
Sutou Kouhei 53dcb3541b NEWS: StringScanner 3.0.1 is released 2021-10-24 05:57:48 +09:00
Sutou Kouhei 76e277a081 NEWS: CSV 3.2.1 is released 2021-10-24 05:57:33 +09:00
Sutou Kouhei 7246c5b811 NEWS: Fiddle 1.1.0 is released 2021-10-23 06:03:57 +09:00
Koichi Sasada 199ba9c377 update NEWS about last commits. 2021-10-23 01:38:05 +09:00
Maxime Chevalier-Boisvert 32a8cb965c
Add link to YJIT blog post to NEWS.md
Requested by @nurse
2021-10-21 12:49:58 -04:00
Hiroshi SHIBATA d74f1e1623
Added version of readline-ext 2021-10-21 21:19:16 +09:00
Hiroshi SHIBATA 03fd60937d
Update the merged versions of default gems. 2021-10-21 21:07:23 +09:00
Shugo Maeda 6606597109
Deprecate include/prepend in refinements and add Refinement#import_methods instead
Refinement#import_methods imports methods from modules.
Unlike Module#include, it copies methods and adds them into the refinement,
so the refinement is activated in the imported methods.

[Bug #17429] [ruby-core:101639]
2021-10-21 16:31:54 +09:00
Maxime Chevalier-Boisvert 8684946b21 Add bit about YJIT to NEWS.md 2021-10-20 19:15:45 -04:00
Hiroshi SHIBATA 5322745b29
Added entries about default gems and bundled gems 2021-10-20 20:13:09 +09:00
Yusuke Endoh 7c01cf4908 NEWS.md: Add error_highlight section 2021-10-20 11:05:05 +09:00
Koichi Sasada 07b87f7979 add NEWS entries about debug.gem 2021-10-20 10:18:54 +09:00
卜部昌平 e2976fd1f6 add NEWS entry for https://github.com/ruby/ruby/pull/4815 2021-09-22 17:59:28 +09:00
Nobuyoshi Nakada aa3d8388c0
NEWS for [Feature #18172] [ci skip] 2021-09-16 19:55:31 +09:00
Shugo Maeda 5f1385bec0
Add a newline [ci skip] 2021-09-16 17:31:39 +09:00
Shugo Maeda 81fd91ab1b
Add details of Hash value ommission [ci skip] 2021-09-16 17:29:48 +09:00
Shugo Maeda 297f9b8d4c
Add documentation and tests for keyword argument value omission
[Feature #14579]
2021-09-11 20:23:36 +09:00
Nobuyoshi Nakada d05ef38865
[DOC] NEWS for [Feature #14579] [ci skip] 2021-09-11 19:20:16 +09:00
Nobuyoshi Nakada 8e832ea031
[DOC] Fixed indents in NEWS.md [ci skip] 2021-09-11 19:19:39 +09:00
Kazuhiro NISHIYAMA d7da5ca5e1
Fix links [ci skip] 2021-08-22 22:27:29 +09:00
Martin Dürst 21fd83a823 Mention update to Unicode Version 13.0.0 and Emoji Version 13.1
Mention the update to Unicode Version 13.0.0 and Unicode Emoji
Version 13.1 in NEWS.md. This completes issue #17750. [ci skip]
2021-08-17 17:08:59 +09:00
Takashi Kokubun ee362302c0
Revert "Pause an MJIT worker when JIT is cancelled"
This reverts commit b64f81c817.

It seems to cause a problem in --jit / --jit-wait CIs. Reverting for now.
2021-08-13 09:13:09 -07:00
Takashi Kokubun ac4d53bd46
Don't cancel JIT-ed code on TracePoint :class
events get enabled
2021-08-12 23:26:44 -07:00
Takashi Kokubun b64f81c817
Pause an MJIT worker when JIT is cancelled 2021-08-12 23:15:34 -07:00
Takashi Kokubun b3f8c491ef
Print JIT cancel when all JIT-ed code is cancelled 2021-08-12 23:11:38 -07:00
Kazuhiro NISHIYAMA a97837de1a
Fix a link [ci skip] 2021-08-05 17:25:17 +09:00
Nobuyoshi Nakada 8cc18703cf
[NEWS] added [Feature #17798] [ci skip] 2021-07-23 12:43:51 +09:00
Nobuyoshi Nakada 5385731374
[NEWS] adjusted formats [ci skip] 2021-07-23 12:41:01 +09:00
Kazuki Tsujimoto eed5e8f796
One-line pattern matching is no longer experimental
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210715Japan.md#feature-17724-make-the-pin-operator-support-instanceclassglobal-variables-jeremyevans0
2021-07-17 11:13:52 +09:00
Nobuyoshi Nakada 301d194ee3 Add Integer.try_convert [Feature #15211] 2021-07-16 17:49:53 +09:00
Nobuyoshi Nakada 25689024cf
Added code fence to the example in [Feature #17724] [ci skip] 2021-07-16 11:26:30 +09:00
Jeremy Evans fa87f72e1e Add pattern matching pin support for instance/class/global variables
Pin matching for local variables and constants is already supported,
and it is fairly simple to add support for these variable types.

Note that pin matching for method calls is still not supported
without wrapping in parentheses (pin expressions).  I think that's
for the best as method calls are far more complex (arguments/blocks).

Implements [Feature #17724]
2021-07-15 09:56:02 -07:00
NARUSE, Yui 835c63cd88 Add tests and NEWS [Feature #18008] 2021-07-15 18:21:49 +09:00
Patrik Ragnarsson 8f62f12c35 Fix typo in flag in NEWS.md 2021-07-15 16:16:51 +09:00
Samuel Williams 42130a64f0
Replace copy coroutine with pthread implementation. 2021-07-01 11:23:03 +12:00
Kazuhiro NISHIYAMA 87e52ee38b
Fix a link [ci skip] 2021-06-23 09:23:54 +09:00
Samuel Williams eef3c08edc
Fix NEWS formatting. 2021-06-22 23:18:40 +12:00
Samuel Williams e01fa2f6ff Add fiber scheduler news. 2021-06-22 23:16:29 +12:00
Takashi Kokubun 31b9ce365d
Note about 07c05b6fe9 2021-06-02 22:26:27 -07:00
Takashi Kokubun 028f1887c2
Change the default --jit-max-cache to 10000
This is useful for large applications like Rails.
https://k0kubun.medium.com/ruby-3-jit-can-make-rails-faster-756310f235a
2021-05-31 22:01:04 -07:00
NARUSE, Yui 9ddc767434 Add NEWS about 46655156dc
* Add Thread#native_thread_id [Feature #17853]
2021-05-26 15:18:16 +09:00
Yusuke Endoh 167cff6a5d NEWS.md: mention lib/objspace/trace.rb [Feature #17762] 2021-05-17 08:50:23 +09:00
Jeremy Evans 50c54d40a8
Evaluate multiple assignment left hand side before right hand side
In regular assignment, Ruby evaluates the left hand side before
the right hand side.  For example:

```ruby
foo[0] = bar
```

Calls `foo`, then `bar`, then `[]=` on the result of `foo`.

Previously, multiple assignment didn't work this way.  If you did:

```ruby
abc.def, foo[0] = bar, baz
```

Ruby would previously call `bar`, then `baz`, then `abc`, then
`def=` on the result of `abc`, then `foo`, then `[]=` on the
result of `foo`.

This change makes multiple assignment similar to single assignment,
changing the evaluation order of the above multiple assignment code
to calling `abc`, then `foo`, then `bar`, then `baz`, then `def=` on
the result of `abc`, then `[]=` on the result of `foo`.

Implementing this is challenging with the stack-based virtual machine.
We need to keep track of all of the left hand side attribute setter
receivers and setter arguments, and then keep track of the stack level
while handling the assignment processing, so we can issue the
appropriate topn instructions to get the receiver.  Here's an example
of how the multiple assignment is executed, showing the stack and
instructions:

```
self                                      # putself
abc                                       # send
abc, self                                 # putself
abc, foo                                  # send
abc, foo, 0                               # putobject 0
abc, foo, 0, [bar, baz]                   # evaluate RHS
abc, foo, 0, [bar, baz], baz, bar         # expandarray
abc, foo, 0, [bar, baz], baz, bar, abc    # topn 5
abc, foo, 0, [bar, baz], baz, abc, bar    # swap
abc, foo, 0, [bar, baz], baz, def=        # send
abc, foo, 0, [bar, baz], baz              # pop
abc, foo, 0, [bar, baz], baz, foo         # topn 3
abc, foo, 0, [bar, baz], baz, foo, 0      # topn 3
abc, foo, 0, [bar, baz], baz, foo, 0, baz # topn 2
abc, foo, 0, [bar, baz], baz, []=         # send
abc, foo, 0, [bar, baz], baz              # pop
abc, foo, 0, [bar, baz]                   # pop
[bar, baz], foo, 0, [bar, baz]            # setn 3
[bar, baz], foo, 0                        # pop
[bar, baz], foo                           # pop
[bar, baz]                                # pop
```

As multiple assignment must deal with splats, post args, and any level
of nesting, it gets quite a bit more complex than this in non-trivial
cases. To handle this, struct masgn_state is added to keep
track of the overall state of the mass assignment, which stores a linked
list of struct masgn_attrasgn, one for each assigned attribute.

This adds a new optimization that replaces a topn 1/pop instruction
combination with a single swap instruction for multiple assignment
to non-aref attributes.

This new approach isn't compatible with one of the optimizations
previously used, in the case where the multiple assignment return value
was not needed, there was no lhs splat, and one of the left hand side
used an attribute setter.  This removes that optimization. Removing
the optimization allowed for removing the POP_ELEMENT and adjust_stack
functions.

This adds a benchmark to measure how much slower multiple
assignment is with the correct evaluation order.

This benchmark shows:

* 4-9% decrease for attribute sets
* 14-23% decrease for array member sets
* Basically same speed for local variable sets

Importantly, it shows no significant difference between the popped
(where return value of the multiple assignment is not needed) and
!popped (where return value of the multiple assignment is needed)
cases for attribute and array member sets.  This indicates the
previous optimization, which was dropped in the evaluation
order fix and only affected the popped case, is not important to
performance.

Fixes [Bug #4443]
2021-04-21 10:49:19 -07:00
Nobuyoshi Nakada b6bb4623eb
NEWS for [Feature #15198] [ci skip] 2021-04-16 16:12:10 +09:00
Nobuyoshi Nakada 9143d21b1b
Enumerable#tally with the resulting hash [Feature #17744] 2021-03-26 16:29:21 +09:00
Kazuki Tsujimoto 21863470d9
Pattern matching pin operator against expression [Feature #17411]
This commit is based on the patch by @nobu.
2021-03-21 15:14:31 +09:00
Kazuhiro NISHIYAMA 31b19ba84e
Fix a link [ci skip] 2021-03-16 14:07:27 +09:00
Nobuyoshi Nakada 18a3bf5a0e
NEWS of [Feature #12194] [ci skip] 2021-03-15 22:36:05 +09:00
Kazuhiro NISHIYAMA 4dfc5496b7
Add NEWS entry for [Feature #16043] 2021-02-16 18:13:27 +09:00
Nobuyoshi Nakada 37b90bcdc1 [DOC] NEWS for Thread::Backtrace.limit [Feature #17479] 2021-02-15 18:29:35 +09:00
Chris Seaton c3b2bb0969
The Queue constructor should take an initial set of objects
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2021-02-11 19:14:18 +09:00
Takashi Kokubun f766ba54a9
Update NEWS.md about deprecation 2021-01-20 22:02:52 -08:00
Takashi Kokubun 8d099aa040
Warn Struct#initialize with only keyword args (#4070)
* Warn Struct#initialize with only keyword args

A part of [Feature #16806]

* Do not warn if `keyword_init: false`

is explicitly specified

* Add a NEWS entry

* s/in/from/

* Make sure all fields are initialized
2021-01-17 01:35:54 -08:00
Jeremy Evans e09094546a Make Module#prepend affect ancestor chain even if argument already included in receiver
Previously, if a class included a module and then prepended the
same module, the prepend had no effect.  This changes the behavior
so that the prepend has an effect unless the module is already
prepended the receiver.

While here, rename the origin_seen variable in include_modules_at,
since it is misleading. The variable tracks whether c has been seen,
not whether the origin of klass has been.

Fixes [Bug #17423]
2021-01-14 20:43:30 -08:00
Takashi Kokubun e1fee7f949
Rename RubyVM::MJIT to RubyVM::JIT
because the name "MJIT" is an internal code name, it's inconsistent with
--jit while they are related to each other, and I want to discourage future
JIT implementation-specific (e.g. MJIT-specific) APIs by this rename.

[Feature #17490]
2021-01-13 22:46:51 -08:00
Marc-Andre Lafortune fdf3539967 NEWS: We have links now, and there is no changelog anymore [doc] 2021-01-02 21:54:00 -05:00
Nobuyoshi Nakada 68ea7720b3 NEWS: [Feature #17312] [ci skip] 2021-01-02 17:27:24 +09:00
Kazuhiro NISHIYAMA 7e3d710a22
Copy NEWS.md to doc/NEWS-3.0.0.md and update for 3.1.0 2020-12-25 17:31:48 +09:00
Kazuhiro NISHIYAMA 1f18f5c61e
Sort URLs by issue numbers and remove duplicated [ci skip] 2020-12-25 11:32:19 +09:00
Hiroshi SHIBATA 1ba77ff8aa
Update stdlib section for Ruby 3.0 2020-12-25 10:22:45 +09:00
Takashi Kokubun e44a8bd791
Let's be more accurate [ci skip] 2020-12-23 23:06:40 -08:00
Takashi Kokubun 176b75747c
Add NEWS entries about JIT in Jul ~ Dec
* Instance variables
  * Merge ivar guards on JIT a69dd699ee e4f7eee009
  * Prefer RB_OBJ_FROZEN_RAW 5611066e03
  * Skip checking ROBJECT_EMBED 81a8d1cf09
* Method inlining
  * Mark some Integer methods as inline 0703e01471
  * Allow inlining Integer#-@ and #~ dbb4f19969
  * Inline builtin struct aref 167d139487
  * Make Kernel#then, #yield_self, #frozen? builtin 24fa37d87a
  * (For future) Rewrite Kernel#tap with Ruby f3a0d7a203
* Other optimizations
  * Inline constant references 53babf35ef
  * Lazily move PC with RUBY_VM_CHECK_INTS 5d74894f2b
  * Cache access to reg_cfp->self on JIT d409837729
* JIT compaction
  * Shrink the blocking region for compile_compact_jit_code ed8e552d4d
  * Stop leaving .c files for JIT compaction in /tmp fa1250a506
* GC of JIT-ed code
  * Run unload_units in the JIT worker thread 16dab6b692
  * Avoid unloading units which have enough total_calls d80226e7bd
  * Throttle unload_units 122cd35939
  * Throttle JIT compaction 096f54428d
* Compilation speed
  * Eliminate IVC sync between JIT and Ruby threads 0960f56a1d
  * Lazily move units from active_units to stale_units 5d8f227d0e

Please see 200c5f4075 for other improvements in Jan ~ Jun.
2020-12-23 23:02:18 -08:00
Yusuke Endoh 8c510e4095 NEWS.md: grammatical improvement 2020-12-24 14:58:30 +09:00
Marc-Andre Lafortune 8feb40f49a Document shareable_constant_value and other magic constants [doc] 2020-12-23 11:50:33 -05:00
Yusuke Endoh 3a81daaf8d Module#public_class_method also accepts a symbol array as an argument
I'm unsure if this is intentional, but add a document anyway.
[Feature #17314]
2020-12-24 00:15:29 +09:00
Marcus Stollsteimer 74a3569b59 NEWS: fix typos and grammar 2020-12-22 23:20:14 +01:00
Sutou Kouhei 32849dc1bb fiddle: Update to 1.0.5 2020-12-23 05:49:52 +09:00
Marc-Andre Lafortune 228fa3ac6e NEWS: Mention deprecation warnings not being shown by default 2020-12-22 13:48:13 -05:00
Marc-Andre Lafortune fd745cc92c NEWS: group keyword arguments related items together 2020-12-22 13:48:13 -05:00
Marc-Andre Lafortune 5a6d27fe22 NEWS: combine $SAFE and $KCODE, move lower 2020-12-22 13:48:13 -05:00
Marc-Andre Lafortune 1bd7427f29 NEWS: move error handling at end of section 2020-12-22 13:48:13 -05:00
Samuel Williams 93a56a5e98 Update fiber scheduler documentation. 2020-12-22 23:51:02 +13:00
Yusuke Endoh 03f2b09320 NEWS.md: fix the format 2020-12-22 14:05:55 +09:00
Koichi Sasada 2e1cdf36ba add a NEWS entry about ractor C API 2020-12-22 12:46:15 +09:00
Akinori MUSHA be9b5553a3 Add entries for set 1.0.0 2020-12-22 12:26:45 +09:00
Yusuke Endoh 4a18cc7f60 NEWS.md: mention the behavior change of Binding#eval
[Bug #17419]
2020-12-22 09:04:54 +09:00
Kenta Murata 8c0c61728f
NEWS: JSON is Ractor compatible [ci skip] 2020-12-21 22:16:02 +09:00
Victor Shepelev 5253b9579a
Document usage of ArithmeticSequence in Array#slice, and add to NEWS (#3952) 2020-12-21 09:32:30 +09:00
Yusuke Endoh 3621380046 NEWS.md: remove nonsense caveat
3.0 will be released in a few days (hopefully), so remove a caution: "it
may be reverted until 3.0 release."
2020-12-20 04:14:05 +09:00
Kenta Murata 50f1e7eb23
NEWS: Add an entry of Pathname [ci skip] 2020-12-20 00:42:21 +09:00
Kenta Murata d62414b48f
NEWS: Update BigDecimal version [ci skip] 2020-12-19 22:15:48 +09:00
Radosław Bułat eb8ea336d3 Feature 17314: allow to pass array to public, protected and private methods 2020-12-19 18:19:49 +09:00
Kenta Murata e64af7d5ad
NEWS: Add an entry of Digest 3.0.0 [ci skip] 2020-12-19 15:08:54 +09:00
Radosław Bułat 51bcd50915 Feature 17314: alias_method returns symbol 2020-12-19 12:23:58 +09:00
Radosław Bułat d40d95296d Feature 17314: update docs and NEWS about attr* methods returning array of symbols 2020-12-19 09:22:26 +09:00
Kenta Murata f6641d7376
NEWS: Add an entry of StringScanner 3.0.0 [ci skip] 2020-12-19 03:06:16 +09:00
Kenta Murata b3b7f1e580
NEWS: Add an entry of StringIO 3.0.0 [ci skip] 2020-12-19 03:05:00 +09:00
Kenta Murata f213a271a1
NEWS: fiddle 1.0.4 [ci skip] 2020-12-19 03:02:56 +09:00
Yusuke Endoh 982443e6e3 Revert "Better cooperation between public/protected/private with attr* and alias_method"
This reverts commit 81739ad4fd.
2020-12-18 16:08:55 +09:00
Kazuhiro NISHIYAMA ffc8a72f39
Sort URLs by issue numbers [ci skip] 2020-12-18 14:59:20 +09:00
Hiroshi SHIBATA 8cba3b35e0
Bump version RubyGems and Bundler in NEWS 2020-12-18 14:11:50 +09:00
Radosław Bułat 81739ad4fd Better cooperation between public/protected/private with attr* and alias_method 2020-12-17 12:46:02 -05:00
Kazuhiro NISHIYAMA bfb374be23
Fix a typo [ci skip] 2020-12-16 23:03:23 +09:00
Hiroshi SHIBATA cfefd1e524
Added entry for webrick changes at Ruby 3.0 to NEWS 2020-12-16 11:26:26 +09:00
Marc-Andre Lafortune 8558d5e480 Document Hash#transform_keys with hash. Amend NEWS [DOC] [ci skip] 2020-12-15 17:09:01 -05:00
Marc-Andre Lafortune d5f0d338c7 Optimize `Enumerable#grep{_v}`
[Bug #17030]
2020-12-15 12:54:45 -05:00
Junichi Ito 2e436982ee Fix typo in NEWS.md 2020-12-15 21:00:10 +09:00
Hiroshi SHIBATA 151ff609e5
Added updated versions of the default gems on NEWS 2020-12-15 20:06:42 +09:00
Nobuyoshi Nakada 928cb6eeb6
NEWS: make links to label [ci skip] 2020-12-15 08:41:21 +09:00
Nobuyoshi Nakada 78fad67ce6
NEWS: make links to other document files [ci skip] 2020-12-15 08:41:21 +09:00
Benoit Daloze f5c89c1660 Deprecate Random::DEFAULT
* Closes [Feature #17351].
2020-12-14 20:29:50 +01:00
Nobuyoshi Nakada f7850bbea8
NEWS: get rid of unintended link [ci skip] 2020-12-15 00:06:39 +09:00
Nobuyoshi Nakada 6b3a808b84
Fix code block indents [ci skip]
RDoc::Markdown requires all block elements nested under bullet
list to be indended deeper than the first column of the list.
2020-12-15 00:03:17 +09:00
Yusuke Endoh b3e99b3676 Fix indent for rdoc's markdown
It seems that nested points need four spaces
2020-12-14 23:53:50 +09:00
Junichi Ito e889c02550 Add information to Caveats section in NEWS.md 2020-12-14 18:26:45 +09:00
Junichi Ito ea6856dcdf Remove "2.8" from NEWS.md 2020-12-14 08:17:13 +09:00
Nobuyoshi Nakada 12eb5734b3
Sorted links by URLs and issue numbers [ci skip]
```
ruby -e 'puts readlines.sort_by {[_1[%r[(https?://.*?)(?:/\d+)?$],1], _1[/\d+$/].to_i]}'
```
2020-12-13 19:26:47 +09:00
Junichi Ito a3adb10aac Add NEWS about open-uri and Kernel#open
There might be a lot of codes using redefined Kernel#open via open-uri, so it's worth mentioning that.
2020-12-13 18:18:15 +09:00
Kazuki Tsujimoto 88f3ce12d3
Reintroduce `expr in pat` [Feature #17371] 2020-12-13 11:51:49 +09:00
Kazuhiro NISHIYAMA abbc43413c
Remove unused link [ci skip] 2020-12-12 00:28:08 +09:00
Jeremy Evans 01b7d5acc7 Remove the uninitialized instance variable verbose mode warning
This speeds up all instance variable access, even when not in
verbose mode.  Uninitialized instance variable warnings were
rarely helpful, and resulted in slower code if you wanted to
avoid warnings when run in verbose mode.

Implements [Feature #17055]
2020-12-10 10:16:05 -08:00
Kazuhiro NISHIYAMA 673fcb7e9a
Fix a link [ci skip] 2020-12-10 21:48:04 +09:00
Masaki Matsushita 78f188524f Add connect_timeout to TCPSocket
Add connect_timeout to TCPSocket.new in the same way as Socket.tcp.

Closes [Feature #17187]
2020-12-10 20:52:29 +09:00
Hiroshi SHIBATA 86332cdce9 Bump version numbers of RubyGems and Bundler on NEWS 2020-12-08 17:30:02 +09:00
Kazuhiro NISHIYAMA 6a6a24df9b
Fix links [ci skip] 2020-12-08 16:53:25 +09:00
NARUSE, Yui 4b583d4928 Add NEWS about UTF-8 on Windows
* 94b6933d1c
* ca76337a00
2020-12-08 16:46:14 +09:00
Kazuhiro NISHIYAMA 509241b39f
Add NEWS about Net::SMTP [ci skip] 2020-12-08 16:38:05 +09:00
Masaki Matsushita c6b37cb169 Remove resolv_timeout of TCPSocket.new from NEWS
We couldn't support it for now, because getaddrinfo_a(3)
was reverted in 5d8bcc4870. `resolv_timeout` will be just ignored.
2020-12-07 21:37:33 +09:00
Jeremy Evans 18b2ce11b5 Mentioned numbered parameter assignment is a SyntaxError in NEWS [ci skip]
Requested by Junichi Ito.
2020-12-05 22:31:52 -08:00
Nobuyoshi Nakada cf582aa6ee
Fixed a code block in NEWS [ci skip]
A code block needs to be separated from the previous paragraph by
an empty line.
2020-12-04 15:19:36 +09:00
Nobuyoshi Nakada 95118e0250
Fixed links in NEWS [ci skip]
* added a missing link
* removed a duplicated link
2020-12-04 12:02:31 +09:00
Jeremy Evans ee4373c81d Remove backticks from method names in NEWS [ci skip]
nobu pointed out this prevents automatic linking to the methods.
2020-12-03 18:32:32 -08:00
Jeremy Evans b60eaea8e5 Update NEWS [ci skip]
Make core class updates section use a consistent format. Alphabetize
core class updates section by class name, and stdlib updates section
by library name.  Minor formatting changes while here.
2020-12-03 09:06:44 -08:00
Jeremy Evans 29c9588e7e Add Proc#{==,eql?} addition to NEWS [ci skip] 2020-12-02 22:27:54 -08:00
Nobuyoshi Nakada fd329e24c5
NEWS for [Feature #17136] [ci skip] 2020-11-28 18:52:22 +09:00
Sutou Kouhei 0deb06bfa4 Add CSV 3.1.9 to NEWS 2020-11-24 09:33:55 +09:00
Nobuyoshi Nakada 175952bf07
NEWS for [Feature #16233] [ci skip] 2020-11-22 23:08:38 +09:00
Jeremy Evans d645f18f0f Minor fixes to NEWS for String subclass method change [ci skip] 2020-11-20 23:36:46 -08:00
Jeremy Evans 4988758e3a Update NEWS for String subclass method change [ci skip] 2020-11-20 16:42:38 -08:00
Hiroshi SHIBATA 9c1e2a99fc
Update the default gems section in NEWS.md 2020-11-19 15:36:21 +09:00
Sutou Kouhei 519062b350 Add Fiddle 1.0.2 to NEWS 2020-11-18 09:05:13 +09:00
Junichi Ito 2ef3b979bd NEWS: Add --backtrace-limit option [ci skip] 2020-11-17 14:17:37 -08:00
Jeremy Evans 898aff954e Remove NEWS entry about taint deprecation warnings [ci skip]
JunichiIto on GitHub correctly pointed out this is no longer
accurate due to the change to not display deprecation warnings by
default.
2020-11-17 13:58:27 -08:00
Kazuhiro NISHIYAMA 0ba096df17
Fix a link [ci skip] 2020-11-16 11:01:21 +09:00
Kazuhiro NISHIYAMA ef82a0efa3
Fix links [ci skip] 2020-11-16 10:59:58 +09:00
Marc-Andre Lafortune fd46ff9d42 NEWS: merge Range and Regexp being frozen [doc] 2020-11-15 17:44:48 -05:00
Fabio Sangiovanni 4465099a22 Fix some typos in NEWS.md. 2020-11-10 13:24:03 -05:00
Samuel Williams a08ee8330d Rename to `Fiber#set_scheduler`. 2020-11-07 23:39:50 +13:00
Jeremy Evans bf1047c757 Update NEWS for Array methods change 2020-11-03 14:09:20 -08:00
Kazuki Tsujimoto 700637570f
Rightward assignment is replaced by one-line pattern matching 2020-11-04 00:51:44 +09:00
Kazuhiro NISHIYAMA fa7484019d
Add links to the tickets [ci skip] 2020-11-03 10:25:52 +09:00
Luciano Sousa 4f7d27a210 Fix typo in the auto compact announcement [ci-skip]
I'm sorry, but I think there is a typo here.

This fix will help folks who are trying to translate this announcement to other languages. I hope this is not a joke and I didn't get it 🙏
2020-11-02 16:48:21 -08:00
Aaron Patterson 67b2c21c32
Add `GC.auto_compact= true/false` and `GC.auto_compact`
* `GC.auto_compact=`, `GC.auto_compact` can be used to control when
  compaction runs.  Setting `auto_compact=` to true will cause
  compaction to occurr duing major collections.  At the moment,
  compaction adds significant overhead to major collections, so please
  test first!

[Feature #17176]
2020-11-02 14:42:48 -08:00
Kazuki Tsujimoto b601532411
Pattern matching is no longer experimental 2020-11-01 13:33:58 +09:00
Jeremy Evans dfb3605bbe
Add Thread.ignore_deadlock accessor
Setting this to true disables the deadlock detector.  It should
only be used in cases where the deadlock could be broken via some
external means, such as via a signal.

Now that $SAFE is no longer used, replace the safe_level_ VM flag
with ignore_deadlock for storing the setting.

Fixes [Bug #13768]
2020-10-28 15:27:00 -07:00
Yusuke Endoh a3ae90b8c5 NEWS.md: mention TypeProf 2020-10-20 22:48:35 +09:00
Koichi Sasada 9ced5fae6d add a NEWS for Fiber#transfer 2020-10-20 15:36:57 +09:00
Kazuhiro NISHIYAMA c893aa0539
Add links to the tickets [ci skip] 2020-10-01 13:27:00 +09:00
Marc-Andre Lafortune b36a45c05c [ruby/ostruct] Improved YAML serialization.
Patch adapted from Pietro Monteiro [Fixes bug#8382]
2020-09-30 18:11:24 -04:00
Marc-Andre Lafortune 0e93118c44 [ruby/ostruct] Update NEWS 2020-09-30 18:11:24 -04:00
Marc-Andre Lafortune fb16c3dce2 Remove trailing whitespace [doc] 2020-09-30 18:11:24 -04:00
Kazuhiro NISHIYAMA 70d7e4c3f0
Fix a typo [ci skip] 2020-09-27 01:16:42 +09:00
Kazuhiro NISHIYAMA 48b5319006
Add links to the tickets [ci skip] 2020-09-27 01:13:52 +09:00
Koichi Sasada 0096d2b895 freeze all Range objects.
Matz want to try to freeze all Range objects.
[Feature #15504]
2020-09-25 22:16:55 +09:00
Kenta Murata 56012d2f7e
NEWS.md: Add memory view entry
The memory view interface added at 890bc2cdde is experimental new C-API
set.  This feature permits extension libraries to share a memory area
that contains such a numerical array and a bitmap image.  This is
designed by referring to Python's buffer protocol.
[[Feature #13767]]
[[Feature #14722]]
2020-09-25 21:16:10 +09:00
Soutaro Matsumoto c5ea060ef8
Update NEWS about RBS (#3579) 2020-09-25 17:08:39 +09:00
Masaki Matsushita 97416ae54c Describe resolv_timeout in NEWS 2020-09-25 15:47:47 +09:00
Hiroshi SHIBATA 5cc728816d
Update the version number of rubygems and bundler at NEWS.md 2020-09-23 17:38:52 +09:00
Samuel Williams 10d795cfca Add NEWS about `Fiber#backtrace` and `Fiber#backtrace_locations`. 2020-09-21 17:04:49 +12:00
Samuel Williams f7aa51b2b8 Update NEWS & documentation relating to scheduler. 2020-09-21 15:28:03 +12:00
Kazuhiro NISHIYAMA 63a4f2f93f
Sort links in NEWS.md by URI [ci skip] 2020-09-17 20:30:59 +09:00
Benoit Daloze ce888bfa23 Add NEWS entry for [Feature #16792] 2020-09-17 11:17:07 +02:00
Benoit Daloze 9b535f3ff7 Interpolated strings are no longer frozen with frozen-string-literal: true
* Remove freezestring instruction since this was the only usage for it.
* [Feature #17104]
2020-09-15 21:32:35 +02:00
aycabta 29b1ac613b Add IRB and Reline update for NEWS of 3.0.0-preview1 2020-09-15 09:40:24 +09:00
Koichi Sasada ccb944fcfe add NEW entries about Ractor and new method cache. 2020-09-14 16:22:13 +09:00
Hiroshi SHIBATA a9ccebbda0
Added promoted libraries to default gems section on NEWS 2020-09-14 12:02:43 +09:00
Hiroshi SHIBATA b194973dcd
Revert the related commits about `Tempfile.open` change.
Start with fa21985a7a
  to d7492a0be8
2020-09-09 21:10:48 +09:00
Nobuyoshi Nakada 1c78f5d5b8
Sort links in NEWS.md by URI [ci skip] 2020-09-04 22:20:46 +09:00
Nobuyoshi Nakada eb67c603ca
Added Symbol#name
https://bugs.ruby-lang.org/issues/16150#change-87446
2020-09-04 22:18:59 +09:00
eileencodes 6e8ec9ab6d Support passing a category to `Warning.warn`
This change adds a `category` kwarg to make it easier to monkey patch
`Warning.warn`. Warnings already have a category, but that warning isn't
exposed. This implements a way to get the category so that warnings with
a specific category, like deprecated, can be treated differently than
other warnings in an application.

The change here does an arity check on the method to support backwards
compatibility for applications that may already have a warning monkey
patch.

For our usecase we want to `raise` for deprecation warnings in order to
get the behavior for the next Ruby version. For example, now that we
fixed all our warnings and deployed Ruby 2.7 to production, we want to
be able to have deprecation warnings behave like they would in 3.0: raise
an error. For other warnings, like uninialized constants, that behavior
won't be removed from Ruby in the next version, so we don't need to
raise errors.

Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2020-09-01 16:16:06 -07:00
Kazuhiro NISHIYAMA 01f28405b1
Update version to 3.0.0 in NEWS.md 2020-08-31 20:49:08 +09:00
Nobuyoshi Nakada 34c20c995d
[DOC] Fixed wording [ci skip] 2020-08-31 16:53:57 +09:00
Nobuyoshi Nakada f588caa797
[DOC] Indent a code block in NEWS [ci skip] 2020-08-31 16:53:57 +09:00
Benoit Daloze fa21985a7a Sync with ruby/tempfile@aa9ea12d94 2020-08-29 12:05:48 +02:00
Benoit Daloze a11b9ca01c Some fixes in NEWS.md 2020-08-29 12:00:38 +02:00
Hiroshi SHIBATA 1eb1add68a
Added entry for changes of default gems 2020-08-24 19:24:07 +09:00
Kazuhiro NISHIYAMA cb7634c142
Fix links [ci skip] 2020-08-24 15:58:52 +09:00
Yusuke Endoh 09acafaccf NEWS.md: add an example, add references, and move some items 2020-08-24 15:38:03 +09:00
Takashi Kokubun ad1ebefefe
Avoid duplicated "when"s [ci skip] 2020-06-26 01:40:20 -07:00
Takashi Kokubun a0aacd2efc
Add a NEWS placeholder for disposable cc [ci skip]
asked by ko1 to put this.
2020-06-26 01:36:53 -07:00
Takashi Kokubun 200c5f4075
Add NEWS entries about JIT optimizations
and a related VM improvement.

JIT related commits:

* Code size reduction
  * Deduplicate functions on JIT compaction 818d6d3336
  * Avoid always inlining cold paths of ivar fcd2576290
  * Inline only fast path of rb_class_of b16a2aa938
  * Eliminate a call instruction on deopt 61b14bb32b
* Cold path partitioning
  * Mark method call slow paths as COLDFUNC 0e5a58b6bf
  * Mark vm_stackoverflow as NOINLINE COLDFUNC 9d71373c23
  * Create mjit_exec_slowpath and mark it as NOINLINE COLDFUNC 083a17a82a
* Primitive.attr! 'inline' / Integer#zero? 7561db8c00
  * Kernel#class 946e5cc668
  * (more to come...)
* Properly generate opt_send for cfunc cc 7982dc1dfd
* Optimize exivar access b736ea63bd
* Make JIT-ed leave leaf 151f8be40d
* Inline vm_call_cfunc b9d3ceee8f

VM:

* Enable fastpath on invokesuper 5c27681813
  * History: https://speakerdeck.com/k0kubun/ruby-3-samituto?slide=40 (in Japanese)
2020-06-26 01:33:54 -07:00
Takashi Kokubun 95b0fed371
Make Integer#zero? a separated method and builtin (#3226)
A prerequisite to fix https://bugs.ruby-lang.org/issues/15589 with JIT.
This commit alone doesn't make a significant difference yet, but I thought
this commit should be committed independently.

This method override was discussed in [Misc #16961].
2020-06-20 14:55:09 -07:00
Hiroshi SHIBATA e92a9399cc Added sdbm entry to NEWS 2020-06-19 08:26:47 +09:00
Kazuhiro NISHIYAMA 42b4234ba4
Add links [ci skip] 2020-06-19 00:59:30 +09:00
Jeremy Evans c0591b8477 Update NEWS.md [ci skip] 2020-06-18 08:47:02 -07:00
Nobuyoshi Nakada 50c13eb718
NEWS about Hash#except ENV#except [Feature #15822] 2020-06-18 23:09:11 +09:00
Kazuki Tsujimoto ddded1157a
Introduce find pattern [Feature #16828] 2020-06-14 09:24:36 +09:00
Aaron Patterson 62ce8f96cd
Revert "Combine sweeping and moving"
This reverts commit 02b216e5a7.
This reverts commit 9b8825b6f9.

I found that combining sweep and move is not safe.  I don't think that
we can do compaction concurrently with _anything_ unless there is a read
barrier installed.

Here is a simple example.  A class object is freed, and during it's free
step, it tries to remove itself from its parent's subclass list.
However, during the sweep step, the parent class was moved and the
"currently being freed" class didn't have references updated yet.  So we
get a segv like this:

```
(lldb) bt
* thread #1, name = 'ruby', stop reason = signal SIGSEGV
  * frame #0: 0x0000560763e344cb ruby`rb_st_lookup at st.c:320:43
    frame #1: 0x0000560763e344cb ruby`rb_st_lookup(tab=0x2f7469672f6e6f72, key=3809, value=0x0000560765bf2270) at st.c:1010
    frame #2: 0x0000560763e8f16a ruby`rb_search_class_path at variable.c:99:9
    frame #3: 0x0000560763e8f141 ruby`rb_search_class_path at variable.c:145
    frame #4: 0x0000560763e8f141 ruby`rb_search_class_path(klass=94589785585880) at variable.c:191
    frame #5: 0x0000560763ec744e ruby`rb_vm_bugreport at vm_dump.c:996:17
    frame #6: 0x0000560763f5b958 ruby`rb_bug_for_fatal_signal at error.c:675:5
    frame #7: 0x0000560763e27dad ruby`sigsegv(sig=<unavailable>, info=<unavailable>, ctx=<unavailable>) at signal.c:955:5
    frame #8: 0x00007f8b891d33c0 libpthread.so.0`___lldb_unnamed_symbol1$$libpthread.so.0 + 1
    frame #9: 0x0000560763efa8bb ruby`rb_class_remove_from_super_subclasses(klass=94589790314280) at class.c:93:56
    frame #10: 0x0000560763d10cb7 ruby`gc_sweep_step at gc.c:2674:2
    frame #11: 0x0000560763d1187b ruby`gc_sweep at gc.c:4540:2
    frame #12: 0x0000560763d101f0 ruby`gc_start at gc.c:6797:6
    frame #13: 0x0000560763d15153 ruby`rb_gc_compact at gc.c:7479:12
    frame #14: 0x0000560763eb4eb8 ruby`vm_exec_core at vm_insnhelper.c:5183:13
    frame #15: 0x0000560763ea9bae ruby`rb_vm_exec at vm.c:1953:22
    frame #16: 0x0000560763eac08d ruby`rb_yield at vm.c:1132:9
    frame #17: 0x0000560763edb4f2 ruby`rb_ary_collect at array.c:3186:9
    frame #18: 0x0000560763e9ee15 ruby`vm_call_cfunc_with_frame at vm_insnhelper.c:2575:12
    frame #19: 0x0000560763eb2e66 ruby`vm_exec_core at vm_insnhelper.c:4177:11
    frame #20: 0x0000560763ea9bae ruby`rb_vm_exec at vm.c:1953:22
    frame #21: 0x0000560763eac08d ruby`rb_yield at vm.c:1132:9
    frame #22: 0x0000560763edb4f2 ruby`rb_ary_collect at array.c:3186:9
    frame #23: 0x0000560763e9ee15 ruby`vm_call_cfunc_with_frame at vm_insnhelper.c:2575:12
    frame #24: 0x0000560763eb2e66 ruby`vm_exec_core at vm_insnhelper.c:4177:11
    frame #25: 0x0000560763ea9bae ruby`rb_vm_exec at vm.c:1953:22
    frame #26: 0x0000560763ceee01 ruby`rb_ec_exec_node(ec=0x0000560765afa530, n=0x0000560765b088e0) at eval.c:296:2
    frame #27: 0x0000560763cf3b7b ruby`ruby_run_node(n=0x0000560765b088e0) at eval.c:354:12
    frame #28: 0x0000560763cee4a3 ruby`main(argc=<unavailable>, argv=<unavailable>) at main.c:50:9
    frame #29: 0x00007f8b88e560b3 libc.so.6`__libc_start_main + 243
    frame #30: 0x0000560763cee4ee ruby`_start + 46
(lldb) f 9
frame #9: 0x0000560763efa8bb ruby`rb_class_remove_from_super_subclasses(klass=94589790314280) at class.c:93:56
   90
   91  		*RCLASS_EXT(klass)->parent_subclasses = entry->next;
   92  		if (entry->next) {
-> 93  		    RCLASS_EXT(entry->next->klass)->parent_subclasses = RCLASS_EXT(klass)->parent_subclasses;
   94  		}
   95  		xfree(entry);
   96  	    }
(lldb) command script import -r misc/lldb_cruby.py
lldb scripts for ruby has been installed.
(lldb) rp entry->next->klass
(struct RMoved) $1 = (flags = 30, destination = 94589792806680, next = 94589784369160)
(lldb)
```
2020-06-09 13:53:18 -07:00
Aaron Patterson 9b8825b6f9
Update NEWS / documentation with GC.start(compact:true) 2020-05-29 15:59:42 -07:00
Hiroshi SHIBATA 45ffab365d
Added entries about RubyGems and Bundler 2020-05-25 15:20:39 +09:00
Nobuyoshi Nakada bf11bf31e2
NEWS.md: the order of backtrace [Feature #8661] [ci skip] 2020-04-21 19:29:16 +09:00
Kazuhiro NISHIYAMA 92c8258858
Fix a typo [ci skip] 2020-04-17 17:59:43 +09:00
Nobuyoshi Nakada c817868705
NEWS.md: Mentioned the removal of NIL/TRUE/FALSE [ci skip] 2020-04-17 17:49:50 +09:00
Nobuyoshi Nakada 155f64e3c4
Raise EPIPE at broken pipe for the backward compatibility
Instead of SignalException for SIGPIPE, raise `Errno::EPIPE` with
instance variable `signo` and re-send that signal at exit.
[Feature #14413]
2020-04-15 21:05:39 +09:00
Nobuyoshi Nakada f22c4ff359 View the help message with PAGER [Feature #16754]
View the help message wth pager designed by RUBY_PAGER or PAGER
environment variable, unless that value is empty.
2020-04-12 14:58:13 +09:00
Nobuyoshi Nakada 6f28ebd585
Silence broken pipe error messages on STDOUT [Feature #14413]
Raise `SignalException` for SIGPIPE to abort when EPIPE occurs.
2020-04-11 09:30:19 +09:00
Nobuyoshi Nakada 302da060af
Reference to [Feature #16746] [ci skip] 2020-04-10 21:02:18 +09:00
Nobuyoshi Nakada e8f53692ca
Endless method definition [Feature #16746] 2020-04-10 18:02:15 +09:00
Nobuyoshi Nakada 878e21c6cd
R-assign is still experimental [Feature #15921] [ci skip] 2020-04-10 17:35:02 +09:00
Nobuyoshi Nakada 1b2d351b21
Rightward-assign by ASSOC
[Feature #15921]
2020-04-10 15:03:58 +09:00
卜部昌平 9e6e39c351
Merge pull request #2991 from shyouhei/ruby.h
Split ruby.h
2020-04-08 13:28:13 +09:00
Kazuhiro NISHIYAMA afd23ed049
Added link to the ticket [ci skip] 2020-03-18 13:57:03 +09:00
Jeremy Evans d2c41b1bff Reduce allocations for keyword argument hashes
Previously, passing a keyword splat to a method always allocated
a hash on the caller side, and accepting arbitrary keywords in
a method allocated a separate hash on the callee side.  Passing
explicit keywords to a method that accepted a keyword splat
did not allocate a hash on the caller side, but resulted in two
hashes allocated on the callee side.

This commit makes passing a single keyword splat to a method not
allocate a hash on the caller side.  Passing multiple keyword
splats or a mix of explicit keywords and a keyword splat still
generates a hash on the caller side.  On the callee side,
if arbitrary keywords are not accepted, it does not allocate a
hash.  If arbitrary keywords are accepted, it will allocate a
hash, but this commit uses a callinfo flag to indicate whether
the caller already allocated a hash, and if so, the callee can
use the passed hash without duplicating it.  So this commit
should make it so that a maximum of a single hash is allocated
during method calls.

To set the callinfo flag appropriately, method call argument
compilation checks if only a single keyword splat is given.
If only one keyword splat is given, the VM_CALL_KW_SPLAT_MUT
callinfo flag is not set, since in that case the keyword
splat is passed directly and not mutable.  If more than one
splat is used, a new hash needs to be generated on the caller
side, and in that case the callinfo flag is set, indicating
the keyword splat is mutable by the callee.

In compile_hash, used for both hash and keyword argument
compilation, if compiling keyword arguments and only a
single keyword splat is used, pass the argument directly.

On the caller side, in vm_args.c, the callinfo flag needs to
be recognized and handled.  Because the keyword splat
argument may not be a hash, it needs to be converted to a
hash first if not.  Then, unless the callinfo flag is set,
the hash needs to be duplicated.  The temporary copy of the
callinfo flag, kw_flag, is updated if a hash was duplicated,
to prevent the need to duplicate it again.  If we are
converting to a hash or duplicating a hash, we need to update
the argument array, which can including duplicating the
positional splat array if one was passed.  CALLER_SETUP_ARG
and a couple other places needs to be modified to handle
similar issues for other types of calls.

This includes fairly comprehensive tests for different ways
keywords are handled internally, checking that you get equal
results but that keyword splats on the caller side result in
distinct objects for keyword rest parameters.

Included are benchmarks for keyword argument calls.
Brief results when compiled without optimization:

  def kw(a: 1) a end
  def kws(**kw) kw end
  h = {a: 1}

  kw(a: 1)       # about same
  kw(**h)        # 2.37x faster
  kws(a: 1)      # 1.30x faster
  kws(**h)       # 2.19x faster
  kw(a: 1, **h)  # 1.03x slower
  kw(**h, **h)   # about same
  kws(a: 1, **h) # 1.16x faster
  kws(**h, **h)  # 1.14x faster
2020-03-17 12:09:43 -07:00
Yusuke Endoh 47141797be hash.c: Do not use the fast path (rb_yield_values) for lambda blocks
As a semantics, Hash#each yields a 2-element array (pairs of keys and
values).  So, `{ a: 1 }.each(&->(k, v) { })` should raise an exception
due to lambda's arity check.
However, the optimization that avoids Array allocation by using
rb_yield_values for blocks whose arity is more than 1 (introduced at
b9d2960337 and some commits), seemed to
overlook the lambda case, and wrongly allowed the code above to work.

This change experimentally attempts to make it strict; now the code
above raises an ArgumentError.  This is an incompatible change; if the
compatibility issue is bigger than our expectation, it may be reverted
(until Ruby 3.0 release).

[Bug #12706]
2020-03-16 23:17:12 +09:00
Takashi Kokubun de4999ef23
Try to correct grammer of the NEWS entry [ci skip] 2020-03-10 22:29:40 -07:00
Takashi Kokubun e0512b29aa
Let Net::HTTP.get take request headers (#2957)
* Let Net::HTTP.get take request headers

* Add more test cases for no header usages

* Add examples with request headers

* Add a NEWS entry [ci skip]

[Feature #16686]
2020-03-10 22:26:22 -07:00
Nobuyoshi Nakada bba2b70949
RDoc markdown parser needs explicit code block or more indents [ci skip] 2020-03-10 12:57:35 +09:00
Nobuyoshi Nakada 384feb6c51
Added link to the ticket [ci skip] 2020-03-10 12:43:49 +09:00
Jeremy Evans 9034cbd331 Update NEWS for autosplatting change [ci skip] 2020-03-09 08:11:13 -07:00
Nobuyoshi Nakada a8c5b9a2fd
[DOC] Separated parenthesized notes from subsection headings
As the headings become link anchors, remove less useful notes.
[ci skip]
2020-03-03 17:38:00 +09:00
Nobuyoshi Nakada 2b85591943
Fix up mark-ups in NEWS [ci skip] 2020-02-29 13:24:29 +09:00
Nobuyoshi Nakada 0333f3c03c
Missing links in NEWS [ci skip] 2020-02-29 12:20:49 +09:00
Jeremy Evans 99ff4d61ec Update NEWS [ci skip] 2020-02-28 16:12:13 -08:00
Nobuyoshi Nakada f0b815dc67
`Proc` made by `Symbol#to_proc` should be a lambda [Bug #16260] 2020-02-19 15:46:26 +09:00
Marcus Stollsteimer a9e10d3b8e NEWS.md: add missing ticket links 2020-02-16 21:00:49 +01:00
Marcus Stollsteimer 6ca0a62d21 NEWS.md: improve language; markup as list item 2020-02-16 21:00:41 +01:00
Marcus Stollsteimer 1126f58c62 NEWS.md: remove leading whitespace 2020-02-16 21:00:34 +01:00
Marcus Stollsteimer 3281f70d7c NEWS.md: fix method references; remove surplus brackets 2020-02-16 21:00:27 +01:00
Jeremy Evans 7a288df7b8 Make yield in singleton class definitions in methods a SyntaxError
This behavior was deprecated in 2.7 and scheduled to be removed
in 3.0.

Calling yield in a class definition outside a method is now a
SyntaxError instead of a LocalJumpError, as well.
2020-02-11 12:44:23 -08:00
NARUSE, Yui 80bbc7f402 Add #verify_hostname= and #verify_hostname to skip hostname verification
[Feature #16555]
https://github.com/ruby/ruby/pull/2858
2020-01-24 15:17:02 +09:00
Jeremy Evans e91c39f1c0 Remove special handling of $SAFE and related C-APIs
These were all deprecated in Ruby 2.7.
2020-01-22 09:09:47 -08:00
Nobuyoshi Nakada 0ab93e098f NEWS.md: set code format explicitly [ci skip]
It is not set by default in the Github viewer.
2020-01-19 21:07:24 +09:00
Nobuyoshi Nakada 2f1081a451
Sort globbed results by default [Feature #8709]
Sort the results which matched single wildcard or character set in
binary ascending order, unless `sort: false` is given.  The order
of an Array of pattern strings and braces are not affected.
2020-01-19 14:46:01 +09:00
Nobuyoshi Nakada 79f0ed3529
NEWS.md: reduce headings level [ci skip]
As the only h2 did not have its exclusively owned body text,
merged it to the first paragraph.  Then pulled up h3 and deeper
headings.
2020-01-18 17:46:52 +09:00
Nobuyoshi Nakada 59d255b940
NEWS.md: made ticket references links [ci skip] 2020-01-18 17:43:07 +09:00
Nobuyoshi Nakada a1ce1dc2a7
NEWS.md: fixed lists and indents [ci skip]
* The definition lists extensions of the RDoc Markdown parser does
  not support nesting.

* The RDoc Markdown parser requires more indents for nested lists.
2020-01-18 17:23:20 +09:00
Hiroshi SHIBATA 62baad9fe1
Removed xmlrpc and net-telnet from the bundled gems.
[Feature #16484][ruby-core:96682]
2020-01-16 16:56:53 +09:00
Yusuke Endoh 815807d2ab NEWS.md: mention "Freeze Regexp literals" [Feature #8948] 2020-01-15 12:43:49 +09:00
Yusuke Endoh 9feca5ceb9 NEWS.md: converted from NEWS
and NEWS is deleted
2020-01-15 12:42:47 +09:00