summaryrefslogtreecommitdiff
path: root/test/lib/jit_support.rb
AgeCommit message (Collapse)Author
2021-12-27Fix test_rubyoptions for MinGW (#5363)Takashi Kokubun
* Fix test_rubyoptions for MinGW follows up a74a2f456ad549025861be80f50cc3f0dd6646dd * Require jit_support * Fix MinGW platform * Handle MinGW UCRT and fix the prefix * Make it more robust Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-12-13Prepare for removing RubyVM::JIT (#5262)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-12-13Rename --jit to --mjit (#5248)Takashi Kokubun
* 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 Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-10-20Disable YJIT in MJIT testsAaron Patterson
2021-01-13Rename RubyVM::MJIT to RubyVM::JITTakashi Kokubun
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]
2020-12-04Guard all accesses to RubyVM::MJIT with defined?(RubyVM::MJIT) &&Benoit Daloze
* Otherwise those tests, etc cannot run on alternative Ruby implementations.
2020-05-12test/lib/jit_support.rb: Let JIT tests skip on centos8Yusuke Endoh
It has the same issue as RHEL 8. k0kubun said he will fix later
2020-05-03Split compile and link for MinGW supportTakashi Kokubun
MinGW test_jit fails with no error message. Perhaps linker flags should not be passed when compilation is happening. Anyway splitting these stages doesn't matter for performance. So let me just split it to fix the issue. Probably this helps Solaris's issue too.
2020-05-03Debug Solaris's MJIT failureTakashi Kokubun
using -Winvalid-pch https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200501T170004Z.fail.html.gz
2020-05-03Skip pdb corruption on Visual Studio 2015 as wellTakashi Kokubun
It turned out that the pdb corruption happens on Visual Studio 2015 as well. https://ci.appveyor.com/project/ruby/ruby/builds/32602953/job/3gj43q18wqeiy729
2020-05-01Skip Solaris RubyCI TestJIT for nowTakashi Kokubun
to be investigated later https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200501T160004Z.fail.html.gz
2020-05-01Skip MinGW TestJIT* and macOS TestJITDebug failuresTakashi Kokubun
caused by 818d6d33368a396d9cd3d1a34a84015a9e76c5c8, for now. I'll take a look at them tomorrow.
2020-04-20Skip JIT tests on riscv64 due to SEGV of cc1Yusuke Endoh
2020-04-18The pdb header error is printed at stdoutTakashi Kokubun
https://ci.appveyor.com/project/ruby/ruby/builds/32278754/job/90jmky2jq2k0wjv8
2020-04-17Compilation error does not impact exit statusTakashi Kokubun
We failed to ignore https://ci.appveyor.com/project/ruby/ruby/builds/32245902/job/xcfxw67uexxysvni
2020-04-13Fix logic to detect vs120Takashi Kokubun
MJIT_CC seems not defined https://ci.appveyor.com/project/ruby/ruby/builds/32161572/job/u5sw8yn4in87heki
2020-04-13Add missing call in 70b7304f03Takashi Kokubun
2020-04-13Ignore AppVeyor vs120's pdb corruptionTakashi Kokubun
We tried to fix this like https://github.com/ruby/ruby/pull/3029, but it didn't work. The failure has never been helpful for developing MJIT, and currently it's not prioritized to be fixed. Until we try to figure out the root cause on AppVeyor vs120, let's optionally disable testing when the random corruption happens.
2020-03-30Optimize exivar access on JIT-ed getivarTakashi Kokubun
JIT support of dd723771c11. $ benchmark-driver -v --rbenv 'before;before --jit;after --jit' benchmark/mjit_exivar.yml --repeat-count=4 before: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) [x86_64-linux] before --jit: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) +JIT [x86_64-linux] after --jit: ruby 2.8.0dev (2020-03-31T05:57:24Z mjit-exivar 128625baec) +JIT [x86_64-linux] Calculating ------------------------------------- before before --jit after --jit mjit_exivar 57.944M 53.579M 54.471M i/s - 200.000M times in 3.451588s 3.732772s 3.671687s Comparison: mjit_exivar before: 57944345.1 i/s after --jit: 54470876.7 i/s - 1.06x slower before --jit: 53579483.4 i/s - 1.08x slower
2020-03-06Propagate JIT skip to all testsTakashi Kokubun
2020-03-04test/lib/jit_support.rb: The path to icc was changedYusuke Endoh
2019-12-05test/lib/jit_support.rb: Update the regexp for iccYusuke Endoh
MJIT_CC is always an absolute path.
2019-12-04Prefer using MJIT_CC for JIT support checkTakashi Kokubun
because Solaris might have CC=cc and we'd like to check full path MJIT_CC=/opt/developerstudio12.5/bin/cc instead.
2019-12-01Check MJIT support in one placeTakashi Kokubun
to fix test failure on trunk-no-mjit https://gist.github.com/ko1/32ab982ffd7555988818773c08f97123
2019-10-15Enforce --jit-debug test by another wayTakashi Kokubun
2019-09-26RubyVM::MJIT.pause(wait: true) should waitTakashi Kokubun
for all compilations and compaction. Prior to this commit, the last-compiled code has not been used because MJIT worker is stopped before setting the code, and compaction has also been skipped. But it was not intentional and `wait: true` pause should wait until those two things by its feature.
2019-09-01Automatically detect missing symbolsTakashi Kokubun
which are usually optimized away by -O3. This CI can detect missing exports like ea84a680755b5a7fa700618cbe78e3b2fc7be01d which was needed for 761346a9604ca2c79777d1d67fb5dcc3c30dbf69.
2019-07-09Restore support library for only test files.Hiroshi SHIBATA
2019-07-02Move to tool/lib from test/lib.Hiroshi SHIBATA
2019-01-10test_jit.rb: change format of test error outputk0kubun
to avoid breaking redmine quote like https://bugs.ruby-lang.org/issues/15522 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28jit_support.rb: deal with -std=c99 flagk0kubun
CC is changed from "icc" to "icc -std=c99" by r66605. https://rubyci.org/logs/rubyci.s3.amazonaws.com/icc-x64/ruby-trunk/log/20181228T130003Z.fail.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-27jit_support.rb: skip testing MJIT on oracle developer studiok0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-07mjit_build_dir: separate MJIT_BUILD_DIRnobu
* Makefile.in (mjit_build_dir.so): separate MJIT_BUILD_DIR to eliminate the feature for test-all after installation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06Revert "mjit_build_dir: separate MJIT_BUILD_DIR"nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06mjit_build_dir: separate MJIT_BUILD_DIRnobu
* Makefile.in (mjit_build_dir.so): separate MJIT_BUILD_DIR to eliminate the feature for test-all after installation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-22revisit more MJIT test skipsk0kubun
r65308 passed both trunk-mjit and trunk-mjit-wait CIs. MJIT copy job looks working fine. Then this commit skips 5 more tests. Some of them were skipped in a very early stage and may still need to be skipped, but I want to confirm them since they haven't been changed for a long time. And this prefers having inline information on `RubyVM::MJIT.enabled?`. This commit makes it easier to confirm whether there's suspicious test skip by RubyVM::MJIT.enabled? or not. After this commit, tentatively we're not skipping tests for MJIT other than `assert_no_memory_leak` ones. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20require 'rbconifg' earlier.ko1
* test/lib/jit_support.rb: require rbconfig here. * test/ruby/test_jit.rb: rbconfig should be required before. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-19test/lib/jit_support.rb: continue to skip test_jitk0kubun
for icc since it's not supported yet but running on rubyci. This reverts some part of r65175, r65176 and r65177. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-19test/lib/jit_support.rb: fire test_jit everywherek0kubun
That was a workaround to make rubyci green for a short term after the MJIT merge. As we've done many portability fixes for MJIT, let's try running test_jit on all rubyci platforms. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-09mjit.c: add :wait option to RubyVM::MJIT.pausek0kubun
and wait until JIT queue is flushed when wait option is not passed or `wait: true` is passed. vm.c: ditto test/ruby/test_rubyvm_mjit.rb: added test for pause/resume test/lib/jit_support.rb: allow retrying MJIT on JITSupport level test/ruby/test_jit.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-31mjit.c: allow using MJIT header in build directoryk0kubun
when $MJIT_SEARCH_BUILD_DIR is set. If prefix path is owned by root, `make install` needs to be run by root. But in general we don't want to run `make test-all`, and also running `make test-all` currently fails due to permission tests of rdoc and rubygems. Thus, prior to this commit, specifying a prefix like "/usr/local" could mean there was no way to pass test-all. So we should not depend on `make install` for `make test-all`. Thus I reverted r64104 and r64103, and applied this workaround to pass `make test-all` without `make install`. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-27test_jit.rb: test unload_unitsk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-05test/lib/jit_support.rb: spelling: s/skiped/skipped/normal
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-05-27jit_support.rb: debug check_support stderrk0kubun
rubyci freebsd11zfs doesn't pass this check. I want to know the stderr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-05-27jit_support.rb: cahce JIT support checkk0kubun
* Before make test-all -C .ruby-svn TESTS="../test/ruby/test_jit.rb" 22.40s user 5.38s system 91% cpu 30.196 total * After make test-all -C .ruby-svn TESTS="../test/ruby/test_jit.rb" 12.91s user 3.33s system 91% cpu 17.648 total Also, this makes it easier to check if JIT is actually tested, by showing warning on stderr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-28test_open3.rb: let test_popen2 work with --jitk0kubun
test/lib/jit_support.rb: add .remove_mjit_logs to normalize stderr git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-27mjit.c: clean so file on Windowsnobu
* mjit.c (dlclose): use FreeLibrary to manage the reference count on the loaded module properly. * mjit.c (clean_so_file): clean shared object file after unloaded, in-use files cannot be removed on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-22test_rubyoptions.rb: don't test --jit if not supportedk0kubun
test/lib/jit_support.rb: carved out JITSupport test/ruby/test_jit.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e