summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-07[rubygems/rubygems] Always build in release modeIan Ker-Seymer
https://github.com/rubygems/rubygems/commit/7b84fc1f19
2022-12-07[rubygems/rubygems] Updates rb-sys to 0.9.46Ian Ker-Seymer
https://github.com/rubygems/rubygems/commit/6c2e7aafd6
2022-12-07NEWS.md: Remove an extraneous word [ci skip]Nobuyoshi Nakada
2022-12-07[Bug #19187] Fix for tzdata-2022gNobuyoshi Nakada
2022-12-07NEWS.md: Remove white space only lines [ci skip]Nobuyoshi Nakada
2022-12-07Mention `rb_hash_new_capa` and `rb_internal_thread_*` in NEWS.mdJean Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/6871
2022-12-07NEWS.md: Added some missing featuresYusuke Endoh
Also, tool/update-NEWS-refs.rb is added to help the update of NEWS.md.
2022-12-06MJIT: Fix an assertion broken with --mjit-wait enabledTakashi Kokubun
2022-12-06MJIT: Refactor mjit_waitTakashi Kokubun
2022-12-06MJIT: Remove obsoleted MJIT countersTakashi Kokubun
2022-12-06MJIT: Use xfree for unitsTakashi Kokubun
now that we use ZALLOC_N for allocating units
2022-12-06MJIT: Explain why we have MJIT_CFLAGS_PIPE [ci skip]Takashi Kokubun
2022-12-06MJIT: Just use ZALLOC_N in create_unitTakashi Kokubun
We no longer use an MJIT worker thread, so there's no need to avoid GC.
2022-12-06MJIT: Remove an unused argument and unused countersTakashi Kokubun
I plan to rebuild MJIT metrics later, not using debug counters.
2022-12-07document for commit 5bbba76489628f450949 [ci skip]卜部昌平
2022-12-06MJIT: Refactor the jit_func enum for MJITTakashi Kokubun
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.
2022-12-07NEWS.md: Explain the change of [Feature #18367]Yusuke Endoh
2022-12-06Set max_iv_count (used for object shapes) based on inline cachesJemma Issroff
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> Notes: Merged: https://github.com/ruby/ruby/pull/6870
2022-12-06Update dependenciesDaniel Colson
2022-12-06Introduce BOP_CMP for optimized comparisonDaniel Colson
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>
2022-12-06Move BOP macros to separate fileDaniel Colson
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>
2022-12-06[ruby/net-http] [DOC] Fix call-seq for Net::HTTP.startPeter Zhu
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
2022-12-06[Feature #19183] Ignore interim artifacts [ci skip]Nobuyoshi Nakada
2022-12-06NEWS: `UnboundMethod#==`Koichi Sasada
2022-12-06[Bug #18623] Link only existing excutables to make runnable [ci skip]Nobuyoshi Nakada
2022-12-06[DOC] Improve documentation to RB_ALLOCVv3_2_0_rc1Lars Kanis
Although the storage of the opaque Ruby object is an array of VALUEs, the intention of RB_ALLOCV is to allocate bytes of memory. Notes: Merged: https://github.com/ruby/ruby/pull/6654
2022-12-06Bump octokit/request-actiondependabot[bot]
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> Notes: Merged: https://github.com/ruby/ruby/pull/6861
2022-12-06Remove unused link [ci skip]Kazuhiro NISHIYAMA
2022-12-06Fix a link [ci skip]Kazuhiro NISHIYAMA
2022-12-06Remove unused headings [ci skip]Kazuhiro NISHIYAMA
2022-12-06Revert wrong sync in 9aa18f61f297fcb2ee0cbd4be0772607745274b7 [ci skip]Kazuhiro NISHIYAMA
2022-12-06[Bug #19180] rbconfig.rb depends on common.mkNobuyoshi Nakada
2022-12-06update NEWS to mention Unicode version 15.0.0Martin Dürst
2022-12-06update rbconfig spec to Unicode version 15.0.0Martin Dürst
(this includes emoji version 15.0)
2022-12-06update Unicode include files to version 15.0.0Martin Dürst
2022-12-06move Unicode include files to version 15.0.0 directoryMartin Dürst
2022-12-06update Unicode normalization tables to version 15.0.0Martin Dürst
2022-12-06add file version check for new Unicode emoji file headerMartin Dürst
The change in the Unicode emoji file header took place at version 14.0.0, but is needed only from version 15.0.0 because in version 14.0.0, another check is still active.
2022-12-06change Unicode version to 15.0.0Martin Dürst
2022-12-06[ruby/irb] Allow disabling autocompletion withStan Lo
`IRB_USE_AUTOCOMPLETE=false` (https://github.com/ruby/irb/pull/469) * Allow using IRB_USE_AUTOCOMPLETE=false to disable autocompletion Currently, the only 2 ways to disable autocompletion are: 1. Create `.irbrc` and set `IRB.conf[:USE_AUTOCOMPLETE] = false` 2. Add the `--noautocomplete` flag when using the `irb` executable Both of them are less convenient than setting a env var and are lesser known to devs. And given the number of problems the autocompletion has (see #445), I think we should allow disabling it with a simple `IRB_USE_AUTOCOMPLETE=false`. * Mention some env var configs in the README
2022-12-06fix wrong property information in name2ctype.hMartin Dürst
Co-authored-by: Nobuyoshi Nakada [nobu@ruby-lang.org](mailto:nobu@ruby-lang.org) See https://github.com/ruby/ruby/pull/6451 and https://bugs.ruby-lang.org/issues/19007. This keeps the Unicode version at 14.0.0, so this commit is suited for backporting where applicable. At the time of this commit, the reason for the wrong properties which we fix here is still not completely known, so issue 19007 should be kept open.
2022-12-05Skip auto-request-review on fork repositoriesTakashi Kokubun
2022-12-05YJIT: Remove --yjit-code-page-size (#6865)Alan Wu
Certain code page sizes don't work and can cause crashes, so having this value available as a command-line option is a bit dangerous. Remove it and turn it into a constant instead. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-12-05Add shape_id to heap dumpJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/6864
2022-12-05YJIT: Extract SHAPE_ID_NUM_BITS into a constant (#6863)Jemma Issroff
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-12-05[ruby/did_you_mean] Do not suggest #name= for #name and vice versaMatthew Boeh
(https://github.com/ruby/did_you_mean/pull/180) * Do not suggest #name= for #name and vice versa * Avoid allocating unnecessary MatchData Co-authored-by: Jean byroot Boussier <jean.boussier+github@shopify.com> Co-authored-by: Jean byroot Boussier <jean.boussier+github@shopify.com>
2022-12-05[ruby/irb] Close leaked pty IOsNobuyoshi Nakada
https://github.com/ruby/irb/commit/cc9b1d7ba8
2022-12-05Update default gems list at fa865f5752d55c6fd2f88b81401c43 [ci skip]git
2022-12-05[ruby/bigdecimal] Bump version to 3.1.3Hiroshi SHIBATA
https://github.com/ruby/bigdecimal/commit/25a75c2033
2022-12-05Update default gems list at 3fe5890f7b2edca1b5e25b1bf240bb [ci skip]git