| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are seeing SEGVs in CI:
http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sky1/2253563
This is happening because Ripper constructs AST nodes differently than
parse.y normally does. Specifically in this case Ripper is assigning 3
`VALUE` objects:
https://github.com/ruby/ruby/blob/1febb6f4a14f7222c6d30250bfdc252d34238187/parse.y#L757-L761
Where parse.y will normally assign other things:
https://github.com/ruby/ruby/blob/1febb6f4a14f7222c6d30250bfdc252d34238187/parse.y#L11258-L11260
The important one is the last one, the `struct rb_ary_pattern_info`. The
mark function assumed that `NODE_ARYPTN` have a pointer to `struct
rb_ary_pattern_info`, and used it:
https://github.com/ruby/ruby/blob/1febb6f4a14f7222c6d30250bfdc252d34238187/node.c#L1269-L1274
In the case of Ripper, `NODE_ARYPTN` doesn't point to an
`rb_ary_pattern_info`, so the mark function would SEGV. This commit
changes Ripper so that its `NODE_ARYPTN` nodes also point at an
`rb_ary_pattern_info`, and the mark function can continue with the same
assumption.
|
|
|
|
|
|
|
|
| |
Previously, calling transform_values would call rb_hash_aset for each
key, needing to rehash it and look up its location.
Instead, we can use rb_hash_stlike_foreach_with_replace to replace the
values as we iterate without rehashing the keys.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously, the warning functions skipped warning in these cases.
This removes the skipping, and uses a less descriptive warning
instead.
This affected both last argument to keyword warnings and keyword
split warnings.
|
| |
|
| |
|
| |
|
|
|
|
| |
See also https://travis-ci.org/ruby/ruby/jobs/583031687#L1874
|
|
|
|
|
| |
https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
> --no-progress (boolean) File transfer progress is not displayed. This flag is only applied when the quiet and only-show-errors flags are not provided.
|
|
|
|
|
|
| |
Macros can't be expressions, that is a GNU extension (I didn't know
that). This commit converts the macro to a function so that everything
will compile correctly on non-GNU compatible compilers.
|
| |
|
| |
|
|
|
|
| |
Fixes a test in RubySpec
|
|
|
|
| |
https://github.com/ruby/io-console/commit/4e17c90788
|
|
|
|
|
|
| |
About unused variables and a function.
https://github.com/ruby/io-console/commit/32baf54e7a
|
|
|
|
|
| |
LONG_MAX_as_double is not needed when long is small enough to be
exactly representable as a double, e.g., IL32LLP64 platforms.
|
|
|
|
| |
Silly typo.
|
|
|
|
| |
"GCC diagnostic push/pop" seems appeared at gcc 4.6.
|
|
|
|
| |
Solaris 10 returns addrinfo.ai_protocol as 0, not 6.
|
|
|
|
| |
See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos6/ruby-master/log/20190910T003005Z.fail.html.gz
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Addrinfo.getaddrinfo and .foreach now accepts :timeout in seconds as
a keyword argument. If getaddrinfo_a(3) is available, the timeout will be
applied for name resolution. Otherwise, it will be ignored.
Socket.tcp accepts :resolv_timeout to use this feature.
This commit is retry of 6382f5cc91ac9e36776bc854632d9a1237250da7.
Test was failed on Solaris machines which don't have "http" in
/etc/services. In this commit, use "ssh" instead.
|
|
|
|
| |
https://github.com/ruby/io-console/commit/ee648fa8bb
|
|
|
|
| |
https://github.com/ruby/io-console/commit/83e70de8ab
|
|
|
|
| |
https://github.com/ruby/io-console/commit/e6344108a1
|
|
|
|
| |
https://github.com/ruby/io-console/commit/143a9d5764
|
|
|
|
| |
https://github.com/ruby/io-console/commit/21d340e4a2
|
|
|
|
| |
https://github.com/ruby/io-console/commit/7f2b1b473d
|
|
|
|
| |
https://github.com/ruby/io-console/commit/41a6a6cace
|
|
|
|
|
|
| |
A function to query console info.
https://github.com/ruby/io-console/commit/db75a07fa3
|
|
|
|
| |
https://github.com/ruby/io-console/commit/972ceb081d
|
|
|
|
|
|
| |
Mostly from burdettelamar@yahoo.com (Burdette Lamar).
Implements [Misc #16156]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes parse.y to only use `add_mark_object` in Ripper.
Previously we were seeing a bug in write barrier verification. I had
changed `add_mark_object` to execute the write barrier, but the problem
is that we had code like this:
```
NEW_STR(add_mark_object(p, obj), loc)
```
In this case, `add_mark_object` would execute the write barrier between
the ast and `obj`, but the problem is that `obj` isn't actually
reachable from the AST at the time the write barrier executed.
`NEW_STR` can possibly call `malloc` which can kick a GC, and since
`obj` isn't actually reachable from the AST at the time of WB execution,
verification would fail.
Basically the steps were like this:
1. RB_OBJ_WRITTEN via `add_mark_object`
2. Allocate node
3. *Possibly* execute GC via malloc
4. Write obj in to allocated node
This patch changes the steps to:
1. Allocate node
2. *Possibly* execute GC via malloc
3. Write obj in to allocated node
4. RB_OBJ_WRITTEN
|
|
|
|
| |
This reverts commit 092f31e7e23c0ee04df987f0c0f979d036971804.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is a test extension so we basically want test failures rather
than a configure breakage but if there is no C++ compiler, we need
no test at all because there will be no chance for the tested
header file to be used later.
This makes it possible to build the ruby binary without any C++
compiler installed in a build environment.
|
|
|
|
|
|
|
|
|
|
|
| |
Not the case of recent compilers, but compilers before C++11
rejected ruby.h, like https://ci.appveyor.com/project/ruby/ruby/builds/27225706/job/qjca7dpe204dytbd
This is supposedly because a struct with a member qualified with
a const effectively deletes its default copy constructor, which
is considered as being user-defined somehow. Not sure where
exactly is the phrase in the C++98 standard who allows such C /
C++ incompatibility though.
|
|
|
|
|
|
| |
These variables then get their room for storage.
See also https://github.com/ruby/ruby/runs/214042030
|
| |
|
|
|
|
| |
This reverts commit 53d21087da078cf999cc4757b03b2ff0fab4c2cf.
|
|
|
|
|
| |
This reverts commit 6382f5cc91ac9e36776bc854632d9a1237250da7.
test failed on Solaris.
|
|
|
|
|
|
| |
Calling some syscall functions such as Dir.chroot causes SIGSYS instead
of EPERM on Android.
This change skips all tests that stops the test-suite run.
|
| |
|
|
|
|
| |
This raised a NameError before.
|
| |
|
|
|
|
| |
change service name to fix failed test on Solaris
|