aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make NODE_ARYPTN layout consistent between Ripper and ASTAaron Patterson2019-09-111-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Avoid rehashing keys in transform_valuesJohn Hawthorn2019-09-111-7/+17
| | | | | | | | 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.
* Make sure WB executes after object is reachableAaron Patterson2019-09-111-1/+1
|
* * 2019-09-12 [ci skip]git2019-09-121-1/+1
|
* Emit missing keyword argument separation warnings for define_methodJeremy Evans2019-09-112-8/+46
| | | | | | | | | 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.
* Moved doxygen.yml to https://github.com/ruby/actions [ci skip]Kazuhiro NISHIYAMA2019-09-111-48/+0
|
* Fixed the function signature to rb_rescue2Nobuyoshi Nakada2019-09-111-1/+2
|
* Made a short-circuit expression w/o result into an `if`-statementNobuyoshi Nakada2019-09-111-1/+1
|
* &$$->nd_lit is uninitialized at this point卜部昌平2019-09-111-2/+2
| | | | See also https://travis-ci.org/ruby/ruby/jobs/583031687#L1874
* Add `--no-progress` to `aws s3` [ci skip]Kazuhiro NISHIYAMA2019-09-112-3/+3
| | | | | 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, so make a functionAaron Patterson2019-09-102-6/+18
| | | | | | 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.
* WB needs to be executed after object is reachableAaron Patterson2019-09-102-5/+10
|
* * 2019-09-11 [ci skip]git2019-09-111-1/+1
|
* `NODE_MATCH` needs to be marked / allocated from marking bucketAaron Patterson2019-09-101-1/+3
| | | | Fixes a test in RubySpec
* [ruby/io-console] Suppress yet another warning on WindowsNobuyoshi Nakada2019-09-101-1/+1
| | | | https://github.com/ruby/io-console/commit/4e17c90788
* [ruby/io-console] Suppress warnings on WindowsNobuyoshi Nakada2019-09-101-3/+4
| | | | | | About unused variables and a function. https://github.com/ruby/io-console/commit/32baf54e7a
* Unused LONG_MAX_as_doubleNobuyoshi Nakada2019-09-101-0/+2
| | | | | LONG_MAX_as_double is not needed when long is small enough to be exactly representable as a double, e.g., IL32LLP64 platforms.
* oops卜部昌平2019-09-101-1/+1
| | | | Silly typo.
* Fixed GCC version for diagnostic-pragmasNobuyoshi Nakada2019-09-101-2/+2
| | | | "GCC diagnostic push/pop" seems appeared at gcc 4.6.
* Remove check of ai.protocolMasaki Matsushita2019-09-101-1/+0
| | | | Solaris 10 returns addrinfo.ai_protocol as 0, not 6.
* fix CentOS 6 compile error卜部昌平2019-09-104-17/+36
| | | | See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos6/ruby-master/log/20190910T003005Z.fail.html.gz
* Default to cc/c++ instead of gcc/g++ on OpenBSDJeremy Evans2019-09-091-2/+6
|
* Support timeout for AddrinfoMasaki Matsushita2019-09-106-13/+157
| | | | | | | | | | | | 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.
* [ruby/io-console] Added IO#check_winsize_changed on WindowsNobuyoshi Nakada2019-09-101-0/+25
| | | | https://github.com/ruby/io-console/commit/ee648fa8bb
* [ruby/io-console] Added scroll methodsNobuyoshi Nakada2019-09-101-0/+57
| | | | https://github.com/ruby/io-console/commit/83e70de8ab
* [ruby/io-console] Added line/screen erase methodsNobuyoshi Nakada2019-09-101-0/+115
| | | | https://github.com/ruby/io-console/commit/e6344108a1
* [ruby/io-console] Added IO#goto_columnNobuyoshi Nakada2019-09-101-0/+27
| | | | https://github.com/ruby/io-console/commit/143a9d5764
* [ruby/io-console] Added relative cursor move methodsNobuyoshi Nakada2019-09-101-0/+70
| | | | https://github.com/ruby/io-console/commit/21d340e4a2
* [ruby/io-console] Added IO#goto and IO#cursor= for VTNobuyoshi Nakada2019-09-101-10/+15
| | | | https://github.com/ruby/io-console/commit/7f2b1b473d
* [ruby/io-console] Added IO#cursor for VTNobuyoshi Nakada2019-09-101-1/+18
| | | | https://github.com/ruby/io-console/commit/41a6a6cace
* [ruby/io-console] Added console_vt_responseNobuyoshi Nakada2019-09-101-13/+83
| | | | | | A function to query console info. https://github.com/ruby/io-console/commit/db75a07fa3
* [ruby/io-console] Drop fat gem supportNobuyoshi Nakada2019-09-101-1/+0
| | | | https://github.com/ruby/io-console/commit/972ceb081d
* Update documentation for Exception [ci skip]Jeremy Evans2019-09-091-20/+36
| | | | | | Mostly from burdettelamar@yahoo.com (Burdette Lamar). Implements [Misc #16156]
* Only use `add_mark_object` in RipperAaron Patterson2019-09-091-23/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Revert "Reverting node marking until I can fix GC problem."Aaron Patterson2019-09-093-36/+165
| | | | This reverts commit 092f31e7e23c0ee04df987f0c0f979d036971804.
* * 2019-09-10 [ci skip]git2019-09-101-1/+1
|
* Support multibyte inputNobuyoshi Nakada2019-09-101-1/+2
|
* Use IO#getbyteNobuyoshi Nakada2019-09-101-1/+1
|
* Use IO#getch to read one char in raw modeNobuyoshi Nakada2019-09-101-8/+3
|
* add minimaist C++ check卜部昌平2019-09-091-2/+41
| | | | | | | | | | 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.
* workaround for C++ 98 const union problem.卜部昌平2019-09-091-1/+6
| | | | | | | | | | | 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.
* static member variables must explictly be initialized卜部昌平2019-09-091-0/+2
| | | | | | These variables then get their room for storage. See also https://github.com/ruby/ruby/runs/214042030
* add missing dependency for .travis.yml卜部昌平2019-09-091-0/+5
|
* Revert "save committers' weekend from CI failures"卜部昌平2019-09-093-0/+378
| | | | This reverts commit 53d21087da078cf999cc4757b03b2ff0fab4c2cf.
* Revert "Support timeout for Addrinfo"Masaki Matsushita2019-09-096-157/+13
| | | | | This reverts commit 6382f5cc91ac9e36776bc854632d9a1237250da7. test failed on Solaris.
* Make test-all and test-spec runnable on AndroidYusuke Endoh2019-09-098-3/+16
| | | | | | 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.
* Fix a typo [ci skip]Kazuhiro NISHIYAMA2019-09-091-1/+1
|
* Reline: Fix wrong variable nameLars Kanis2019-09-091-2/+2
| | | | This raised a NameError before.
* Fix expected ip_portMasaki Matsushita2019-09-091-1/+1
|
* Fix service name for testMasaki Matsushita2019-09-091-1/+1
| | | | change service name to fix failed test on Solaris