| Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3000
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3000
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3000
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3000
|
|
View the help message wth pager designed by RUBY_PAGER or PAGER
environment variable, unless that value is empty.
Notes:
Merged: https://github.com/ruby/ruby/pull/3000
|
|
Fastpath has not been used for invokesuper since it has set vm_call_super_method on every invocation.
Because it seems to be blocked only by refinements, try enabling fastpath on invokesuper when cme is not for refinements.
While this patch itself should be helpful for VM performance, a part of this patch's motivation is to unblock inlining invokesuper on JIT.
$ benchmark-driver -v --rbenv 'before;after' benchmark/vm2_super.yml --repeat-count=4
before: ruby 2.8.0dev (2020-04-11T15:19:58Z master a01bda5949) [x86_64-linux]
after: ruby 2.8.0dev (2020-04-12T02:00:08Z invokesuper-fastpath c171984ee3) [x86_64-linux]
Calculating -------------------------------------
before after
vm2_super 20.031M 32.860M i/s - 6.000M times in 0.299534s 0.182593s
Comparison:
vm2_super
after: 32859885.2 i/s
before: 20031097.3 i/s - 1.64x slower
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3018
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3018
|
|
`Dir.entries` returns an array.
Notes:
Merged: https://github.com/ruby/ruby/pull/3018
|
|
This is my first attempt at a pull request. I was reading the ruby docs
the other day and noticed that the output didn't match the code sample
on the with_object documentation. Inserted spaces to fix it.
Notes:
Merged: https://github.com/ruby/ruby/pull/2984
|
|
On some architectures (like RISC-V) sub-word atomics are only available
when linking against -latomic, but the configure script doesn't do that,
causing the atomic checks to fail and the resulting ruby binary is
non-functional. Ruby does not use sub-word atomic operations, rb_atomic_t
is defined to unsigned int, so use unsigned int when checking for atomic
operations.
Notes:
Merged: https://github.com/ruby/ruby/pull/3016
|
|
Raise `SignalException` for SIGPIPE to abort when EPIPE occurs.
Notes:
Merged: https://github.com/ruby/ruby/pull/3013
Merged-By: nobu <nobu@ruby-lang.org>
|
|
|
|
|
|
|
|
Same as 133ae0807d661eac174b59c6e91c11a40975baea
|
|
It should not be linked to `Process.clock_getes`.
|
|
Revert "Revert "include/ruby/3/core/rtypeddata.h: Use 0 instead of NULL for C++ compiler""
Revert "include/ruby/3/core/rtypeddata.h: Use 0 instead of NULL for C++ compiler"
Revert "include/ruby/3: Skip RUBY3_UNREACHABLE_RETURN for icc"
Revert "include/ruby/3: Stop RUBY3_UNREACHABLE_RETURN to suppress a SunC warning"
This reverts commit b965e7e05e4307e3c4b396673e63dbc493ef2f20.
This reverts commit d2bb2e066b5a914283dd3ea473fc1762183af013.
This reverts commit 8ab4c55e7a70f5a5bd041d93f425eeef4a47c01e.
This reverts commit 78eec3cdc5ff0664b421e041f4f70a814542b914.
After https://github.com/ruby/ruby/pull/3011, we no longer need these
ifdef guards.
|
|
* [Bug #16740]
* Remove the GETTIMEOFDAY_BASED_CLOCK_REALTIME example because the
caveat applies to all clock ids, not just the Symbol clock ids.
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2996
|
|
|
|
This changes the following warnings:
* warning: class variable access from toplevel
* warning: class variable @foo of D is overtaken by C
into RuntimeErrors. Handle defined?(@@foo) at toplevel
by returning nil instead of raising an exception (the previous
behavior warned before returning nil when defined? was used).
Refactor the specs to avoid the warnings even in older versions.
The specs were checking for the warnings, but the purpose of
the related specs as evidenced from their description is to
test for behavior, not for warnings.
Fixes [Bug #14541]
Notes:
Merged: https://github.com/ruby/ruby/pull/2987
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
icc warns at this line.
> include/ruby/3/core/rstring.h(126): warning #413: variable "retval" has an uninitialized const field
> struct RString retval;
> ^
This must not be a problem because uninitialized const field is not used
at all. But the warnings are annoying. Let us suppress them.
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
icc warns side effects for RUBY3_ASSUME like this:
> ./include/ruby/3/value_type.h(202): warning #2261: __assume expression with side effects discarded
> RUBY3_ASSUME(RB_FLONUM_P(obj));
> ^
Which is a false positive (RB_FLONUM_P has no side effect). It seems
there is no way for us to tell icc that a functin is safe inside of
__assume. Just suppress the warning instead.
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
To this date there is no way for Oracle developer Studio to suppress
warnings about unreachable codes (12.6 manual says it implemented
__builtin_unreachable "as a no-op to C++. It might be added to C.")
There is no way but globally kill the warning.
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
Every time a pointer to/from VALUE conversion happens, these two
warnings are issued:
- warning #1684: conversion from pointer to same-sized integral type (potential portability problem)
- warning #2312: pointer cast involving 64-bit pointed-to type
Thank you, but we are well aware of the "potential portability problem".
Let us ignore them all.
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
Non-gcc compilers tend to have this intrinsic these days (e.g. icc).
Better check it regardless of $GCC.
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
This macro has to be truthy, otherwise the `+0` trick above evalues
RUBY3_HAS_BUILTIN(__builtin_unreachable) to be always false.
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
Namely icc defines __GNUC__, but doesn't have -Wdeprecated-declarations
Notes:
Merged: https://github.com/ruby/ruby/pull/3011
|
|
[Feature #15921]
Notes:
Merged: https://github.com/ruby/ruby/pull/3012
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3010
|
|
Without this patch, 20k files are opened (openat syscall) because
of duplicate includes. This patch reduced it to 3k and build time
was reduced compile time of range.o from 15sec -> 3sec on my machine.
[Bug #16772]
Notes:
Merged: https://github.com/ruby/ruby/pull/3010
|
|
Only writing the inspected result and a newline is
uninterruptible.
|
|
|
|
|
|
|
|
|
|
compiler"
This reverts commit d2bb2e066b5a914283dd3ea473fc1762183af013.
It didn't work:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20200409T050004Z.log.html.gz#end
```
In file included from ../../.././include/ruby/3/core.h(32),
from ../../.././include/ruby/ruby.h(28),
from ../../.././include/ruby.h(33),
from init.c(1):
../../.././include/ruby/3/core/rtypeddata.h(164): warning #967: conversion from "int" to "const struct rb_data_type_struct *"; sizes do not match
RUBY3_UNREACHABLE_RETURN(0);
```
|
|
rb_uninterruptible() disables any interrupts using handle_interrupt
feature (This function is used by `p`).
After this function, pending interrupts should be checked correctly,
however there is no chance to setup interrupt flag of working
threads, it means that nobody checks pending interrupts.
For example, it ignores terminate signal delivered at the end
of main thread and program can't stop.
This patch set interrupt flag if there are pending interrupts.
|
|
NULL in C++ is esoteric
|
|
|
|
`pw_expire` is declared as `time_t`, but actually not, and
`getpwuid` returns a garbage there.
Also the declaration of `struct passwd` in pwd.h and the manual
page contradict each other, interal `pw_fields` is mentioned only
in the latter. Maybe there is a confusion.
|
|
Coverity Scan says "Using uninitialized value c.fixnum when calling
__builtin_mul_overflow_p."
|
|
b cannot be <= 0 here. Found by Coverity Scan
|
|
It fails to compile ext/-test-/cxxanyargs/cxxanyargs.cpp.
Need work to support it. Contribution is welcome.
|