summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2022-09-26Fix coderange calculation in String#bKazuki Yamaguchi
Leave the new coderange unknown if the original encoding is not ASCII-compatible. Non-ASCII-compatible encoding strings with valid or broken coderange can end up as ascii-only. Fixes 9a8f6e392fbd ("Cheaply derive code range for String#b return value", 2022-07-25).
2022-09-26Fix `io/buffer.h` header guard.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/6439
2022-09-26Update `IO::Buffer` read/write to use rb_thread_io_blocking_region. (#6438)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-09-26Suppress a warning on clangShugo Maeda
The following warning appears without this fix: ``` parse.y:78:1: warning: unknown warning group '-Wpsabi', ignored [-Wunknown-warning-option] RBIMPL_WARNING_IGNORED(-Wpsabi) ^ ./include/ruby/internal/warning_push.h:103:39: note: expanded from macro 'RBIMPL_WARNING_IGNORED' ^ ./include/ruby/internal/warning_push.h:99:39: note: expanded from macro 'RBIMPL_WARNING_PRAGMA2' ^ ./include/ruby/internal/warning_push.h:98:39: note: expanded from macro 'RBIMPL_WARNING_PRAGMA1' ^ ./include/ruby/internal/warning_push.h:97:39: note: expanded from macro 'RBIMPL_WARNING_PRAGMA0' ^ <scratch space>:49:27: note: expanded from here clang diagnostic ignored "-Wpsabi" ^ 1 warning generated. ```
2022-09-26Add several new methods for getting and setting buffer contents. (#6434)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-09-26Generate the revision.h before MakefileNobuyoshi Nakada
Except for GNU make which updates makefiles automatically, repeating configure in the same directory causes `make` to stop whenever pulled a new commit. This is unexpected in CIs. Notes: Merged: https://github.com/ruby/ruby/pull/6436
2022-09-25[Bug #19021] Fix safe call w/ conditional assignJohn Hawthorn
As of fbaac837cfba23a9d34dc7ee144d7940248222a2, when we were performing a safe call (`o&.x=`) with a conditional assign (`||= 1`) and discarding the result the stack would end up in a bad state due to a missing pop. This commit fixes that by adjusting the target label of the branchnil to be before a pop in that case (as was previously done in the non-conditional assignment case). Notes: Merged: https://github.com/ruby/ruby/pull/6437
2022-09-26Initialize Objective-C classes before fork() for macOS 13Yuta Saito
Since macOS 13, CFString family API used in `rb_str_append_normalized_ospath` may internally use Objective-C classes (`NSTaggedPointerString` and `NSPlaceholderMutableString`) for small strings. On the other hand, Objective-C classes should not be used for the first time in a `fork()`'ed but not `exec()`'ed process. Violations for this rule can result deadlock during class initialization, so Objective-C runtime conservatively crashes on such cases by default. Therefore, we need to use CFString API to initialize Objective-C classes used internally *before* `fork()`. For more details, see https://bugs.ruby-lang.org/issues/18912 Notes: Merged: https://github.com/ruby/ruby/pull/6426
2022-09-26[ruby/rdoc] Fix ruby script in "test_parse_method_bracket" ↵Yuichiro Kaneko
(https://github.com/ruby/rdoc/pull/927) Because it's syntax error. https://github.com/ruby/rdoc/commit/993f2532ff
2022-09-26Avoid type limits (#6435)Nobuyoshi Nakada
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-25Extract `RUBY_RELEASE_DATE` from also revision.hNobuyoshi Nakada
This make variable is very useful for daily build. Notes: Merged: https://github.com/ruby/ruby/pull/6433 Merged-By: nobu <nobu@ruby-lang.org>
2022-09-26Use `int first_lineno` for binary format.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/6430
2022-09-26Rework vm_core to use `int first_lineno` struct member.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/6430
2022-09-26Rework `first_lineno` to be `int`.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/6430
2022-09-25[ruby/bigdecimal] Remove trailing whitespace.Samuel Williams
https://github.com/ruby/bigdecimal/commit/223d193f01
2022-09-25[ruby/bigdecimal] Improve documentation of BigDecimal#sign Maciek Rząsa
Fixes https://github.com/ruby/bigdecimal/issues/78 by describing behaviour for positive and negative zero in the docs. https://github.com/ruby/bigdecimal/commit/5415b120ab
2022-09-25Add news for eval coverage.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/6425
2022-09-25Extract common code for coverage setup.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/6425
2022-09-25Reuse rb_method_call_kw functionS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6429
2022-09-23Remove unneeded semicolonsTakashi Kokubun
2022-09-23Suppress -Wtype-limits warnings on mjit_c.rbTakashi Kokubun
2022-09-24Support using at toplevel in wrapped scriptChris Salzberg
Allow refinements to be used at the toplevel within a script that is loaded under a module. Fixes [Bug #18960] Notes: Merged: https://github.com/ruby/ruby/pull/6226
2022-09-23Remove reference to __classid__John Hawthorn
This used to be used for module names but its uses were removed in b00f280d4b9569e7153365d7e1c522b3d6b3c6cf. Notes: Merged: https://github.com/ruby/ruby/pull/6427
2022-09-23YJIT: Support Rust 1.58.1 for --yjit-stats on Arm (#6410)Takashi Kokubun
* YJIT: Test Rust 1.58.1 as well on Cirrus * YJIT: Avoid using a Rust 1.60.0 feature * YJIT: Use autoconf to detect support * YJIT: We actually need to run it for checking it properly * YJIT: Try cfg!(target_feature = "lse") * Revert "YJIT: Try cfg!(target_feature = "lse")" This reverts commit 4e2a9ca9a9c83052c23b5e205c91bdf79e88342e. * YJIT: Add --features stats only when it works * Update configure.ac Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-09-24Allow changing conversion macro in MJIT bindgenTakashi Kokubun
This is necessary for object shapes.
2022-09-23[DOC] Housekeeping in iostreams doc (#6420)Burdette Lamar
Write some method names in linkable form; make some capitalization consistent. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>