| Age | Commit message (Collapse) | Author |
|
|
|
This significantly reduces retained objects on RJIT.
|
|
|
|
|
|
|
|
|
|
3c471149910d79745b50389c436f0ed2973e0d91 added a call to `reset_sigmask`
but the guard condition didn't match with the condition used to define
`reset_sigmask`.
|
|
|
|
wasi-libc recently added a family of `dl*` functions[^1], but it still
doesn't have `dladdr` unlike other platforms. Guard the use of `dladdr`
with `HAVE_DLADDR` to avoid build failure with the head version of
wasi-libc.
The library name is used only for diagnostic purpose if it's not NULL,
so it's safe to skip it.
[^1]: https://github.com/WebAssembly/wasi-libc/commit/b85d65528d6e17ae1874c6cc6a6a3ac02e83021a
|
|
|
|
https://github.com/ruby/psych/commit/a9ab74d132
|
|
https://github.com/ruby/psych/commit/0dc25a9d6a
|
|
Object IDs became more expensive in Ruby 2.7. Using `Hash#compare_by_identity` let's us get the same effect, without needing to force all these objects to have object_ids assigned to them.
https://github.com/ruby/psych/commit/df69e4a12e
|
|
|
|
The test sometimes fails with:
1) Failure:
TestGc#test_stat_heap [/tmp/ruby/src/trunk-repeat50/test/ruby/test_gc.rb:169]:
Expected 33434403 to be <= 33434354.
|
|
On Linux, while the signal handler runs, that signal is masked, so in
the rb_bug_for_fatal_signal() code path we didn't get the default signal
action as intended. See signal(7). It worked fine on macOS, though.
Before:
$ ./miniruby -e 'Process.kill :SIGSEGV, Process.pid'
<snip>
Aborted (core dumped)
After:
$ ./miniruby -e 'Process.kill :SIGSEGV, Process.pid'
<snip>
Segmentation fault (core dumped)
Follow-up for 1ac0afab4da "rb_bug_for_fatal_signal: exit with the right
signal".
|
|
If a Hash is non-empty, there's no point calling `ar_force_convert_table`. We'll be immediately discarding that new st table, and replacing it with the new `identtable` st table that we're stealing out of `tmp`.
|
|
For non-empty Hashes, this function needs to rehash all the stored values (using the new `compare` and `hash` functions from `identhash`). It does so by writing into a newly allocated `tmp` Hash, and then transferring ownership of its st table into `self`.
For empty Hashes, we can skip allocating this `tmp`, because there's nothing to re-hash. We can just modify our new st table's `type` in-place.
|
|
[Bug #20071]
Currently Ruby crashes when the --parser=prism flag is used either with
no input, or with input that is being redirected from stdin. So all of
the following will crash
ruby --parser=prism
ruby --parser=prism < test_code.rb
cat test_code.rb | ruby --parser=prism
This commit checks whether the input is assumed to be from stdin, and
then processes that as a file.
This will fix the second and third case above, but will cause a slight
behavioural changes for the first case - Ruby will treat stdin as an
empty file in this case and exit, rather than waiting for data to be
piped into stdin.
|
|
|
|
|
|
It's a pretty useful feature in 3.3.
|
|
`sched->lock_owner` can be non-NULL at fork because the timer thread
can acquire the lock while forking. `lock_owner` information is for
debugging, so we only need to clear it at fork.
I hope this patch fixes the following assertion failure:
```
thread_pthread.c:354:thread_sched_lock_:sched->lock_owner == NULL
```
|
|
pinned_slots is not being reset every GC, which causes this assertion to
fail:
```
Assertion Failed: gc.c:7076:gc_pin:GET_HEAP_PAGE(obj)->pinned_slots <= GET_HEAP_PAGE(obj)->total_slots
```
This commit changes it to reset it at the beginning of every compaction
GC cycle.
|
|
This is more consistent with other messages.
|
|
Ref: https://github.com/ruby/ruby/pull/6407
[Bug #19012]
`0` is now interpreted as closed connection an not an
empty packet, as these are very rare and pretty much
useless.
|
|
|
|
`:nodoc:` directive does not work at method definition in C, and must
be at the implementation function. That is, there is no way to make
one method visible and another method sharing the implementation
invisible at the same time.
|
|
|
|
|
|
Due to the bug ruby/rdoc#1067, `rb_file_const` needs `Document-const`
directives.
|
|
|
|
|
|
|
|
As suggested by Mame, we should try to help users fix the issues
without having to lookup the meaning of the warning.
|
|
Looking at the name in the list, "Miscellaneous / Miscellaneous checks"
seems too verbose/repetitive. Let's make it "Misc / Miscellaneous checks".
|
|
We're going to add check_misc as a required status check, and "checks"
was a bit too vague for matching the job name.
|
|
|
|
* Move `define?(@var)` optimization into GC section
* Remove a trailing space.
|
|
|
|
The document must be placed immediately before the class definition.
No other statements can be placed in between.
|
|
|
|
This reverts commit cbda94edd80b0f664eda927f9ce9405b2074633a, because
`:nodoc:` does not work for constants.
In the case of `rb_define_const`, RDoc parses the preceeding comment
as in `"/* definition: comment */"` form.
|
|
"Not document only" should be honored always. Also simplified repo
and branch conditions
|
|
|
|
|
|
|
|
|
|
|
|
|