summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-11-21Implement WeakKeyMap on VWAPeter Zhu
Benchmark: ``` puts(Benchmark.measure do 10_000_000.times do ObjectSpace::WeakKeyMap.new end end) ``` Before: ``` 2.554772 0.014167 2.568939 ( 2.575763) ``` After: ``` 1.994920 0.013583 2.008503 ( 2.012139) ```
2023-11-21Implement WeakMap on VWAPeter Zhu
Benchmark: ``` puts(Benchmark.measure do 10_000_000.times do ObjectSpace::WeakMap.new end end) ``` Before: ``` 2.568662 0.014001 2.582663 ( 2.601743) ``` After: ``` 2.025523 0.008676 2.034199 ( 2.041760) ```
2023-11-21[rubygems/rubygems] Fix invalid platform removal missing adjacent platformsBo Anderson
https://github.com/rubygems/rubygems/commit/4ce66c41a2
2023-11-21Update default gems list at 7d6f812c311436e357fa3fd7e883c4 [ci skip]git
2023-11-21[ruby/prism] Update to v0.18.0Kevin Newton
https://github.com/ruby/prism/commit/1398879d79
2023-11-21Use count macros for counting instance variablesAaron Patterson
We don't need to check for Qundef because the shape tells us the number if IVs that are stored on the object
2023-11-21[ruby/prism] Fix lex_state_beg_pHaldun Bayhantopcu
(https://github.com/ruby/prism/pull/1591) https://github.com/ruby/prism/commit/46b8576dd0
2023-11-21[ruby/prism] feat: adds encoding for TIS-620Thiago Araujo
(https://github.com/ruby/prism/pull/1901) https://github.com/ruby/prism/commit/2c308e6697
2023-11-21[ruby/prism] Fix `..` and `...` to be non-associativeHiroya Fujinami
(https://github.com/ruby/prism/pull/1837) Fix https://github.com/ruby/prism/pull/1829 https://github.com/ruby/prism/commit/90b0b1974c Co-authored-by: Kevin Newton <kddnewton@gmail.com>
2023-11-21Embed ibf_dump objectsJean Boussier
2023-11-21[ruby/prism] Fix constant path full name when parent is not aVinicius Stock
constant (https://github.com/ruby/prism/pull/1742) * Raise if constant path parts contains nodes that can't be used to build full name * Fix typo in constant path error documentation Co-authored-by: Tim Morgan <tim@timmorgan.org> --------- https://github.com/ruby/prism/commit/d73a053262 Co-authored-by: Tim Morgan <tim@timmorgan.org>
2023-11-21[ruby/prism] Warning for ENDs in methodsHaldun Bayhantopcu
(https://github.com/ruby/prism/pull/1899) https://github.com/ruby/prism/commit/1b41c2d56c
2023-11-21Remove string concat node in prismKevin Newton
2023-11-21[ruby/prism] Remove string concat in favor of a flat listKevin Newton
Right now when you have a lot of string concats it ends up being difficult to work with because of the depth of the tree. You end up descending very far for every string literal that is part of the concat. There are already times when we use an interpolated string node to group together two string segments that are part of the same string (like when they are interupted by the contents of a heredoc). This commit takes the same approach and replaces string concats with interpolated string nodes. Now that they're a flat list, they should be much easier to work with. There's still some missing information here that would be useful to consumers: whether or not there is _actually_ any interpolation contained in the list. We could remedy this with another node type that is named something like string list, or we could add a flag to interpolated string node indicating that there is interpolation. Either way I want to solve that in a follow-up commit, since this commit is valuable on its own. https://github.com/ruby/prism/commit/1e7ae3ad1b
2023-11-21Refactor NameError::message and make it embededJean Boussier
These aren't particularly common, but avoiding the malloc churn for small types is always nice, and this commit also modernize and cleanup the TypedData API usage.
2023-11-21Make Process::Status embeddedJean Boussier
These are not very common, but they're very easy to convert.
2023-11-21YJIT: Skip dump-disasm if it fails to create a file (#8968)Takashi Kokubun
2023-11-21Fix memory leak when evacuating generic ivarsPeter Zhu
The lookup in the table is using the wrong key when converting generic instance variables to too complex, which means that it never looks up the entry which leaks memory when the entry is overwritten.
2023-11-21Get rid of useless dsize functionsJean Boussier
If we always return 0, we might as well not define the function at all.
2023-11-21Update default gems list at f954a5663a6cb5fa9f55f45fd0f87e [ci skip]git
2023-11-21[ruby/irb] Bump version to 1.9.1tomoya ishida
(https://github.com/ruby/irb/pull/773) https://github.com/ruby/irb/commit/997df3e849
2023-11-21Update bundled gems list at 307af18fa0389135035c0c52f05975 [ci skip]git
2023-11-21Bundle rbs-3.3.2 (#8974)Soutaro Matsumoto
2023-11-21[Bug #20004] Revert "[Feature #19422] Enable shared by default on macOS"Hiroshi SHIBATA
This reverts commit 9694445051c4192c8f659529133acab253bd0bc3. This change broke our release CI. https://github.com/ruby/actions/actions/runs/6599016994/job/17927644579#step:16:44 Invoking `/Users/runner/work/actions/actions/snapshot-master/ruby -rrubygems /Users/runner/work/actions/actions/snapshot-master/bin/gem --backtrace build lib/bundler/bundler.gemspec` failed with output: ---------------------------------------------------------------------- dyld[42417]: Library not loaded: '/usr/local/lib/libruby.3.3.dylib' Referenced from: '/Users/runner/work/actions/actions/snapshot-master/ruby' Reason: tried: '/usr/local/lib/libruby.3.3.dylib' (no such file), '/usr/lib/libruby.3.3.dylib' (no such file) ----------------------------------------------------------------------
2023-11-21Update bundled gems list at 1886ee190a26cca0308d69a32c9179 [ci skip]git
2023-11-21Bundle rbs-3.3.1 (#8921)Soutaro Matsumoto
* bundle rbs-3.3.1 * Restore diff/subtract tests
2023-11-21Add EXTERNAL_PREFIX to ruby_abi_versionNobuyoshi Nakada
2023-11-21typedef ABI version typesNobuyoshi Nakada
2023-11-21Do not change hash type in Hash#assocNobuyoshi Nakada
2023-11-21Raise an exception when Hash#compare_by_identity during its iterationYusuke Endoh
2023-11-21Raise an exception if ar_table is converted to st_table during iterationYusuke Endoh
ar_table may be converted to st_table by `ar_force_convert_table`. If the conversion occurs during the iteration of ar_table, the iteration may lead to memory corruption. This change prevents the catastrophy by throwing an exception when the conversion is detected. This issue is reported by [SuperS](https://hackerone.com/superss)
2023-11-21`ObjectSpace.count_nodes` doesn't count nodesyui-knk
Node has not been managed by GC from Ruby 2.5. Therefore these codes are not needed. If ObjectSpace depends on Node, it needs to update the file when node type is updated. Delete node related codes to avoid such update.
2023-11-21Add a testTSUYUSATO Kitsune
2023-11-21Reject 'class << (return); end` by "void value expression"TSUYUSATO Kitsune
2023-11-21[Bug #11183] Fix rb_complex_pow for special anglesKouhei Yanagita
Add a special treatment for when the argument of self is an integral multiple of 45 degrees. 1i ** (10 ** 100) #=> 1+0i 1i ** (10 ** 100 + 1) #=> 0+1i (1+1i) ** (10 ** 100) # warning: in a**b, b may be too big #=> (Infinity+0.0i) (1+1i) ** (10 ** 100 + 1) # warning: in a**b, b may be too big #=> (Infinity+Infinity*i)
2023-11-21[ruby/prism] Check a token after targets more strictlyHiroya Fujinami
(https://github.com/ruby/prism/pull/1878) Fix https://github.com/ruby/prism/pull/1832 https://github.com/ruby/prism/commit/060bcc81a8
2023-11-21[ruby/prism] Build the ability to format errorsKevin Newton
(https://github.com/ruby/prism/pull/1796) Previously, we only supported error messages that were constant strings. This works for the most part, but there are some times where we want to include some part of the source in the error message to make it better. For example, instead of "Token is reserved" it's better to write "_1 is reserved". To do this, we now support allocating error messages at runtime that are built around format strings. https://github.com/ruby/prism/commit/7e6aa17deb
2023-11-21[ruby/prism] Split up CaseNode and CaseMatchNodeKevin Newton
(https://github.com/ruby/prism/pull/1801) https://github.com/ruby/prism/commit/4c1391ea56
2023-11-20[prism] Remove pm_big5_hkscs from common.mk targetsKevin Newton
2023-11-20Rename the big5-hkscs stuff to something more generic and add UAO sharing ↵Ryan Garver
common code. Merge the Big5 extensions into pm_big5.c
2023-11-21[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.82 to 0.9.83. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.82...v0.9.83) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/9eb6220c6c
2023-11-21[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.82 to 0.9.83. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.82...v0.9.83) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/41670ad4e2
2023-11-20Don't try compacting ivars on Classes that are "too complex"Aaron Patterson
Too complex classes use a hash table to store ivs, and should always pin their IVs. We shouldn't touch those classes in compaction.
2023-11-21[ruby/irb] Enable Setting Completer Type through `IRB_COMPLETOR`ima1zumi
(https://github.com/ruby/irb/pull/771) I propose introducing the capability to set the IRB completion kinds via an environment variable, specifically `IRB_COMPLETOR=type`. This feature aims to enhance the Rails console experience by allowing Rails users to specify their preferred completion more conveniently. Currently, when using the Rails console, there's no straightforward way to globally set the type completion across a Rails application repository. It's possible to configure this setting by placing a `.irbrc` file at the project root. However, using a .irbrc file is not ideal as it allows for broad configurations and can potentially affect the production environment. My suggestion focuses on allowing users to set the completion to 'type' in a minimal. This enhancement would be particularly beneficial for teams writing RBS in their Rails applications. This type completer, integrated with RBS, would enhance completion accuracy, improving the Rails console experience. https://github.com/ruby/irb/commit/032f6da25f
2023-11-20Implement Enumerator objects on VWAPeter Zhu
This commit implements Enumerator objects on VWA. This speeds allocations and decreases memory usage. ``` require "benchmark" ary = [] puts(Benchmark.measure do 10_000_000.times do u = ary.to_enum end end) puts `ps -o rss= -p #{$$}` ``` Before: ``` 1.500774 0.002717 1.503491 ( 1.506791) 18512 ``` After: ``` 0.892580 0.002539 0.895119 ( 0.897642) 16480 ```
2023-11-20Support declarative marked TypedData objects on VWAPeter Zhu
2023-11-20[ruby/prism] Fix locations derived from arguments.Haldun Bayhantopcu
(https://github.com/ruby/prism/pull/1897) https://github.com/ruby/prism/commit/00b76ef254
2023-11-20Use new match write targetsKevin Newton
2023-11-20[ruby/prism] Replace match write locals with match write targetsKevin Newton
https://github.com/ruby/prism/commit/eec1862967
2023-11-20YJIT: Print a disasm path to stderr (#8967)Takashi Kokubun
YJIT: Print a perf map path to stderr