64526 Commits

Author SHA1 Message Date
Hiroshi SHIBATA
034c19ce28
Merge json-2.5.1 2020-12-22 21:51:15 +09:00
Hiroshi SHIBATA
9b9cbbbc17
Update library versions of the default gems.
They are followed up with
  8fb02b7a97
2020-12-22 21:45:28 +09:00
Akinori MUSHA
96b8816793 Import set 1.0.1
- Eliminate warnings
- Convert rdoc to markdown
2020-12-22 21:41:44 +09:00
Hiroshi SHIBATA
f08cbdbf7d
Move the library to extensions for some of default gems 2020-12-22 20:55:41 +09:00
Samuel Williams
93a56a5e98 Update fiber scheduler documentation. 2020-12-22 23:51:02 +13:00
Hiroshi SHIBATA
edb76e8765 Prepare to release json-2.5.0 2020-12-22 19:44:27 +09:00
Marc-Andre Lafortune
f2f00e24fa [ruby/date] Make Ractor-compatible 2020-12-22 03:12:51 -05:00
Marc-Andre Lafortune
ee102de6d7 [ruby/date] Deep-freeze internal constants.
Probably not strictly necessary, but good principle anyways.
2020-12-22 03:12:51 -05:00
卜部昌平
7fbad92241 rb_cData: no longer exists
Commit 8918a9cf6c65409ae1ffcdea324a1b97c6e5bb70 introduced macro
`#define rb_cData rb_cData()`.  This deleting `VALUE rb_cData;`
declaration was then macro-expanded into `VALUE rb_cData();`.  This
worked by accident because the expanded expression happen to be a K&R
style function declaration.

This is rather complicated and I guess unintended.  Just delete the line
to keep things simple straight forward.
2020-12-22 16:18:17 +09:00
卜部昌平
7898bc9225 rb_cCont: no longer exists
Deleted well over a decade ago in commit 977d66ec993b0f1892fb3e4cd8ac.
2020-12-22 15:25:03 +09:00
Takashi Kokubun
15b81edd86
MJIT is enabled whenever an MJIT header is used
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=4 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-12-22T05:16:39Z master 692af8e8f8) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-22T06:05:59Z master d2ca23fdbc) +JIT [x86_64-linux]
last_commit=MJIT is enabled whenever an MJIT header is used
Calculating -------------------------------------
                             before --jit           after --jit
Optcarrot 180 frames    86.61115328062763     91.49245232931852 fps
                        90.18653732453176     92.31139517827663
                        91.29817884736318     93.84437713805814
                        92.76118222412521     93.91929147901106
