summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2021-10-20Add a slowpath for opt_getinlinecacheAlan Wu
Before this change, when we encounter a constant cache that is specific to a lexical scope, we unconditionally exit. This change falls back to the interpreter's cache in this situation. This should help constant expressions in `class << self`, which is popular at Shopify due to the style guide. This change relies on the cache being warm while compiling to detect the need for checking the lexical scope for simplicity.
2021-10-20Fix excessive invalidation for opt_getinlinecacheAlan Wu
YJIT expects the VM to invalidate opt_getinlinecache when updating the constant cache, and the invalidation used to happen even when YJIT can't use the cached value. Once the first invalidation happens, the block for opt_getinlinecache becomes a stub. When the stub is hit, YJIT fails to compile the instruction as the cache is not usable. The stub becomes a block that exits for opt_getinlinecache which can be invalidated again. Some workloads that bust the interpreter's constant cache can create an invalidation loop with this behavior. Check if the cache is usable become doing invalidation to fix this problem. In the test harness, evaluate the test script in a lambda instead of a proc so `return` doesn't return out of the harness.
2021-10-20Implement invokebuiltinJohn Hawthorn
2021-10-20Add test for setlocalJohn Hawthorn
2021-10-20Specialize based on types of opt_asetJohn Hawthorn
2021-10-20Add tests against side exits for non-fixnumJohn Hawthorn
2021-10-20Revert "disable yjit when testing mjit"Aaron Patterson
This reverts commit e8622ce5c0a09c7213e4d536ddd0ef3ea68377ef.
2021-10-20Implement getspecialJohn Hawthorn
2021-10-20Add tests against opt_eq side exitsJohn Hawthorn
2021-10-20disable yjit when testing mjitAaron Patterson
2021-10-20Exit when the object is frozenAaron Patterson
Exit when the object is frozen, also add tests
2021-10-20Allow calling variadic cfuncs with many argsJohn Hawthorn
We have a check to ensure we don't have to push args on the stack to call a cfunc with many args. However we never need to use the stack for variadic cfuncs, so we shouldn't care about the number of arguments.
2021-10-20Allow special case of expandarray with nilJohn Hawthorn
2021-10-20Implement newrangeJohn Hawthorn
2021-10-20Implement invokesuper using cfp->ep[ME] checkJohn Hawthorn
This fixes and re-enables invokesuper, replacing the existing guards with a guard on the method entry for the EP.
2021-10-20Avoid immediate side exits in checktypeJohn Hawthorn
Previously checktype only supported heap objects, however it's not uncommon to receive an immediate, for example when string interpolating a Symbol or Integer.
2021-10-20Add toregexp to yjiteileencodes
The FIXME is there so we remember to investigate why insns clears the temporary array. Is this necessary? If it's not we can remove it from both. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2021-10-20Implement putspecialobjectJohn Hawthorn
2021-10-20Add opt_regexpmatch2John Hawthorn
2021-10-20Implement tostring instruction for yjiteileencodes
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2021-10-20Add regression test of invalid mapping mergeJohn Hawthorn
This should have referenced MAX_TEMP_TYPES, not MAX_LOCAL_TYPES.
2021-10-20Add setglobal to yjiteileencodes
Adds yjit support for setting global variables. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> Co-authored-by: John Hawthorn <john@hawthorn.email>
2021-10-20Fix and uncomment getlocal testJohn Hawthorn
Previously, under the scraper, this would side-exit because it was returning to a C method. Now that we use the jit_func entrypoint, this test no longer side-exits.
2021-10-20Add flag so we can easily tell if all stats avail. Comment out broken test.Maxime Chevalier-Boisvert
2021-10-20Disable YJIT in MJIT testsAaron Patterson
2021-10-20Allow asserts on results, rather than stdoutJohn Hawthorn
2021-10-20Add assert_no_exits aliasJohn Hawthorn
2021-10-20more testingJohn Hawthorn
2021-10-20Add test for recursionJohn Hawthorn
2021-10-20Add test of yjit compilationJohn Hawthorn
2021-10-20Moved ujit code invalidation test into bootstraptestMaxime Chevalier-Boisvert
2021-10-20MicroJIT: avoid having to invalidate running output codeAlan Wu
2021-10-18Fix evaluation order of hash values for duplicate keysJeremy Evans
Fixes [Bug #17719] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Co-authored-by: Ivo Anjo <ivo@ivoanjo.me> Notes: Merged: https://github.com/ruby/ruby/pull/4969 Merged-By: jeremyevans <code@jeremyevans.net>
2021-10-16[ruby/openssl] require Ruby 2.6 or laterKazuki Yamaguchi
Drop support for Ruby 2.3, 2.4, and 2.5. As of 2021-10, Ruby 2.6 is the oldest version that still receives security fixes from the Ruby core team, so it doesn't make much sense to keep code for those ancient versions. https://github.com/ruby/openssl/commit/3436bd040d
2021-10-16[ruby/openssl] test/openssl/test_ssl: use TLS 1.2 for finished_messages on ↵Kazuki Yamaguchi
LibreSSL LibreSSL 2.2.x has a bug in the Finished message handling with TLS 1.3. This is fixed by LibreSSL 3.3.2. https://github.com/ruby/openssl/commit/0bea59d245
2021-10-16[ruby/openssl] fix segv in Timestamp::{Request,Response,TokenInfo}.newNobuhiro IMAI
prevent `ossl_ts_*_free()` from calling when `d2i_TS_*_bio()` failed. https://github.com/ruby/openssl/commit/b29e215786
2021-10-16[ruby/openssl] Fixed misspellingsNobuyoshi Nakada
[ This is a backport to the 2.1 branch. ] Fixed misspellings reported at [Bug #16437], for default gems. (cherry picked from commit ruby/ruby@e68999c82c4863d33a6f893661fba1b7538c5671) https://github.com/ruby/openssl/commit/0f43789503
2021-10-16[ruby/openssl] ssl: add SSLContext#tmp_dh=Kazuki Yamaguchi
Provide a wrapper of SSL_set0_tmp_dh_pkey()/SSL_CTX_set_tmp_dh(), which sets the DH parameters used for ephemeral DH key exchange. SSLContext#tmp_dh_callback= already exists for this purpose, as a wrapper around SSL_CTX_set_tmp_dh_callback(), but it is considered obsolete and the OpenSSL API is deprecated for future removal. There is no practical use case where an application needs to use different DH parameters nowadays. This was originally introduced to support export grade ciphers. RDoc for #tmp_dh_callback= is updated to recommend the new #tmp_dh=. Note that current versions of OpenSSL support automatic ECDHE curve selection which is enabled by default. SSLContext#tmp_dh= should only be necessary if you must allow ancient clients which don't support ECDHE. https://github.com/ruby/openssl/commit/aa43da4f04
2021-10-16[ruby/rdoc] fix: alias to method with call-seqMike Dalessio
This change fixes alias call-seq to return nil if the method's call-seq does not specify the alias. Previously, the alias's call-seq would be an empty string in this case which broke darkfish rendering. This change also backfills test coverage for 0ead786 which moved call-seq deduplication into AnyMethod. https://github.com/ruby/rdoc/commit/5ce2789b6f
2021-10-16[ruby/rdoc] Support linking #==Mike Dalessio
See related commits: - ebc66662 for #=== - 4943d208 for #[], #[]=, #<<, and #>> https://github.com/ruby/rdoc/commit/8e47f7840a
2021-10-16[ruby/rdoc] feat: add support for :category: on C functionsMike Dalessio
https://github.com/ruby/rdoc/commit/45c92005fe
2021-10-16[ruby/rdoc] fix: comments in C files use the global markup optionMike Dalessio
Previously, Parser::C comments all defaulted to "rdoc" format, even when the user had set a different default with the `--markup=<choice>` option. https://github.com/ruby/rdoc/commit/4643b08a26
2021-10-16[ruby/rdoc] test: add coverage for comment format in a C fileMike Dalessio
https://github.com/ruby/rdoc/commit/3b8334a796
2021-10-14Reap rarely leaked threadsNobuyoshi Nakada
2021-10-14[rubygems/rubygems] Remove save_loaded_featuresNobuyoshi Nakada
https://github.com/rubygems/rubygems/commit/f5e408f83d
2021-10-14[rubygems/rubygems] Keep loaded featuresNobuyoshi Nakada
Now `$LOADED_FEATURES` list is being maintained by `setup` and `teardown` and, only libaries under the temporary directory will be removed. As `save_loaded_features` removes the rest libraries other than this test directory, ordinary libraries loaded from files under rubygems also removed, and often causes constant redefinition warnings. https://github.com/rubygems/rubygems/commit/9e1f92aafd
2021-10-14Add more `grpowned?` testsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4963
2021-10-13[ruby/irb] Ignore parenthesis during completionKaíque Kandy Koga
Rename method https://github.com/ruby/irb/commit/619aecb412
2021-10-13[ruby/reline] Skip when unable to set inputNobuyoshi Nakada
`Reline::Windows` always reads from the console by Windows API using fiddle. https://github.com/ruby/reline/commit/c3bf85f5af
2021-10-12[ruby/reline] Close working pipesNobuyoshi Nakada
https://github.com/ruby/reline/commit/ac519f57ea