| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Regular expressions are not supported (same as String#end_with?).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When loading Ruby source files, we can save the result of
successful opens as open(2)/openat(2) are a fairly expensive
syscalls. This also avoids a time-of-check-to-time-of-use
(TOCTTOU) problem.
This reduces open(2) syscalls during `require'; but should be
most apparent when users have a small $LOAD_PATH. Users with
large $LOAD_PATH will benefit less since there'll be more
open(2) failures due to ENOENT.
With `strace -c -e openat ruby -e exit' under Linux, this
results in a ~14% reduction of openat(2) syscalls
(glibc uses openat(2) to implement open(2)).
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
0.00 0.000000 0 296 110 openat
0.00 0.000000 0 254 110 openat
Additionally, the introduction of `struct ruby_file_load_state'
may make future optimizations more apparent.
This change cannot benefit binary (.so) loading since the
dlopen(3) API requires a filename and I'm not aware of an
alternative that takes a pre-existing FD. In typical
situations, Ruby source files outnumber the mount of .so
files.
|
|
|
|
|
|
| |
(https://github.com/ruby/net-http/pull/127)
https://github.com/ruby/net-http/commit/07b2b88ef5
|
| |
|
| |
|
|
|
|
|
|
| |
(https://github.com/ruby/irb/pull/522)
https://github.com/ruby/irb/commit/97dae166ae
|
| |
|
|
|
|
| |
https://github.com/ruby/stringio/commit/60bb320477
|
|
|
| |
Also avoid allocations when looking up `Fiber#storage` if not needed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when Block::entry_exit is requested from any instruction
that is not the first one in the block, we generated the exit with an
incorrect PC. We should always be using the PC for the entry of the
block for Block::entry_exit.
It was a simple typo. The bug was [introduced][1] while we were
refactoring to use the current backend. Later, we had a chance to spot
this issue while [preparing][2] to enable unused variable warnings, but
didn't spot the issue.
Fixes [Bug #19463]
[1]: 27fcab995e6dde19deb91dc6e291bdb72100af68
[2]: 31461c7e0eab4963ccc8649ea8ebf27979132c0c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the previous instruction is not a leaf instruction, then the PC was
incremented before the instruction was ran (meaning the currently
executing instruction is actually the previous instruction), so we
should not increment the PC otherwise we will calculate the source
line for the next instruction.
This bug can be reproduced in the following script:
```
require "objspace"
ObjectSpace.trace_object_allocations_start
a =
1.0 / 0.0
p [ObjectSpace.allocation_sourceline(a), ObjectSpace.allocation_sourcefile(a)]
```
Which outputs: [4, "test.rb"]
This is incorrect because the object was allocated on line 10 and not
line 4. The behaviour is correct when we use a leaf instruction (e.g.
if we replaced `1.0 / 0.0` with `"hello"`), then the output is:
[10, "test.rb"].
[Bug #19456]
|
|
|
|
| |
@__LINE__ can be nil which causes the inspect method to fail.
|
|
|
|
|
|
| |
(https://github.com/ruby/net-http/pull/126)
https://github.com/ruby/net-http/commit/4700d0660b
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(https://github.com/ruby/irb/pull/520)
* Remove redundant completion test
The test case was introduced to guard an old implementation, which relied
on `Module#name`. Commit:
https://github.com/ruby/irb/commit/8827d182746396dbf4499c2c1c8c0e9bf8375b7c
However, the current implementation has avoided calling `Module#name`
completely, so the test case is no longer necessary. Commit:
https://github.com/ruby/irb/commit/88311ce3c84251e6f420246cd14efc96e00888be
* Remove unnecessary pend
|
|
|
|
| |
https://github.com/ruby/set/commit/ca1c9532a9
|
|
|
|
| |
https://github.com/ruby/set/commit/becaca994d
|
| |
|
|
|
|
|
|
| |
../gc.c:13317:1: warning: ‘typedef’ is not at beginning of declaration [-Wold-style-declaration]
13317 | } typedef weakkeymap_entry_t;
| ^
|
| |
|
|
|
|
|
| |
YJIT: Skip type checks on splat args and expandarray
if possible
|
|
|
|
|
|
|
|
| |
I have this as a shell command and Maxime told me that she finds it
useful, too. I tested this on a release build and a dev build.
Note I intentional didn't put `$(Q)` in front of everything so `make`
echos the command it runs.
|
|
|
|
|
|
| |
(https://github.com/ruby/net-http/pull/125)
https://github.com/ruby/net-http/commit/2ea20380fc
|
|
|
|
| |
[Feature #18498]
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/118d28ad27
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/de3b69f1a7
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/2ea2ead1b3
|
|
|
|
|
|
| |
load unexpected class
https://github.com/rubygems/rubygems/commit/795e796a9e
|
|
|
|
|
|
| |
attempting load unexpected class
https://github.com/rubygems/rubygems/commit/9798718b3b
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/3a772125b8
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/4909d071d2
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/5c5d0c5350
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/23880353c1
|
|
|
|
|
| |
`length` is a required argument for `IO::Buffer#read` and
`IO::Buffer#write` methods, and `argc` is already checked with
`rb_check_arity`. Also fix the call-seq of `IO::Buffer#read`.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We shouldn't run gc_verify_internal_consistency after every GC step
when RGENGC_CHECK_MODE >= 2, only when GC has finished. Running it
on every GC step makes it too slow.
|
| |
|
|
|
|
|
|
| |
(https://github.com/ruby/net-http/pull/124)
https://github.com/ruby/net-http/commit/aaf26b21d6
|
| |
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/38ee82c297
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/5fa0ebf09b
|
|
|
|
|
|
| |
Gem.path_separator can also be a regexp...
https://github.com/rubygems/rubygems/commit/7e6e56a5f3
|
|
|
|
|
|
| |
Will save on an error if it would be nil from an exception happening during that line
https://github.com/rubygems/rubygems/commit/d6797a04e9
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/3135ad91d4
|
|
|
|
|
|
| |
For ruby-core compat
https://github.com/rubygems/rubygems/commit/c8f85c91a8
|