| Age | Commit message (Collapse) | Author |
|
For static analysis, it’s better to keep unused literal nodes.
If simply change `block_append` to fall through, both "unused literal ignored"
and "possibly useless use of a literal in void context" warnings
are shown for the same line. But it’s verbose then remove
"unused literal ignored" warning.
This kind of optimization is already implemented on compile.c.
`compile_block` calls `iseq_compile_each0` with `popped = 1` when NODE_BLOCK
has next.
|
|
Add a new API rb_profile_thread_frames(), which is essentialy a
per-thread version of rb_profile_frames().
While the original rb_profile_frames() always returns results about the
current active thread obtained by GET_EC(), this new API takes a Thread
to be profiled as an argument.
This should come in handy when profiling I/O-bound programs such as
webapps, since this new API allows us to learn about Threads performing
I/O (which do not have the GVL).
Profiling worker threads (such as Sidekiq workers) may be another
application.
Implements [Feature #10602]
Co-authored-by: Mike Perham <mike@perham.net>
|
|
|
|
(https://github.com/ruby/irb/pull/743)
* Use IRB's own doc for doc dialog tests
* Run doc dialog tests for older Rubies too
* Remove unnecessary CI setups
https://github.com/ruby/irb/commit/97a2b86f0a
|
|
instead of assert.
It's better because assert_equal prints the values when it fails.
https://github.com/ruby/rdoc/commit/91d40ce8f8
|
|
https://github.com/ruby/prism/commit/bd4d248fd6
|
|
https://github.com/ruby/prism/commit/4a7be1fc50
|
|
* no_proxy is meant to operate on the destination address, not on the name of the proxy
* if both end with `'.example'`, the test does not nail down the behaviour
https://github.com/ruby/net-http/commit/bb9a5cfa3d
|
|
|
|
- Prefix `check_both_ways` with `assert_` to show proper failure
lines.
- Extract dedicated assertions for Encoding::UndefinedConversionError
and Encoding::InvalidByteSequenceError.
|
|
test/fiber/test_queue.rb: Make the stuck tests fail.
We observed the 2 tests in the `test/fiber/test_queue.rb` getting stuck
in some GCC compilers in Ubuntu ppc64le focal/jammy, even when the timeout
`queue.pop(timeout: 0.0001)` is set in the code.
This commit is to make the tests fail rather than getting stuck.
|
|
Since the check for MAX_SHAPE_ID was done before even checking
if the transition we're looking for even exists, as soon as the
max shape is reached, get_next_shape_internal would always return
`TOO_COMPLEX` regardless of whether the transition we're looking
for already exist or not.
In addition to entirely de-optimize all newly created objects, it
also made an assertion fail in `vm_setivar`:
```
vm_setivar:rb_shape_get_next_iv_shape(rb_shape_get_shape_by_id(source_shape_id), id) == dest_shape
```
|
|
This reverts commit db3b814cb0ff6ffe83fe0c4f66cd6ce8951c3ca7.
This debugging information is no longer needed.
|
|
https://github.com/ruby/prism/commit/5b72f84480
|
|
https://github.com/ruby/prism/commit/44090d9f26
|
|
https://github.com/ruby/prism/commit/ee54244800
|
|
https://github.com/ruby/prism/commit/1da5e05672
|
|
|
|
https://github.com/ruby/prism/commit/9fdb41d8ba
|
|
https://github.com/ruby/prism/commit/160df9a687
|
|
https://github.com/ruby/prism/commit/e6deed05a5
|
|
MultiTargetNode
https://github.com/ruby/prism/commit/6d1858192e
|
|
https://github.com/ruby/prism/commit/e60240d54b
|
|
https://github.com/ruby/prism/commit/ec31fd827f
|
|
https://github.com/ruby/prism/commit/dda7a0da52
|
|
Method calls with keyword splat args compile differently than
without since they merge the keyword arg hash with the keyword splat
hash. We know this information at parse time, so can set a flag
which the compiler can use.
https://github.com/ruby/prism/commit/e5f8a9a3cd
|
|
Added the correct encoding to the allocated regex. This required making
a new method to set the encoding and pass that to `rb_enc_reg_new`
instead of `rb_reg_new`. The former `rb_reg_new` would set the encoding
to ASCII8BIT regardless of encoding flag.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 4259d5b5aefd58d0bf86ad20122beee53533ff59.
This commits is wrong result of sync_default_gems.rb
|
|
|
|
|
|
|
|
https://github.com/ruby/prism/commit/5969b827ae
|
|
|
|
Instead of NoMethodError being raised by accidentally trying to use nil
https://github.com/rubygems/rubygems/commit/ac8f812bbf
|
|
When we use `test_prism_eval`, failed tests will point to the line
number of the `test_prism_eval` method definition instead of the test
that failed. If we use `assert_prism_eval` instead, failed tests will
properly poin to the test that failed because the test framework knows
to stop the backtrace earlier.
Before line number in failure points to helper definition:
```
Prism::TestCompilePrism#test_RegularExpressionNode = 0.21 s
1) Failure:
Prism::TestCompilePrism#test_RegularExpressionNode [test/ruby/test_compile_prism.rb:755]:
</pit/> (Windows-31J) expected but was
</pit/> (US-ASCII).
```
After line number in failure points to test that failed:
```
Prism::TestCompilePrism#test_RegularExpressionNode = 0.00 s
1) Failure:
Prism::TestCompilePrism#test_RegularExpressionNode [test/ruby/test_compile_prism.rb:334]:
</pit/> (Windows-31J) expected but was
</pit/> (US-ASCII).
```
|
|
|
|
|
|
Since Linux 4.5, sendmsg(2) fails with ETOOMANYREFS if the number of
"in-flight" IOs, which has been sent by sendmsg(2) but has not yet
accepted by recvmsg(2), exceeds the RLIMIT_NOFILE resource limit.
https://rubyci.s3.amazonaws.com/arm64-neoverse-n1/ruby-master/log/20231025T090004Z.fail.html.gz
```
1) Error:
TestSocket_UNIXSocket#test_fd_passing_race_condition:
Errno::ETOOMANYREFS: Too many references: cannot splice - sendmsg(2)
```
This change reduces the number of times of IO passing under 1024,
which is a default limit in many environments.
|