| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The nil means there is nothing in the buffer in some systems. Incidentally,
Errno::EIO is raised if the I/O is closed.
https://github.com/ruby/reline/commit/c698634e74
|
|
|
|
| |
https://github.com/ruby/reline/commit/ba800f1461
|
|
|
|
| |
https://github.com/ruby/reline/commit/2c5ee54cb3
|
|
|
|
| |
https://github.com/ruby/reline/commit/2d32604c9e
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
Returns `nil` instead of an empty string when non-integer number is given (to make it 2.7 compatible).
|
|
|
|
| |
Since 6f3e8df133c7785ff6bb6f18d1faec81fefb3999 in 2014.
|
|
|
|
| |
pointed out by Coverity Scan
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
pthread_mutex_lock.
It is possible for GC to run during initialisation due to objects being allocated
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
callable_method_entry() read/write method table structures so that
this function should be synchronized between Ractors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SecureRandom lazily defines `get_random`. Accessing the mutex to define
the `get_random` method is not supported inside a Ractor. This commit
defines `gen_random` when `securerandom` is required and makes it
suppore Ractor (as well as thread safe).
Here is a test program:
```ruby
require "securerandom"
r = Ractor.new do
loop do
Ractor.yield SecureRandom.hex
end
end
p r.take
```
Before this commit:
```
$ make runruby
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems ./test.rb
<internal:ractor>:38: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.
/Users/aaron/git/ruby/lib/securerandom.rb:94:in `gen_random': can not access instance variables of classes/modules from non-main Ractors (RuntimeError)
<internal:ractor>:124:in `take': thrown by remote Ractor. (Ractor::RemoteError)
from ./test.rb:9:in `<main>'
/Users/aaron/git/ruby/lib/securerandom.rb:94:in `gen_random': can not access instance variables of classes/modules from non-main Ractors (RuntimeError)
from /Users/aaron/git/ruby/lib/securerandom.rb:155:in `random_bytes'
from /Users/aaron/git/ruby/lib/securerandom.rb:176:in `hex'
from ./test.rb:5:in `block (2 levels) in <main>'
from ./test.rb:4:in `loop'
from ./test.rb:4:in `block in <main>'
make: *** [runruby] Error
```
After this commit:
```
$ make runruby
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems ./test.rb
<internal:ractor>:38: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues.
"3fc8885157e3911bab4b5d7619bb0308"
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The two main optimization are:
- buffer writes for improved performance
- avoid formatting functions when possible
```
| |compare-ruby|built-ruby|
|:------------------|-----------:|---------:|
|dump_all_string | 1.038| 195.925|
| | -| 188.77x|
|dump_all_file | 33.453| 139.645|
| | -| 4.17x|
|dump_all_dev_null | 44.030| 278.552|
| | -| 6.33x|
```
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is useful to see what a block of code allocated, e.g.
```
GC.start
GC.disable
ObjectSpace.trace_object_allocations do
# run some code
end
gc_gen = GC.count
allocations = ObjectSpace.dump_all(output: :file, since: gc_gen)
GC.enable
GC.start
retentions = ObjectSpace.dump_all(output: :file, since: gc_gen)
```
|
| |
|
|
|
|
|
| |
Start with https://github.com/ruby/ruby/commit/fa21985a7a2f8f52a8bd82bd12a724e9dca74934
to https://github.com/ruby/ruby/commit/d7492a0be885ea9f2b9f71e3e95582f9a859c439
|
|
|
|
|
|
|
| |
Document difference in behavior between Tempfile.open and
Tempfile.create.
https://github.com/ruby/tempfile/commit/426d6f887f
|
| |
|
|
|
|
|
| |
iseq_inline_iv_cache_entry's index is also size_t.
%"PRIuSIZE" seems to print warnings against st_index_t in some environments.
|
| |
|
| |
|
|
|
|
| |
Because macOS 11.0(Big Sur) was removed libc and libm from `/usr/lib`.
|
| |
|
|
|
|
|
|
|
|
|
| |
Pointed out by Coverity Scan
```
** CID 1466646: Control flow issues (MISSING_BREAK)
/ext/-test-/random/loop.c: 63 in loop_get_bytes()
```
|
|
|
|
| |
To enclose the initialization of Random::Base part.
|
|
|
|
|
|
| |
Added `WITH_REAL` versions to `RB_RANDOM_INTERFACE` macros. Also
these macros including "without real" versions no longer contain
the terminator (semicolon and comma).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* random.c: separate abstract rb_random_t and rb_random_mt_t for
Mersenne Twister implementation.
* include/ruby/random.h: the interface for extensions of Random
class.
* DLL imported symbol reference is not constant on Windows.
* check if properly initialized.
|
|
|
|
|
| |
* random.c (InitVM_Random): introduce abstract super class
Random::Base.
|
|
|
|
|
|
| |
It is natural for a CI running on GitHub to use GitHub's facility.
See also https://github.blog/2020-09-01-introducing-github-container-registry/
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A backtrace object in an exception had never supported marshalling
correctly: `Marshal.load(Marshal.dump(exc)).backtrace_locations` dumped
core.
An Exception object has two hidden instance varibles for backtrace data:
one is "bt", which has an Array of Strings, and the other is
"bt_locations", which has an Array of Thread::Backtrace::Locations.
However, Exception's dump outputs data so that the two variables are the
same Array of Strings. Thus, "bt_locations" had a wrong-type object.
For the compatibility, it is difficult to change the dump format. This
changeset fixes the issue by ignoring data for "bt_locations" at the
loading phase if "bt_locations" refers to the same object as "bt".
Future work: Exception's dump should output "bt_locations"
appropriately.
https://bugs.ruby-lang.org/issues/17150
|
| |
|
| |
|