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

674 Коммитов

Автор SHA1 Сообщение Дата
git c1790f8c11 Update default gems list at 7f7db124ee [ci skip] 2022-03-03 08:56:31 +00:00
git bec492c77e Update default gems list at eb40ff73bf [ci skip] 2022-02-28 11:10:22 +00:00
git 43cc4f66c2 Update bundled gems list at 2022-02-23 2022-02-23 07:00:29 +00:00
Kazuhiro NISHIYAMA 1f3fe3801b
Fix links [ci skip] 2022-02-21 00:44:19 +09:00
Shugo Maeda c8817d6a3e
Add String#byteindex, String#byterindex, and MatchData#byteoffset (#5518)
* Add String#byteindex, String#byterindex, and MatchData#byteoffset [Feature #13110]

Co-authored-by: NARUSE, Yui <naruse@airemix.jp>
2022-02-19 19:10:00 +09:00
Kazuki Tsujimoto db6b23c76c
Find pattern is no longer experimental [Feature #18585] 2022-02-19 18:45:49 +09:00
Akinori MUSHA ac32b7023a Mention Set as a new builtin class to NEWS 2022-02-18 11:56:24 +09:00
git 66b9ca8426 Update default gems list at f07a2613e3 [ci skip] 2022-02-10 08:19:42 +00:00
git ea6b6f1ad3 Update bundled gems list at d4a8c04dc7 [ci skip] 2022-02-02 04:26:22 +00:00
git 804dca7b0c Update default gems list at fc4fbeef28 [ci skip] 2022-02-01 04:22:40 +00:00
Koichi ITO f924e05b68
[DOC] Fix a typo in the NEWS.md
Follow up of https://github.com/ruby/ruby/commit/fbb3cab.
2022-01-31 07:38:10 +09:00
Takashi Kokubun fbb3cab956
Add a NEWS entry about [Feature #16806] 2022-01-29 00:32:38 -08:00
Nobuyoshi Nakada e3b5cc8836
NEWS: `Fixnum` and `Bignum` are removed finally [Feature #12005] 2022-01-25 23:10:20 +09:00
git c6a19b77a2 Update default gems list at 328e6bf3b3 [ci skip] 2022-01-24 01:57:23 +00:00
Kazuhiro NISHIYAMA 54568c949b
Fix a link [ci skip] 2022-01-18 22:57:21 +09:00
Takashi Kokubun c0d18a1aa2
[ruby/erb] Revert "Remove safe_level and further positional arguments (https://github.com/ruby/erb/pull/7)"
This reverts commit 5133efa06f.

While we already handled this deprecation in many libraries, we noticed
that some (e.g. sprockets) relied on the format of `ERB.version` and
2b4182eb10 broke such handling.

Given that the `ERB.version` change was released at 3.1 and it's
obviously new, I'll skip this removal in 3.2 and postpone this to a
future version.
2022-01-17 12:39:17 -08:00
Takashi Kokubun 728304093c
Update NEWS.md about ERB.new 2022-01-15 13:53:57 -08:00
Jeremy Evans a93cc3e23b Make Hash#shift return nil for empty hash
Fixes [Bug #16908]
2022-01-14 12:17:57 -08:00
Jeremy Evans ca3d405242 Fix constant assignment evaluation order
Previously, the right hand side was always evaluated before the
left hand side for constant assignments.  For the following:

```ruby
lhs::C = rhs
```

rhs was evaluated before lhs, which is inconsistant with attribute
assignment (lhs.m = rhs), and apparently also does not conform to
JIS 3017:2013 11.4.2.2.3.

Fix this by changing evaluation order.  Previously, the above
compiled to:

```
0000 putself                                                          (   1)[Li]
0001 opt_send_without_block                 <calldata!mid:rhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0003 dup
0004 putself
0005 opt_send_without_block                 <calldata!mid:lhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0007 setconstant                            :C
0009 leave
```

After this change:

```
0000 putself                                                          (   1)[Li]
0001 opt_send_without_block                 <calldata!mid:lhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0003 putself
0004 opt_send_without_block                 <calldata!mid:rhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0006 swap
0007 topn                                   1
0009 swap
0010 setconstant                            :C
0012 leave
```

Note that if expr is not a module/class, then a TypeError is not
raised until after the evaluation of rhs.  This is because that
error is raised by setconstant.  If we wanted to raise TypeError
before evaluation of rhs, we would have to add a VM instruction
for calling vm_check_if_namespace.

Changing assignment order for single assignments caused problems
in the multiple assignment code, revealing that the issue also
affected multiple assignment.  Fix the multiple assignment code
so left-to-right evaluation also works for constant assignments.

Do some refactoring of the multiple assignment code to reduce
duplication after adding support for constants. Rename struct
masgn_attrasgn to masgn_lhs_node, since it now handles both
constants and attributes. Add add_masgn_lhs_node static function
for adding data for lhs attribute and constant setting.

Fixes [Bug #15928]
2022-01-14 11:00:26 -08:00
Jean Boussier 8d05047d72 Add a Module#const_added callback
[Feature #17881]

Works similarly to `method_added` but for constants.

```ruby
Foo::BAR = 42 # call Foo.const_added(:FOO)
class Foo::Baz; end # call Foo.const_added(:Baz)
Foo.autoload(:Something, "path") # call Foo.const_added(:Something)
```
2022-01-14 11:30:07 +01:00
Koichi Sasada 9de380860d add a NEWS entry of `Proc#dup`. 2022-01-13 17:45:25 +09:00
Kazuhiro NISHIYAMA 533bc77170
Fix typo [ci skip] 2022-01-07 09:44:33 +09:00
manga_osyo 1bfccba775 Add bugs.ruby links. 2022-01-07 01:13:04 +09:00
git 2db7952e59 Update bundled gems list at 2022-01-06 2022-01-06 07:02:37 +00:00
Nobuyoshi Nakada 3e417a554b
NEWS: "taintedness" and "trustedness" methods are removed 2022-01-06 11:32:27 +09:00
Nobuyoshi Nakada ac0d27eb58
NEWS: Separate removed constants section 2022-01-06 11:20:55 +09:00
Nobuyoshi Nakada e38d583391
NEWS: Links to the tickets to remove deprecated features 2022-01-05 18:27:16 +09:00
Nobuyoshi Nakada 1272a331b4
NEWS: Removal of `Kernel#=~` [Feature #15231] 2022-01-05 18:18:43 +09:00
Shugo Maeda 54198c7b97
Add Module#refinements and Refinement#refined_class [Feature #12737] 2022-01-05 17:47:29 +09:00
Shugo Maeda 21ee5341f8
Add Module.used_refinements 2022-01-05 16:58:23 +09:00
git 30c03f9e93 Update default gems list at 6f53425825 [ci skip] 2022-01-02 06:06:11 +00:00
Nobuyoshi Nakada 6f53425825
NEWS: Removed constants 2022-01-02 15:05:02 +09:00
git b2a88063d6 Update default gems list at 6d1b406dc8 [ci skip] 2022-01-02 02:29:48 +00:00
Nobuyoshi Nakada f59b2e440e
NEWS: Removed methods 2021-12-31 23:59:50 +09:00
Nobuyoshi Nakada 60e9aa5733
NEWS: Removed C APIs 2021-12-31 23:59:04 +09:00
Jeremy Evans f53dfab95c Add support for anonymous rest and keyword rest argument forwarding
This allows for the following syntax:

```ruby
def foo(*)
  bar(*)
end
def baz(**)
  quux(**)
end
```

This is a natural addition after the introduction of anonymous
block forwarding.  Anonymous rest and keyword rest arguments were
already supported in method parameters, this just allows them to
be used as arguments to other methods.  The same advantages of
anonymous block forwarding apply to rest and keyword rest argument
forwarding.

This has some minor changes to #parameters output.  Now, instead
of `[:rest], [:keyrest]`, you get `[:rest, :*], [:keyrest, :**]`.
These were already used for `...` forwarding, so I think it makes
it more consistent to include them in other cases.  If we want to
use `[:rest], [:keyrest]` in both cases, that is also possible.

I don't think the previous behavior of `[:rest], [:keyrest]` in
the non-... case and `[:rest, :*], [:keyrest, :**]` in the ...
case makes sense, but if we did want that behavior, we'll have to
make more substantial changes, such as using a different ID in the
... forwarding case.

Implements [Feature #18351]
2021-12-30 14:37:42 -08:00
git 6d57290210 Update bundled gems list at 2021-12-29 2021-12-29 07:02:15 +00:00
git 7fbd93e60f Update default gems list at d75f7078c8 [ci skip] 2021-12-29 01:03:36 +00:00
git f486566f13 Update default gems list at d6311cb1ca [ci skip] 2021-12-27 01:48:03 +00:00
git 18da9359de Update bundled gems list at 2322967f3e [ci skip] 2021-12-26 06:51:28 +00:00
git 2322967f3e Update default gems list at 1698010bb1 [ci skip] 2021-12-26 06:38:45 +00:00
git a91605c9da Update default gems list at 53b3c044fc [ci skip] 2021-12-25 14:12:38 +00:00
Kazuhiro NISHIYAMA 53b3c044fc
Copy NEWS.md to doc/NEWS-3.1.0.md and update for 3.2.0 2021-12-25 23:11:43 +09:00
Nobuyoshi Nakada 1ad42f8a76
Update default gems list at 8247b193c0 [ci skip] 2021-12-25 18:43:37 +09:00
Nobuyoshi Nakada 14e550052b
NEWS: mention Time.new argument error more
Show an example of Time.new with perhaps unexpected results in
earlier versions.
2021-12-25 18:24:39 +09:00
Nobuyoshi Nakada 42eb9bf37a
Fix the names of Thread::Queue and method for the cross-reference 2021-12-25 17:45:22 +09:00
Nobuyoshi Nakada 30374b4fb7
NEWS: Put spaces to make Method and UnboundMethod links 2021-12-25 17:42:27 +09:00
aycabta dba24e6a1a Add IRB Improvements section to NEWS.md 2021-12-25 17:05:39 +09:00
Nobuyoshi Nakada 0abf781ab4
NEWS: Mention about more strict conversions for [Feature #17485] 2021-12-25 13:14:54 +09:00
git 70aa7734e9 Update default gems list at 0f1fbc6421 [ci skip] 2021-12-25 04:13:21 +00:00
git 63d75d38cb Update default gems list at 40c20110d5 [ci skip] 2021-12-25 02:04:23 +00:00
git d100c91445 Update default gems list at da6a5e3ed1 [ci skip] 2021-12-24 22:45:36 +00:00
git 2b2115318b Update default gems list at efce9ecf72 [ci skip] 2021-12-24 18:38:28 +00:00
Alan Wu cab8b88a16 NEWS: Adapt YJIT support status to include OpenBSD
We don't run YJIT CI checks on OpenBSD so can't claim that we provide
first-class maintenance support. However, as of
3b2b28d035, YJIT can at least boot on OpenBSD.
2021-12-24 12:35:24 -05:00
Alan Wu b81faf4b1f Less bravado in YJIT performance claims
YJIT can't improve performance of non Ruby software of course.
2021-12-24 11:59:57 -05:00
git 628e845843 Update default gems list at 90239c4163 [ci skip] 2021-12-24 15:47:38 +00:00
Koichi Sasada 38b3adc4cb add a NEWS entry about cvar inline cache 2021-12-25 00:01:21 +09:00
git 4767cf0cb5 Update default gems list at f9712b029b [ci skip] 2021-12-24 14:21:17 +00:00
Soutaro Matsumoto 8d940e3032
Bundle RBS 2.0.0 (#5330)
* Bundle RBS 2.0.0

* Update NEWS.md
2021-12-24 22:54:45 +09:00
git babc200ee8 Update default gems list at 67aab88a22 [ci skip] 2021-12-24 11:10:13 +00:00
git f2592f2812 Update default gems list at 35d779c57b [ci skip] 2021-12-24 09:04:07 +00:00
git d81046b2d6 Update default gems list at 03f16d37bf [ci skip] 2021-12-24 08:12:56 +00:00
git 167dd73c6c Update default gems list at 1a1550ba5d [ci skip] 2021-12-24 05:41:11 +00:00
git e029560b22 Update default gems list at b0ad6cb371 [ci skip] 2021-12-24 02:20:07 +00:00
git eba05029b0 Update default gems list at 65d35502bd [ci skip] 2021-12-23 17:30:04 +00:00
git 1eafa85206 Update bundled gems list at a6b2757d0572db1dc3f079a9cdd42c [ci skip] 2021-12-23 18:25:48 +09:00
git ddfbf531de Update default gems list at d5019949b5 [ci skip] 2021-12-23 04:01:26 +00:00
git 1f94ae019f Update default gems list at de841e2e28 [ci skip] 2021-12-23 01:10:18 +00:00
git c529014b9d Update default gems list at 231f2c26b8efd14ce3fd8961292db8 [ci skip] 2021-12-23 09:44:45 +09:00
git 2c31f325f5 Update default gems list at ac4e0978ee [ci skip] 2021-12-22 11:30:17 +00:00
Koichi Sasada 779039a4e0 add ref to the ticket 2021-12-22 02:49:19 +09:00
Yuki Nishijima cdb7d699d0 Revert commits for did_you_mean
This reverts commit 4560091b1c.
This reverts commit a6f76122a2.
This reverts commit e59b18a637.
This reverts commit 505dfae05d.
2021-12-21 22:10:03 +09:00
git e59b18a637 Update default gems list at 505dfae05d [ci skip] 2021-12-21 10:08:36 +00:00
Hiroshi SHIBATA 12fa4f2ace
Added Psych 4 incompatibility to NEWS
[Bug #17866][ruby-core:103866]
2021-12-21 19:02:59 +09:00
Kazuhiro NISHIYAMA 69470cc5e9
Fix a typo [ci skip] 2021-12-21 17:44:48 +09:00
git 10a2273e99 Update default gems list at f51811ca75894f5227fb2dd9f2f61f [ci skip] 2021-12-21 15:27:05 +09:00
Jeremy Evans 3bd5f27f73 Remove Class#descendants 2021-12-20 11:02:15 -08:00
git 7700e9a5cc Update bundled gems list at 2021-12-20 2021-12-20 09:50:16 +00:00
git 4db88173d8 Update default gems list at 706c7a27fa [ci skip] 2021-12-20 09:26:42 +00:00
Hiroshi SHIBATA 24f7a41aed
Update logger version on NEWS 2021-12-20 18:02:19 +09:00
git 145f7c094f Update bundled gems list at 2021-12-20 2021-12-20 07:05:44 +00:00
Hiroshi SHIBATA 7867a76e69
Update pp version on NEWS 2021-12-20 12:46:11 +09:00
Kazuhiro NISHIYAMA ae58b71eeb
Sort URLs by issue numbers [ci skip] 2021-12-19 23:43:39 +09:00
Kazuki Tsujimoto 3f2b581840
Add news about allowing omission of parentheses in one-line pattern matching 2021-12-19 21:37:08 +09:00
git 6a1365d725 Update bundled gems list at 2021-12-17 2021-12-17 19:21:56 +00:00
git 74b58dd690 Update bundled gems list at 2021-12-17 2021-12-17 16:18:25 +00:00
Kazuhiro NISHIYAMA 9ac52e8ed3
Fix a typo [ci skip] 2021-12-17 22:30:23 +09:00
Yusuke Endoh 4639336b05 NEWS.md: Fix a typo 2021-12-17 20:34:25 +09:00
Masataka Pocke Kuwabara d524b9dec9
NEWS.md: Add link to `rbs collection` documentation 2021-12-17 13:54:23 +09:00
Yusuke Endoh 58333c94d5 NEWS.md: Describe changes of RBS 2021-12-17 13:46:09 +09:00
git c4c78343e0 Update stdlib version at 693a561cfa [ci skip] 2021-12-16 17:58:00 +00:00
Matheus Richard 41d4902c27 Improve wording on NEWS.md 2021-12-16 20:02:07 +09:00
git fbd21a81f3 Update stdlib version at 333865e56f [ci skip] 2021-12-15 12:52:15 +00:00
git 1fc80754dd Update stdlib version at 9f87c0cc6d [ci skip] 2021-12-15 10:47:15 +00:00
Kazuhiro NISHIYAMA de01011da3
Update stdlib version [ci skip] 2021-12-15 18:53:16 +09:00
git 583e06e28f Update stdlib version at ded33ed5b8 [ci skip] 2021-12-15 09:00:47 +00:00
Kazuhiro NISHIYAMA 7d50142a9b
Remove unused footnote [ci skip] 2021-12-15 16:59:10 +09:00
Jean Boussier 9e00f8267d NEWS.md document String#unpack offset and Marshal.load freeze arguments 2021-12-14 16:42:53 +01:00
Takashi Kokubun 1a63468831
Prepare for removing RubyVM::JIT (#5262) 2021-12-13 23:07:46 -08:00
Kazuhiro NISHIYAMA a2839d7178
Update stdlib version [ci skip] 2021-12-14 16:06:50 +09:00
Kazuhiro NISHIYAMA 877160121a
NEWS.md: Mention colorize command of un.rb
https://github.com/ruby/un/pull/1
2021-12-14 09:28:09 +09:00
Takashi Kokubun 11b8aaa26a
Rename --jit to --mjit (#5248)
* Rename --jit to --mjit

[Feature #18349]

* Fix a few more --jit references

* Fix MJIT Actions

* More s/jit/mjit/ and re-introduce --disable-jit

* Update NEWS.md

* Fix test_bug_reporter_add
2021-12-13 16:08:01 -08:00
Peter Zhu 94494a565d [ci skip] NEWS.md: Update Variable Width Allocation 2021-12-13 10:20:13 -05:00
Nobuyoshi Nakada 4926647bf2
NEWS.md: sort [ci skip] 2021-12-14 00:03:37 +09:00
Peter Zhu 774b04408f [ci skip] NEWS.md: Add Variable Width Allocation 2021-12-13 09:53:31 -05:00
Nobuyoshi Nakada a08d8180e2
NEWS.md: One more surrounding brackets for the ticket 2021-12-13 21:20:55 +09:00
Nobuyoshi Nakada 7ececae453
NEWS.md: move of Random::Formatter [Feature #18190] 2021-12-13 19:15:31 +09:00
Kentaro Goto 914563ae87 NEWS.md: `ruby -run -e httpd` displays URLs to access [Feature #17847] 2021-12-13 18:08:35 +09:00
Nobuyoshi Nakada c81d7d7c60
NEWS.md: RFC 3339 UTC for unknown offset local time [Feature #17544] 2021-12-13 14:28:59 +09:00
Nobuyoshi Nakada 4ffb0bd641
NEWS.md: Mention `in:` option of Time.new [Feature #17485] 2021-12-13 14:20:42 +09:00
Yusuke Endoh 2c0de39287 NEWS.md: `--disable-gems` is now just for debugging. [Feature #17684] 2021-12-13 14:19:21 +09:00
Nobuyoshi Nakada ff029f25ca
[DOC] Get rid of headings in list items
The current RDoc Markdown parser parses the list item starting
with `#` as a heading line.
2021-12-13 14:16:46 +09:00
Koichi Sasada 0ee127e5bb add a NEWS entry for `TracePoint.allow_reenter` 2021-12-13 14:02:42 +09:00
Yusuke Endoh 1da1d74730 NEWS.md: `def foo = puts "Hello"` is now allowed [Feature #17398] 2021-12-13 14:01:40 +09:00
Yusuke Endoh d463b407e6 NEWS.md: Mention suspendatble coverage [Feature #18176] 2021-12-13 13:53:34 +09:00
Yusuke Endoh a6fb63d2a0 NEWS.md: Use more descriptive example for error_highlight 2021-12-13 13:49:39 +09:00
Kazuhiro NISHIYAMA d3c8f7b1cd
Fix a typo [ci skip] 2021-12-13 11:11:57 +09:00
Kazuhiro NISHIYAMA c91fb5db59
Update stdlib versions [ci skip] 2021-12-11 14:01:19 +09:00
Kazuhiro NISHIYAMA 21749f7be3
Update stdlib versions [ci skip] 2021-12-10 14:55:03 +09:00
Jeremy Evans 2727815068 Add {Method,UnboundMethod}#{public?,private?,protected?}
These methods allow for checking whether the method has that
visibility.

Implements [Feature #11689]
2021-12-09 12:59:37 -08:00
Nobuyoshi Nakada bb3f17bd98
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-07 22:00:23 +09:00
Kazuhiro NISHIYAMA 91e9d27629
Fix a link [ci skip] 2021-12-07 15:02:08 +09:00
Yusuke Endoh dfd9728c87 NEWS.md: Describe the change of the default width of `pp`
[Feature #12913]
2021-12-07 12:07:28 +09:00
Koichi Sasada 4c39fae4de add a NEWS entry for `mandatory_only?` 2021-12-07 02:03:30 +09:00
Koichi Sasada 87664b5cc8 add a NEWS entry about GC.total_time 2021-12-07 02:03:30 +09:00
Koichi Sasada 660687e6fa add NEWS about the improvement of `Struct` 2021-12-07 02:03:30 +09:00
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