57968 Commits

Author SHA1 Message Date
Aaron Patterson
139510238b
WB needs to be executed after object is reachable 2019-09-10 12:42:35 -07:00
git
721cab4706 * 2019-09-11 [ci skip] 2019-09-11 02:45:56 +09:00
Aaron Patterson
414a80d242
NODE_MATCH needs to be marked / allocated from marking bucket
Fixes a test in RubySpec
2019-09-10 10:44:49 -07:00
Nobuyoshi Nakada
83ef58f264 [ruby/io-console] Suppress yet another warning on Windows
https://github.com/ruby/io-console/commit/4e17c90788
2019-09-10 17:29:11 +09:00
Nobuyoshi Nakada
b5ab918d0c [ruby/io-console] Suppress warnings on Windows
About unused variables and a function.

https://github.com/ruby/io-console/commit/32baf54e7a
2019-09-10 17:29:09 +09:00
Nobuyoshi Nakada
ad6cbc1d33
Unused LONG_MAX_as_double
LONG_MAX_as_double is not needed when long is small enough to be
exactly representable as a double, e.g., IL32LLP64 platforms.
2019-09-10 17:20:31 +09:00
卜部昌平
487d290044 oops
Silly typo.
2019-09-10 16:04:17 +09:00
Nobuyoshi Nakada
df1721c668
Fixed GCC version for diagnostic-pragmas
"GCC diagnostic push/pop" seems appeared at gcc 4.6.
2019-09-10 14:37:17 +09:00
Masaki Matsushita
f5024de002 Remove check of ai.protocol
Solaris 10 returns addrinfo.ai_protocol as 0, not 6.
2019-09-10 12:39:49 +09:00
卜部昌平
20e428ec40 fix CentOS 6 compile error
See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos6/ruby-master/log/20190910T003005Z.fail.html.gz
2019-09-10 12:25:36 +09:00
Jeremy Evans
8d3db4f26c Default to cc/c++ instead of gcc/g++ on OpenBSD 2019-09-09 18:11:52 -07:00
Masaki Matsushita
0e9d56f5e7 Support timeout for Addrinfo
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.
2019-09-10 10:10:59 +09:00
Nobuyoshi Nakada
3678c37119 [ruby/io-console] Added IO#check_winsize_changed on Windows
https://github.com/ruby/io-console/commit/ee648fa8bb
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
74790e2dc4 [ruby/io-console] Added scroll methods
https://github.com/ruby/io-console/commit/83e70de8ab
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
c1412bd6d9 [ruby/io-console] Added line/screen erase methods
https://github.com/ruby/io-console/commit/e6344108a1
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
9844a349bf [ruby/io-console] Added IO#goto_column
https://github.com/ruby/io-console/commit/143a9d5764
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
e8be056af9 [ruby/io-console] Added relative cursor move methods
https://github.com/ruby/io-console/commit/21d340e4a2
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
3d9c7c2835 [ruby/io-console] Added IO#goto and IO#cursor= for VT
https://github.com/ruby/io-console/commit/7f2b1b473d
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
53ed4fb376 [ruby/io-console] Added IO#cursor for VT
https://github.com/ruby/io-console/commit/41a6a6cace
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
803dc9e1e4 [ruby/io-console] Added console_vt_response
A function to query console info.

https://github.com/ruby/io-console/commit/db75a07fa3
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
f4aa06c0ff [ruby/io-console] Drop fat gem support
https://github.com/ruby/io-console/commit/972ceb081d
2019-09-10 08:18:03 +09:00
Jeremy Evans
00744a03d5 Update documentation for Exception [ci skip]
Mostly from burdettelamar@yahoo.com (Burdette Lamar).

