aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Extract a local variableNobuyoshi Nakada2023-10-191-12/+13
|
* [ruby/ostruct] Use Gemfile instead of ↵Hiroshi SHIBATA2023-10-191-4/+0
| | | | | | Gem::Specification#add_development_dependency https://github.com/ruby/ostruct/commit/ed49920766
* Mentioned targeted libraries for warning feature of bundled gemsHiroshi SHIBATA2023-10-191-0/+14
|
* Don't need to refer SINCE constantHiroshi SHIBATA2023-10-191-1/+1
|
* [DOC] Add NEWS about Range#reverse_each for beginless ranges [Feature #18515]Kouhei Yanagita2023-10-191-0/+5
|
* Skip some timeout tests on s390xYusuke Endoh2023-10-181-0/+2
| | | | | | | | | | | | | | | | | | They are too unstable on the machine. ``` 1) Failure: TestRegexp#test_timeout_shorter_than_global [/home/chkbuild/chkbuild/tmp/build/20231018T230003Z/ruby/test/ruby/test_regexp.rb:1788]: Expected |0.2 - 0.962938869| (0.7629388690000001) to be <= 0.15000000000000002. ``` https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20231018T230003Z.fail.html.gz ``` 1) Failure: TestRegexp#test_timeout_longer_than_global [/home/chkbuild/chkbuild/tmp/build/20231017T140006Z/ruby/test/ruby/test_regexp.rb:1788]: Expected |0.5 - 1.040696078| (0.5406960780000001) to be <= 0.375. ``` https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20231017T140006Z.fail.html.gz
* Use assert_separately to avoid defining `foo`Aaron Patterson2023-10-181-2/+24
| | | | | | | When we eval the iseqs generated by prism, they can have side effects like defining methods. In this case, we were defining the method "foo", but other tests were expecting that the foo method would _not_ be defined.
* Address PR commentsJemma Issroff2023-10-183-12/+12
|
* Put line change backJemma Issroff2023-10-181-3/+0
|
* Fixed mistypingJemma Issroff2023-10-181-8/+8
|
* Temporarily removed location code on scope nodesJemma Issroff2023-10-182-1/+4
|
* Remove pm_compile_context_t, move the context onto ScopeNodeJemma Issroff2023-10-184-204/+183
| | | | | | | We changed ScopeNodes to point to their parent (previous) ScopeNodes. Accordingly, we can remove pm_compile_context_t, and store all necessary context in ScopeNodes, allowing us to access locals from outer scopes.
* Revert "Revert "[ruby/prism] Change ScopeNode to point to previous ScopeNode""Jemma Issroff2023-10-183-3/+18
| | | | This reverts commit fd87372a7482cbf7672c44ef95bc1dc3b00bab7c.
* YJIT: Add a live ISeq counter Alan Wu2023-10-186-0/+17
| | | | | | | It's an estimator for application size and could be used as a compilation heuristic later. Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Add test for many ivarsKatherine Oelsner2023-10-181-0/+12
| | | | Co-authored-by: John Hawthorn <john@hawthorn.email>
* Revert "shape.h: Make attr_index_t uint8_t"Katherine Oelsner2023-10-184-9/+10
| | | | This reverts commit e3afc212ec059525fe4e5387b2a3be920ffe0f0e.
* [ruby/drb] Support :SSL{Min,Max}Version config optionsJeremy Evans2023-10-183-0/+18
| | | | | | | | | | | These are necessary to get the tests passing with LibreSSL 3.8.1+, which dropped support for TLSv1.0 and TLSv1.1 for security reasons. This updates the tests to use TLSv1.2 on OpenBSD. This is only strictly necessary on OpenBSD 7.4+, but it will work fine in previous versions as well. https://github.com/ruby/drb/commit/32707b2db5
* YJIT: Add --yjit-perf (#8697)Takashi Kokubun2023-10-188-8/+133
| | | Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
* Bump rustix from 0.38.2 to 0.38.19 in /yjit/bindgendependabot[bot]2023-10-181-9/+9
| | | | | | | | | | | | | Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.2 to 0.38.19. - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.2...v0.38.19) --- updated-dependencies: - dependency-name: rustix dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
* Update default gems list at 6873f96abc2a924b264b6ed3818b2f [ci skip]git2023-10-181-1/+1
|
* [ruby/prism] Bump to version 0.15.1Kevin Newton2023-10-185-6/+6
| | | | https://github.com/ruby/prism/commit/d906a8ceba
* Update default gems list at 0f1e040068fac01856c5c4c0ba9530 [ci skip]git2023-10-181-1/+1
|
* [ruby/prism] Bump to version 0.15.0Kevin Newton2023-10-184-5/+5
| | | | https://github.com/ruby/prism/commit/ee429f8d50
* [ruby/prism] Fix lex compat when dedent should be 0Kevin Newton2023-10-184-161/+209
| | | | https://github.com/ruby/prism/commit/41c0e0e06e
* [ruby/prism] Modify less of the CRuby localsKevin Newton2023-10-183-26/+32
| | | | https://github.com/ruby/prism/commit/aca24b3a17
* [ruby/prism] Add * and & to methods with ...Kevin Newton2023-10-1813-36/+43
| | | | https://github.com/ruby/prism/commit/e8114a786a
* [ruby/prism] Extract out constant pool bucket bits to constantsKevin Newton2023-10-183-13/+28
| | | | https://github.com/ruby/prism/commit/1985a9ba51
* [ruby/prism] Provide "constant" constants, embedded in the codeKevin Newton2023-10-184-37/+46
| | | | https://github.com/ruby/prism/commit/d469a56e7e
* Handle `Timeout::Error` reported from workersNobuyoshi Nakada2023-10-183-1/+26
|
* [ruby/prism] Use the unescaped regexp to scan for capture groupsKevin Newton2023-10-183-36/+86
| | | | https://github.com/ruby/prism/commit/555551e8f2
* [ruby/prism] Index{Operator,And,Or}WriteNodeKevin Newton2023-10-1825-237/+1097
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now, our Call{Operator,And,Or}WriteNode nodes represent two different concepts: ```ruby foo.bar += 1 foo[bar] += 1 ``` These two statements are different in what they can support. The former can never have arguments (or an opening_loc or closing_loc). The former can also never have a block. Also, the former is a variable method name. The latter is always going to be []/[]=, it can have any number of arguments including blocks (`foo[&bar] ||= 1`), and will always have an opening_loc and closing_loc. Furthermore, these statements end of having to take different paths through the various compilers because with the latter you have to consider the arguments and the block, whereas the former can perform some additional peephole optimizations since there are fewer values on the stack. For these reasons, I'm introducing Index{Operator,And,Or}WriteNode. These nodes never have a read_name or write_name on them because they are always []/[]=. They also support blocks, which the previous write nodes didn't. As a benefit of introducing these nodes, I've removed the opening_loc, closing_loc, and arguments from the older write nodes because they will always be null. For the serialized format, both of these nodes end up being smaller, and for in-memory we're storing fewer things in general, so we have savings all around. I don't love that we are introducing another node that is a call node since we generally want consumers to only have to handle a single call, but these nodes are so specific that they would have to be handled separately anyway since in fact call 2 methods. https://github.com/ruby/prism/commit/70155db9cd
* [rubygems/rubygems] Allow uninstalling multiple versions of same gemKyle Stevens2023-10-182-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, you can install multiple versions of the same gem just fine: ``` $ gem install simplecov:0.19.0 simplecov:0.22.0 Fetching simplecov-0.19.0.gem Successfully installed simplecov-0.19.0 Parsing documentation for simplecov-0.19.0 Installing ri documentation for simplecov-0.19.0 Done installing documentation for simplecov after 0 seconds Fetching simplecov-0.22.0.gem Successfully installed simplecov-0.22.0 Parsing documentation for simplecov-0.22.0 Installing ri documentation for simplecov-0.22.0 Done installing documentation for simplecov after 0 seconds 2 gems installed ``` But to uninstall both of them, you need to run the equivalent uninstall command twice: ``` ~$ gem uninstall simplecov:0.19.0 simplecov:0.22.0 Successfully uninstalled simplecov-0.22.0 ~$ gem uninstall simplecov:0.19.0 simplecov:0.22.0 Gem 'simplecov' is not installed Successfully uninstalled simplecov-0.19.0 ``` This resolves that problem by using the gem's full name (which includes the version) when tracking which ones have already been uninstalled so when it gets to the second version listed it doesn't think it was already uninstalled. https://github.com/rubygems/rubygems/commit/d96101b753
* Remove unnecessary and misleading castsNobuyoshi Nakada2023-10-181-3/+3
|
* Show backtraces when failedKoichi Sasada2023-10-181-1/+9
| | | | | | | | | | | | | | | | If `assert_equal(backtrace_locations.size, profile_frames.size)` in `TestProfileFrames#test_matches_backtrace_locations_main_thread` failed, we do not have enough information about it like that: ``` 1) Failure: TestProfileFrames#test_matches_backtrace_locations_main_thread [/home/runner/work/ruby/ruby/src/test/-ext-/debug/test_profile_frames.rb:148]: <31> expected but was <30>. ``` This patch shows both `backtrace_locations` and `profile_frames` if failed.
* Loosen assertion for flaky weak references testPeter Zhu2023-10-181-1/+2
|
* Tweak the grammarHiroshi SHIBATA2023-10-181-2/+2
|
* normalize gem name without .so or .bundleHiroshi SHIBATA2023-10-181-1/+1
|
* reject bundled gems if they are declared in GemfileHiroshi SHIBATA2023-10-182-2/+3
|
* Bump actions/checkout from 4.1.0 to 4.1.1dependabot[bot]2023-10-1718-21/+21
| | | | | | | | | | | | | | | Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/8ade135a41bc03ea155e62e844d188df1ea18608...b4ffde65f46336ab88eb53be808477a3936bae11) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
* Fix total count when filters givenNobuyoshi Nakada2023-10-181-5/+8
|
* Escape method names containing control charactersNobuyoshi Nakada2023-10-181-1/+1
|
* Prefer RbConfig.ruby over the 3.times fallback (#8691)Takashi Kokubun2023-10-171-15/+14
| | | | It seems saner to use RbConfig.ruby than using ruby in a random ancestor directory.
* YJIT: Use RbConfig.ruby instead of EnvUtil.rubybin (#8689)Takashi Kokubun2023-10-181-4/+8
| | | | | | | | | | | | Some people encounter an issue that test_yjit uses the installed Ruby instead of the currently-running Ruby. It's fixed when they remove the installed Ruby. However, test_yjit should run the currently-running Ruby for testing YJIT in subprocesses. EnvUtil is unfortunately used outside tests as well, so for compatibility reasons, this commit only changes the argument given to EnvUtil.invoke_ruby to always use RbConfig.ruby. Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
* YJIT: Fix clippy::redundant_localsAlan Wu2023-10-171-3/+1
| | | | | | > note: `#[deny(clippy::redundant_locals)]` on by default On Rust 1.73.0.
* YJIT: Remove call to compile() on empty AssemblerAlan Wu2023-10-171-4/+1
|
* Manage parallel test workers after timeoutNobuyoshi Nakada2023-10-185-13/+39
|
* Add `jobs` optional keyword argumentNobuyoshi Nakada2023-10-181-7/+3
|
* [ruby/prism] Ensure last encoding flag winseileencodes2023-10-172-4/+19
| | | | | | | You can't encoding a string with more than one encoding so ensure that the last one wins. https://github.com/ruby/prism/commit/4182c988c9
* YJIT: Add a few missing counters for send fallback (#8681)Takashi Kokubun2023-10-173-4/+7
|
* YJIT: Lookup IDs on boot instead of binding to themAlan Wu2023-10-176-222/+57
| | | | | | | | | | Previously, the version-controlled `cruby_bindings.inc.rs` file contained the build-time artifact `id.h`, which nobu mentioned hinders the goal of having fewer magic numbers in the repository. Lookup the IDs YJIT needs on boot. It costs cycles, but it's fine since YJIT only uses a handful of IDs at the moment. No perceptible degradation to boot time found in my testing.