aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* MJIT: Deal with a TODO with assertionTakashi Kokubun2022-12-071-1/+2
|
* Introduce `IO.new(..., path:)` and promote `File#path` to `IO#path`. (#6867)Samuel Williams2022-12-0810-90/+112
|
* Update default gems list at b9d055d7604ea41f54268076622c8a [ci skip]git2022-12-081-1/+1
|
* [ruby/stringio] bump up to 3.0.4Sutou Kouhei2022-12-081-1/+1
| | | | https://github.com/ruby/stringio/commit/5ba853d6ff
* [ruby/logger] Another performance improvement on the Formatter byAkira Matsuda2022-12-081-3/+2
| | | | | | using Kernel#sprintf over String#% (https://github.com/ruby/logger/pull/75) * Prefer Kernel#sprintf over String#% for formatting Strings
* [ruby/logger] Only assign to `@filename` if the path is valid.Samuel Williams2022-12-081-2/+4
| | | | | | (https://github.com/ruby/logger/pull/81) https://github.com/ruby/logger/commit/b41d7c699c
* Don't sync jar artifact of CGIHiroshi SHIBATA2022-12-081-0/+1
|
* [ruby/logger] Drop RDoc development dependency to avoid CI failures.Samuel Williams2022-12-081-1/+0
| | | | | | (https://github.com/ruby/logger/pull/82) https://github.com/ruby/logger/commit/8915627234
* Update default gems list at 9fce6014b52852265c6b34a04a2057 [ci skip]git2022-12-081-1/+1
|
* [ruby/psych] Bump version to 5.0.1Hiroshi SHIBATA2022-12-081-1/+1
| | | | https://github.com/ruby/psych/commit/bdf20e6042
* Add debug counters to RubyVM.stat (#6086)Chris Seaton2022-12-072-4/+23
| | | | | | | | | * Add debug counters to RubyVM.stat * Use SIZET2NUM Co-author: Nobuyoshi Nakada <nobu@ruby-lang.org> * Prefix debug_counter_names
* [ruby/irb] Lazily load the multi-irb extensionStan Lo2022-12-071-5/+18
| | | | | | | | | | | | | | | | | | (https://github.com/ruby/irb/pull/472) * Lazily load the multi-irb extension We now have plan to implement a command that prints all commands' information, which will need to load all command files without actually running them. But because the `multi-irb` extension patches IRB's top-level methods, loading it would cause unintentional side-effects. So this commit moves related requires into command execution to avoid the problem. * Make extend_irb_context private Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Update yjit.mdMaxime Chevalier-Boisvert2022-12-071-27/+23
| | | Update citation, fix outdated and inaccurate information.
* Update YJIT warning, mention need to install rustc (#6873)Maxime Chevalier-Boisvert2022-12-071-1/+2
|
* Update NEWS.mdMaxime Chevalier-Boisvert2022-12-071-7/+7
|
* Update spec/bundler/bundler/fetcher/compact_index_spec.rbAaron Patterson2022-12-071-2/+0
| | | Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* Stop transitioning to UNDEF when undefining an instance variableAaron Patterson2022-12-0710-88/+152
| | | | | | | | | | | | | | | | | | | | | | | Cases like this: ```ruby obj = Object.new loop do obj.instance_variable_set(:@foo, 1) obj.remove_instance_variable(:@foo) end ``` can cause us to use many more shapes than we want (and even run out). This commit changes the code such that when an instance variable is removed, we'll walk up the shape tree, find the shape, then rebuild any child nodes that happened to be below the "targetted for removal" IV. This also requires moving any instance variables so that indexes derived from the shape tree will work correctly. Co-Authored-By: Jemma Issroff <jemmaissroff@gmail.com> Co-authored-by: John Hawthorn <jhawthorn@github.com>
* Fix a typo in NEWS.md. [ci-skip]nagachika2022-12-071-1/+1
|
* [rubygems/rubygems] Remove remaining dev profile testIan Ker-Seymer2022-12-071-10/+0
| | | | https://github.com/rubygems/rubygems/commit/7d50e998b3
* [rubygems/rubygems] Better tests are betterIan Ker-Seymer2022-12-071-1/+2
| | | | https://github.com/rubygems/rubygems/commit/17abb80c2c
* [rubygems/rubygems] Fix string match in testIan Ker-Seymer2022-12-071-1/+1
| | | | https://github.com/rubygems/rubygems/commit/82554f2bfd
* [rubygems/rubygems] Always build in release modeIan Ker-Seymer2022-12-072-43/+2
| | | | https://github.com/rubygems/rubygems/commit/7b84fc1f19
* [rubygems/rubygems] Updates rb-sys to 0.9.46Ian Ker-Seymer2022-12-074-66/+46
| | | | https://github.com/rubygems/rubygems/commit/6c2e7aafd6
* NEWS.md: Remove an extraneous word [ci skip]Nobuyoshi Nakada2022-12-071-2/+2
|
* [Bug #19187] Fix for tzdata-2022gNobuyoshi Nakada2022-12-071-6/+15
|
* NEWS.md: Remove white space only lines [ci skip]Nobuyoshi Nakada2022-12-072-1/+1
|
* Mention `rb_hash_new_capa` and `rb_internal_thread_*` in NEWS.mdJean Boussier2022-12-071-0/+12
|
* NEWS.md: Added some missing featuresYusuke Endoh2022-12-072-1/+59
| | | | Also, tool/update-NEWS-refs.rb is added to help the update of NEWS.md.
* MJIT: Fix an assertion broken with --mjit-wait enabledTakashi Kokubun2022-12-061-1/+1
|
* MJIT: Refactor mjit_waitTakashi Kokubun2022-12-062-40/+12
|
* MJIT: Remove obsoleted MJIT countersTakashi Kokubun2022-12-065-77/+1
|
* MJIT: Use xfree for unitsTakashi Kokubun2022-12-061-3/+3
| | | | now that we use ZALLOC_N for allocating units
* MJIT: Explain why we have MJIT_CFLAGS_PIPE [ci skip]Takashi Kokubun2022-12-061-2/+2
|
* MJIT: Just use ZALLOC_N in create_unitTakashi Kokubun2022-12-061-9/+1
| | | | We no longer use an MJIT worker thread, so there's no need to avoid GC.
* MJIT: Remove an unused argument and unused countersTakashi Kokubun2022-12-062-11/+4
| | | | I plan to rebuild MJIT metrics later, not using debug counters.
* document for commit 5bbba76489628f450949 [ci skip]卜部昌平2022-12-072-3/+31
|
* MJIT: Refactor the jit_func enum for MJITTakashi Kokubun2022-12-063-28/+27
| | | | | | All values should have a MJIT_ prefix. We could address the warning for the end mark if we just define the macro for the check next to the enum. It even simplifies some code for checking the enum.
* NEWS.md: Explain the change of [Feature #18367]Yusuke Endoh2022-12-071-0/+6
|
* Set max_iv_count (used for object shapes) based on inline cachesJemma Issroff2022-12-065-21/+31
| | | | | | | | | | | | | | | | With this change, we're storing the iv name on an inline cache on setinstancevariable instructions. This allows us to check the inline cache to count instance variables set in initialize and give us an estimate of iv capacity for an object. For the purpose of estimating the number of instance variables required for an object, we're assuming that all initialize methods will call `super`. This change allows us to estimate the number of instance variables required without disassembling instruction sequences. Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
* Update dependenciesDaniel Colson2022-12-063-0/+43
|
* Introduce BOP_CMP for optimized comparisonDaniel Colson2022-12-0612-82/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this commit the `OPTIMIZED_CMP` macro relied on a method lookup to determine whether `<=>` was overridden. The result of the lookup was cached, but only for the duration of the specific method that initialized the cmp_opt_data cache structure. With this method lookup, `[x,y].max` is slower than doing `x > y ? x : y` even though there's an optimized instruction for "new array max". (John noticed somebody a proposed micro-optimization based on this fact in https://github.com/mastodon/mastodon/pull/19903.) ```rb a, b = 1, 2 Benchmark.ips do |bm| bm.report('conditional') { a > b ? a : b } bm.report('method') { [a, b].max } bm.compare! end ``` Before: ``` Comparison: conditional: 22603733.2 i/s method: 19820412.7 i/s - 1.14x (± 0.00) slower ``` This commit replaces the method lookup with a new CMP basic op, which gives the examples above equivalent performance. After: ``` Comparison: method: 24022466.5 i/s conditional: 23851094.2 i/s - same-ish: difference falls within error ``` Relevant benchmarks show an improvement to Array#max and Array#min when not using the optimized newarray_max instruction as well. They are noticeably faster for small arrays with the relevant types, and the same or maybe a touch faster on larger arrays. ``` $ make benchmark COMPARE_RUBY=<master@5958c305> ITEM=array_min $ make benchmark COMPARE_RUBY=<master@5958c305> ITEM=array_max ``` The benchmarks added in this commit also look generally improved. Co-authored-by: John Hawthorn <jhawthorn@github.com>
* Move BOP macros to separate fileDaniel Colson2022-12-064-84/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit moves ruby_basic_operators and the unredefined macros out of vm_core.h and into basic_operators.h so that we can use them more broadly in places where we currently use a method look up via `rb_method_basic_definition_p` (e.g. object.c, numeric.c, complex.c, enum.c, but also in internal/compar.h after introducing BOP_CMP and elsewhere if we introduce more BOPs) The most controversial part of this change is probably moving redefined_flag out of rb_vm_t. [vm_opt_method_def_table and vm_opt_mid_table](https://github.com/ruby/ruby/blob/9da2a5204f32a4f2ce135fddde2abb6e07d647e9/vm.c) are not part of rb_vm_t either, and I think this fits well with those. But more significantly it seems to result in one fewer instruction. For example: Before: ``` (lldb) disassemble -n vm_opt_str_freeze miniruby`vm_exec_core: miniruby[0x10028233e] <+14558>: movq 0x11a86b(%rip), %rax ; ruby_current_vm_ptr miniruby[0x100282345] <+14565>: testb $0x4, 0x242c(%rax) ``` After: ``` (lldb) disassemble -n vm_opt_str_freeze ruby`vm_exec_core: ruby[0x100280ebe] <+14510>: testb $0x4, 0x120147(%rip) ; ruby_vm_redefined_flag + 43 ``` Co-authored-by: John Hawthorn <jhawthorn@github.com>
* [ruby/net-http] [DOC] Fix call-seq for Net::HTTP.startPeter Zhu2022-12-061-0/+1
| | | | | | | The lack of a newline between the call-seq and the documentation was causing the documentation to be parsed as a call-seq. https://github.com/ruby/net-http/commit/1a212e2065
* [Feature #19183] Ignore interim artifacts [ci skip]Nobuyoshi Nakada2022-12-061-0/+3
|
* NEWS: `UnboundMethod#==`Koichi Sasada2022-12-061-0/+12
|
* [Bug #18623] Link only existing excutables to make runnable [ci skip]Nobuyoshi Nakada2022-12-061-1/+3
|
* [DOC] Improve documentation to RB_ALLOCVv3_2_0_rc1Lars Kanis2022-12-061-3/+3
| | | Although the storage of the opaque Ruby object is an array of VALUEs, the intention of RB_ALLOCV is to allocate bytes of memory.
* Bump octokit/request-actiondependabot[bot]2022-12-061-1/+1
| | | | | | | | | | | | | Bumps [octokit/request-action](https://github.com/octokit/request-action) from 4579f9e1e690974421f9f6928a30fb448e967c60 to 52ce92ce3185e00e2425f043c3e9509121929aea. - [Release notes](https://github.com/octokit/request-action/releases) - [Commits](https://github.com/octokit/request-action/compare/4579f9e1e690974421f9f6928a30fb448e967c60...52ce92ce3185e00e2425f043c3e9509121929aea) --- updated-dependencies: - dependency-name: octokit/request-action dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
* Remove unused link [ci skip]Kazuhiro NISHIYAMA2022-12-061-1/+0
|
* Fix a link [ci skip]Kazuhiro NISHIYAMA2022-12-061-0/+1
|