Commit graph

64739 commits

Author SHA1 Message Date
aycabta
28e9344fa4 [ruby/irb] Change StdioInputMethod#eof? to non-blocking
This fixes --inf-ruby-mode.

0e4a818955
2020-12-23 22:08:30 +09:00
aycabta
129ecb43e5 [ruby/irb] Fix error_message for assert_dynamic_prompt
b12dfb6298
2020-12-23 21:26:25 +09:00
aycabta
31bd172185 [ruby/irb] Suppress "shadowing outer" warning
8b83fbef69
2020-12-23 21:26:25 +09:00
Hiroshi SHIBATA
684649ea05 [ruby/psych] Bump version to 3.3.0
0abce07b90
2020-12-23 19:53:21 +09:00
Hiroshi SHIBATA
8259d88938 [ruby/psych] Skip test_ractor.rb with ruby/psych repo
Because ruby/psych still uses minitest. minitest didn't support
  assert_ractor provided by test suite of ruby/ruby repo.

7da26358f1
2020-12-23 19:45:54 +09:00
Kenta Murata
aad88cc10b [ruby/date] Define dummy RUBY_TYPED_FROZEN_SHAREABLE for old Ruby
9f3e90ad10
2020-12-23 18:32:24 +09:00
Kenta Murata
aa856d5077 [ruby/date] Fix envutil for old Ruby
57e25c406a
2020-12-23 18:19:26 +09:00
Nobuyoshi Nakada
313d63c2ac
Use rb_init_identtable instead of direct use of rb_hashtype_ident 2020-12-23 18:06:27 +09:00
Koichi Sasada
e052d07163 Revert "need to clear blocking cnt at fork (child process)"
This reverts commit 0dd4896175.

It breaks the tests on RUBY_DEBUG=1.
2020-12-23 16:55:36 +09:00
Takashi Kokubun
81a8d1cf09
Skip checking ROBJECT_EMBED
when we already check ROBJECT_NUMIV(self) is larger than
ROBJECT_EMBED_LEN_MAX at the beginning of the method, because the number
of instance variables for the same object doesn't decrease.

```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=4 --alternate --output=all benchmark_3000.yml
before --jit: ruby 3.0.0dev (2020-12-23T06:32:19Z master dbb4f19969) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-23T07:45:42Z master 95e866c098) +JIT [x86_64-linux]
last_commit=Skip checking ROBJECT_EMBED
Calculating -------------------------------------
                              before --jit           after --jit
Optcarrot 3000 frames   102.34091772397872    102.77738408379015 fps
                        103.37784821624231    105.46530219076179
                        104.39567016876369    106.43712452152215
                        105.31782092252713    106.54986150067481
```
2020-12-22 23:50:43 -08:00
Takashi Kokubun
dbb4f19969
Allow inlining Integer#-@ and #~
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark/mjit_integer.yml --filter '(comp|uminus)'
before --jit: ruby 3.0.0dev (2020-12-23T05:41:44Z master 0dd4896175) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-23T06:25:41Z master 8887d78992) +JIT [x86_64-linux]
last_commit=Allow inlining Integer#-@ and #~
Calculating -------------------------------------
                     before --jit  after --jit
        mjit_comp(1)      44.006M      70.417M i/s -     40.000M times in 0.908967s 0.568042s
      mjit_uminus(1)      44.333M      68.422M i/s -     40.000M times in 0.902255s 0.584603s

Comparison:
                     mjit_comp(1)
         after --jit:  70417331.4 i/s
        before --jit:  44005980.4 i/s - 1.60x  slower

                   mjit_uminus(1)
         after --jit:  68422468.8 i/s
        before --jit:  44333371.0 i/s - 1.54x  slower
