Граф коммитов

50197 Коммитов

Автор SHA1 Сообщение Дата
naruse 0f7b26ab4e Raise ArgumentError if host component is nil
From: oss92 <mohamed.o.alnagdy@gmail.com>
fix https://github.com/ruby/ruby/pull/1278

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-08 16:07:54 +00:00
kazu 897af5dfcd Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-08 13:00:04 +00:00
svn 1529ccf6fd * 2018-03-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-08 09:38:02 +00:00
naruse 6db869c101 fix error if the input is mixed Unicode and percent-escapes
Reported by kivikakk (Ashe Connor) with tests and doc fix
Patch based on mame and fix by naruse
[Bug #14586]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-08 09:38:01 +00:00
k0kubun 0a2fb188e3 transform_mjit_header.rb: inline ivar operations
* Optcarrot

before,--jit: ruby 2.6.0dev (2018-03-07 trunk 62689) +JIT [x86_64-linux]
after,--jit: ruby 2.6.0dev (2018-03-07 trunk 62689) +JIT [x86_64-linux]
last_commit=transform_mjit_header.rb: inline ivar operations
Calculating -------------------------------------
                     before,--jit  after,--jit
           optcarrot       67.852       69.359 fps

Comparison:
                        optcarrot
         after,--jit:        69.4 fps
        before,--jit:        67.9 fps - 1.02x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 14:35:28 +00:00
nobu c31f6285c7 complex.c: check type
* complex.c (m_cos, m_sin): determine the type by the internal
  type, not by a method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 12:04:43 +00:00
nobu b31ba1056e complex.c: check type
* complex.c (nucomp_s_canonicalize_internal): determine the type
  by the internal type, not by a method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 11:54:07 +00:00
nobu b479a2d439 complex.c, rational.c: no backref
Since r37702, parsing complex and rational do not use regexp.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 11:49:24 +00:00
nobu 6010d756c0 complex.c, rational.c: adjust indent
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 11:49:23 +00:00
nobu 7ab3f98604 date_core.c: check conversion
* ext/date/date_core.c (offset_to_sec, d_lite_plus): check
  conversion results, to get rid of infinite recursion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 08:07:24 +00:00
nobu 7a363dd91f test_date_arith.rb: needs `test_` prefix
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 07:56:40 +00:00
nobu a13b044109 object.c: conversions with ID
* object.c (rb_to_integer, rb_check_to_int): convert to Integer
  with method ID.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 07:43:07 +00:00
nobu 75d2bec7a9 complex.c, rational.c: simplified macro conditions
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-07 02:27:18 +00:00
svn 125acf404b * 2018-03-07
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 15:14:23 +00:00
nobu 51c6022040 vm_insnhelper.c: blockparamproxy in rescue
* vm_insnhelper.c (vm_call_opt_block_call): get block handler from
  the method local frame.  fix segfault at calling the proxy in
  rescue.  http://twitter.com/wannabe53/status/970955247626567680

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 15:14:22 +00:00
nobu 4488a4b927 test_signal.rb: fix arguments order
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 13:43:54 +00:00
k0kubun d2127cb304 _mjit_compile_pc_and_sp.erb: skip moving pc
on !body->catch_except_p. We need to move pc only when JIT execution is
canceled if the frame does not catch an exception.

_mjit_compile_insn.erb: lazily move pc for such optimized case
_mjit_compile_insn_body.erb: ditto
_mjit_compile_send.erb: ditto

* Optcarrot benchmark (--jit)

Before: 65.31 fps
After: 67.82 fps

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 13:23:22 +00:00
k0kubun eeaa053eae transform_mjit_header.rb: inline VM instructions
* Optcarrot benchmark (--jit)

Before: 62.42 fps
After: 65.31 fps

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 12:53:19 +00:00
k0kubun 5053851ef8 transform_mjit_header.rb: drop obsoleted debug code
Now RubyCI is stable for this part. We no longer use this.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 11:46:02 +00:00
nobu decb59ba83 parse.y: tSPACE for old bison
* parse.y (tSPACE): define a separate token for escaped space, to
  fix `redefining user token number of ' '` error at word list
  separator on bison 2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 09:03:24 +00:00
nobu fb284ee7f8 use the reference as failure messages
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 05:59:29 +00:00
nobu ec826b3f93 thread.c: deadlock in backtrace
* thread.c (unblock_function_set): check interrupts just once
  during raising exceptions, as they are deferred since r16651.
  [ruby-core:85939] [Bug #14577]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 05:15:57 +00:00
nobu e667897b46 resolv.rb: remove rangerand
* lib/resolv.rb (Resolv::DNS.rangerand): rand and random_number
  accept a Range.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 03:31:46 +00:00
nobu e6c0a8f19e resolv.rb: close socket
* lib/resolv.rb (UnconnectedUDP#lazy_initialize): store new
  sockets before binding, so the sockets get closed when the
  requester is closing.

* lib/resolv.rb (ConnectedUDP#lazy_initialize): ditto.

* lib/resolv.rb (UnconnectedUDP#close): synchronize to get rid of
  race condition.

* lib/resolv.rb (ConnectedUDP#close): ditto.

[ruby-core:85901] [Bug #14571]

From: quixoten (Devin Christensen) <quixoten@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 02:48:17 +00:00
hsbt 4b747c2890 Removed redundant private declaration.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 00:52:15 +00:00
svn b544db9738 * 2018-03-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 22:58:14 +00:00
normal 1b455428d3 thread.c: reset waitq of keeping mutexes in child
We must not maintain references to threads in the parent process
in any mutexes held by the child process.

* thread_sync.c (rb_mutex_cleanup_keeping_mutexes): new function
* thread.c (rb_thread_atfork): cleanup keeping mutexes
  [ruby-core:85940] [Bug #14578]

Fixes: r58604 (commit 3586c9e087)
       ("reduce rb_mutex_t size from 160 to 80 bytes on 64-bit")

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 22:58:13 +00:00
kazu 4f125262f4 Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 12:23:48 +00:00
nobu d2a03300d3 parse.y: named whitespaces
* parse.y: named escaped whitespaces to show unexpected character.
  bare whitespaces should not appear outside of word_list.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 08:32:46 +00:00
nobu 71e58ad614 README.md: removed unnecessary schemes
`mailto:` scheme on text looking like email-address is unnecessary
in Markdown.  [Fix GH-1827]

Co-Authored-By: YoeriH <yoeri90@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 07:21:54 +00:00
nobu 2311087b68 Tiny Fix for ASYNC BUG error message copying
The previous logic would overwrite the error message, replacing the message with the `fd` number.

This tiny update will print the message in full.

(I'm trying to debug an issue with the timer thread on my machine and the lack of error messages makes it really hard).

[Fix GH-1829]

From: Bo <bo@bowild.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 06:56:09 +00:00
nobu bd9bc1dbe5 required paths are real paths
Fix `test-spec` failures when the build directory is a symbolic
link.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 01:57:27 +00:00
nobu ec7ee438ac Makefile.sub: reconfig
* win32/Makefile.sub (reconfig): phony target to force reconfigure
  with previous options.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 01:54:21 +00:00
ko1 8d9c6e3233 add prefix to the function name.
* vm.c (handle_exception): rename to vm_exce_handle_exception.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 01:17:08 +00:00
svn 3527c05a8f * 2018-03-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 15:10:12 +00:00
eregon 401b64c4e8 Update to ruby/spec@c1b568b
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 15:09:32 +00:00
k0kubun 8a15857a7f mjit_compile.c: use local variables for stack
if catch_except_p is FALSE. If catch_except_p is TRUE, stack values
should be on VM's stack when exception is thrown and the JIT-ed frame
is re-executed by VM's exception handler. If it's FALSE, the JIT-ed
frame won't be re-executed and don't need to keep values on VM's stack.

Using local variables allows us to reduce cfp->sp motion. Moving cfp->sp
is needed only for insns whose handles_frame? is false. So it improves
performance.

_mjit_compile_insn.erb: Prepare `stack_size` variable for GET_SP,
STACK_ADDR_FROM_TOP, TOPN macros. Share pc and sp motion partial view.
Use cancel handler created in mjit_compile.c.

_mjit_compile_send.erb: ditto. Also, when iseq->body->catch_except_p is
TRUE, this stops to call mjit_exec directly. I described the reason in
vm_insnhelper.h's comment for EXEC_EC_CFP.

_mjit_compile_pc_and_sp.erb: Shared logic for moving sp and pc. As you
can see from thsi file, when status->local_stack_p is TRUE and
insn.handles_frame? is false, moving sp is skipped. But if
insn.handles_frame? is true, values should be rolled back to VM's stack.
common.mk: add dependency for the file

_mjit_compile_insn_body.erb: Set sp value before canceling JIT on
DISPATCH_ORIGINAL_INSN. Replace GET_SP, STACK_ADDR_FROM_TOP, TOPN macros
for the case ocal_stack_p is TRUE and insn.handles_frame? is false.
In that case, values are not available on VM's stack and those macros
should be replaced.

mjit_compile.inc.erb: updated comments of macros which are supported by
JIT compiler. All references to `cfp->sp` should be replaced and thus
INC_SP, SET_SV, PUSH are no longer supported for now, because they are
not used now.

vm_exec.h: moved EXEC_EC_CFP definition to vm_insnhelper.h because it's
tighly coupled to CALL_METHOD.

vm_insnhelper.h: Have revised EXEC_EC_CFP definition moved from vm_exec.h.
Now it triggers mjit_exec for VM, and has the guard for catch_except_p
on JIT-ed code. See comments for details. CALL_METHOD delegates
triggering mjit_exec to EXEC_EC_CFP.

insns.def: Stopped using EXEC_EC_CFP for the case we don't want to
trigger mjit_exec. Those insns (defineclass, opt_call_c_function) are
not supported by JIT and it's safe to use RESTORE_REGS(), NEXT_INSN().
expandarray is changed to pass GET_SP() to replace the macro in
_mjit_compile_insn_body.erb.

vm_insnhelper.c: change to take sp for the above reason.

[close https://github.com/ruby/ruby/pull/1828]

This patch resurrects the performance which was attached in
[Feature #14235].

* Benchmark

Optcarrot (with configuration for benchmark_driver.gem)
https://github.com/benchmark-driver/optcarrot

$ benchmark-driver benchmark.yml --verbose 1 --rbenv 'before;before+JIT::before,--jit;after;after+JIT::after,--jit' --repeat-count 10
before: ruby 2.6.0dev (2018-03-04 trunk 62652) [x86_64-linux]
before+JIT: ruby 2.6.0dev (2018-03-04 trunk 62652) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-03-04 local-variable.. 62652) [x86_64-linux]
last_commit=mjit_compile.c: use local variables for stack
after+JIT: ruby 2.6.0dev (2018-03-04 local-variable.. 62652) +JIT [x86_64-linux]
last_commit=mjit_compile.c: use local variables for stack
Calculating -------------------------------------
                         before  before+JIT       after   after+JIT
           optcarrot     53.552      59.680      53.697      63.358 fps

Comparison:
                        optcarrot
           after+JIT:        63.4 fps
          before+JIT:        59.7 fps - 1.06x  slower
               after:        53.7 fps - 1.18x  slower
              before:        53.6 fps - 1.18x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 07:04:40 +00:00
k0kubun 33949a0320 compile.c: set catch_except_p flag
to be used for MJIT's optimization. It's not used for optimization
in this commit yet.

vm_core.h: added catch_except_p field.

iseq.c: show the flag in ISeq disasm for debugging.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 07:04:28 +00:00
nobu ae34216021 vm.c: trivial optimization
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 06:24:38 +00:00
nobu ac44ae58c6 vm.c: handle_exception loop
* vm.c (vm_exec): hoist out handle_exception and loop to rewind
  for each catching frames.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 02:37:22 +00:00
nobu 76307c9023 vm.c: untangle goto loop
* vm.c (vm_exec): moved code to get rid of cross-jumps across
  branches.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 02:09:47 +00:00
svn 1124f13938 * 2018-03-04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 01:52:20 +00:00
nobu c9173b6a5c vm_exec.c: reduced repeated same calls
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-04 01:52:19 +00:00
nobu 3bc92b8eac mjit_config.h: MJIT_LDSHARED
* configure.in (MJIT_LDSHARED): define based on LDSHARED with
  replacing CC with MJIT_CC.

* Makefile.in, win32/Makefile.sub (mjit_config.h): instead of the
  default LDSHARED, use MJIT_LDSHARED to link mjit shared objects.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-03 05:09:32 +00:00
k0kubun fc2764e58c insns.def: unwrap vm_exec for yield
Outer vm_exec can catch longjmp. We don't need to call vm_exec first
here.

This optimizes JIT-ed yield:

* Benchmark script

```
require 'benchmark_driver'

Benchmark.driver do |x|
  x.prelude %{
    def yielder
      yield + 1
    end
  }
  x.report 'yielder', %{
    yielder { 1 }
  }
  x.loop_count 300_000_000

  x.rbenv 'before', 'before,--jit', 'after', 'after,--jit'
  x.verbose
end
```

* Result

before: ruby 2.6.0dev (2018-03-03 trunk 62642) [x86_64-linux]
before,--jit: ruby 2.6.0dev (2018-03-03 trunk 62642) +JIT [x86_64-linux]
after: ruby 2.6.0dev (2018-03-03 trunk 62642) [x86_64-linux]
last_commit=insns.def: unwrap vm_exec for yield
after,--jit: ruby 2.6.0dev (2018-03-03 trunk 62642) +JIT [x86_64-linux]
last_commit=insns.def: unwrap vm_exec for yield
Calculating -------------------------------------
                         before  before,--jit       after  after,--jit
             yielder    37.214M       29.222M     35.904M      38.035M i/s -    300.000M times in 8.061581s 10.266312s 8.355716s 7.887447s

Comparison:
                          yielder
         after,--jit:  38035121.0 i/s
              before:  37213544.0 i/s - 1.02x  slower
               after:  35903565.7 i/s - 1.06x  slower
        before,--jit:  29221787.6 i/s - 1.30x  slower

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-03 04:50:14 +00:00
svn c0181f31ff * 2018-03-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-03 04:07:03 +00:00
k0kubun b7aae52851 vm.c: add mjit_enable_p flag
to count up total calls properly. Some places (especially CALL_METHOD)
invoke mjit_exec twice for one method call. It would be problematic when
debugging, or possibly it would result in a wrong profiling result.

This commit doesn't have impact for performance:

* Optcarrot benchmark

** before

fps: 59.37757770848619
fps: 56.49998488958699
fps: 59.07900362739362
fps: 58.924749807695996
fps: 57.667905665594894
fps: 57.540021018385254
fps: 59.5518055679647
fps: 55.93831555148311
fps: 57.82685112863262
fps: 59.22391754481736
checksum: 59662

** after

fps: 58.461881158098194
fps: 59.32685183081354
fps: 54.11334310279802
fps: 59.2281560439788
fps: 58.60495705318312
fps: 55.696478648491045
fps: 58.49003452654724
fps: 58.387771929393224
fps: 59.24156772816439
fps: 56.68804731968107
checksum: 59662

* Discourse

Your Results: (note for timings- percentile is first, duration is second in millisecs)

** before (without JIT)

categories_admin:
  50: 16
  75: 17
  90: 24
  99: 37
home_admin:
  50: 20
  75: 20
  90: 24
  99: 42
topic_admin:
  50: 16
  75: 16
  90: 18
  99: 28
categories:
  50: 36
  75: 37
  90: 45
  99: 68
home:
  50: 38
  75: 40
  90: 53
  99: 92
topic:
  50: 14
  75: 15
  90: 17
  99: 26

** after (without JIT)

categories_admin:
  50: 16
  75: 16
  90: 24
  99: 36
home_admin:
  50: 19
  75: 20
  90: 23
  99: 41
topic_admin:
  50: 16
  75: 16
  90: 19
  99: 33
categories:
  50: 35
  75: 36
  90: 44
  99: 61
home:
  50: 38
  75: 40
  90: 52
  99: 101
topic:
  50: 14
  75: 15
  90: 15
  99: 24

** before (with JIT)

categories_admin:
  50: 19
  75: 23
  90: 29
  99: 44
home_admin:
  50: 24
  75: 26
  90: 32
  99: 46
topic_admin:
  50: 20
  75: 22
  90: 27
  99: 44
categories:
  50: 41
  75: 43
  90: 51
  99: 66
home:
  50: 46
  75: 49
  90: 56
  99: 68
topic:
  50: 18
  75: 19
  90: 22
  99: 31

** after (with JIT)

categories_admin:
  50: 18
  75: 21
  90: 28
  99: 42
home_admin:
  50: 23
  75: 25
  90: 31
  99: 51
topic_admin:
  50: 19
  75: 20
  90: 24
  99: 31
categories:
  50: 41
  75: 44
  90: 52
  99: 69
home:
  50: 45
  75: 48
  90: 61
  99: 88
topic:
  50: 19
  75: 20
  90: 24
  99: 33

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-03 04:07:02 +00:00
nobu 8032b00f8e openssl: search winsock
* ext/openssl/extconf.rb: on Windows search winsock library
  always, regardless pkg-config.  direct use of winsock is not
  region of OpenSSL.  [ruby-core:85895] [Bug #14568]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 14:45:28 +00:00
eregon 6a792d0b73 Clarify the documentation of the YAML module [Misc #14567]
Based on a patch from Victor Shepelev

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 12:56:37 +00:00
nobu 1de78c5fd8 io/console: drop 2.1.0 support [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 11:24:29 +00:00