aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ruby/irb] Fix colorize backtick symboltomoya ishida2023-02-122-1/+2
| | | | | | | | (https://github.com/ruby/irb/pull/508) https://github.com/ruby/irb/commit/dd7f25cd45 Co-authored-by: Stan Lo <stan001212@gmail.com>
* [DOC] Move old ChangeLog files to doc/ChangeLog (#7293)Takashi Kokubun2023-02-1013-2/+2
|
* [DOC] Make the header levels consistent againTakashi Kokubun2023-02-101-1/+1
|
* Fix minor issues in doc/maintainers.md (#7292)Jeremy Evans2023-02-101-26/+26
| | | | | | Use *unmaintained* instead of Ruby core team in 2 places, for consistency with the rest of the document. Use h3 instead of h4 tags if nested directly under h2.
* [DOC] debug.rb is a bundled gem from 3.1Takashi Kokubun2023-02-101-4/+3
|
* [DOC] Add a link to [ruby-core:25764]Takashi Kokubun2023-02-101-1/+1
|
* [DOC] Update a link to maintainers.rdocTakashi Kokubun2023-02-101-1/+1
|
* Convert doc/maintainers.rdoc to .md (#7291)Takashi Kokubun2023-02-102-424/+527
| | | | | | | * [DOC] Convert maintainers.rdoc to .md with RDoc::Markup::ToMarkdown * [DOC] Format maintainers.md
* YJIT: add counters for polymorphic send and send with known class (#7288)Maxime Chevalier-Boisvert2023-02-104-23/+40
|
* Remove duplicate definitionsMatt Valentine-House2023-02-101-3/+0
| | | | | These are defined in ruby/internal/config.h which is included in this file already.
* Tell VSCode to debug test.rb by default [ci-skip]Matt Valentine-House2023-02-101-1/+1
|
* Implement Write Barrier for RMatch objectsJean Boussier2023-02-102-13/+23
| | | | They only have two references.
* [DOC] Fix typo in document of regexp [ci skip]OKURA Masafumi2023-02-101-2/+2
|
* use correct svar even if env is escapedKoichi Sasada2023-02-106-20/+122
| | | | | | | | This patch is follo-up of 0a82bfe. Without this patch, if env is escaped (Proc'ed), strange svar can be touched. This patch tracks escaped env and use it.
* [DOC] Fix the help messages for cleanNobuyoshi Nakada2023-02-101-2/+2
|
* st.c: spell `perturb' properlyEric Wong2023-02-101-18/+18
| | | | | Otherwise, a reader may wonder who `Peter B.' is and why a variable is named after them...
* [ruby/fileutils] Add mkdir_p to FileUtils.installSatadru Pramanik, DO, MPH, MEng2023-02-102-1/+15
| | | | | | | | | | | | | | | | (https://github.com/ruby/fileutils/pull/104) * Add mkdir_p to FileUtils.install * Adjust raise message. * adjust raise language * handle trailing slash in dest * simplify * Add tests
* [ruby/logger] Add Logger#with_level{...} for block-scoped log level.Mike Perham2023-02-103-18/+72
| | | | | | | | (https://github.com/ruby/logger/pull/85) * Update lib/logger/severity.rb https://github.com/ruby/logger/commit/7aabb0b4aa
* Add internals glossaryAaron Patterson2023-02-091-0/+40
| | | | | I started a glossary to help new contributors navigate the internals of CRuby, and I think we should maintain it in ruby/ruby
* Enhancement github releases generatorHiroshi SHIBATA2023-02-101-1/+21
| | | | | | * Create GitHub Releases by itself * Added help and usage message * Decorate release body
* YJIT: format numbers in stats printouts with comma separators (#7281)Maxime Chevalier-Boisvert2023-02-091-31/+43
|
* YJIT: optimized codegen for `rb_ary_empty_p` (WIP) (#7242)Maxime Chevalier-Boisvert2023-02-091-0/+28
| | | | | | | | | | | * YJIT: add specialized implementation of rb_ary_empty_p() * Update yjit/src/codegen.rs Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> --------- Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Rename rb_str_splice_{0,1} -> rb_str_update_{0,1}Matt Valentine-House2023-02-091-6/+6
|
* Remove alias macro rb_str_spliceMatt Valentine-House2023-02-091-7/+5
|
* Copy cvar table on cloneeileencodes2023-02-092-0/+37
| | | | | | | | | | | | When a class with a class variable is cloned we need to also copy the cvar cache table from the original table to the clone. I found this bug while working on fixing [Bug #19379]. While this does not fix that bug directly it is still a required change to fix another bug revealed by the fix in https://github.com/ruby/ruby/pull/7265 This needs to be backported to 3.2.x and 3.1.x. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
* Remove unused preprocessor blockPeter Zhu2023-02-091-3/+0
|
* YJIT: Support invokesuper in a block (#7264)Maple Ong2023-02-092-14/+37
| | | | | | | Support invokesuper in a block on YJIT invokesuper previously side exited when it is in a block. To make sure we're compiling the correct method in super, we now use the local environment pointer (LEP) to get the method, which will work in a block. Co-authored-by: John Hawthorn <john@hawthorn.email>
* YJIT: Add counter for megamorphic send (#7274)Takashi Kokubun2023-02-092-1/+4
|
* YJIT: Use the system page size when the code page size is too small (#7267)Alan Wu2023-02-093-30/+63
| | | | | | | | | | | | | | | | | | Previously on ARM64 Linux systems that use 64 KiB pages (`CONFIG_ARM64_64K_PAGES=y`), YJIT was panicking on boot due to a failed assertion. The assertion was making sure that code GC can free the last code page that YJIT manages without freeing unrelated memory. YJIT prefers picking 16 KiB as the granularity at which to free code memory, but when the system can only free at 64 KiB granularity, that is not possible. The fix is to use the system page size as the code page size when the system page size is 64 KiB. Continue to use 16 KiB as the code page size on common systems that use 16/4 KiB pages. Add asserts to code_gc() and free_page() about code GC's assumptions. Fixes [Bug #19400]
* [ruby/irb] Make tests more compatible with TruffleRubyStan Lo2023-02-091-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://github.com/ruby/irb/pull/514) * Improve encoding error test case The test input IRB currently uses happen to hit a compatibility bug in TruffleRuby, which has been documented in https://github.com/oracle/truffleruby/issues/2848 Although it'll eventually be fixed, we can make the test case support TruffleRuby now by tweaking it just a little bit. Co-authored-by: Kevin Menard <kevin@nirvdrum.com> * Remove redundant TruffleRuby omits/pends Co-authored-by: Kevin Menard <kevin@nirvdrum.com> * Use a different way to test warning emission The test case was added in https://github.com/ruby/irb/commit/d08ef68d2dfbf041d363f65686d78a937954513c to verify that IRB emits Ruby warning as expected. But the subject it uses relies on CRuby's regexp engine, which isn't always used in other language implementations, like TruffleRuby. That's why we ended up skipping TruffleRuby in this test case. Since the test isn't about regexp itself, we can change the testing subject and just remove the special condition for TruffleRuby. Co-authored-by: Kevin Menard <kevin@nirvdrum.com> --------- https://github.com/ruby/irb/commit/6fdf4f3e97 Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
* Merge gc.h and internal/gc.hMatt Valentine-House2023-02-0930-194/+167
| | | | [Feature #19425]
* YJIT: Add counters for ivar exits (#7266)Takashi Kokubun2023-02-092-1/+9
|
* [Bug #19426] Fix endless `Range#step` with `#succ` methodNobuyoshi Nakada2023-02-092-1/+45
|
* [rubygems/rubygems] Avoid crashing with a corrupted lockfileDaniel Colson2023-02-093-3/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I did a bad thing (script that edits the Gemfile.lock directly) and ended up with a Gemfile.lock that was completely missing some indirect dependencies. While this is my fault and an error is reasonable, I noticed that the error got progressively less friendly in recent versions of bundler. Something similar came up in https://github.com/rubygems/rubygems/issues/6210, and this commit would have helped with that case as well (although we've already handled this a different way with #6219). Details: --- Back on Bundler 2.2.23, a corrupt lockfile like this would cause a helpful error: ``` Unable to find a spec satisfying minitest (>= 5.1) in the set. Perhaps the lockfile is corrupted? ``` Bundler 2.3.26 gave a helpful warning: ``` Warning: Your lockfile was created by an old Bundler that left some things out. Because of the missing DEPENDENCIES, we can only install gems one at a time, instead of installing 16 at a time. You can fix this by adding the missing gems to your Gemfile, running bundle install, and then removing the gems from your Gemfile. The missing gems are: * minitest depended upon by activesupport ``` But then continued on and crashed while trying to report the unmet dependency: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- NoMethodError: undefined method `full_name' for nil:NilClass lib/bundler/installer/parallel_installer.rb:127:in `block (2 levels) in check_for_unmet_dependencies' ... ``` Bundler 2.4.0 and up crash as above when jobs=1, but crash even harder when run in parallel: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- fatal: No live threads left. Deadlock? 3 threads, 3 sleeps current:0x00007fa6b6704660 main thread:0x00007fa6b6704660 * #<Thread:0x000000010833b130 sleep_forever> rb_thread_t:0x00007fa6b6704660 native:0x0000000108985600 int:0 * #<Thread:0x0000000108dea630@Parallel Installer Worker #0 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f67c0 native:0x0000700009a62000 int:0 * #<Thread:0x0000000108dea4a0@Parallel Installer Worker #1 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f63c0 native:0x0000700009c65000 int:0 <internal:thread_sync>:18:in `pop' tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:42:in `deq' ... ``` Changes --- This commit fixes the confusing thread deadlock crash by detecting if dependencies are missing such that we'll never be able to enqueue. When that happens we treat it as a failure so the install can finish. That gets us back to the `NoMethodError`, which this commit fixes by using a different warning in the case where no spec is found. https://github.com/rubygems/rubygems/commit/d73001a21d
* Avoid to duplicate entries that own redmine and github idsHiroshi SHIBATA2023-02-091-6/+5
|
* Remove `REG_LITERAL` flagNobuyoshi Nakada2023-02-091-4/+0
| | | | All `Regexp` literals are frozen now.
* Added helper script for generate github releasesHiroshi SHIBATA2023-02-091-0/+40
|
* [rubygems/rubygems] Improve wording of unmet dependencies warningDaniel Colson2023-02-082-4/+4
| | | | | | | | | | | | | | | `trying to manually editing` doesn't seem quite grammatically correct. We could change it to `trying to manually edit` (is that a split infinitive?), but I don't think `trying to` adds much here so I've removed it instead so `editing` is the verb. For the list of dependencies, the wording before this commit seemed to reverse the dependency. "B, depended on A" sounds like B depends on A (or did in the past but doesn't anymore?), but that's not correct. I think there's a missing word: "B, depended on by A", but I find "B, dependency of A" a bit nicer. https://github.com/rubygems/rubygems/commit/49a31257e3
* Rename iseq_mark_and_update to iseq_mark_and_movePeter Zhu2023-02-084-7/+7
| | | | The new name is more consistent.
* [DOC] Refine/fix doc/contributing/building_ruby.md [ci skip]Nobuyoshi Nakada2023-02-081-3/+7
| | | | | | * Separate dependencies for RubyGems * Add reasons of optional libraries * Add a note for gperf and fix the required version
* Use Thread.pass until thread.stop? to wait for thread to blockJean Boussier2023-02-081-1/+1
| | | | | | [Bug #19415] It should be more reliable
* Add TAGS rule [ci skip]Nobuyoshi Nakada2023-02-082-0/+22
|
* Only emit circular dependency warning for owned thread shieldsJean byroot Boussier2023-02-086-4/+29
| | | | | | | | | | [Bug #19415] If multiple threads attemps to load the same file concurrently it's not a circular dependency issue. So we check that the existing ThreadShield is owner by the current fiber before warning about circular dependencies.
* Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularlyJean Boussier2023-02-083-5/+41
| | | | | | | | The old RUBY_GC_HEAP_INIT_SLOTS isn't really usable anymore as it initalize all the pools by the same factor, but it's unlikely that pools will need similar sizes. In production our 40B pool is 5 to 6 times bigger than our 80B pool.
* Removed svn feature from make-snapshotHiroshi SHIBATA2023-02-081-8/+3
|
* Replace `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED`Nobuyoshi Nakada2023-02-084-13/+15
|
* Replace `PACKED_STRUCT` in includeNobuyoshi Nakada2023-02-081-3/+4
|
* Extract include/ruby/internal/attr/packed_struct.hNobuyoshi Nakada2023-02-0899-21/+411
| | | | | | | | | Split `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED` macros into the macros bellow: * `RBIMPL_ATTR_PACKED_STRUCT_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_END` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END`
* Use more agressive RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR for GC testsJean Boussier2023-02-071-4/+6
|
* Revert "Revert "Consider DATA objects without a mark function as protected""Jean byroot Boussier2023-02-071-2/+3
| | | | This reverts commit 6eae8e5f514db716e52ad06a2ac97e2cc3910d83.