| Age | Commit message (Collapse) | Author |
|
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)
```
|
|
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)
```
|
|
https://github.com/rubygems/rubygems/commit/4ce66c41a2
|
|
|
|
https://github.com/ruby/prism/commit/1398879d79
|
|
We don't need to check for Qundef because the shape tells us the number
if IVs that are stored on the object
|
|
(https://github.com/ruby/prism/pull/1591)
https://github.com/ruby/prism/commit/46b8576dd0
|
|
(https://github.com/ruby/prism/pull/1901)
https://github.com/ruby/prism/commit/2c308e6697
|
|
(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>
|
|
|
|
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>
|
|
(https://github.com/ruby/prism/pull/1899)
https://github.com/ruby/prism/commit/1b41c2d56c
|
|
|
|
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
|
|
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.
|
|
These are not very common, but they're very easy to convert.
|
|
|
|
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.
|
|
If we always return 0, we might as well not define
the function at all.
|
|
|
|
(https://github.com/ruby/irb/pull/773)
https://github.com/ruby/irb/commit/997df3e849
|
|
|
|
|
|
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)
----------------------------------------------------------------------
|
|
|
|
* bundle rbs-3.3.1
* Restore diff/subtract tests
|
|
|
|
|
|
|
|
|
|
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)
|
|
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.
|
|
|
|
|
|
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)
|
|
(https://github.com/ruby/prism/pull/1878)
Fix https://github.com/ruby/prism/pull/1832
https://github.com/ruby/prism/commit/060bcc81a8
|
|
(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
|
|
(https://github.com/ruby/prism/pull/1801)
https://github.com/ruby/prism/commit/4c1391ea56
|
|
|
|
common code.
Merge the Big5 extensions into pm_big5.c
|
|
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
|
|
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
|
|
Too complex classes use a hash table to store ivs, and should always pin
their IVs. We shouldn't touch those classes in compaction.
|
|
(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
|
|
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
```
|
|
|
|
(https://github.com/ruby/prism/pull/1897)
https://github.com/ruby/prism/commit/00b76ef254
|
|
|
|
https://github.com/ruby/prism/commit/eec1862967
|
|
YJIT: Print a perf map path to stderr
|