aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* No longer svn & git-svn are usedNobuyoshi Nakada2019-05-102-15/+2
|
* Removed old names of internal methodsNobuyoshi Nakada2019-05-101-8/+0
|
* Suppress a warning in Psych&YAML with verbose modeNobuyoshi Nakada2019-05-101-1/+1
|
* Fix missing `\A`Kazuhiro NISHIYAMA2019-05-101-1/+1
|
* Add one more retry for win32ole event matcherTakashi Kokubun2019-05-101-3/+3
| | | | | to fix https://ci.appveyor.com/project/ruby/ruby/builds/24438615/job/yld1utsltxag9dr2
* Do not access the internal memberNobuyoshi Nakada2019-05-101-5/+0
|
* * 2019-05-10git2019-05-101-1/+1
|
* add FROZEN to lldb debug outputAaron Patterson2019-05-091-0/+2
|
* Fallback to an invalid branch name if no branch foundNobuyoshi Nakada2019-05-091-0/+1
|
* Search a branch name at a detached headNobuyoshi Nakada2019-05-091-5/+6
|
* str_duplicate: Don't share with a frozen shared stringAlan Wu2019-05-093-9/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a follow up for 3f9562015e651735bfc2fdd14e8f6963b673e22a. Before this commit, it was possible to create a shared string which shares with another shared string by passing a frozen shared string to `str_duplicate`. Such string looks like: ``` -------- ----------------- | root | ------ owns -----> | root's buffer | -------- ----------------- ^ ^ ^ ----------- | | | shared1 | ------ references ----- | ----------- | ^ | ----------- | | shared2 | ------ references --------- ----------- ``` This is bad news because `rb_fstring(shared2)` can make `shared1` independent, which severs the reference from `shared1` to `root`: ```c /* from fstr_update_callback() */ str = str_new_frozen(rb_cString, shared2); /* can return shared1 */ if (STR_SHARED_P(str)) { /* shared1 is also a shared string */ str_make_independent(str); /* no frozen check */ } ``` If `shared1` was the only reference to `root`, then `root` can be reclaimed by the GC, leaving `shared2` in a corrupted state: ``` ----------- -------------------- | shared1 | -------- owns --------> | shared1's buffer | ----------- -------------------- ^ | ----------- ------------------------- | shared2 | ------ references ----> | root's buffer (freed) | ----------- ------------------------- ``` Here is a reproduction script for the situation this commit fixes. ```ruby a = ('a' * 24).strip.freeze.strip -a p a 4.times { GC.start } p a ``` - string.c (str_duplicate): always share with the root string when the original is a shared string. - test_rb_str_dup.rb: specifically test `rb_str_dup` to make sure it does not try to share with a shared string. [Bug #15792] Closes: https://github.com/ruby/ruby/pull/2159
* Push the current (topic) branch to the remote upstreamNobuyoshi Nakada2019-05-091-0/+9
|
* Show the commit command if dryrunNobuyoshi Nakada2019-05-091-0/+1
|
* require 'stringio'NARUSE, Yui2019-05-091-0/+1
|
* dryrun option is for `push`, not `git`Nobuyoshi Nakada2019-05-091-2/+1
|
* Pin finalizer tableAaron Patterson2019-05-081-5/+21
| | | | | | Objects in the finalizer table stay pinned for now. In some cases, the key could move which would cause a miss when removing the object from the table (leading to a T_MOVED reference staying in the table).
* * 2019-05-09git2019-05-091-1/+1
|
* * expand tabs.git2019-05-091-1/+1
|
* Calling `obj_info` during sweep is unsafeAaron Patterson2019-05-081-3/+10
| | | | | | | | | | | | | | | | | | | | | `obj_info` will look at references of objects in some cases (for example it will try to access path information on ISeq objects). But during the sweep phase, if the referenced object is collected before `obj_info` is called, then it could be a bad ref and a segv will occur. For example: A -> B Sweep phase: 1. obj_info(B) 2. Sweep and free B 3. obj_info(A); A tries to read B 4. SEGV This commit simply removes the call to `obj_info` during the sweep phase.
* Trim MJIT output from TestHideSkipTakashi Kokubun2019-05-081-1/+5
| | | | | | to prevent failure like https://app.wercker.com/ruby/ruby/runs/mjit-test1/5cd28aa6ab79a30008ee819b?step=5cd28b2403f44600070db083 with --jit-verbose=1.
* Fixed a typoNobuyoshi Nakada2019-05-081-4/+4
|
* Configure directories for headers and libraries automaticallyNobuyoshi Nakada2019-05-081-1/+11
| | | | [EXPERIMENTAL]
* Escape $@ in mjit-debug-on-failTakashi Kokubun2019-05-081-1/+1
|
* Add workaround for `Permission denied` of `cp`Kazuhiro NISHIYAMA2019-05-081-1/+3
| | | | | see r67347 recent log: https://travis-ci.org/ruby/ruby/jobs/529640417
* Add missing chmod for mjit-debug-on-failTakashi Kokubun2019-05-081-0/+1
|
* Wrap mjit-debug-on-fail for Wercker failureTakashi Kokubun2019-05-081-1/+16
| | | | | | for debugging failure like https://app.wercker.com/ruby/ruby/runs/mjit-test1/5cc98936ab79a30008eb86fa?step=5cc990d73d81fb0007bb04c3 https://app.wercker.com/ruby/ruby/runs/mjit-test1/5cd18efa23fcb70008ddfd45?step=5cd1908603f4460007076c5a
* Use ruby_bug guardNobuyoshi Nakada2019-05-081-1/+1
|
* Do not break rubyspec for old RubyTakashi Kokubun2019-05-081-1/+3
| | | | Fixing 7d805e67f3275aef066d77aa9c32bef715c362ed
* Drop -fs from rubyspec to see test results easilyTakashi Kokubun2019-05-081-2/+2
| | | | Recently `ruby/spec on Ruby 2.4` seems stable.
* * 2019-05-08git2019-05-081-1/+1
|
* Use `start_with?(quoted)` instead of `[0] == char literal`Kazuhiro NISHIYAMA2019-05-081-1/+1
|
* Use cgit instead of svn.Hiroshi SHIBATA2019-05-071-1/+1
|
* Update the canonical repository url.Hiroshi SHIBATA2019-05-071-1/+1
|
* Recent commits of trunk do not have svn revisionKazuhiro NISHIYAMA2019-05-071-1/+1
|
* Reduce ONIG_NREGION from 10 to 4: power of 2 and testing revealed most ↵Lourens Naudé2019-05-075-1/+20
| | | | | | pattern matches are less than or equal to 4 results Closes: https://github.com/ruby/ruby/pull/2135
* Avoid triggering autoload in Module#const_defined?(String)Jean Boussier2019-05-073-0/+10
| | | | [Bug #15780]
* * 2019-05-07git2019-05-071-1/+1
|
* add new debug_counters about is_pointer_to_heap().Koichi Sasada2019-05-072-0/+11
| | | | | is_pointer_to_heap() is used for conservative marking. To analyze this function's behavior, introduce some debug_counters.
* Load OptionParser defaults from XDG and Haiku standardsNobuyoshi Nakada2019-05-061-5/+18
|
* * 2019-05-06git2019-05-061-1/+1
|
* Revert "UTF-8 is one of byte based encodings"Nobuyoshi Nakada2019-05-061-1/+1
| | | | | | This reverts commit 5776ae347540ac19c40d146a3566a806cd176bf1. Mistaken `max` as `min`.
* Improve description of Ruby in READMEMarcus Stollsteimer2019-05-051-3/+4
| | | | | Use improved description as suggested by Olivier Lacan (@olivierlacan), see https://github.com/ruby/www.ruby-lang.org/pull/1888.
* Improve documentation for String#{dump,undump}Marcus Stollsteimer2019-05-051-4/+6
|
* Fix use of numbered parameter inside proc that is default value of optargJeremy Evans2019-05-051-0/+1
| | | | | | | | | | | | | | | | This allows cases such as: ```ruby m ->(a = ->{@1}) {a} m.call.call(1) m2 ->(a: ->{@1}) {a} m2.call.call(2) ``` Previously, this would cause a syntax error. [Bug#15789]
* Fix use of numbered parameter inside proc that is default value of optargJeremy Evans2019-05-051-0/+2
| | | | | | | | | | | | | | | | This allows cases such as: ```ruby m ->(a = ->{@1}) {a} m.call.call(1) m2 ->(a: ->{@1}) {a} m2.call.call(2) ``` Previously, this would cause a syntax error. [Bug#15789]
* Fix a case where numbered parameters should not be allowedJeremy Evans2019-05-052-0/+3
| | | | | | | | | | | | | | | | | | Because `proc{|| @1}` is a syntax error, the following should also be syntax errors: ```ruby proc { | | @1} ``` ```ruby proc { |; a| @1 } ``` This fixes both cases. [Bug #15825]
* Fixed about ARGF.linenoNobuyoshi Nakada2019-05-051-2/+10
| | | | [Bug #15823]
* * 2019-05-05git2019-05-051-1/+1
|
* * expand tabs.git2019-05-051-3/+3
|
* parse.y: duplicated when clause warningNobuyoshi Nakada2019-05-054-22/+108
| | | | | * parse.y (case_args): moved "duplicated when clause" warning from compile phase, so that `ruby -wc` shows them.