| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cited from mount(8):
```
strictatime
Always update the file access time when reading from a
file. Without this option the filesystem may default to a
less strict update mode, where some access time updates
are skipped for performance reasons. This option could be
ignored if it is not supported by the filesystem.
```
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
ioctl accepts int as request arguments on some platforms, but some
requests are more than INT_MAX, e.g., RNDGETENTCNT(0x80045200).
Passing (0x80045200 | (-1 << 32)) may work around the issue, but it may
not work on a platform where ioctl accepts unsigned long. So this
change uses NUM2LONG and then casts it to int.
|
|
|
|
| |
On Android, nl_langinfo() always returns UTF-8 even when LANG is C.
|
|
|
|
|
| |
On Android 28, LOG_PERROR is defined, but not implemented yet.
This change skips Syslog#log explicitly.
|
| |
|
|
|
|
|
|
|
|
| |
NtSocketsInitialized behavior changed in e33b1690, requiring
a call to rb_w32_sysinit for starting Windows Sockets.
This commit removes NtSocketsInitialized entirely to avoid confusion.
Signed-off-by: Gabriel Nagy <gabriel.nagy@puppet.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
When reading Binding#irb, the file of the calling source is reflected in __FILE__ and __dir__.
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the grammar, all expressions are statements, but not all
statements are expressions. Some parts of the grammar accept
expressions and not other types of statements, which causes
similar looking code to parse differently due to operator
precedence.
Mostly from Dan0042 (Daniel DeLorme).
Fixes [Bug #16092]
|
| |
|
|
|
|
|
|
|
|
|
| |
For BasicObject, bind the Kernel respond_to? instance method to the
object and call it instead of calling the method directly.
Also, use bind_call(recv, ...) for better performance.
Fixes [Bug #16127]
|
|
|
|
|
|
| |
To avoid:
cannot locate symbol "modf" referenced by .../_ruby_mjit_XXX.so"
|
|
|
|
|
|
| |
Otherwise, requiring syslog results in:
cannot locate symbol "__android_log_print" referenced by "syslog.so"
|
|
|
|
|
| |
The root directory may be owned by the current user, for example, in
chroot environment.
|
| |
|
|
|
|
|
|
|
| |
* ext/openssl/ossl_asn1.c (Init_ossl_asn1): prefer
`rb_gc_register_mark_object`, which is better for constant
objects, over `rb_gc_register_address` for global/static
variables which can be re-assigned at runtime. [Bug #16196]
|
| |
|
| |
|
|
|
|
|
|
| |
Suggested by ko1. rb_fatal requires GVL so just in case one lacks,
print that information and let the process die. As commented,
we cannot print the given messages on such situations.
|
|
|
|
|
|
| |
Requested by ko1 that ability of calling rb_raise from anywhere
outside of GVL is "too much". Give up that part, move the GVL
aquisition routine into gc.c, and make our new gc_raise().
|
|
|
|
| |
Indicate that the situation is fatal.
|
| |
|
|
|
|
|
|
|
| |
* ext/openssl/ossl_asn1.c (Init_ossl_asn1): register the static
variable to grab an internal object, before creating the object.
otherwise the just-created object could get collected during the
global variable list allocation. [Bug #16196]
|
|
|
|
|
|
| |
https://gist.github.com/ko1/a88834d744a0682711dab53fd9015a04#file-brlog-trunk-nopara-20191005-235153-L393-L472
https://github.com/rubygems/rubygems/commit/707408d8e7
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/1bd77f53df
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/1de8f39ac4
|
| |
|
|
|
|
|
|
| |
* parse.y (struct local_vars): moved numbered parameter NODEs for
nesting check to separate per local variable scopes, as numbered
parameters should belong to local variable scopes. [Bug #16248]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that allocation routines like ALLOC_N() can raise exceptions
on integer overflows. This is a problem when the calling thread
has no GVL. Memory allocations has been allowed without it, but
can still fail.
Let's just relax rb_raise's restriction so that we can call it
with or without GVL. With GVL the behaviour is unchanged. With
no GVL, wait for it.
Also, integer overflows can theoretically occur during GC when
we expand the object space. We cannot do so much then. Call
rb_memerror and let that routine abort the process.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This typo introduced memory corruption when __builtin_add_overflow
is not available but uint128_t is. GCC before 5 are one of such
situatins.
See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/opensuseleap/ruby-master/log/20191009T120004Z.log.html.gz
|
|
|
|
| |
The st_is_member DEFINE has simpler semantics, for more readable code.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
On Android, a signal handler that is not SIG_DFL is set by default for
SIGSEGV. Ruby's install_sighandler inserts Ruby's handler only when the
signal has no handler, so it does not insert Ruby's SEGV report handler,
which caused some test failures.
This changeset forces to install Ruby's handler for some fatal signals
(sigbus, sigsegv, and sigill). They keep the original handlers, and
call them when the interpreter receives the signals.
|
|
|
|
|
|
|
|
|
|
| |
Just refactoring.
The name "rb_bug_context" is completely unclear for me.
(Can you see that "context" means "machine register context"?)
The context is available only when a fatal signal (sigbus, sigsegv, or
sigill) is received; in fact, the function is used only for fatal
signals. So, I think the name should be changed.
|
|
|
|
|
|
| |
The three functions for fatal signals, sigbus, sigsegv, and sigill, are
a family. The definition of ruby_abort had interrupted them for no
reason. This change just moves the definition after the family.
|
| |
|
|
|
|
|
|
|
|
|
| |
A method call is often with `argc = 1` and `argv = &v` where v is a
VALUE, and some functions shift the arguments by `argc-1` and `argv+1`
(for example, rb_sym_proc_call). I'm unsure whether it is safe or not
to pass a pointer `argv+1` to memcpy with zero length, but Coverity Scan
complains it. So this attempts to suppress the warning by explicit
check of the length.
|
|
|
| |
as the file is not executable anyway.
|
| |
|