summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-29Skip unpack_sockaddr_in with http at Solaris platformHiroshi SHIBATA
http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20220929T050003Z.fail.html.gz
2022-09-29[ruby/date] The shrunk words to be copied is limitedNobuyoshi Nakada
Th buffer size is small enough and no need to allocate dynamically. https://github.com/ruby/date/commit/f62bf0a01d
2022-09-29bootstraptest/runner: run in parallel if in parallel buildNobuyoshi Nakada
2022-09-29[ruby/date] Narrow ALLOCV region for shrunk wordsNobuyoshi Nakada
https://github.com/ruby/date/commit/f51b038074
2022-09-29Update bundled gems list at 8c4e52fbe8a07da76c4038e4c5dc51 [ci skip]git
2022-09-29Update bundled_gemsHiroshi SHIBATA
2022-09-29Update NEWS.md with updated coverage interfaces.Samuel Williams
2022-09-29Add `Coverage.supported?` to detect what modes are supported.Samuel Williams
2022-09-29Add `eval: true/false` flag to `Coverage.setup`.Samuel Williams
2022-09-29[rubygems/rubygems] Put bundler gemspec stub at the right placeDavid Rodríguez
So that it's found when needed, rather than dynamically modifying loaded stubs and thus messing with RubyGems internals. https://github.com/rubygems/rubygems/commit/cd3e7cb9e5
2022-09-29[rubygems/rubygems] Only activate bundler when neededDavid Rodríguez
Loading Bundler beforehand was actually replacing ENV with a backup of the pre-Bundler environment through `Bundler::EnvironmentPreserver`. I think that was making a bug in `ENV.replace` not bite our tests, because Bundler includes proper patches to workaround that issue. So this commit also includes these patches in RubyGems tests. https://github.com/rubygems/rubygems/commit/8e079149b9
2022-09-29[rubygems/rubygems] Test a pure RubyGems methodDavid Rodríguez
`Gem::Specification#load_paths` is actually a Bundler thing. https://github.com/rubygems/rubygems/commit/d20b4d1950
2022-09-29[rubygems/rubygems] Little refactor to keep things consistentDavid Rodríguez
https://github.com/rubygems/rubygems/commit/3934deb4e4
2022-09-29[rubygems/rubygems] Remove unnecessary `ensure`David Rodríguez
https://github.com/rubygems/rubygems/commit/6c0c02c533
2022-09-29[rubygems/rubygems] Require bundler consistentlyDavid Rodríguez
The `$LOAD_PATH` should be properly setup so that the local version is used. https://github.com/rubygems/rubygems/commit/03c0ab4082
2022-09-29[rubygems/rubygems] Remove unnecessary constantDavid Rodríguez
https://github.com/rubygems/rubygems/commit/4bd77488ad
2022-09-29[rubygems/rubygems] Cleaup unnecessary codeDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2e05dadbc5
2022-09-29[rubygems/rubygems] Unskip stuff that now works on JRubyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d86a5ae2eb
2022-09-28Update to ruby/spec@1d9d5c6Benoit Daloze
2022-09-28Update to ruby/mspec@b60306dBenoit Daloze
2022-09-28Shapes wrappers shouldn't mark the shapeAaron Patterson
We don't allocate shapes out of the GC anymore, so we shouldn't mark those pointers.
2022-09-29* expand tabs. [ci skip]git
Tabs were expanded because the file did not have any tab indentation in unedited lines. Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
2022-09-28This commit implements the Object Shapes technique in CRuby.Jemma Issroff
Object Shapes is used for accessing instance variables and representing the "frozenness" of objects. Object instances have a "shape" and the shape represents some attributes of the object (currently which instance variables are set and the "frozenness"). Shapes form a tree data structure, and when a new instance variable is set on an object, that object "transitions" to a new shape in the shape tree. Each shape has an ID that is used for caching. The shape structure is independent of class, so objects of different types can have the same shape. For example: ```ruby class Foo def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end class Bar def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end foo = Foo.new # `foo` has shape id 2 bar = Bar.new # `bar` has shape id 2 ``` Both `foo` and `bar` instances have the same shape because they both set instance variables of the same name in the same order. This technique can help to improve inline cache hits as well as generate more efficient machine code in JIT compilers. This commit also adds some methods for debugging shapes on objects. See `RubyVM::Shape` for more details. For more context on Object Shapes, see [Feature: #18776] Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Co-Authored-By: Eileen M. Uchitelle <eileencodes@gmail.com> Co-Authored-By: John Hawthorn <john@hawthorn.email>
2022-09-28Always use the longer version of `TRY_WITH_GC`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6464
2022-09-28bootstraptest/runner: manage sub processes with the job serverNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6463
2022-09-28bootstraptest/runner: fold dots by window sizeNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6463
2022-09-28[rubygems/rubygems] Force "master" to be used regardless of ↵David Rodríguez
`init.defaultBranch` config Otherwise, if you have `init.defaultBranch main` configured, like I do, a bunch of tests fail with things like: ``` ============================================================================================================================================================================================================ Error: test_checkout_submodules(TestGemSourceGit): Gem::Exception: unable to find reference master in /Users/deivid/Code/rubygems/rubygems/tmp/test_rubygems_20220928-13878-xog1je/git/a /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:188:in `rev_parse' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:143:in `dir_shortref' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:158:in `install_dir' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:94:in `checkout' /Users/deivid/Code/rubygems/rubygems/test/rubygems/test_gem_source_git.rb:78:in `test_checkout_submodules' 75: system @git, "commit", "--quiet", "-m", "add submodule b" 76: end 77: => 78: source.checkout 79: 80: assert_path_exist File.join source.install_dir, "a.gemspec" 81: assert_path_exist File.join source.install_dir, "b/b.gemspec" ============================================================================================================================================================================================================ fatal: ambiguous argument 'master': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' fatal: ambiguous argument 'master': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' E ``` In the future, I'd like to change things to use `main`, but the straighforward fix now is to keep "master" and make the running environment's git configuration not get in the middle. https://github.com/rubygems/rubygems/commit/b09b1416f1
2022-09-28Fix bug when slicing a string with broken encodingPeter Zhu
Commit aa2a428 introduced a bug where non-embedded string slices copied the encoding of the original string. If the original string had a broken encoding but the slice has valid encoding, then the slice would be incorrectly marked as broken encoding. Notes: Merged: https://github.com/ruby/ruby/pull/6456
2022-09-28Make string slices views rather than copiesPeter Zhu
Just like commit 1c16645 for arrays, this commit changes string slices to be a view rather than a copy even if it can be allocated through VWA. Notes: Merged: https://github.com/ruby/ruby/pull/6456
2022-09-28Install all file trees for lldb [ci skip]Nobuyoshi Nakada
It is no longer single lldb_cruby.py only.
2022-09-28[ruby/date] Check time zone offset elementsNobuyoshi Nakada
Too big parts of fractional hour time zone offset can cause assertion failures. https://github.com/ruby/date/commit/06bcfb2729
2022-09-28[ruby/net-http] Remove ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFEJeremy Evans
This list is out of date. At least OpenBSD since 2013 does not allow one user to read the environment variables of a process run by another user. While we could try to keep the list updated, I think it's a bad idea to not use the user/password from the environment, even if another user on the system could read it. If http_proxy exists in the environment, and other users can read it, it doesn't make it more secure for Ruby to ignore it. You could argue that it encourages poor security practices, but net/http should provide mechanism, not policy. Fixes [Bug #18908] https://github.com/ruby/net-http/commit/1e4585153d
2022-09-28dbm and gdbm have been extracted gems.Hiroshi SHIBATA
2022-09-28[ruby/bigdecimal] Document precision=0 and ndigits=0 for converting from FloatMaciej Rzasa
https://github.com/ruby/bigdecimal/commit/4f0894c6c0
2022-09-27YJIT: add assertion wrt label names (#6459)Maxime Chevalier-Boisvert
Add assertion wrt label names Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-27YJIT: reverse configure.ac changes that disable `--yjit-stats` on Graviton1 ↵Maxime Chevalier-Boisvert
(#6457) Reverse configure.ac changes that disable YJIT stats on Graviton1 Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-27Change IncrCounter lowering on AArch64 (#6455)Kevin Newton
* Change IncrCounter lowering on AArch64 Previously we were using LDADDAL which is not available on Graviton 1 chips. Instead, we're going to use an exclusive load/store group through the LDAXR/STLXR instructions. * Update yjit/src/backend/arm64/mod.rs Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-28[rubygems/rubygems] fix: Gem::Platform.match handles String argument properlyMike Dalessio
Previously 9eead86 introduced non-commutativity of platforms, and later commit 1b9f7f50 changed the behavior of `Gem::Platform.match` to ensure the callee of `#=~` was the gem platform. However, when the platform argument is a String, then the callee and argument of `#=~` are flipped (see docs for `String#=~`), which works against the fix from 1b9f7f50. Closes #5938 https://github.com/rubygems/rubygems/commit/3b1fb562e8
2022-09-27[DOC] More on IO streams (#6454)Burdette Lamar
Adds remarks about .new and .open. Uses ..open where convenient (not convenient where output would be in a block). Fixed examples for #ungetc. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-09-27Re-enable TZ test missed due to merge conflict.Vít Ondruch
This was disabled by b7577b4d9e, while properly fixed upstream by: https://github.com/ruby/spec/pull/939 Notes: Merged: https://github.com/ruby/ruby/pull/6393
2022-09-28[ruby/timeout] Explicit add the timeout thread to default ThreadGroupLars Kanis
Otherwise the timeout thread would be added to the ThreadGroup of the thread that makes the first call to Timeout.timeout . Fixes bug 19020: https://bugs.ruby-lang.org/issues/19020 Add a test case to make sure the common thread doesn't leak to another ThreadGroup https://github.com/ruby/timeout/commit/c4f1385c9a
2022-09-28[ruby/psych] Bump snakeyaml from 1.31 to 1.33Chad Wilson
https://github.com/ruby/psych/commit/8a761cdfb7
2022-09-27[DOC] More on IO streams (#6445)Burdette Lamar
Text is reorganized so that most of the previous text is now in these newly-created sections: Basic IO Line IO New text is added to form new sections: Character IO Byte IO Codepoint IO This gives the page a functional orientation, so that a reader can quickly find pertinent sections. The page retains its original mission: to provide good link targets for the doc for related classes. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-09-27syntax_suggest moved under the ruby organization from zombocomHiroshi SHIBATA
2022-09-26Revert this until we can figure out WB issues or remove shapes from GCAaron Patterson
Revert "* expand tabs. [ci skip]" This reverts commit 830b5b5c351c5c6efa5ad461ae4ec5085e5f0275. Revert "This commit implements the Object Shapes technique in CRuby." This reverts commit 9ddfd2ca004d1952be79cf1b84c52c79a55978f4.
2022-09-27Rename method name in keyword test from y to yoJeremy Evans
Kernel#y is defined by psych/yaml, which causes occasional nondeterministic problems with this test when doing parallel testing. Notes: Merged: https://github.com/ruby/ruby/pull/6449
2022-09-26Refactor str_substr and str_subseqPeter Zhu
This commit extracts common code between str_substr and rb_str_subseq into a function called str_subseq. This commit also applies optimizations in commit 2e88bca to rb_str_subseq. Notes: Merged: https://github.com/ruby/ruby/pull/6447
2022-09-27* expand tabs. [ci skip]git
Tabs were expanded because the file did not have any tab indentation in unedited lines. Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
2022-09-26This commit implements the Object Shapes technique in CRuby.Jemma Issroff
Object Shapes is used for accessing instance variables and representing the "frozenness" of objects. Object instances have a "shape" and the shape represents some attributes of the object (currently which instance variables are set and the "frozenness"). Shapes form a tree data structure, and when a new instance variable is set on an object, that object "transitions" to a new shape in the shape tree. Each shape has an ID that is used for caching. The shape structure is independent of class, so objects of different types can have the same shape. For example: ```ruby class Foo def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end class Bar def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end foo = Foo.new # `foo` has shape id 2 bar = Bar.new # `bar` has shape id 2 ``` Both `foo` and `bar` instances have the same shape because they both set instance variables of the same name in the same order. This technique can help to improve inline cache hits as well as generate more efficient machine code in JIT compilers. This commit also adds some methods for debugging shapes on objects. See `RubyVM::Shape` for more details. For more context on Object Shapes, see [Feature: #18776] Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> Co-Authored-By: Eileen M. Uchitelle <eileencodes@gmail.com> Co-Authored-By: John Hawthorn <john@hawthorn.email> Notes: Merged: https://github.com/ruby/ruby/pull/6386
2022-09-26string.c: don't create a frozen copy for str_new_sharedJean Boussier
str_new_shared already has all the necessary logic to do this and is also smart enough to skip this step if the source string is already a shared string itself. This saves a useless String allocation on each call. Notes: Merged: https://github.com/ruby/ruby/pull/6443