summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-04[ruby/rdoc] Remove never used win32consoleNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/47a1aef447
2022-06-04* 2022-06-04 [ci skip]git
2022-06-03Prevent printing crash report in a loopAlan Wu
In the event that we are crashing due to a corrupt Ruby stack, we might re-enter rb_vm_bugreport() due to failed assertions in rb_backtrace_print_as_bugreport() or SDR(). In these cases we were printing the bug report ad infinitum with unbounded recusion. I seem to run into this every once in a while and the amount of log it prints out is pretty distracting. On CI environments it makes the log output unnecessarily big. Let's fix this. Notes: Merged: https://github.com/ruby/ruby/pull/5731
2022-06-03[Feature #18339] GVL Instrumentation APIJean Boussier
Ref: https://bugs.ruby-lang.org/issues/18339 Design: - This tries to minimize the overhead when no hook is registered. It should only incur an extra unsynchronized boolean check. - The hook list is protected with a read-write lock as to cause contention when some hooks are registered. - The hooks MUST be thread safe, and MUST NOT call into Ruby as they are executed outside the GVL. - It's simply a noop on Windows. API: ``` rb_internal_thread_event_hook_t * rb_internal_thread_add_event_hook(rb_internal_thread_event_callback callback, rb_event_flag_t internal_event, void *user_data); bool rb_internal_thread_remove_event_hook(rb_internal_thread_event_hook_t * hook); ``` You can subscribe to 3 events: - READY: called right before attempting to acquire the GVL - RESUMED: called right after successfully acquiring the GVL - SUSPENDED: called right after releasing the GVL. The hooks MUST be threadsafe, as they are executed outside of the GVL, they also MUST NOT call any Ruby API. Notes: Merged: https://github.com/ruby/ruby/pull/5500
2022-06-03[ruby/nkf] Constified invariant tablesNobuyoshi Nakada
https://github.com/ruby/nkf/commit/b386ddc11c
2022-06-03[DOC] Fix documentation of Numeric#div: Complex does not have #divKouhei Yanagita
Notes: Merged: https://github.com/ruby/ruby/pull/5964
2022-06-03* 2022-06-03 [ci skip]git
2022-06-03[DOC] Mention the case to autoload already defined constantNobuyoshi Nakada
2022-06-03[DOC] Subjects of `autoload` are not restricted to modulesNobuyoshi Nakada
2022-06-02[rubygems/rubygems] Remove redundant bitwise ANDDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a20bac7924
2022-06-02[rubygems/rubygems] Add test cases from SHA1 RFC and improve test failure ↵David Rodríguez
message I found that the current test cases did not cover the bitwise AND performed on modified words after each iteration (https://github.com/rubygems/rubygems/blob/7e5765a66c9fe5187b167f619f34db5db121f2df/bundler/lib/bundler/digest.rb#L50) https://github.com/rubygems/rubygems/commit/c8de819fee
2022-06-02[rubygems/rubygems] Remove leftover debugging putsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/7c6f15040d
2022-06-02Typedef built-in function typesNobuyoshi Nakada
2022-06-02Move `GC.verify_compaction_references` [Bug #18779]Nobuyoshi Nakada
Define `GC.verify_compaction_references` as a built-in ruby method, according to GC compaction support via `GC::OPTS`. Notes: Merged: https://github.com/ruby/ruby/pull/5972
2022-06-02Adjust indent and nesting [ci skip]Nobuyoshi Nakada
2022-06-02Fix the condition when a new buffer is needed without GMPNobuyoshi Nakada
2022-06-02* 2022-06-02 [ci skip]git
2022-06-02Split YJIT rules for CODEOWNERSNobuyoshi Nakada
2022-06-01Revert incorrect string-guard optimisation. (#5969)Noah Gibbs
Also add jhawthorn's test to for this bug. Fix String#to_s invalidation test Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-06-01[rubygems/rubygems] Fix `bundle remove` by invalidating cached ↵Ellen Marie Dash
`Bundle.defintion`. Prior to this commit, `bundle add GEM_NAME` updated the lockfile, but `bundle remove GEM_NAME` left GEM_NAME in the lockfile. By invalidating the cached `Bundle.definition`, the existing code handles that without a problem. https://github.com/rubygems/rubygems/commit/aa0794d6a9
2022-06-01[rubygems/rubygems] Fix generated standalone script for default gemsDavid Rodríguez
The installer is actually rewriting the spec's full gem path to be the one of the newly installed gem, however the accessor was not properly working for `StubSpecification` instances, and default gems are always of this type, because they are always present locally. Fix the accessor to properly update the underlying full specification. https://github.com/rubygems/rubygems/commit/efa41babfa
2022-06-01[rubygems/rubygems] Remove code that seems unnecessaryDavid Rodríguez
This change was never covered with a spec, and we have recently covered the case of partially deleted gems with specs and it works fine (installation is "auto-healed"). https://github.com/rubygems/rubygems/commit/6e66ee4235
2022-06-01[rubygems/rubygems] Restore ability to load old marshalled gemspec that use ↵David Rodríguez
`YAML::PrivateType` This issue was not detected because when all traces of old YAML parser and emitter `Syck` were removed, this null-type.gemspec.rz marshalled gemspec was updated to no longer load `YAML::Syck::PrivateType` but load `Psych::PrivateType` instead. However, realworld old marshalled gemspecs still use the `YAML::PrivateType` constant, so this commit replaces the gemspec to be the real pry-0.4.7 marshalled gemspec, so that it catches this issue. https://github.com/rubygems/rubygems/commit/51b330b8d2
2022-06-01[rubygems/rubygems] Improve null private type testDavid Rodríguez
This test is making sure that RubyGems is able to load old marshalled gemspecs that include a field loading `YAML::PrivateType` instances in the `rubyforge_project` field instead of `nil` due to a bug in old YAML emitters. At some point, the `rubyforge_project` field was removed and this test was updated to just check another field. However, in the realworld other fields do not have this issue and the marshalled gemspec we use for testing still has this issue in the field reserved for the `rubyforge_project` field. So I think updating the test to check other field was not correct. Instead, since the `rubyforge_project` field is now ignored, we no longer need to worry about any conversion in this field. The only thing we care about is that the marshal loading still works (which requires that the constant is at least defined). So this commit updates the test to make this more clear. https://github.com/rubygems/rubygems/commit/cddfacf6d4
2022-06-01[rubygems/rubygems] Remove no longer needed `Psych::PrivateType` cleanupDavid Rodríguez
This old bug used to affect the `rubyforge_project` field in serialized gemspecs. However, this field has been removed and it's no longer present in marshaled loaded gemspecs. So, while the constant is still present in these marshalled gemspecs and we still need to make sure it exists, we no longer need to clean it up from the loaded data. https://github.com/rubygems/rubygems/commit/09df18e522
2022-06-01* 2022-06-01 [ci skip]git
2022-06-01[rubygems/rubygems] Skip duplicated dependency warning for gemspec dev depsDavid Rodríguez
Generally this warning is skipped for gemspec development dependencies. I think because it's common to override them in the Gemfile to change the source, for example. But the order of conditions was not correct and the warning was still being printed in one case. https://github.com/rubygems/rubygems/commit/da9d1d6a3f
2022-05-31[rubygems/rubygems] Give better conflict resolution adviceDavid Rodríguez
This alternative really uses only the Gemfile, and can never end up being absurd, because it will never be suggested when there's no lockfile, and it suggests deleting the lockfile. https://github.com/rubygems/rubygems/commit/5d154dd50e
2022-05-30Add information from doc/hacking.md and doc/make_cheatsheet.md back i… (#5963)Jemma Issroff
Add information from doc/hacking.md and doc/make_cheatsheet.md back into contributing docs Notes: Merged-By: peterzhu2118 <peter@peterzhu.ca>
2022-05-31Skip failing test with freebsdHiroshi SHIBATA
2022-05-31[rubygems/rubygems] Bump rb-sys in ↵dependabot[bot]
/test/rubygems/test_gem_ext_cargo_builder/custom_name Bumps [rb-sys](https://github.com/ianks/rb-sys) from v0.7.3 to v0.9.0. - [Release notes](https://github.com/ianks/rb-sys/releases) - [Commits](https://github.com/ianks/rb-sys/compare/4a5dd9782075fc6e197976eb2188231a388c3c95...https://github.com/rubygems/rubygems/commit/e4f00b9761af) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/874bbc96b2
2022-05-30Add yjit.o to DTRACE_DEPENDENT_OBJSJakub Kulík
In principle, we have a DTrace probe in yjit.c, so yjit.o should be in DTRACE_DEPENDENT_OBJS for DTRACE_REBUILD=yes builds. This commit adds to the list. In practice DTRACE_REBUILD=yes implies the system has a Solaris-like DTrace and YJIT doesn't support those systems. YJIT_OBJ expands to nothing, and yjit.c isn't compiled. I tested on OmniOS v11 r151034m with: $ ../src/configure --with-out-ext=psych MAKE=gmake AR=ar debugflags=-g $ gmake -j It builds before and after this change. [Bug #18480] Notes: Merged: https://github.com/ruby/ruby/pull/5891 Merged-By: XrXr
2022-05-31[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/ianks/rb-sys) from v0.7.3 to v0.9.0. - [Release notes](https://github.com/ianks/rb-sys/releases) - [Commits](https://github.com/ianks/rb-sys/compare/4a5dd9782075fc6e197976eb2188231a388c3c95...https://github.com/rubygems/rubygems/commit/e4f00b9761af) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/eb31b14a37
2022-05-30Fix use-after-free with interacting TracePointsAlan Wu
`vm_trace_hook()` runs global hooks before running local hooks. Previously, we read the local hook list before running the global hooks which led to use-after-free when a global hook frees the local hook list. A global hook can do this by disabling a local TracePoint, for example. Delay local hook list loading until after running the global hooks. Issue discovered by Jeremy Evans in GH-5862. [Bug #18730] Notes: Merged: https://github.com/ruby/ruby/pull/5865
2022-05-31* 2022-05-31 [ci skip]git
2022-05-31[ruby/fileutils] [DOC] Enhanced RDoc (https://github.com/ruby/fileutils/pull/77)Burdette Lamar
Treats: ::copy_entry ::copy_file ::copy_stream ::mv https://github.com/ruby/fileutils/commit/d6d7e5330d
2022-05-30Skip failing test with freebsdHiroshi SHIBATA
2022-05-30[rubygems/rubygems] Fix crash when commenting out a mirror in configurationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2d99277328
2022-05-30[rubygems/rubygems] Fix crash when installing gems with symlinksDavid Rodríguez
If BUNDLE_PATH is configured to a symlinked path, installing gems with symlinks would crash with an error like this: ``` Gem::Package::SymlinkError: installing symlink 'man/man0/README.markdown' pointing to parent path /usr/home/stevewi/srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0/README.markdown of /srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0 is not allowed ``` This commit fixes the problem by changing the bundle path to be the realpath of the configured value, right after we're sure the path has been created. https://github.com/rubygems/rubygems/commit/3cd3dd142a
2022-05-30[rubygems/rubygems] No need to use `FileUtils` to create symlinksDavid Rodríguez
https://github.com/rubygems/rubygems/commit/70ff7cee9f
2022-05-30[rubygems/rubygems] Fix failing spec on WindowsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/8e68c57457
2022-05-30[rubygems/rubygems] Remove seemingly unnecessary codeDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f5dd5204ca
2022-05-30[ruby/stringio] Fix extracting encoding names in the fallback codeNobuyoshi Nakada
https://github.com/ruby/stringio/commit/0fe2e0c1e5
2022-05-30[ruby/stringio] Accept external and internal encodings pairNobuyoshi Nakada
Fix https://github.com/ruby/stringio/pull/16 https://github.com/ruby/stringio/commit/c8a69e80d2
2022-05-30Also skip failing test with freebsd 12Hiroshi SHIBATA
2022-05-29Update rubyspec for stringio bug fixJeremy Evans
2022-05-30[ruby/stringio] Fix handling of chomp with paragraph separatorJeremy Evans
Try to mirror IO behavior, where chomp takes out the entire paragraph separators between entries, but does not chomp a single line separator at the end of the string. Partially Fixes [Bug #18768] https://github.com/ruby/stringio/commit/a83ddbb7f0
2022-05-30[ruby/stringio] Update ext/stringio/stringio.cJeremy Evans
https://github.com/ruby/stringio/commit/1edc88587e Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2022-05-30[ruby/stringio] Ignore chomp keyword for nil separatorJeremy Evans
nil separator means no separator at all, so nothing should be chomped. Partial fix for Ruby [Bug #18770] https://github.com/ruby/stringio/commit/feaa2ec631
2022-05-30[ruby/stringio] Fix each with multiple character string and chompJeremy Evans
Previously, this could result in an infinite loop. Always update the e pointer in this case, setting w when chomping so the chomped data is not included in the output. Fixes [Bug #18769] https://github.com/ruby/stringio/commit/4bf64d5130