Implements [Misc #16156]
2019-09-09 15:23:26 -07:00
Aaron Patterson
d8a4af47a5
Only use add_mark_object in Ripper
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
2019-09-09 14:26:57 -07:00
Aaron Patterson
4524780d17
Revert "Reverting node marking until I can fix GC problem."
This reverts commit 092f31e7e23c0ee04df987f0c0f979d036971804.
2019-09-09 14:26:51 -07:00
git
9b53a69d57 * 2019-09-10 [ci skip] 2019-09-10 00:57:34 +09:00
Nobuyoshi Nakada
6d9e54816f Support multibyte input 2019-09-10 00:56:31 +09:00
Nobuyoshi Nakada
685f12bbca Use IO#getbyte 2019-09-10 00:56:31 +09:00
Nobuyoshi Nakada
805b0a4811 Use IO#getch to read one char in raw mode 2019-09-10 00:56:31 +09:00
卜部昌平
89c5d5a64e add minimaist C++ check
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.
2019-09-09 21:27:40 +09:00
卜部昌平
150f514e19 workaround for C++ 98 const union problem.
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.
2019-09-09 21:27:40 +09:00
卜部昌平
042c436cd9 static member variables must explictly be initialized
These variables then get their room for storage.

See also https://github.com/ruby/ruby/runs/214042030
2019-09-09 21:27:40 +09:00
卜部昌平
1364217bcd add missing dependency for .travis.yml 2019-09-09 21:27:40 +09:00
卜部昌平
92a8726994 Revert "save committers' weekend from CI failures"
This reverts commit 53d21087da078cf999cc4757b03b2ff0fab4c2cf.
2019-09-09 21:27:40 +09:00
Masaki Matsushita
c4efbf663e Revert "Support timeout for Addrinfo"
This reverts commit 6382f5cc91ac9e36776bc854632d9a1237250da7.
test failed on Solaris.
2019-09-09 20:34:51 +09:00
Yusuke Endoh
cce6cfbe48 Make test-all and test-spec runnable on Android
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.
2019-09-09 20:24:03 +09:00
Kazuhiro NISHIYAMA
0691a748b6
Fix a typo [ci skip] 2019-09-09 20:06:00 +09:00
Lars Kanis
551edf64bc Reline: Fix wrong variable name
This raised a NameError before.
2019-09-09 19:16:01 +09:00
Masaki Matsushita
8c09de38c5 Fix expected ip_port 2019-09-09 18:44:42 +09:00
Masaki Matsushita
0fb2457d79 Fix service name for test
change service name to fix failed test on Solaris
2019-09-09 18:35:19 +09:00
Masaki Matsushita
461663f52a Fix domain name for test 2019-09-09 15:05:38 +09:00
Jeremy Evans
61d90da25c Fix invalid keyword argument separation warning for delegating calls
This removes an invalid keyword argument separation warning for
code such as:

```ruby
def foo(arg)
  arg
end
kw = {}
foo(*[1], **kw)
```

This warning was caused because the remove_empty_keyword_hash
was set based on a comparison with two variables, and in this
case, one of the variables was updated after the check and we
need to use the updated variable.

Simplify things by just inlining the comparison.
2019-09-08 22:47:06 -07:00
Masaki Matsushita
6382f5cc91 Support timeout for Addrinfo
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.
2019-09-09 14:34:05 +09:00
Jeremy Evans
fa79219356 Add keyword argument separation tests for implicit/explicit super calls
No code changes are necessary, but we didn't have as extensive
tests for these calls previously.
2019-09-08 10:34:34 -07:00
git
d636feb6a6 * 2019-09-09 [ci skip] 2019-09-09 00:27:05 +09:00
Nobuyoshi Nakada
8d53b2cdf8
Use target-specific variable instead of a conditional [ci skip]
And test-rubyspec is deprecated.
2019-09-09 00:21:54 +09:00
Nobuyoshi Nakada
3ef76ce44a
make-snapshot: -git option is no longer provided [ci skip] 2019-09-08 21:22:37 +09:00
Benoit Daloze
b10940a839 Improve Proc#to_s specs 2019-09-08 12:41:14 +02:00
Nobuyoshi Nakada
aedf6946a7
Removed useless braces to suppress a warning 2019-09-08 12:54:06 +09:00
aycabta
e9bc8b35c6 Behave ESC key correctly when vi command mode 2019-09-08 03:26:35 +09:00
Yusuke Endoh
46bfe907f1 compile.c (compile_hash): rewrite keyword splat handling
and add some comments.
(I confirm that `foo(**{})` allocates no hash object.)
2019-09-08 03:17:04 +09:00