| Age | Commit message (Collapse) | Author |
|
Set the alternative memory management library only as a platform
specific library, without other libraries.
Notes:
Merged: https://github.com/ruby/ruby/pull/5223
|
|
|
|
|
|
Skips methods that do not end with letter (in particular `!~` and `=~`)
For JRuby, also skip `instance_exec`, `instance_eval` and `eval`
|
|
[Feature #12913]
|
|
Verify that the iseq idx pair for the block is valid in
invalidate_block_version(). While we are at it, bound loop
iterating over instructions to `iseq_body->iseq_size`.
Notes:
Merged: https://github.com/ruby/ruby/pull/5222
|
|
As part of YJIT's strategy for promoting Ruby constant expressions into
constants in the output native code, the interpreter calls
rb_yjit_constant_ic_update() from opt_setinlinecache.
The block invalidation loop indirectly calls rb_darray_remove_unordered(),
which does a shuffle remove. Because of this, looping with an
incrementing counter like done previously can miss some elements in the
array. Repeatedly invalidate the first element instead.
The bug this commit resolves does not seem to cause crashes or divergent
behaviors.
Co-authored-by: Jemma Issroff <jemmaissroff@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/5221
|
|
Makes link targets among percent literals.
Adds links to those targets.
Adds examples to percent literals.
Links from opening summary list to corresponding sections.
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
|
|
|
|
|
|
|
|
`$LOAD_PATH`
This way, if some default gem has been required before bundler, and
rubygems has enhanced the `$LOAD_PATH` to use the latest version in the
system, further requires of that default gem after bundler has been
activated will use the same version and don't cause redefinition
warnings or worse problems derived from the fact of mixing up two
different versions. That, unless the gem is a `Gemfile` dependency. In
that case, we'll get a mismatch error anyways as we do now.
This fix doesn't mean that all default gems internally used by
bundler/rubygems are now supported inside `Gemfile`'s. That should be
handled case by case, but it will now bite people only when they try to
add the gem to their `Gemfile`, not before.
https://github.com/rubygems/rubygems/commit/7325530547
|
|
Very often github source is used to temporarily use a modified gem
while a PR upstream is being reviewed.
So for instance https://github.com/ruby/bigdecimal/pull/211 will look like:
```ruby
gem "bigdecimal", github: "casperisfine/bigdecimal", branch: "git-gem" # https://github.com/ruby/bigdecimal/pull/200
```
It's annoying because you have to fiddle with the branch name, which is copied as `casperisfine:git-gem`, etc etc.
If I could simply use the PR URL like this:
```
gem "bigdecimal", github: "https://github.com/ruby/bigdecimal/pull/211"
```
It would make a very common task for me so much simpler.
https://github.com/rubygems/rubygems/commit/517c527751
|
|
rubygems
https://github.com/rubygems/rubygems/commit/1b862537a5
|
|
Test was just returning a string instead of actually exercising the
require.
https://github.com/rubygems/rubygems/commit/62c827d7e1
|
|
https://github.com/rubygems/rubygems/commit/7d9fdd908d
|
|
When accessing from containers, symbolic links may not be able to
reach outer file systems.
Notes:
Merged: https://github.com/ruby/ruby/pull/5220
Merged-By: nobu <nobu@ruby-lang.org>
|
|
respectively
https://github.com/rubygems/rubygems/commit/49b491970b
|
|
|
|
|
|
https://github.com/rubygems/rubygems/commit/b0bbb27115
|
|
https://github.com/rubygems/rubygems/commit/9815a04e31
|
|
Assigning to `leaf` in insns.def would give undesirable results.
|
|
|
|
PUSH DS triggers the #UD processor exception in 64-bit mode, which the
OS translates to a SIGILL. Unlike INT3, this triggers the usual crash
reporter, which makes failures easier to notice. When there is a
debugger attached, the PUSH DS pauses execution just like INT3.
Notes:
Merged: https://github.com/ruby/ruby/pull/5217
|
|
Unused since r59801, 782b2050b837206d06767d42d0ea5117921247c8,
or https://github.com/ruby/securerandom/commit/52c8e7a85e017f.
https://github.com/ruby/securerandom/commit/38fc2c4427
|
|
|
|
|
|
The current Markdown implementation of RDoc requires list contents
to be indented 4 columns except for the first paragraph.
Maybe fixed as other implementations in the future.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5216
|
|
`fcopyfile` appends `src` to `to` and then truncates `to` to it's
original size.
|
|
https://github.com/rubygems/rubygems/commit/141ef4cb9a
|
|
bundler
https://github.com/rubygems/rubygems/commit/a62d00c5e8
|
|
https://github.com/rubygems/rubygems/commit/49317d8beb
|
|
is used
https://github.com/rubygems/rubygems/commit/7079de16fa
|
|
Follow up for 6bca410ae8b16238d02c868ce8fa1af13a5c4460
[ci skip]
Notes:
Merged: https://github.com/ruby/ruby/pull/5215
|
|
|
|
As of [1] and [2], YJIT has enough support for out of memory conditions
to pass these two basic tests.
OOM code paths are prone to bugs since they are rarely exercised in
common workloads. We might want to add CI runs that stress test these
code paths. Maybe outside of GitHub Actions for capacity reasons.
[1]: f41b4d44f95978dfa97af04af00055dc3fbf7978
[2]: b5b6ab4194f16e96ee5004288cc469ac1bca41a3
Notes:
Merged: https://github.com/ruby/ruby/pull/5214
|
|
It results in a circular dependency when `--with-ruby-pc=ruby.pc`
is given. [ci skip]
|
|
* Move the rubyspec running recipe after the rule for rubyspec
C-API extension library, so that separate dummy recipe is not
needed.
* Add a dummy recipe for rubyspec.h before the rubyspec running
recipe, so that the dependency of extensions do not fire the
latter.
|
|
|
|
Previously, YJIT assumed that basic blocks never consume more than
1 KiB of memory. This assumption does not hold for long Ruby methods
such as the one in the following:
```ruby
eval(<<RUBY)
def set_local_a_lot
#{'_=0;'*0x40000}
end
RUBY
set_local_a_lot
```
For low `--yjit-exec-mem-size` values, one basic block could exhaust the
entire buffer.
Introduce a new field `codeblock_t::dropped_bytes` that the assembler
sets whenever it runs out of space. Check this field in
gen_single_block() to respond to out of memory situations and other
error conditions. This design avoids making the control flow graph of
existing code generation functions more complex.
Use POSIX shell in misc/test_yjit_asm.sh since bash is expanding
`0%/*/*` differently.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/5209
|
|
Notes:
Merged-By: jhawthorn <john@hawthorn.email>
|
|
This block of code already wraps file operations with
`SharedHelpers.filesystem_access`, which rescues and re-raises more
friendly errors. Also, I'm not fully sure creating a temporary directory
can end up raising an `Errno::EACCES` error from reading `tmpdir`
sources. Finally, this rescue block apparently leads to some false
positives when firewall is blocking the ruby executable on Windows, or
at least that's what we've got reported.
In any case, I think it's best to let the original error be raised.
https://github.com/rubygems/rubygems/commit/f7dbe54404
|
|
On Rails we're seeing a lot of exits for ivars in the Active Record
tests. In trying to track them down it was hard to find what code is
exiting.
This change adds a counted exit for when an object is "megamorphic". In
these cases there are too many specializations in the Ruby code so YJIT
exits.
Co-authored-by: Aaron Patterson tenderlove@ruby-lang.org
Notes:
Merged: https://github.com/ruby/ruby/pull/5197
|
|
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
Refactor function names for consistency. Function with name xyz_page
should have a corresponding function named xyz_plane.
Notes:
Merged: https://github.com/ruby/ruby/pull/5204
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5091
Merged-By: nobu <nobu@ruby-lang.org>
|