```
2020-12-21 22:07:40 -08:00
Yuki Nishijima
95acd3c030 Sync did_you_mean 2020-12-22 14:42:32 +09:00
Takashi Kokubun
692af8e8f8
Prefer stdbool in vm_exec
Make the code a bit modern and consistent with some other places.
2020-12-21 21:16:39 -08:00
Yusuke Endoh
03f2b09320 NEWS.md: fix the format 2020-12-22 14:05:55 +09:00
卜部昌平
fee2913d0a Struct::Tms: delete
Has been deprecated since 44c53ee473d3b3973cb5c3ce03fbf4f280fd75ff.
2020-12-22 13:52:18 +09:00
卜部昌平
fa356a798a Enumerator.new: raise unless block given
Has been deprecated since c73b6bd7ebd01133538c645566944132dbde4d13.
[Feature #17116] [ruby-dev:50945]
2020-12-22 13:52:03 +09:00
Koichi Sasada
7204b81bcb fix to use rb_ractor_id()
Catch up recent changes on USE_RUBY_DEBUG_LOG=1.
2020-12-22 12:59:47 +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
Akinori MUSHA
3fa4bd8292 Import set 1.0.0
- SortedSet has been removed for dependency and performance reasons.
- Set#join is added as a shorthand for `.to_a.join`.
- Set#<=> is added.

https://github.com/ruby/set/blob/v1.0.0/CHANGELOG.md
2020-12-22 12:20:21 +09:00
Akinori MUSHA
63b872c409 Prepare for importing the set gem 2020-12-22 12:17:47 +09:00
Marc-Andre Lafortune
d0050edb84 Update Fiber#backtrace doc [See bug #17408] 2020-12-21 21:07:13 -05:00
zverok
843fd1e8cf Document Fiber#backtrace and #backtrace_locations 2020-12-21 19:22:38 -05:00
zverok
816bbfdc87 Document Proc#== 2020-12-21 19:22:38 -05:00
zverok
861dbd9506 Random instance methods 2020-12-21 19:22:38 -05:00
zverok
4728c0d900 Add Symbol#name and freezing explanation to #to_s 2020-12-21 19:22:38 -05:00
Yusuke Endoh
4a18cc7f60 NEWS.md: mention the behavior change of Binding#eval
[Bug #17419]
2020-12-22 09:04:54 +09:00
Marc-Andre Lafortune
91773ddd26 Remove debugging code 2020-12-21 18:56:46 -05:00
nagachika
831f785068 [DOC] Fix typo in Ractor.make_shareable documentation. 2020-12-22 08:08:27 +09:00
Nobuyoshi Nakada
a29b9e5efe
Remvoed no longer needed version guards 2020-12-22 07:52:14 +09:00
Koichi Sasada
c34c6a89cb fix ractor's doc. [ci skip] 2020-12-22 06:09:42 +09:00
Koichi Sasada
520dcbd600 reset cache before iterating
cee02d754d76563635c1db90d2ab6c01f8492470 resets pCMC and `me`
will be a invalidated and continuing the invalidated `me`,
it will break the data structure. This patch tris to clear
all methods of specified class before manipulating the `me`s.
[Issue #17417]
2020-12-22 06:09:30 +09:00
Koichi Sasada
d0e4ccbefc add Ractor.main
It returns main Ractor, like Thread.main.
[Feature #17418]
2020-12-22 05:54:14 +09:00
Koichi Sasada
35471a9487 add Ractor#[]/#[]= for ractor local storage
This API is similar to plain old Thread#[]/Fiber#[] interface
with symbol key.
2020-12-22 05:26:32 +09:00
Marc-Andre Lafortune
8f2031a067 Ractor#to_s as #inspect 2020-12-21 13:31:00 -05:00
Nobuyoshi Nakada
8918a9cf6c Removed rb_cData entity
* Use the wrapper of rb_cObject instead of data access
* Replaced rest of extentions
* Updated the version guard for Data
* Added the version guard of rb_cData
2020-12-22 02:51:49 +09:00
卜部昌平
c30f03d328 Data: delete
Has been deprecated since 684bdf6171b76f5bc5e4f05926a5ab01ec2b4fd5.

Matz says in [ruby-core:83954] that Data should be an alias of Object.
Because rb_cData has not been deprecated, let us deprecate the constant
to make it a C-level synonym of rb_cObject.
2020-12-22 02:51:49 +09:00
Kazuki Tsujimoto
5c0abe2d94
Update documentation for pattern matching 2020-12-22 02:08:57 +09:00
git
208f7d7c80 * 2020-12-22 [ci skip] 2020-12-22 00:03:21 +09:00
Koichi Sasada
02d9524cda separate rb_ractor_pub from rb_ractor_t
separate some fields from rb_ractor_t to rb_ractor_pub and put it
at the beggining of rb_ractor_t and declare it in vm_core.h so
vm_core.h can access rb_ractor_pub fields.

Now rb_ec_ractor_hooks() is a complete inline function and no
MJIT related issue.
2020-12-22 00:03:00 +09:00
Koichi Sasada
a2950369bd TracePoint.new(&block) should be ractor-local
TracePoint should be ractor-local because the Proc can violate the
Ractor-safe.
2020-12-22 00:03:00 +09:00
Nobuyoshi Nakada
c7a5cc2c30
Replaced magic numbers tr table 2020-12-21 23:45:38 +09:00
Naohisa Goto
84eebb3c9e On Solaris, _XOPEN_SOURCE should be undefined for C++ sources. 2020-12-21 23:42:34 +09:00
Koichi Sasada
91e2f08a6a export rb_eRactorIsolationError for MJIT
https://ci.appveyor.com/project/ruby/ruby/builds/36942168/job/7ugrpk0pndoly9wp
```
_ruby_mjit_p11920u0.c
C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.c(14) : warning C4005: 'GET_SELF' : macro redefinition
        c:\projects\ruby\vm_insnhelper.h(111) : see previous definition of 'GET_SELF'
   Creating library C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.lib and object C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.exp
_ruby_mjit_p11920u0.obj : error LNK2001: unresolved external symbol rb_eRactorIsolationError
C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.so : fatal error LNK1120: 1 unresolved externals
```
2020-12-21 23:28:05 +09:00
Kenta Murata
0b6a80c0be
[json] Avoid method redefinition 2020-12-21 22:41:24 +09:00
Koichi Sasada
dca6752fec Introduce Ractor::IsolationError
Ractor has several restrictions to keep each ractor being isolated
and some operation such as `CONST="foo"` in non-main ractor raises
an exception. This kind of operation raises an error but there is
confusion (some code raises RuntimeError and some code raises
NameError).

To make clear we introduce Ractor::IsolationError which is raised
when the isolation between ractors is violated.
2020-12-21 22:29:05 +09:00
Kenta Murata
8c0c61728f
NEWS: JSON is Ractor compatible [ci skip] 2020-12-21 22:16:02 +09:00
Kenta Murata
14d7d1df25
[json] Make json Ractor safe 2020-12-21 22:10:43 +09:00
Kenta Murata
4c2e7f26bd
[json] JSON_parse_float: Fix how to convert number
Stop BigDecimal-specific optimization.  Instead, it tries the conversion
methods in the following order:

1. `try_convert`,
2. `new`, and
3. class-named function, e.g. `Foo::Bar.Baz` function for `Foo::Bar::Baz` class

If all the above candidates are unavailable, it fallbacks to Float.
2020-12-21 22:10:43 +09:00
Kenta Murata
596da98b3f
[json] Make JSON.create_id thread-safe 2020-12-21 22:10:42 +09:00