summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-11-27Avoid unloading units which have enough total_callsTakashi Kokubun
instead of just unloading worst 10% methods.
2020-11-27Log when JIT compaction is skipped due to ISeq GCTakashi Kokubun
2020-11-28* 2020-11-28 [ci skip]git
2020-11-27Run unload_units in the JIT worker threadTakashi Kokubun
to avoid "Too many JIT code, but skipped unloading units for JIT compaction". Now we can forget the `in_compact` locking. Moving some functions from mjit.c to mjit_worker.c because mjit_worker.c should have functions executed in the JIT worker.
2020-11-27Update to ruby/spec@c4170a3Benoit Daloze
2020-11-27Update to ruby/spec@ac878adBenoit Daloze
2020-11-27Update to ruby/mspec@b58e665Benoit Daloze
2020-11-27Use opaque struct pointer than voidNobuyoshi Nakada
2020-11-27configure.ac: Check x86intrin.h only when the target CPU is x86Yusuke Endoh
The check output a warning on M1 Mac mini http://rubyci.s3.amazonaws.com/osx1100arm/ruby-master/log/20201127T074507Z.log.html.gz ``` checking x86intrin.h usability... no checking x86intrin.h presence... yes configure: WARNING: x86intrin.h: present but cannot be compiled configure: WARNING: x86intrin.h: check for missing prerequisite headers? configure: WARNING: x86intrin.h: see the Autoconf documentation configure: WARNING: x86intrin.h: section "Present But Cannot Be Compiled" configure: WARNING: x86intrin.h: proceeding with the compiler's result checking for x86intrin.h... no ``` Notes: Merged: https://github.com/ruby/ruby/pull/3820
2020-11-27Clarify spec and change of behavior for Random::DEFAULTBenoit Daloze
2020-11-27Cache access to reg_cfp->self on JITTakashi Kokubun
``` $ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml before --jit: ruby 3.0.0dev (2020-11-27T06:41:15Z master 8ce1711c25) +JIT [x86_64-linux] after --jit: ruby 3.0.0dev (2020-11-27T08:36:02Z master 2c592126b9) +JIT [x86_64-linux] last_commit=Cache access to reg_cfp->self on JIT Calculating ------------------------------------- before --jit after --jit Optcarrot Lan_Master.nes 82.40522392468650 82.66023870551237 fps 82.67998539899482 83.08660305312587 85.51280693947453 87.09311989553235 86.32925337181406 87.16115255191410 87.35617494926235 87.30699391518075 87.91865339426212 88.47590342996875 88.11573661006648 88.64778616696353 88.16060826662158 88.67015079203991 88.21639244865058 89.19630739497482 88.47241577897603 89.23443637947730 89.37087287229809 89.57052723997015 89.46969964699964 89.97803363889025 ```
2020-11-27mark default_randKoichi Sasada
default_rand can points a Bignum seed, so it should be marked.
2020-11-27per-ractor Random::DEFAULTKoichi Sasada
Random generators are not Ractor-safe, so we need to prepare per-ractor default random genearators. This patch set `Random::DEFAULT = Randm` (not a Random instance, but the Random class) and singleton methods like `Random.rand()` use a per-ractor random generator. [Feature #17322] Notes: Merged: https://github.com/ruby/ruby/pull/3813
2020-11-26Revert "Set VM_FRAME_FLAG_FINISH at once on MJIT"Takashi Kokubun
This reverts commit 4d2c8edca69884a41d2f843d36023e3decdb9872. Unfortunately this seems to cause several issues: https://github.com/ruby/ruby/runs/1462188376?check_suite_focus=true http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3272802
2020-11-26Set VM_FRAME_FLAG_FINISH at once on MJITTakashi Kokubun
Performance is probably improved? $ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml before --jit: ruby 3.0.0dev (2020-11-27T04:37:47Z master 69e77e81dc) +JIT [x86_64-linux] after --jit: ruby 3.0.0dev (2020-11-27T05:28:19Z master df6b05c6dd) +JIT [x86_64-linux] last_commit=Set VM_FRAME_FLAG_FINISH at once Calculating ------------------------------------- before --jit after --jit Optcarrot Lan_Master.nes 80.89292998533379 82.19497327502751 fps 80.93130641142331 85.13943315260148 81.06214830270119 87.43757879797808 82.29172808453910 87.89942441487113 84.61206450455929 87.91309779491075 85.44545883567997 87.98026086648694 86.02923132404449 88.03081060383973 86.07411817365879 88.14650206137341 86.34348799602836 88.32791633649961 87.90257338977324 88.57599644892220 88.58006509876580 88.67426384743277 89.26611118140011 88.81669430874207 This should have no bad impact on VM because this function is ALWAYS_INLINE.
2020-11-26Run rb_print_backtrace first on ruby_on_ciTakashi Kokubun
Unfortunately we couldn't see a C backtrace with the previous commit http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/3272697.
2020-11-26Call rb_bug_without_die on CITakashi Kokubun
when GC.compact's SEGV handler is installed
2020-11-27Separated tests for $KCODE and $=Nobuyoshi Nakada
2020-11-27[DOC] Mersenne Twister isn't cryptographically secure [ci skip]Nobuyoshi Nakada
2020-11-27* 2020-11-27 [ci skip]git
2020-11-26Always clean up leftovers at ci.rvm.jpTakashi Kokubun
to prevent failures like http://ci.rvm.jp/logfiles/brlog.trunk-mjit.20201126-182515. Since fa1250a506e9b6a1bcbf664f6b7b9c06e045d9b9, it should be safe to do this.
2020-11-26Store all kinds of syntax errors [Bug #17345]Nobuyoshi Nakada
2020-11-26Removed a duplicate assertionNobuyoshi Nakada
2020-11-26Update TypeProf to 0.7.0Yusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/3812
2020-11-26Keep patched zlib filesNobuyoshi Nakada
2020-11-25Prefer rb_module_new() over rb_define_module_id()Alan Wu
rb_define_module_id() doesn't do anything with its parameter so it's a bit confusing.
2020-11-26* 2020-11-26 [ci skip]git
2020-11-25Disable auto compaction on platforms that can't support itAaron Patterson
Both explicit compaction routines (gc_compact and the verify references form) need to clear the heap before executing compaction. Otherwise some objects may not be alive, and we'll need the read barrier. The heap must only contain *live* objects if we want to disable the read barrier during explicit compaction. The previous commit was missing the "clear the heap" phase from the "verify references" explicit compaction function. Fixes [Bug #17306]
2020-11-25should stop other ractors on transient_heap_evacuateKoichi Sasada
transient_heap_evacuate() evacuates all living objects from theap to malloc mangaed memory. This evacuation can run in any ractors in parallel with other ractor's execution and it is danger. To stop such danger parallel execution, use rb_vm_barrier() to stop all other ractors.
2020-11-25fix error messageKoichi Sasada
2020-11-25show the error message before Ractor.yieldKoichi Sasada
Ractor's error will be printed if Thread#report_on_exception is true (default), and error message is used. Without this patch, the exception object is sent by Ractor.yield and it can be shared with another ractor. http://ci.rvm.jp/results/trunk-random3@phosphorus-docker/3269368 To prevent such sharing, show errors befor Ractor.yield().
2020-11-24Revert "Disable auto compaction on platforms that can't support it"Aaron Patterson
This reverts commit 63ad55cd882e4010fe313d271af006a430b5ffa8. Revert "Disable read barrier on explicit compaction request" This reverts commit 490b57783d80f0c5f7882c66d9fb6aa02713c9a5.
2020-11-24Report a full_message on a worker crashTakashi Kokubun
A worker crash happens very often, but we're not sure why. I'd like to know a backtrace if it's available.
2020-11-24Skip test_ractor.rb:137 for --jit-min-calls=5Takashi Kokubun
It's failing like http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3270373 but I have no bandwidth to fix it for now. We're still checking --jit-wait (without --jit-min-calls=5) on GitHub Actions.
2020-11-24Report a more detailed situation of test_ractor.rb:137Takashi Kokubun
This test has been very unstable. I'd like to instantly know whether it's always failing or random when I look at a CI failure output.
2020-11-24Overwrite all existing files when extracting zlibTakashi Kokubun
To prevent CI failure like https://ci.appveyor.com/project/ruby/ruby/builds/36494552/job/a3ow8atl19786tep
2020-11-24Disable auto compaction on platforms that can't support itAaron Patterson
Auto Compaction uses mprotect to implement a read barrier. mprotect can only work on regions of memory that are a multiple of the OS page size. Ruby's pages are a multiple of 4kb, but some platforms (like ppc64le) don't have 4kb page sizes. This commit disables the features on those platforms. Fixes [Bug #17306]
2020-11-24add HEAP_PAGE_SIZE to internal constantsAaron Patterson
2020-11-24Disable read barrier on explicit compaction requestAaron Patterson
We don't need a read barrier when the user calls `GC.compact` because we don't allow allocations during GC, and all references should be "live" Notes: Merged: https://github.com/ruby/ruby/pull/3809
2020-11-25* 2020-11-25 [ci skip]git
2020-11-24Detect the premature end of char property in regexpJeremy Evans
Default to ONIGERR_INVALID_CHAR_PROPERTY_NAME in fetch_char_property_to_ctype and only set otherwise if an ending } is found. Fixes [Bug #17340] Notes: Merged: https://github.com/ruby/ruby/pull/3807
2020-11-24Handle calloc failureTakashi Kokubun
for cfd8c7e6ca9f923cee3a062b548d0824fc67e9a5.
2020-11-23Prefer calloc/free over ZALLOC/xfreeTakashi Kokubun
To avoid SEGV like http://ci.rvm.jp/logfiles/brlog.trunk-mjit.20201124-061530
2020-11-24Add CSV 3.1.9 to NEWSSutou Kouhei
Notes: Merged: https://github.com/ruby/ruby/pull/3804
2020-11-24[ruby/csv] Add support for \r\n with skip_lines: /...$/ againSutou Kouhei
GitHub: fix GH-194 Reported by Josef Šimánek. Thanks!!! https://github.com/ruby/csv/commit/fd86afe081 Notes: Merged: https://github.com/ruby/ruby/pull/3804
2020-11-24[ruby/csv] Bump versionSutou Kouhei
https://github.com/ruby/csv/commit/e1b430d965 Notes: Merged: https://github.com/ruby/ruby/pull/3804
2020-11-24[ruby/csv] Removed needless editorconfig file (#192)Hiroshi SHIBATA
https://github.com/ruby/csv/commit/5623dee00e Notes: Merged: https://github.com/ruby/ruby/pull/3804
2020-11-24[ruby/csv] RDoc recipes for RFC-compliant generation (#187)Burdette Lamar
https://github.com/ruby/csv/commit/5adeaff91f Notes: Merged: https://github.com/ruby/ruby/pull/3804
2020-11-24[ruby/csv] RDoc recipes for diagnostics (#186)Burdette Lamar
https://github.com/ruby/csv/commit/d9e67918e2 Notes: Merged: https://github.com/ruby/ruby/pull/3804
2020-11-24[ruby/csv] RDoc Recipes for write converters and RFC 4180 compliance (#185)Burdette Lamar
https://github.com/ruby/csv/commit/bee48b04c4 Notes: Merged: https://github.com/ruby/ruby/pull/3804