Age | Commit message (Collapse) | Author |
|
Don't use rb_check_id, which only works for pinned symbols.
Switch inadvertent creation test for thread_variable? to
only check for pinned symbols, same as thread_variable_get
and thread_variable_set.
Make key variable name in thread_local_set match
thread_local_get and thread_variable?.
Fixes [Bug #16906]
Notes:
Merged: https://github.com/ruby/ruby/pull/3145
|
|
Fixes [Bug #16912]
|
|
21991e6ca5 enables `__builtin_assume()` for clang and it seems
skip SEGV on rb_class_of() with unexpected value. This test expects
a [BUG] output, so this patch causes [BUG] to show [BUG] message.
https://github.com/ruby/ruby/runs/707088232?check_suite_focus=true#step:12:230
```
1) Failure:
TestVMDump#test_darwin_invalid_access [/Users/runner/runners/2.262.1/work/ruby/ruby/src/test/ruby/test_vm_dump.rb:19]:
pid 43128 exit 0.
1. [2/2] Assertion for "stderr"
| Expected /^\[IMPORTANT\]/ to match "".
```
|
|
|
|
Co-authored-by: 卜部昌平 <shyouhei@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/3124
|
|
Assertions in header files slows down an interpreter, so they should be
turned off by default (simple `make`). To enable them, define a macro
`RUBY_DEBUG=1` (e.g. `make cppflags=-DRUBY_DEBUG` or use `#define` at
the very beggining of the file. Note that even if `NDEBUG=1` is defined,
`RUBY_DEBUG=1` enables all assertions.
[Feature #16837]
related: https://github.com/ruby/ruby/pull/3120
`assert()` lines in MRI *.c is not disabled even if `RUBY_DEBUG=0` and
it can be disabled with `NDEBUG=1`. So please consider to use
`RUBY_ASSERT()` if you want to disable them when `RUBY_DEBUG=0`.
Notes:
Merged: https://github.com/ruby/ruby/pull/3124
|
|
```
Failures:
1) The library itself does not contain any warnings
Failure/Error: raise "Invoking #{method}!(#{args.map(&:inspect).join(", ")}) failed:\n#{last_command.stdboth}"
RuntimeError:
Invoking sys_exec!("ruby -w") failed:
/home/user/snapshot-master/lib/bundler/cli/add.rb:4:in `<module:Bundler>': uninitialized constant Bundler::CLI (NameError)
from /home/user/snapshot-master/lib/bundler/cli/add.rb:3:in `<top (required)>'
from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require'
from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require'
from -:2:in `<main>'
Commands:
$ ruby -w
/home/user/snapshot-master/lib/bundler/cli/add.rb:4:in `<module:Bundler>': uninitialized constant Bundler::CLI (NameError)
from /home/user/snapshot-master/lib/bundler/cli/add.rb:3:in `<top (required)>'
from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require'
from /home/user/snapshot-master/lib/rubygems/core_ext/kernel_require.rb:91:in `require'
from -:2:in `<main>'
# $? => 1
```
|
|
metadata
```
1) bundle version with version outputs the version with build metadata
Failure/Error: expect(out).to match(/\ABundler version #{Regexp.escape(Bundler::VERSION)} \(\d{4}-\d{2}-\d{2} commit #{COMMIT_HASH}\)\z/)
expected "Bundler version 2.2.0.dev (2020-05-25 commit )" to match /\ABundler version 2\.2\.0\.dev \(\d{4}-\d{2}-\d{2} commit (?-mix:unknown|[a-fA-F0-9]{7,})\)\z/
Diff:
@@ -1,2 +1,2 @@
-/\ABundler version 2\.2\.0\.dev \(\d{4}-\d{2}-\d{2} commit (?-mix:unknown|[a-fA-F0-9]{7,})\)\z/
+"Bundler version 2.2.0.dev (2020-05-25 commit )"
Commands:
$ /home/user/snapshot-master/ruby -I/home/user/snapshot-master/spec/bundler -r/home/user/snapshot-master/spec/bundler/support/artifice/fail.rb -r/home/user/snapshot-master/spec/bundler/support/hax.rb /home/user/snapshot-master/tmp/1/gems/system/bin/bundle version
Bundler version 2.2.0.dev (2020-05-25 commit )
# $? => 0
```
|
|
https://github.com/ruby/actions/runs/703745101?check_suite_focus=true#step:16:27
```
An error occurred in a `before(:suite)` hook.
Failure/Error: contents = File.read(version_file)
Errno::ENOENT:
No such file or directory @ rb_sysopen - /home/runner/work/actions/actions/snapshot-master/tmp/1/bundler-2.2.0.dev/lib/bundler/version.rb
```
|
|
|
|
|
|
|
|
GCC 10.x seems buggy here. See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95302
|
|
https://github.com/ruby/rdoc/commit/3dcd5ddbb6
|
|
https://github.com/ruby/rdoc/commit/daac9d0471
|
|
https://github.com/ruby/rdoc/commit/9b1da32254
|
|
https://github.com/ruby/rdoc/commit/a13d6439da
|
|
https://github.com/ruby/rdoc/commit/82ff37a822
|
|
Previously, only calls to rb_define_alias were treated as aliases.
This treats calls to rb_define_method with the same C function as
aliases, with the first function defined being the primary method.
This move the dedup code from the C parser to AnyMethod, and has
AnyMethod look in its aliases to find the call_seq.
Switch the deduplication code to remove lines matching one of the
other aliases, instead of only keeping lines matching the current
alias. The previous approach could eliminate all call_seq lines
in cases where no line matched. This was necessary to pass
tests when call_seq does deduplication by default.
The only change to the darkfish template is to not perform
unnecessary work by deduplicating twice.
https://github.com/ruby/rdoc/commit/0ead78616b
|
|
The crossref must be linked before tidylink because Klass.method[:sym] will be
processed as a tidylink first and will be broken.
https://github.com/ruby/rdoc/commit/0f47baf6d2
|
|
The following is invalid HTML:
<a href="Array.html#method-i-3C-3C"><code><<</code></a></p>
Incorrect:
<code><<</code>
Correct:
<code><<</code>
Fixes #761
https://github.com/ruby/rdoc/commit/b120d087f6
|
|
|
|
Notes:
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
|
|
|
|
It loads `ext/fiddle/lib/fiddle/version.rb`, which causes constant
redefinition warning:
http://rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/20200523T153003Z.log.html.gz
```
[ 6317/20193] TestDefaultGems#test_validate_gemspec/home/chkbuild/chkbuild/tmp/build/20200523T153003Z/ruby/ext/fiddle/lib/fiddle/version.rb:2: warning: already initialized constant Fiddle::VERSION
/home/chkbuild/chkbuild/tmp/build/20200523T153003Z/ruby/.ext/common/fiddle/version.rb:2: warning: previous definition of VERSION was here
= 0.16 s
```
This changeset read the version by manual parsing hack which is also
used in stringio and zlib.
|
|
Allow the 'Dir.home' method to reliably locate the user's home directory when
all three of the following are true at the same time:
1. Ruby is running on a Unix-like OS
2. The $HOME environment variable is not set
3. The process is not a descendant of login(1) (or a work-alike)
The prior behavior was that the lookup could only work for login-descended
processes.
This is accomplished by looking up the user's record in the password database
by uid (getpwuid_r(3)) as a fallback to the lookup by name (getpwname_r(3))
which is still attempted first (based on the name, if any, returned by
getlogin_r(3)).
If getlogin_r(3), getpwnam_r(3), and/or getpwuid_r(3) is not available at
compile time, will fallback on using their respective non-*_r() variants:
getlogin(3), getpwnam(3), and/or getpwuid(3).
The rationale for attempting to do the lookup by name prior to doing it by uid
is to accommodate the possibility of multiple login names (each with its own
record in the password database, so each with a potentially different home
directory) being mapped to the same uid (as is explicitly allowed for by
POSIX; see getlogin(3posix)).
Preserves the existing behavior for login-descended processes, and adds the
new capability of having Dir.home being able to find the user's home directory
for non-login-descended processes.
Fixes [Bug #16787]
Related discussion:
https://bugs.ruby-lang.org/issues/16787
https://github.com/ruby/ruby/pull/3034
|
|
Should prefer a prefixed version over the bare pkg-config for
cross compiling.
|
|
This reverts commit 6006ab8cf93a0e06d9d65213eff3117965c9bd0c.
AC_CHECK_TOOL does not have REJECT argument.
|
|
It should use AC_CHECK_TOOL to automatically search for a prefixed
version and not just the bare pkg-config.
|
|
|
|
|
|
|
|
memory in tests (#33)
https://github.com/ruby/fiddle/commit/e59cfd708a
|
|
https://github.com/ruby/fiddle/commit/1b93a2d9db
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/b04cb92d7b
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/445ca6b501
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/f8fb7c4823
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/9dcf64c096
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/2ce36b1fdc
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
* Allow access to a struct's underlying memory with `struct[offset, length]`.
https://github.com/ruby/fiddle/commit/24083690a6
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
* Allow access to a struct's underlying memory with `struct[offset, length]`.
* Make accessing a struct's underlying memory more convenient.
* refactor memory access unit tests for improved clarity
https://github.com/ruby/fiddle/commit/c082c81bb5
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
https://github.com/ruby/fiddle/commit/8414239ca3
Notes:
Merged: https://github.com/ruby/ruby/pull/3068
|
|
If a module has an origin, and that module is included in another
module or class, previously the iclass created for the module had
an origin pointer to the module's origin instead of the iclass's
origin.
Setting the origin pointer correctly requires using a stack, since
the origin iclass is not created until after the iclass itself.
Use a hidden ruby array to implement that stack.
Correctly assigning the origin pointers in the iclass caused a
use-after-free in GC. If a module with an origin is included
in a class, the iclass shares a method table with the module
and the iclass origin shares a method table with module origin.
Mark iclass origin with a flag that notes that even though the
iclass is an origin, it shares a method table, so the method table
should not be garbage collected. The shared method table will be
garbage collected when the module origin is garbage collected.
I've tested that this does not introduce a memory leak.
This change caused a VM assertion failure, which was traced to callable
method entries using the incorrect defined_class. Update
rb_vm_check_redefinition_opt_method and find_defined_class_by_owner
to treat iclass origins different than class origins to avoid this
issue.
This also includes a fix for Module#included_modules to skip
iclasses with origins.
Fixes [Bug #16736]
Notes:
Merged: https://github.com/ruby/ruby/pull/3136
|
|
It parses a (date)time, not a date.
Notes:
Merged: https://github.com/ruby/ruby/pull/3046
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3134
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3132
|
|
|
|
|
|
This reverts commit c745a60634260ba2080d35af6fdeaaae86fe5193.
This triggers a VM assertion. Reverting until the issue can be
debugged.
|
|
If a module has an origin, and that module is included in another
module or class, previously the iclass created for the module had
an origin pointer to the module's origin instead of the iclass's
origin.
Setting the origin pointer correctly requires using a stack, since
the origin iclass is not created until after the iclass itself.
Use a hidden ruby array to implement that stack.
Correctly assigning the origin pointers in the iclass caused a
use-after-free in GC. If a module with an origin is included
in a class, the iclass shares a method table with the module
and the iclass origin shares a method table with module origin.
Mark iclass origin with a flag that notes that even though the
iclass is an origin, it shares a method table, so the method table
should not be garbage collected. The shared method table will be
garbage collected when the module origin is garbage collected.
I've tested that this does not introduce a memory leak.
This also includes a fix for Module#included_modules to skip
iclasses with origins.
Fixes [Bug #16736]
Notes:
Merged: https://github.com/ruby/ruby/pull/2978
|