summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-12-18Refactor free page insertionAaron Patterson
I am trying to fix this error: http://ci.rvm.jp/results/trunk-gc_compact@silicon-docker/2491596 Somehow we have a page in the `free_pages` list that is full. This commit refactors the code so that any time we add a page to the `free_pages` list, we do it via `heap_add_freepage`. That function then asserts that the free slots on that page are not 0.
2019-12-18Merge bundler-2.1.1 from bundler/bundlerHiroshi SHIBATA
2019-12-18delete rb_vm_call()卜部昌平
Nobody uses it any longer.
2019-12-18describe mc_miss_reuse_call [ci skip]卜部昌平
2019-12-18Use a temporary file for chown testNobuyoshi Nakada
Errno::EROFS may occur when the source tree is placed in a read-only filesystem.
2019-12-18[ruby/io-console] Skip Interrupt test on LinuxNobuyoshi Nakada
Hangs up only in ruby/ruby on Travis-CI. https://github.com/ruby/io-console/commit/de39aa6dd6
2019-12-18per-method serial number卜部昌平
Methods and their definitions can be allocated/deallocated on-the-fly. One pathological situation is when a method is deallocated then another one is allocated immediately after that. Address of those old/new method entries/definitions can be the same then, depending on underlying malloc/free implementation. So pointer comparison is insufficient. We have to check the contents. To do so we introduce def->method_serial, which is an integer unique to that specific method definition. PS: Note that method_serial being uintptr_t rather than rb_serial_t is intentional. This is because rb_serial_t can be bigger than a pointer on a 32bit system (rb_serial_t is at least 64bit). In order to preserve old packing of struct rb_call_cache, rb_serial_t is inappropriate. Notes: Merged: https://github.com/ruby/ruby/pull/2759
2019-12-18[ruby/io-console] Set raw mode strictly same as cfmakerawNobuyoshi Nakada
* Default VMIN and VTIME to minimum input. * Disable parity check bits explicitly. * Disable all bits for flow control on input. Co-Authored-By: NARUSE, Yui <naruse@airemix.jp> https://github.com/ruby/io-console/commit/5ce201a686
2019-12-17Skip optimized method check for most method IDsJohn Hawthorn
Previously every time a method was defined on a module, we would recursively walk all subclasses to see if the module was included in a class which the VM optimizes for (such as Integer#+). For most method definitions we can tell immediately that this won't be the case based on the method's name. To do this we just keep a hash with method IDs of optimized methods and if our new method isn't in that list we don't need to check subclasses at all. Notes: Merged: https://github.com/ruby/ruby/pull/2752
2019-12-17Replace debug test with assertionJohn Hawthorn
It's a Ruby bug if this ever happens check it as an assertion instead of paying the cost of the check every time. Notes: Merged: https://github.com/ruby/ruby/pull/2752
2019-12-17Check type with BUILTIN_TYPE in method cache clearJohn Hawthorn
We know that this is a heap-allocated object (a CLASS, MODULE, or ICLASS) so we don't need to check if it is an immediate value. This should be very slightly faster. Notes: Merged: https://github.com/ruby/ruby/pull/2752
2019-12-17Define PREV_CLASS_SERIALJohn Hawthorn
Avoids genereating a "throwaway" sentinel class serial. There wasn't any read harm in doing so (we're at no risk of exhaustion and there'd be no measurable performance impact), but if feels cleaner that all class serials actually end up assigned and used (especially now that we won't overwrite them in a single method definition). Notes: Merged: https://github.com/ruby/ruby/pull/2752
2019-12-17Avoid revisiting seen nodes clearing method cacheJohn Hawthorn
rb_clear_method_cache_by_class calls rb_class_clear_method_cache recursively on subclasses, where it will bump the class serial and clear some other data (callable_m_tbl, and some mjit data). Previously this could end up taking a long time to clear all the classes if the module was included a few levels deep and especially if there were multiple paths to it in the dependency tree (ie. a class includes two modules which both include the same other module) as we end up revisiting class/iclass/module objects multiple times. This commit avoids revisiting the same object, by short circuiting when revisit the same object. We can check this efficiently by comparing the class serial of each object we visit with the next class serial at the start. We know that any objects with a higher class serial have already been visited. Notes: Merged: https://github.com/ruby/ruby/pull/2752
2019-12-18* 2019-12-18 [ci skip]v2_7_0_rc1git
2019-12-18Revert "Skip interruptible raw mode test on Travis-CI"Nobuyoshi Nakada
This reverts commit 65731a1330ed02691e3c343d2feeb8d0a72af3fd.
2019-12-18[ruby/io-console] Skip interruptNobuyoshi Nakada
https://github.com/ruby/io-console/commit/8ed5a2bcc3
2019-12-17[ruby/io-console] Timeout in the child processNobuyoshi Nakada
https://github.com/ruby/io-console/commit/b8411689a5
2019-12-17[ruby/io-console] Use IO.console instead of STDINNobuyoshi Nakada
https://github.com/ruby/io-console/commit/9e3ec5b936
2019-12-17Squelch filter-branch warning and sleepingNobuyoshi Nakada
2019-12-17[rubygems/rubygems] Move `require uri` to source_listmihaibuzgau
https://github.com/rubygems/rubygems/commit/c6b4df5bfc
2019-12-17Use while instead of loopKazuhiro NISHIYAMA
Notes: Merged: https://github.com/ruby/ruby/pull/2758
2019-12-17disable assertion.Koichi Sasada
This assertion is not needed because we found the bug. ba11a74745.
2019-12-17Skip interruptible raw mode test on Travis-CINobuyoshi Nakada
2019-12-17[rubygems/rubygems] require `uri` in source.rbmihaibuzgau
https://github.com/rubygems/rubygems/commit/8de4d0272e
2019-12-17convert macros into inline functions卜部昌平
For better readability.
2019-12-17Remove an unnecessary variableaycabta
2019-12-17Remove unnecessary double bangs from Pathname#root?Masataka Pocke Kuwabara
Notes: Merged: https://github.com/ruby/ruby/pull/2732
2019-12-17[ruby/logger] Fixed leaked tempfileNobuyoshi Nakada
https://github.com/ruby/logger/commit/fb3eff153f
2019-12-17Remove unnecessary branchesaycabta
2019-12-17[ruby/io-console] bump up to 0.5.2Nobuyoshi Nakada
2019-12-17[ruby/io-console] Use TCSANOW to prevent from discarding the input bufferYusuke Endoh
TCSAFLUSH discards the buffer read before the mode change, which makes IRB ignore the buffer input immediately after invoked. TCSANOW preserves the buffer. https://github.com/ruby/io-console/commit/b362920182
2019-12-17[ruby/io-console] Disable implementation-defined special control charactersNobuyoshi Nakada
In raw mode with interrupt enabled. https://github.com/ruby/io-console/commit/e9e8e3ff17
2019-12-17[ruby/io-console] Added the test for intr optionNobuyoshi Nakada
https://github.com/ruby/io-console/commit/4f01db102d
2019-12-17[ruby/io-console] Removed dead codeNobuyoshi Nakada
https://github.com/ruby/io-console/commit/a49462ed97
2019-12-17Fix return condition according to the condition to skipaycabta
2019-12-17[ruby/reline] Implement completion_append_characterThomas Leitner
There is already the possibility to set Reline.completion_append_character. However, it is not used by the line editor. https://github.com/ruby/reline/commit/ab798931b9
2019-12-17[ruby/reline] Disable any implementation-defined special control charactersNobuyoshi Nakada
Including dsusp, lnext, and so on. https://github.com/ruby/reline/commit/a44abe586b
2019-12-17add debug counter to count `call` reusing cases.Koichi Sasada
2019-12-17Support change search directionaycabta
2019-12-17Support forward-search-history by C-saycabta
2019-12-17Added a test for [Bug #16159]Nobuyoshi Nakada
2019-12-17Reduce tzset callsNobuyoshi Nakada
Set up-to-date flag always when calling tzset().
2019-12-17time.c (find_time_t): fix round-to-zero bugYusuke Endoh
`find_time_t` did not work correctly for year older than the Epoch because it used C's integer division (which rounds negative to zero). For example, `TIme.new(1933)` returned a wrong time whose year is 1922 in Asia/Kuala_Lumpur because there is no 00:00:00 1st Jan. 1933 in the time zone. ``` $ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)' 1932-12-31 00:00:00 +0700 ``` This change fixes the issue by using `DIV` macro instead of `/`. Now `Time.new(1933)` returns a time in 1933. ``` $ TZ=Asia/Kuala_Lumpur ruby -e 'p Time.new(1933)' 1933-01-01 00:20:00 +0720 ``` [Bug #16159]
2019-12-17close datasocket on stor of server sideNARUSE, Yui
2019-12-17ensure to close the data connection [Bug #16413]NARUSE, Yui
2019-12-17Check wether Readline.completion_append_character= existsaycabta
2019-12-16thread.c: avoid needless read after select|ppollEric Wong
We do not need to issue pipe|eventfd read(2) syscall unless select, ppoll|poll declares the FD needs reading.
2019-12-17test/ruby/test_process.rb: suppress "unused variable" warningYusuke Endoh
2019-12-17* 2019-12-17 [ci skip]git
2019-12-16Make prettyprint’s cycle detection aware of Delegator instancesRichard Viney
Fixes [Bug #13144] Co-Authored-By: Nobuyoshi Nakada <nobu@ruby-lang.org>