summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-10-28Remove another unnecessary testAaron Patterson
Same as 5be42c1ef4f7ed0a8004cad750a9ce61869bd768
2020-10-28Remove unnecessary conditionalAaron Patterson
As of 0b81a484f3453082d28a48968a063fd907daa5b5, `ROBJECT_IVPTR` will always return a value, so we don't need to test whether or not we got one. T_OBJECTs always come to life as embedded objects, so they will return an ivptr, and when they become "unembedded" they will have an ivptr at that point too
2020-10-28If an object isn't embedded it will have an ivptrAaron Patterson
We don't need to check the existence if an ivptr because non-embedded objects will always have one
2020-10-29* 2020-10-29 [ci skip]git
2020-10-28`dest` is always embedded so we can remove this checkAaron Patterson
Notes: Merged: https://github.com/ruby/ruby/pull/3713
2020-10-28compile.c: separate compile_builtin_function_call (#3711)Kenta Murata
Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-10-28Added benchmark of vm_send by variable [ci skip]Nobuyoshi Nakada
2020-10-28* 2020-10-28 [ci skip]git
2020-10-28test/ruby/test_rational.rb: Prevent "assigned but unused variable"Yusuke Endoh
2020-10-27Revert "Fixed typo"Nobuyoshi Nakada
This reverts commit 379a5ca539af0e954b1cdf63b9365ad208b9c7f3. This "typo" is intentional to test the transposition detection by did_you_mean.
2020-10-27Fixed typoHiroshi SHIBATA
2020-10-27Separate `send` into `public_send` and `__send__`Nobuyoshi Nakada
2020-10-27Removed unused environment variableNobuyoshi Nakada
2020-10-27[DOC] more precise description of "**" in Dir.glob pattern [ci skip]Nobuyoshi Nakada
2020-10-26Revert assert for debugging on CIAlan Wu
This reverts commit ac69849e49982ea83036c04c5d5f7245e3956a49. The bug seems to have been fixed.
2020-10-27freeze dynamic regexp literalsKoichi Sasada
Regexp literals are frozen, and also dynamically comppiled Regexp literals (/#{expr}/) are frozen. Notes: Merged: https://github.com/ruby/ruby/pull/3676
2020-10-27* 2020-10-27 [ci skip]git
2020-10-27freeze Process::StatusKoichi Sasada
It seems immutable information. Notes: Merged: https://github.com/ruby/ruby/pull/3671
2020-10-26Allow non-argument endless-def with a space instead of parenthesesNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3704
2020-10-26rational.c: convert a numerator to rational before calling fdiv in ↵Kenta Murata
Kernel.Rational() (#3702) This makes `Rational(BigDecimal(1), 60) == Rational(1, 60)`. [Bug #16518] Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-10-26Assoc pattern matching (#3703)Nobuyoshi Nakada
[Feature #17260] One-line pattern matching using tASSOC R-assignment is rejected instead. Notes: Merged-By: nobu <nobu@ruby-lang.org>
2020-10-26Ignore <internal: entries from core library methods for Kernel#warn(message, ↵Benoit Daloze
uplevel: n) * Fixes [Bug #17259] Notes: Merged: https://github.com/ruby/ruby/pull/3647
2020-10-26Add specs that #caller and #caller_locations include core library methods ↵Benoit Daloze
defined in Ruby Notes: Merged: https://github.com/ruby/ruby/pull/3647
2020-10-26Update to ruby/spec@b164536Benoit Daloze
2020-10-26Remove spec which is too difficult to get working with various compilersBenoit Daloze
* The spec means to use an actual system library function, not a wrapper.
2020-10-26[DOC] Expanded glob patterns for Dir.globNobuyoshi Nakada
No longer need to get rid of C block comments in builtin ruby script comments.
2020-10-26Include c_escape.rb in COMPILE_PRELUDENobuyoshi Nakada
template/prelude.c.tmpl requires tool/ruby_vm/helpers/c_escape.rb.
2020-10-26Escape '/*' within block comment tooNobuyoshi Nakada
2020-10-26Use gcc-specific pragma only on gcc (and the family)Nobuyoshi Nakada
2020-10-25Fix bootstrap-test error in previous commitJeremy Evans
2020-10-25Use 'shareable' with an 'e' [ci skip]Marc-Andre Lafortune
2020-10-26* 2020-10-26 [ci skip]git
2020-10-25Tweak a few Ractor tests that were missing comments [ci skip]Marc-Andre Lafortune
2020-10-25Remove trailing whitespace [ci skip]Marc-Andre Lafortune
2020-10-25Fix compilation on MSVCNobuyoshi Nakada
* cast scalar value instead of function * use `rb_pid_t` for the portability
2020-10-25[DOC] refined "**" description in `Dir.glob` [ci skip]Nobuyoshi Nakada
As same as the description for `File.fnmatch`. [Bug #17283]
2020-10-25* 2020-10-25 [ci skip]git
2020-10-25Try to fix compilation on MSVCBenoit Daloze
2020-10-24Update to ruby/spec@4f59d86Benoit Daloze
2020-10-24Update to ruby/mspec@b56e7a2Benoit Daloze
2020-10-24* 2020-10-24 [ci skip]git
2020-10-24Tweaks for the ruby/spec workflowBenoit Daloze
2020-10-23numeric.c, range.c: prohibit zero stepKenta Murata
* numeric.c: prohibit zero step in Numeric#step * range.c: prohibit zero step in Range#step * Fix ruby-spec [Feature #15573] Notes: Merged: https://github.com/ruby/ruby/pull/3689 Merged-By: mrkn <mrkn@ruby-lang.org>
2020-10-22Assert in_gc >= 0 instead of guarding it (#3687)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2020-10-23.github/workflows/spec_guards.yml add卜部昌平
Translate a part of .travis.yml into GitHub Actions workflow. Notes: Merged: https://github.com/ruby/ruby/pull/3685
2020-10-22mutete -> mutateAlan Wu
2020-10-22Fix small typo in comment in lib/irb.cAndrew Kerr
Notes: Merged: https://github.com/ruby/ruby/pull/3688
2020-10-23* 2020-10-23 [ci skip]git
2020-10-22Revert "Add assertions when inline caches are copied to MJIT"Aaron Patterson
This reverts commit 6cb6d5abc36ede9d5158c2cd90734134838e6bfb. This reverts commit 1484b786aee8d411a9e2278ac6d6e44aedbf6662. I think we don't need these assertions anymore. I believe the problem is solved by abf678a4397c6c00a1bb686043e377d372e695a4
2020-10-22Use a lock level for a less granular lock.Aaron Patterson
We are seeing an error where code that is generated with MJIT contains references to objects that have been moved. I believe this is due to a race condition in the compaction function. `gc_compact` has two steps: 1. Run a full GC to pin objects 2. Compact / update references Step one is executed with `garbage_collect`. `garbage_collect` calls `gc_enter` / `gc_exit`, these functions acquire a JIT lock and release a JIT lock. So a lock is held for the duration of step 1. Step two is executed by `gc_compact_after_gc`. It also holds a JIT lock. I believe the problem is that the JIT is free to execute between step 1 and step 2. It copies call cache values, but doesn't pin them when it copies them. So the compactor thinks it's OK to move the call cache even though it is not safe. We need to hold a lock for the duration of `garbage_collect` *and* `gc_compact_after_gc`. This patch introduces a lock level which increments and decrements. The compaction function can increment and decrement the lock level and prevent MJIT from executing during both steps. Notes: Merged: https://github.com/ruby/ruby/pull/3683