```
2020-12-22 22:32:19 -08:00
Marc-Andre Lafortune
daec109f42 [ruby/psych] Optimize cache with compare_by_identity
Using `compare_by_identity` gives a 4x performance boost on cache hits.
Benchmark in https://github.com/JuanitoFatas/fast-ruby/issues/189
2020-12-23 01:08:38 -05:00
Marc-Andre Lafortune
c5a445d577 [ruby/psych] Make Ractor-ready.
Config is Ractor-local.

Benchmarking reveals that using `Ractor.local_storage` for storing cache
is similar to accessing a constant (~15% slower).
2020-12-23 01:08:38 -05:00
Marc-Andre Lafortune
3ee0ad9190 [ruby/psych] Don't use instance variables directly for config 2020-12-23 01:08:38 -05:00
Marc-Andre Lafortune
d1963adae8 [ruby/psych] Avoid methods depending on bindings
Improves Ractor-readiness.
2020-12-23 01:08:38 -05:00
Marc-Andre Lafortune
0eb94dae4a [ruby/psych] Freeze constants.
Improves Ractor-readiness.
2020-12-23 01:08:38 -05:00
Koichi Sasada
0dd4896175 need to clear blocking cnt at fork (child process) 2020-12-23 14:41:44 +09:00
Hiroshi SHIBATA
5cf25c55a6
Update version for Ractor-safe extensions 2020-12-23 14:03:54 +09:00
Hiroshi SHIBATA
61bd28b836
[ruby/date] Workaround for non-ruby repository like ruby/date, flori/json
1ff7fa2d80
2020-12-23 13:53:40 +09:00
Nobuyoshi Nakada
8a1e12499b Ensure non-literal expressions shareable if leteral 2020-12-23 13:50:42 +09:00
Nobuyoshi Nakada
c0a2d95cf3 Update rb_ractor_ensure_shareable
* Fixed use of rb_ractor_shareable_p
* Raise Ractor::IsolationError
2020-12-23 13:50:42 +09:00
Nobuyoshi Nakada
b2aa21b868 Split the test 2020-12-23 13:50:42 +09:00
Nobuyoshi Nakada
d1c7db9d00 Added assertions 2020-12-23 13:50:42 +09:00
Nobuyoshi Nakada
0c450b8647 begin ... end is not a literal 2020-12-23 13:50:42 +09:00
Nobuyoshi Nakada
e70206f570 Added dedicated helper methods 2020-12-23 13:50:42 +09:00
Nobuyoshi Nakada
7a094146e6 Changed shareable literal semantics [Feature #17397]
When `literal`, check if the literal about to be assigned to a
constant is ractor-shareable, otherwise raise `Ractor::Error` at
runtime instead of `SyntaxError`.
2020-12-23 13:50:42 +09:00
Hiroshi SHIBATA
f14aaa2b12
Guard < Ruby 3.0 for the repositories of default gems. 2020-12-23 13:44:47 +09:00
Koichi Sasada
7e44ade565 ruby_single_main_ractor should be clear before warn
rb_warn can produce T_HASA object and it should not use
transient heap.
2020-12-23 13:39:48 +09:00
Marc-Andre Lafortune
02233ed024 Adapt tool/search-cgvars.rb for MacOS 2020-12-22 22:25:41 -05:00
Marc-Andre Lafortune
3df3b47187 Add tool/search-cgvars.rb, thanks @ko1 2020-12-22 22:25:41 -05:00
Kazuhiro NISHIYAMA
082114da05
[DOC] Add doc to sharing_detection= [ci skip]
Before:
```
$ ri sharing_detection=
= .sharing_detection=
(from ruby core)
=== Implementation from PP
------------------------------------------------------------------------
  sharing_detection=(b)
------------------------------------------------------------------------
Returns the sharing detection flag as a boolean value. It is false by
default.
```

After:
```
$ ri sharing_detection=
= .sharing_detection=

(from ruby core)
=== Implementation from PP
------------------------------------------------------------------------
  sharing_detection=(b)

------------------------------------------------------------------------

Sets the sharing detection flag to b.
```
2020-12-23 11:13:50 +09:00
Hiroshi SHIBATA
339227363c Merge RubyGems 3.2.3 and Bundler 2.2.3 2020-12-23 10:17:41 +09:00
Nobuyoshi Nakada
733ed1e184 ripper: fix bad label parameter handling [Bug #17425] 2020-12-23 09:56:35 +09:00
Marc-Andre Lafortune
cd63f0358f [ruby/etc] Make Ractor safe 2020-12-22 19:46:07 -05:00
Marc-Andre Lafortune
3286380ebc [ruby/etc] Refactor locks using mutex API 2020-12-22 19:46:07 -05:00
Kenta Murata
9636d14f6f
[memory_view] Acquire VM lock while running exported_object_registry_free
exported_object_registry is freed at exit, so this change is just in case.
2020-12-23 09:24:55 +09:00
Kenta Murata
01ab29cc28
[memory_view] Make some rb_memroy_view_t members const 2020-12-23 09:24:55 +09:00
Kenta Murata
db0385d657
[memory_view] Remove needless use of StringValueCStr 2020-12-23 09:24:54 +09:00
Kenta Murata
b3ea828c8e
[memory_view] Add mdview_release_view for test 2020-12-23 09:24:54 +09:00
Kenta Murata
74652e640a
[memory_view][fiddle] Rename len to byte_size in rb_memory_view_t 2020-12-23 09:24:53 +09:00
Kenta Murata
05014dcb88
[memory_view][fiddle] Use bool for boolean return value 2020-12-23 09:05:07 +09:00
Marcus Stollsteimer
74a3569b59 NEWS: fix typos and grammar 2020-12-22 23:20:14 +01:00
aycabta
841d22ea47 [ruby/reline] [ruby/irb] Handle multiple newlines in a token correctly
Co-authored-by: manga_osyo <manga.osyo@gmail.com>
Co-authored-by: ima1zumi <mariimaizumi5@gmail.com>

c59a9be82f

a7922da16b
2020-12-23 06:06:07 +09:00
Takeru Naito
be5faa2519 [ruby/irb] Make it possible to use measure even if it is installed as gem
Include the file that implements this command in the irb gem.

Co-Authored-By: scivola <scivola@users.noreply.github.com>

d8dfea5b57
2020-12-23 06:06:07 +09: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
Delton Ding
f1591b3858 Add verbose nil in testing 2020-12-23 03:27:14 +09:00