summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-03add benchmark for different block handlers卜部昌平
Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03vm_insnhelper.c: add space [ci skip]卜部昌平
Just cosmetic change to improve readability. Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03vm_invoke_symbol_block: reduce MEMCPY卜部昌平
This commit changes the number of calls of MEMCPY from... | send | &:sym -------------------------|-------|------- Symbol already interned | once | twice Symbol not pinned yet | none | once to: | send | &:sym -------------------------|-------|------- Symbol already interned | once | none Symbol not pinned yet | twice | once So it sacrifices exceptional situation for normal path. Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03vm_invoke_symbol_block: call vm_call_opt_send卜部昌平
Symbol#to_proc and Object#send are closely related each other. Why not share their implementations. By doing so we can skip recursive call of vm_exec(), which could benefit for speed. Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03vm_invoke_block: force indirect jump卜部昌平
This changeset slightly speeds up on my machine. Calculating ------------------------------------- before after Optcarrot Lan_Master.nes 38.33488426546287 40.89825082589147 fps 40.91288557922081 41.48687465359386 40.96591995270991 41.98499064664184 41.20461943032173 43.67314690779162 42.38344888176518 44.02777536251875 43.43563728880915 44.88695892714136 43.88082889062643 45.11226186242523 Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03vm_invoke_block: insertion of unused args卜部昌平
This makes it possible for vm_invoke_block to pass its passed arguments verbatimly to calling functions. Because they are tail-called the function calls can be strength-recuced into indirect jumps, which is a huge win. Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03vm_invoke_block: eliminate goto卜部昌平
Use recursion for better readability. Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03vm_invoke_block: move logics around卜部昌平
Moved block handler -> captured block conversion from vm_invokeblock to each vm_invoke_*_block functions. Notes: Merged: https://github.com/ruby/ruby/pull/3152
2020-06-03* 2020-06-03 [ci skip]git
2020-06-02[ci skip] Enhanced Rdoc for Hash (#3162)Burdette Lamar
* Enhanced Rdoc for Hash * Enhanced Rdoc for Hash Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-06-02Add a spec for the new NoMethodError display of the receiverJean Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/3176
2020-06-02Fixed `defined?` against protected method callNobuyoshi Nakada
Protected methods are restricted to be called according to the class/module in where it is defined, not the actual receiver's class. [Bug #16931]
2020-06-02Split test_defined_methodNobuyoshi Nakada
2020-06-02run lldb to investigate the stuck process.Koichi Sasada
Before sending signals (ABRT, KILL), use lldb to show the backtrace of a stuck process. This commit also reverts recent changes for terminate().
2020-06-02vm_insnhelper.c: merge opt_eq_func / opt_eql_func卜部昌平
These two function were almost identical, except in case of T_STRING/T_FLOAT. Why not merge them into one, and let the difference be handled in normal method calls (slowpath). This does not improve runtime performance for me, but at least reduces for instance rb_eql_opt from 653 bytes to 86 bytes on my machine, according to nm(1). Notes: Merged: https://github.com/ruby/ruby/pull/3169
2020-06-02Include the entire lambda expression in lambda ruleNobuyoshi Nakada
2020-06-02* 2020-06-02 [ci skip]git
2020-06-01Update extension.rdoc for Ruby 3 keyword argument separation [ci skip]Jeremy Evans
This removes the discussion of behavior removed in Ruby 3.
2020-06-01Extracted `excessed_comma` to unify ripper and make the order stableNobuyoshi Nakada
2020-06-01add more 2 sec.Koichi Sasada
After sending SEGV signal, but no response. Try to add 2 more seconds. If we can not have a detailed log, we need to use gdb/lldb to show the backtrace.
2020-06-01send SEGV to show backtrace.Koichi Sasada
send SEGV to terminate the remaining process before sending ABRT and KILL to show the backtrace.
2020-06-01[DOC] relative filename `Kernel#.require` and `Kernel#.load` [ci skip]MSP-Greg
Notes: Merged: https://github.com/ruby/ruby/pull/3167
2020-06-01fix typo in Hash#delete docsS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/3168
2020-06-01Make sure rb_enc_str_new_static() is used when enc is NULLBenoit Daloze
* The definition of the rb_enc_str_new_cstr macro depends on HAVE_BUILTIN___BUILTIN_CONSTANT_P. * It SEGV on mswin otherwise.
2020-06-01* 2020-06-01 [ci skip]git
2020-05-31Update to ruby/spec@4e486faBenoit Daloze
2020-05-31Update to ruby/mspec@e3abf6bBenoit Daloze
2020-05-31Fix error raised by Net::HTTPResponse#inflater if the block raisesBenoit Daloze
* See https://bugs.ruby-lang.org/issues/13882#note-6 Notes: Merged: https://github.com/ruby/ruby/pull/3164
2020-05-31Fix spec description for Net::HTTP.getBenoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/3164
2020-05-31* 2020-05-31 [ci skip]git
2020-05-31compile.c: Mark cursor in debug listNobuyoshi Nakada
2020-05-31compile.c: Removed wrong conversionNobuyoshi Nakada
2020-05-30[DOC] refined `Kernel#.require` and `Kernel#.load` [ci skip]Nobuyoshi Nakada
2020-05-30Adjusted an indentNobuyoshi Nakada
2020-05-29Update NEWS / documentation with GC.start(compact:true)Aaron Patterson
2020-05-29Convert ip addresses to canonical form in ↵Jeremy Evans
Resolv::DNS::Requester::UnconnectedUDP#sender Otherwise, if the IP address given is not in canonical form, it won't match, and Resolv will ignore it. Fixes [Bug #16439] Notes: Merged: https://github.com/ruby/ruby/pull/3161
2020-05-29Combine sweeping and movingAaron Patterson
This commit combines the sweep step with moving objects. With this commit, we can do: ```ruby GC.start(compact: true) ``` This code will do the following 3 steps: 1. Fully mark the heap 2. Sweep + Move objects 3. Update references By default, this will compact in order that heap pages are allocated. In other words, objects will be packed towards older heap pages (as opposed to heap pages with more pinned objects like `GC.compact` does).
2020-05-29[ci skip] Enhanced Rdoc for Hash (#3155)Burdette Lamar
* Enhanced Rdoc for Hash * Respond to review Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-05-30spec: add wsl guardYusuke Endoh
WSL 2 is officially released. It uses Linux kernel, so almost all specs for Linux work on WSL, except one: gethostbyaddr. I guess network resolution in WSL is based on Windows, so the behavior seems a bit different from normal Linux. This change adds `platform_is_not :wsl` guard, and guards out the test in question.
2020-05-30runnable.rb: ignore broken symlink error on Windows [ci skip]Nobuyoshi Nakada
2020-05-30[DOC] mentioned "explicit relative path" [ci skip]Nobuyoshi Nakada
`Kernel#.require` and `Kernel#.load` do not search also "explicit relative path" files, not only absolute paths, in the load path.
2020-05-30* 2020-05-30 [ci skip]git
2020-05-30test/ruby/test_process.rb: GID.from_name may raise Errno:ESRCHYusuke Endoh
getgrnam(3) says: ``` ERRORS 0 or ENOENT or ESRCH or EBADF or EPERM or ... The given name or gid was not found. ``` Process::GID.from_name raises an ArgumentError for 0, but Errno::ESRCH for ESRCH. Actually, WSL 2 raises Errno::ESRCH. This change accepts all exceptions above.
2020-05-29doc/contributing.rdoc: Removed obsolete platforms [ci skip]Nobuyoshi Nakada
2020-05-29Correctly remove temporary directory if path yielded is mutatedJeremy Evans
Another approach would be to freeze the string, but that could cause backwards compatibility issues. Fixes [Bug #16918] Notes: Merged: https://github.com/ruby/ruby/pull/3159
2020-05-28Add a debug_counter for JIT cancel on leaveTakashi Kokubun
2020-05-29RUBY_ASSERT_NOASSUMEKoichi Sasada
If __builtin_assume() is enables and RUBY_DEBUG=0, RUBY_ASSERT(expr) will be compiled to __builtin_assume(expr) and compiler can assume expr is true and apply aggressive optimizations. However we observed doubtful behavior because of compiler optimizations, we introduce new macro RUBY_ASSERT_NOASSUME to disable __builtin_assume(). With this macro, we can try without __builtin_assume().
2020-05-29add indent for debug disasm outputKoichi Sasada
2020-05-29export debug utility functionsKoichi Sasada
2020-05-29Allow references to $$ in Ripper DSLNobuyoshi Nakada