summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-07.github/workflows/compilers.yml: annocheck: Fix a linker flag to pass MJIT ↵Jun Aruga
tests. Set the linker flag `-Wl,-z,now` properly. Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Fixes [Bug #18781] Notes: Merged: https://github.com/ruby/ruby/pull/5938
2022-06-06Ignore invalid escapes in regexp commentsJeremy Evans
Invalid escapes are handled at multiple levels. The first level is in parse.y, so skip invalid unicode escape checks for regexps in parse.y. Make rb_reg_preprocess and unescape_nonascii accept the regexp options. In unescape_nonascii, if the regexp is an extended regexp, when "#" is encountered, ignore all characters until the end of line or end of regexp. Unfortunately, in extended regexps, you can use "#" as a non-comment character inside a character class, so also parse "[" and "]" specially for extended regexps, and only skip comments if "#" is not inside a character class. Handle nested character classes as well. This issue doesn't just affect extended regexps, it also affects "(#?" comments inside all regexps. So for those comments, scan until trailing ")" and ignore content inside. I'm not sure if there are other corner cases not handled. A better fix would be to redesign the regexp parser so that it unescaped during parsing instead of before parsing, so you already know the current parsing state. Fixes [Bug #18294] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/5721 Merged-By: jeremyevans <code@jeremyevans.net>
2022-06-06Fix Module#const_source_location for autoload constants with direct requiresJeremy Evans
If an autoload exists for a constant, but the path for the autoload was required, const_source_location would return [false, 0] instead of the actual file and line. This fixes it by setting the appropriate file and line in rb_const_set, and saving the file and line in const_tbl_update before they get reset by current_autoload_data. Fixes [Bug #18624] Notes: Merged: https://github.com/ruby/ruby/pull/5646
2022-06-06Use bindgen to import Ruby constants wherever possible. (#5943)Noah Gibbs
Constants that can't be imported via bindgen should have a comment saying why not. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-06-06Fix Range#cover? returning true for beginless ranges of different typesJeremy Evans
Previously `(2..).cover?("2"..)` was false, but `(..2).cover?(.."2")` was true. This changes it so both are false, treating beginless ranges the same as endless ranges in regards to type checks. This also adds documentation to #cover? to describe behavior with beginless and endless ranges, testing each documentation example, which is how this bug was found. Fixes [Bug #18155] Notes: Merged: https://github.com/ruby/ruby/pull/5831
2022-06-06Add Module#undefined_instance_methodsJeremy Evans
Implements [Feature #12655] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/5733 Merged-By: jeremyevans <code@jeremyevans.net>
2022-06-07[ruby/fileutils] [DOC] Enhanced RDoc for FileUtils ↵Burdette Lamar
(https://github.com/ruby/fileutils/pull/78) Treats: ::rm ::rm_f ::rm_r ::rm_rf ::remove_entry_secure https://github.com/ruby/fileutils/commit/ce2a438d75
2022-06-07* 2022-06-07 [ci skip]git
2022-06-07[ruby/open-uri] [DOC] Fix markup for `URI.open`Alexander Ilyin
* Add missing slash. https://github.com/ruby/open-uri/commit/40023e63da
2022-06-06[ruby/rdoc] Use runnable command as DUMMY_PAGERNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/fec1ab2e41
2022-06-06[rubygems/rubygems] Unify loading `Gem::Requirement`David Rodríguez
It was being explicitly required from `Gem::Specification` but also a strange autoload was set for it at `Gem::Version`. The autoload was non standard because it should've been done in the `Gem` module, not in `Gem::Specification`, since that's where the constant is expected to get defined. Doing this might get deprecated in the future, and it was not being effective anyways due to the explicit require. Unify everything with an `autoload` at the right place. https://github.com/rubygems/rubygems/commit/174ea3e24c
2022-06-06debug is the bundled gems, not default gemsHiroshi SHIBATA
2022-06-06[ruby/cgi] jruby supportPavel Rosický
https://github.com/ruby/cgi/commit/93326fb622
2022-06-06Use `sleep 0.5` for tests of GVL instrumentation APIYusuke Endoh
The tests fail randomly on some platforms. http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20220605T213004Z.fail.html.gz http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220605T210003Z.fail.html.gz ``` [15737/21701] TestThreadInstrumentation#test_thread_instrumentation_fork_safe/home/chkbuild/chkbuild/tmp/build/20220605T213004Z/ruby/tool/lib/test/unit/assertions.rb:109:in `assert': Expected 0 to be nonzero?. (Test::Unit::AssertionFailedError) ``` The failures seem to depend on context switches. I suspect `sleep 0.05` is too short, so this change tries to extend the wait time.
2022-06-06Fix a typo [ci skip]Kazuhiro NISHIYAMA
2022-06-06* 2022-06-06 [ci skip]git
2022-06-06Remove useless assignment always overriddenNobuyoshi Nakada
2022-06-06Export RbConfig::CONFIG["COROUTINE_TYPE"]nick evans
THREAD_MODEL is exported already, so this matches that. Exporting this is simpler than inspecting configure_args and arch and matching that up with a specific configure.ac. Fix GH-5976
2022-06-05* 2022-06-05 [ci skip]git
2022-06-05Use RBOOLNobuyoshi Nakada
2022-06-04[ruby/rdoc] Use command array form of `IO.popen` alwaysNobuyoshi Nakada
So that an exception raises by non-existent command, not via shell. https://github.com/ruby/rdoc/commit/fd94dce69d
2022-06-04[ruby/rdoc] Make all documents at the top level `extra_rdoc_files` [ci skip]Nobuyoshi Nakada
https://github.com/ruby/rdoc/commit/6b1a011243
2022-06-04[ruby/rdoc] Remove `RDoc::RI::Driver#in_path?`Nobuyoshi Nakada
https://github.com/ruby/rdoc/commit/83051403d6
2022-06-04[ruby/rdoc] Enable pager testsNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/ce63794fde
2022-06-04[ruby/rdoc] Stop checking if pager command foundNobuyoshi Nakada
`IO.popen` does that job. https://github.com/ruby/rdoc/commit/3bbbc5ac84
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