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

28780 Коммитов

Автор SHA1 Сообщение Дата
sonots 1ba62fa93a * lib/time.rb (parse, strptime): Fix Time.parse/strptime does not
have compatibility with DateTime.parse/strptime in terms of parsing
  timezone [Bug #12190] [Fix GH-1297]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 17:46:22 +00:00
mrkn 2169bea82e * numeric.c (fix_zero_p, fix_even_p, fix_odd_p): remove needless
functions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 17:17:08 +00:00
mrkn 0a607bc8f8 * numeric.c (int_even_p): treat Fixnum and Bignum values directly.
I forgot include this commit in the previous one.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 17:15:33 +00:00
mrkn aa1ea07d37 * bignum.c (Bignum#even?, Bignum#odd?): remove definitions
because they are unified with Integer#even? and Integer#odd?.

* numeric.c (Fixnum#zero?, Fixnum#even?, Fixnum#odd?): remove
  definitions because they are unified with Numeric#zero?,
  Integer#even?, and Integer#odd?.

* numeric.c (num_zero_p, int_even_p, int_odd_p): treat Fixnum and
  Bignum values directly.

* test/ruby/test_integer.rb (test_odd_p_even_p): remove meaningless
  test case.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 17:11:42 +00:00
mrkn a3c9cda6d7 * bignum.c (rb_big_even_p, rb_big_odd_p): make them public functions
to be available in other source files.

* include/ruby/intern.h (rb_big_even_p, rb_big_odd_p): add prototype
  declarations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 17:07:29 +00:00
akr 087a393fa5 * enum.c (ary_inject_op): Implement the specialized code for sum of
float numbers.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 15:27:05 +00:00
svn 4e42598278 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 15:18:59 +00:00
mame 64a76ee8a8 * numeric.c (num_step): use rb_equal for zero check. rb_num_coerce_cmp
created an object which caused extra overhead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 15:18:59 +00:00
nobu 37153c03f8 ruby.h: remove RB_GC_GUARD_PTR
* include/ruby/ruby.h (RB_GC_GUARD_PTR): remove intermediate
  macro, and expand for each RB_GC_GUARD.  [Fix GH-1293]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 13:21:36 +00:00
nobu 8472c15440 compile.c: move newarray specialization
* compile.c (iseq_specialized_instruction): move specialization
  for opt_newarray_max/min from translation phase.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 13:08:35 +00:00
mame b3a65c883a * array.c, enum.c: make rdoc format consistent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:52:47 +00:00
mame f8e2964065 * NEWS: add Array#max, #min, and the optimization. [Feature #12172]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:49:19 +00:00
mame 3c7c983300 * compile.c (NODE_CALL): add optimization shortcut for Array#max/min.
Now `[x, y].max` is optimized so that a temporal array object is not
  created in some condition.

* insns.def (opt_newarray_max, opt_newarray_min): added.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:47:31 +00:00
mame 4ca0483a28 * array.c (rb_ary_max, rb_ary_min): implement Array#max and min with
arguments.  replace super call with rb_nmin_run.

* enum.c (nmin_run): exported (as rb_nmin_run).

* internal.h: added a prototype for rb_nmin_run.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:37:20 +00:00
mame 90ab5beb42 * array.c (rb_ary_max, rb_ary_min): implement a block by itself instead
of delegating Enumerable#max/min.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:25:40 +00:00
mame 68a6f2e9e0 * array.c (rb_ary_max, rb_ary_min): Array#max and Array#min added.
[Feature #12172]

* internal.h (OPTIMIZED_CMP): moved from enum.c so that array.c can
  use it.

* test/ruby/test_array.rb (test_max, test_min): tests for Array#max
  and Array#min.

* test/ruby/test_enum.rb (test_max, test_min): revised a bit to test
  Enumerable#max and #min explicitly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:14:21 +00:00
mame a22455199b * internal.c: struct cmp_opt_data added for refactoring out a data
structure for CMP_OPTIMIZABLE

* array.c (struct ary_sort_data): use struct cmp_opt_data.

* enum.c (struct min_t, max_t, min_max_t): use struct cmp_opt_data.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 12:03:48 +00:00
akr 85473c481e * enum.c (ary_inject_op): Extracted from enum_inject.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 11:55:58 +00:00
akr fa153d7435 * enum.c (enum_inject): Implement the specialized code for sum of
integers including Bignums.

* internal.h (rb_fix_plus): Declared to be usable from enum_inject.

* numeric.c (rb_fix_plus): Defined.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 09:50:19 +00:00
nobu fe9817618d thread_sync.c: Update rdoc for Queue [skip ci]
* thread_sync.c: [DOC] Update documentation for Queue class
  description.  [Fix GH-1292]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 08:20:29 +00:00
nobu a5456a1d83 gc.c: tick for POWER arch
* gc.c (tick): Use __builtin_ppc_get_timebase for POWER arch.
  [Fix GH-1291]

This gives a little performance improvement

        user     system      total        real
Before: 20.870000   0.000000  20.870000 ( 20.893959)
After:  20.720000   0.000000  20.720000 ( 20.733970)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 08:14:53 +00:00
naruse 6545327e24 * lib/securerandom.rb (gen_random): to avoid blocking on Windows.
On Windows OpenSSL RAND_bytes (underlying implementation is
  RAND_poll in crypto/rand/rand_win.c) may be blocked at
  NetStatisticsGet.
  https://wiki.openssl.org/index.php/Random_Numbers#Windows_Issues
  Instead of this, use Random.raw_seed directory (whose implementation
  CryptGenRandom is one of the source of
  entropy of RAND_poll on Windows).
  https://wiki.openssl.org/index.php/Random_Numbers
  Note: CryptGenRandom function is PRNG and doesn't check its entropy,
  so it won't block. [Bug #12139]
  https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa379942.aspx
  https://tools.ietf.org/html/rfc4086#section-7.1.3
  https://eprint.iacr.org/2007/419.pdf
  http://www.cs.huji.ac.il/~dolev/pubs/thesis/msc-thesis-leo.pdf

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 06:01:11 +00:00
duerst fdbb82967f * enc/unicode.c: Fixed two macro definitions.
* test/ruby/enc/test_case_mapping.rb: Test cases that detected
  the above bugs.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 03:09:00 +00:00
nobu 551f6b3a18 socket/option.c: accurate condition
* ext/socket/option.c (inspect_tcpi_msec): more accurate condition
  for TCPI msec member inspection function.
  [ruby-core:74388] [Bug #12185]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 02:36:28 +00:00
odaira 82b8840320 * test/-ext-/time/test_new.rb (test_timespec_new): Time#gmtoff values
are the same only when both or neither of the Time objects are in
  summer time (daylight-saving time).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 23:20:14 +00:00
drbrain c9165d0644 * marshal.c (r_object0): raise ArgumentError when linking to undefined
object.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 22:18:12 +00:00
mrkn e91e50d05e * test/ruby/test_bignum.rb: Make sure to use Bignum values in the tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 15:53:08 +00:00
nobu cb65717b45 parse.y: symbol literals for alias/undef
* defs/keywords (alias, undef): symbol literals are allowed.
* parse.y (parse_percent): should parse symbol literals for alias
  and undef.  [ruby-dev:47681] [Bug #8851]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 14:10:27 +00:00
naruse 623dde6ce7 * enc/trans/JIS: update Unicode's notice. [Bug #11844]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 12:42:15 +00:00
nobu 6c7fd3b5cf proc.c: fail symbol proc binding
* proc.c (proc_binding): proc from symbol can not make a binding.
  [ruby-core:74100] [Bug #12137]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 11:03:38 +00:00
duerst 50591a768d * test/ruby/enc/test_case_mapping.rb: Fixed and activated a test for Cherokee.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 09:42:45 +00:00
duerst bbef7b401f * test/ruby/enc/test_case_mapping.rb: Fixed a logical error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 08:58:56 +00:00
duerst 417f07d996 * test/ruby/enc/test_case_mapping.rb: Adding tests for Cherokee.
One test not yet working.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 08:57:34 +00:00
duerst 0052ed9d80 * test/ruby/enc/test_case_mapping.rb: Adding tests for actual Unicode
case mapping. Fixing some aliasing issues.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-16 06:44:05 +00:00
akr 32674b167b * enum.c (enum_inject): Consider redefinition of Fixnum#+.
[ruby-dev:49510] [Bug#12178] Reported by usa.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 12:53:06 +00:00
kazu da9b5e9c89 fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 12:47:18 +00:00
akr 43e20c6a9a * enum.c (enum_inject): Implement the specialied code for :+ operator
for Fixnums.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 11:42:23 +00:00
akr 95d2ec93bc * enum.c (enum_inject): Implement the specialized code for self is an
array and a symbol operator is given.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 11:27:34 +00:00
duerst e89232eb15 * enc/unicode.c: Eliminating common code.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 07:29:51 +00:00
duerst 8679f113e9 * enc/unicode.c: Expansion of some code repetition in preparation for
elimination of common code pieces.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 07:17:09 +00:00
duerst 00cc59a054 * enc/unicode.c: Additional macros and code to use mapping data in
CaseMappingSpecials array.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 04:49:24 +00:00
nobu 5d6349aefe internal.h: private rb_gc_mark_global_tbl
* internal.h (rb_gc_mark_global_tbl): should be private,
  but was accidentally exported.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 04:41:24 +00:00
hsbt e4e7ed03af * doc/extension.ja.rdoc: Fix RDoc markup in doc/extension*.rdoc.
[ci skip][Bug #12143][ruby-core:74143]
* doc/extension.rdoc: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 03:51:19 +00:00
hsbt 8709f42ff2 * time.c: Minor typo in Time#dst? documentation.
[ci skip][fix GH-1290]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 00:56:45 +00:00
headius c52283934e * test/ruby/test_rubyoptions.rb (test_disable): add tests for
--disable-gems and --disable-did_you_mean.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 19:39:24 +00:00
drbrain fa0e37646a * marshal.c (r_object0): Fix Marshal crash for corrupt extended object.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 18:36:14 +00:00
headius a4e97af645 * test/ruby/test_rubyoptions.rb: make version matching support
JRuby's version output.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 16:24:04 +00:00
naruse 3d5a3a236d * bignum.c (big2str_2bdigits): reduce div instruction.
Fix the code so that C compiler unify div instructions of `%` and `/`.

Before:
  4291b0:       48 89 f0                mov    %rsi,%rax
  4291b3:       31 d2                   xor    %edx,%edx
  4291b5:       48 83 ef 01             sub    $0x1,%rdi
  4291b9:       48 f7 f1                div    %rcx  # <---- !
  4291bc:       41 0f b6 04 11          movzbl (%r9,%rdx,1),%eax
  4291c1:       31 d2                   xor    %edx,%edx
  4291c3:       41 88 04 38             mov    %al,(%r8,%rdi,1)
  4291c7:       48 63 4b 04             movslq 0x4(%rbx),%rcx
  4291cb:       48 89 f0                mov    %rsi,%rax
  4291ce:       48 f7 f1                div    %rcx  # <---- !
  4291d1:       48 89 c6                mov    %rax,%rsi
  4291d4:       48 85 ff                test   %rdi,%rdi
  4291d7:       75 d7                   jne    4291b0 <big2str_2bdigits+0x50>
  4291d9:       48 63 6b 10             movslq 0x10(%rbx),%rbp
  4291dd:       48 01 6b 20             add    %rbp,0x20(%rbx)
  4291e1:       48 8b 44 24 48          mov    0x48(%rsp),%rax
  4291e6:       64 48 33 04 25 28 00    xor    %fs:0x28,%rax

After:
  4291b0:       48 63 73 04             movslq 0x4(%rbx),%rsi
  4291b4:       31 d2                   xor    %edx,%edx
  4291b6:       48 83 e9 01             sub    $0x1,%rcx
  4291ba:       48 f7 f6                div    %rsi  # <---- !
  4291bd:       41 0f b6 14 10          movzbl (%r8,%rdx,1),%edx
  4291c2:       88 14 0f                mov    %dl,(%rdi,%rcx,1)
  4291c5:       48 85 c9                test   %rcx,%rcx
  4291c8:       75 e6                   jne    4291b0 <big2str_2bdigits+0x50>
  4291ca:       48 63 6b 10             movslq 0x10(%rbx),%rbp
  4291ce:       48 01 6b 20             add    %rbp,0x20(%rbx)
  4291d2:       48 8b 44 24 48          mov    0x48(%rsp),%rax
  4291d7:       64 48 33 04 25 28 00    xor    %fs:0x28,%rax

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 10:14:48 +00:00
duerst 4b15b54d68 * include/ruby/oniguruma.h, enc/unicode.c: Adjusting flag assignments
and macros to work with unified CaseMappingSpecials array.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 09:39:54 +00:00
nobu ea5e885a95 optimize named capture assignment
* compile.c (compile_named_capture_assign): optimize named capture
  assignments, by replacing repeating global variable accesses
  with `dup`, and by returning the matched result instead of
  re-getting it from the MatchData.

* parse.y (reg_named_capture_assign_gen): build just assignment
  nodes for the optimization.

ex. `/(?<x>.)/ =~ "bar"`

- old
  ```
  0000 putstring        "bar"
  0002 opt_regexpmatch1 /(?<x>.)/
  0004 pop
  0005 getglobal        $~
  0007 branchunless     25
  0009 getglobal        $~
  0011 putobject        :x
  0013 opt_aref         <callinfo!mid:[], argc:1, ARGS_SIMPLE>
  0016 setlocal_OP__WC__0 2
  0018 getglobal        $~
  0020 putobject_OP_INT2FIX_O_0_C_
  0021 opt_send_without_block <callinfo!mid:begin, argc:1, ARGS_SIMPLE>
  0024 leave
  0025 putobject        nil
  0027 setlocal_OP__WC__0 2
  0029 putobject        nil
  0031 leave
  ```

- new
  ```
  0000 putstring        "bar"
  0002 opt_regexpmatch1 /(?<x>.)/
  0004 getglobal        $~
  0006 dup
  0007 branchunless     14
  0009 putobject        :x
  0011 opt_aref         <callinfo!mid:[], argc:1, ARGS_SIMPLE>
  0014 setlocal_OP__WC__0 2
  0016 leave
  ```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 07:53:39 +00:00
nobu a4e6f7d707 ruby.c: reduce fstat
* file.c (ruby_is_fd_loadable): now return -1 if loadable but
  may block.
* ruby.c (open_load_file): wait to read by the result of
  ruby_is_fd_loadable, without fstat.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 07:03:01 +00:00
naruse fcadcd3e68 * numeric.c (fix2str): improve r54092 like rb_int2big().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 04:41:16 +00:00
normal 9749511dfe document OpenSSL::SSL::SSLContext#setup as MT-unsafe
On a cursory inspection, using rb_block_call for extra_chain_cert
is thread-unsafe.  There may be other instances of thread-unsafe
behavior in this method, but one is enough.

* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): document as MT-unsafe
  [ruby-core:73803] [Bug #12069]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 01:20:14 +00:00
nobu e13db770f4 win32.h: fix O_SHARE_DELETE
* include/ruby/win32.h (O_SHARE_DELETE): change to fit Fixnum
  limit.  [ruby-core:74285] [Bug #12171]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-13 00:43:25 +00:00
nobu 05d916415f numeric.c: fix edge case
* numeric.c (rb_fix2str): fix edge case, accidentally generated
  wrong Fixnum from LONG_MIN.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-13 00:15:48 +00:00
nobu 12ec73ad92 Malformed RDoc syntax in catch [ci skip]
* vm_eval.c (rb_f_catch): [DOC] fix malformed RDoc syntax, "+...+"
  cannot enclose non-identifier characters.
  a patch by Sebastian S in [ruby-core:74278].  [Bug#12170]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-12 00:50:29 +00:00
akr db271576bb * test/lib/test/unit.rb: describe !/REGEXP/ in the help message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-11 17:58:49 +00:00
nobu 83e36bb5a6 testunit: negative filter
* test/lib/test/unit.rb (Options#non_options): make regexp name
  options prefixed with "!" negative filters.
* common.mk (TEST_EXCLUDES): use negative filter to exclude memory
  leak tests.  -x option excludes test files, not test methods.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-11 08:03:11 +00:00
duerst 59766643db * enc/unicode/case-folding.rb, casefold.h: Streamlining approach to
case mapping data not available from case folding by unifying all
  three cases (special title, special upper, special lower).
* enc/unicode.c: Adjust macro names for above (macros are currently inactive).
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-11 07:11:27 +00:00
nobu cf09c0c351 iseq.h: coverage_enabled flag
* iseq.c (prepare_iseq_build): enable coverage by coverage_enabled
  option, not by parse_in_eval flag in the thread context.
* iseq.h (rb_compile_option_struct): add coverage_enabled flag.
* parse.y (yycompile0): set coverage_enabled flag if coverage
  array is made.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 08:34:18 +00:00
nobu a944bdd5fa node.c: hidden options hash
* node.c (dump_option): nd_compile_option is a hidden hash object,
  cannot call inspect on it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 06:19:55 +00:00
odaira acfd12ae36 * test/socket/test_socket.rb (test_udp_recvmsg_truncation):
AIX does not set the MSG_TRUNC flag for a message partially read
  by recvmsg(2) with the MSG_PEEK flag set.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 00:55:37 +00:00
kazu 75b61aa316 fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 13:30:13 +00:00
ko1 dc39baa9c9 * benchmark/driver.rb: fix my last commit (syntax error).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:49:06 +00:00
ko1 a036c02650 * benchmark/driver.rb: fix output messages.
* benchmark/memory_wrapper.rb: use respond_to? because
  member? does not work well.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:42:32 +00:00
ko1 61aa2685d3 * benchmark/driver.rb: support memory usage benchmark.
use `--measure-target=[target]'.
  Now, we can use the following targets:
    * real (default): real time which returns process time in sec.
    * peak: peak memory usage (physical memory) in bytes.
    * size: last memory usage (physical memory) in bytes.

* benchmark/memory_wrapper.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:22:27 +00:00
ko1 1228d134dd * benchmark/bm_vm3_gc_old_full.rb: add GC.start benchmark.
* benchmark/bm_vm3_gc_old_immediate.rb: ditto.

* benchmark/bm_vm3_gc_old_lazy.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 06:05:53 +00:00
ko1 b065141050 * benchmark/driver.rb: exit benchmarking if a benchmark process
receives signals.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 06:02:18 +00:00
nobu e1e223a874 memory_status.rb: independent of MiniTest
* test/lib/memory_status.rb: make Memory::Status independent of
  MiniTest::Skip.
* test/lib/test/unit/assertions.rb (assert_no_memory_leak): skip
  if Memory::Status is not available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 04:22:50 +00:00
odaira 8f5cbc589c * test/io/wait/test_io_wait.rb (test_wait_readwrite_timeout):
select(2) in AIX returns "readable" for the write-side fd
  of a pipe, so it is not possible to use a pipe to test
  the read-write timeout of IO#wait on AIX.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 00:28:41 +00:00
headius d9166317ca * test/ruby/test_require.rb (test_require_with_loaded_features_pop):
Only remove PATH so threads don't accidentally double-pop.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 18:38:28 +00:00
nobu 6cde2d359a vm_method.c: fix aliased original name
* vm_method.c (rb_alias): the original name should be properly
  available method_added method, set the name before calling the
  hook.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 15:29:48 +00:00
nobu a435fae7bd logger.rb: kwd args
* lib/logger.rb (Logger::LogDevice#initialize): define using
  keyword arguments.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 15:07:05 +00:00
headius 4c0e360dd9 test/ruby/test_array.rb: split permute + stack error tests out.
* test/ruby/test_array.rb: split out the test for no stack error
  on large input for test_permutation, test_repeated_permutation,
  and test_repeated_combination, and make them all timeout:30.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 14:38:22 +00:00
naruse 1b49df0b3d * intern.h (rb_divmod): assume compilers `/` and `%` comply C99
and reduce branching. If a compiler doesn't comply, add #ifdefs.

* intern.h (rb_div): added for Ruby's behavior.

* intern.h (rb_mod): added for Ruby's behavior.

* insns.def (opt_div): use rb_div.

* insns.def (opt_mod): use rb_mod.

* numeric.c (fixdivmod): removed.

* numeric.c (fix_divide): use rb_div.

* numeric.c (fix_mod): use rb_mod.

* numeric.c (fix_divmod): use rb_divmod.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 09:15:18 +00:00
naruse 87adc59b21 * insns.def (opt_mod): show its method name on ZeroDivisionError.
[Bug #12158]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 08:54:38 +00:00
usa b0b2df253f * win32/win32.c (rb_w32_write_console): now no need to check
ERROR_CALL_NOT_IMPLEMENTED because it is for old Win9X.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 08:34:35 +00:00
usa 693b335326 * win32/win32.c (rb_w32_write_console): stop the VT100 emulation if the
console supports it natively.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 07:55:48 +00:00
odaira a5be0fb080 * test/net/imap/test_imap.rb (test_idle_timeout): Because of the
timeout specified in "imap.idle(0.2)", there is no gurantee that
  the server thread has done all the work before the client thread
  performs the assertions. It depends on the thread scheduling.
  Add checks to avoid false positives (on AIX, particularly).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 23:22:49 +00:00
usa e89d48a1e6 * ruby.c (warn_cr_in_shebang): meaningless check on DOSISH platforms.
fixed a test failure introduced at r53998.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 15:44:34 +00:00
nagachika 99a35bf0b3 * ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb: fix method name typo.
[ruby-core:72513] [Bug #11893] The patch provided by Akira Matsuda.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 15:28:57 +00:00
nagachika 903b0ebe22 * ext/tk/lib/tkextlib/tcllib/toolbar.rb: fix method name typo.
[ruby-core:72511] [Bug #11891] The patch provided by Akira Matsuda.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 15:26:38 +00:00
nagachika 90dec6bcab * ext/tk/lib/tkextlib/blt/tree.rb: fix method name typo.
[ruby-core:72510] [Bug #11890] The patch provided by Akira Matsuda.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 15:23:25 +00:00
nagachika fea0595635 * ext/tk/lib/tk/menubar.rb: fix a typo in font name. [ruby-core:72505]
[Bug #11886] The patch provided by Akira Matsuda.

* ext/tk/sample/*.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 15:15:59 +00:00
nobu 9bb8f28f3d class.c: err if superclass is 0
* class.c (rb_define_class, rb_define_class_id_under): raise
  ArgumentError if super is 0, deprecated behavior which has been
  warned long time.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 04:33:00 +00:00
nobu 8e1a0856ed internal.h: functions for class internals
* internal.h: move function declarations for class internals from
  include/ruby/intern.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 04:28:32 +00:00
nobu 9c8d9f31f7 win32ole_event.c: use rb_write_error_str
* ext/win32ole/win32ole_event.c (rescue_callback): use
  rb_write_error_str instead of rb_write_error, to respect
  the encoding and prevent the message from GC.
* internal.h (rb_write_error_str): export.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 01:58:09 +00:00
odaira 5ce9b42545 * test/ruby/test_process.rb (test_execopts_gid): Skip a test
that is known to fail on AIX. AIX allows setgid to
  a supplementary group, but Ruby does not allow the "-e"
  option when setgid'ed, so the test does not work as intended.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-06 16:43:50 +00:00
nobu 38e5dd1be6 io.c: fix output of Array [ci skip]
* io.c (rb_obj_display): [DOC] fix output of Array, as Array#to_s
  is same as Array#inspect since 1.9.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-06 13:43:42 +00:00
odaira bf5d2c74c9 * test/socket/test_addrinfo.rb (test_ipv6_address_predicates):
IN6_IS_ADDR_V4COMPAT and IN6_IS_ADDR_V4MAPPED are broken
  on AIX, so skip related tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-05 00:54:17 +00:00
odaira 1874524d42 Sat Mar 5 09:17:54 2016 Rei Odaira <Rei.Odaira@gmail.com>
* test/rinda/test_rinda.rb (test_make_socket_ipv4_multicast):
  The fifth argument to getsockopt(2) should be modified to
  indicate the actual size of the value on return,
  but not in AIX. This is a know bug. Skip related tests.
* test/rinda/test_rinda.rb (test_ring_server_ipv4_multicast):
  ditto.
* test/rinda/test_rinda.rb (test_make_socket_unicast): ditto.
* test/socket/test_basicsocket.rb (test_getsockopt): ditto.
* test/socket/test_sockopt.rb (test_bool): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-05 00:29:39 +00:00
odaira adde0a94a2 * test/-ext-/float/test_nextafter.rb: In AIX,
nextafter(+0.0,-0.0)=+0.0, and nextafter(-0.0,+0.0)=-0.0,
  but they should return -0.0 and +0.0, respectively. This is
  a known bug in nextafter(3) on AIX, so skip related tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-04 22:43:31 +00:00
odaira 1ec6bb95bc * test/zlib/test_zlib.rb (test_adler32_combine, test_crc32_combine):
Skip two tests on AIX because zconf.h in zlib does not correctly
  recognize _LARGE_FILES in AIX. The problem was already reported
  to zlib, and skip these tests until it is fixed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-04 22:20:56 +00:00
odaira a2594be783 * thread_pthread.c (getstack): __pi_stacksize returned by
pthread_getthrds_np() is wrong on AIX. Use
  __pi_stackend - __pi_stackaddr instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-04 18:14:18 +00:00
ko1 d04ee29e77 * gc.c: use 2 bits with unsigned int for rb_objspace:🎏:mode
because it always returns 0 to 2 (non-negative value).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-04 10:37:35 +00:00
ko1 befcbc2cb9 * gc.c: rename "enum gc_stat" to "enum gc_mode"
because there is a same name (no related) function gc_stat().

  Also gc_stat_* are renamed to gc_mode_*,
  gc_stat_transition() to gc_mode_transition(),
  rb_objspace:🎏:stat is renamed to rb_objspace:🎏:mode.

  Change rb_objspace:🎏:mode from 2 bits to 3 bits because VC++
  returns negative enum value with 2 bits.

* gc.c (gc_mode): add a macro to access rb_objspace:🎏:mode
  with verification code (verification is enabled only on
  RGENGC_CHECK_MODE > 0).

* gc.c (gc_mode_set): same macro for setter.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-04 09:53:03 +00:00
hsbt 5a90f9e8f8 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.1.
Please see entries of 2.6.0 and 2.6.1 on
  https://github.com/rubygems/rubygems/blob/master/History.txt
  [fix GH-1270] Patch by @segiddins

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-04 00:29:40 +00:00
nobu 7c89ca5431 ostruct.rb: make internal methods private
* lib/ostruct.rb (modifiable?, new_ostruct_member!, table!):
  rename methods for internal use with suffixes and make private,
  [ruby-core:71069] [Bug #11587]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-03 05:09:02 +00:00
nobu 0534b970bc vm_eval.c: call method_missing by method entry
* vm_eval.c (method_missing): call by found method entry and get
  rid of searching the same method entry twice.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 07:28:50 +00:00
nobu be8005b977 vm_eval.c: method_missing by method_missing
* vm_eval.c (vm_call0_body): calling method_missing method is
  method_missing().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 07:18:31 +00:00
hsbt a2845a44f8 * lib/xmlrpc.rb: Removed broken parser named XMLScanStreamParser.
It's not works with current Ruby version.
  [fix GH-1271][ruby-core:59588][Bug #9369]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 06:19:18 +00:00
hsbt d8e3a92411 * lib/xmlrpc.rb: Removed broken parser named XMLTreeParser.
Required gem of its parser didn't compile on newer Ruby versions.
  [fix GH-1271][ruby-core:59590][Bug #9370]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 06:12:51 +00:00
kazu 6d2c4e7b3f Fix pull request number [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-01 15:00:55 +00:00
nobu baa43cd0c2 fileutils.rb: keyword arguments
* lib/fileutils.rb: use keyword arguments instead of option
  hashes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-01 02:26:44 +00:00
nobu c31d06eeb7 array.c: [DOC] remove trailing comma [ci skip]
* array.c (rb_ary_push_m): [DOC] Remove trailing comma from
  Array#push example, as other Array examples doesn't put trailing
  comma.  [Fix GH-1279]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 07:51:15 +00:00
nobu 199e910602 mkconfig.rb: cross_compiling option
* common.mk, tool/mkconfig.rb: set cross_compiling option from
  Makefile, but not from rbconfig.rb, which is just going to be
  created by this command.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 07:31:56 +00:00
nobu 7b91046b29 configure.in: summary
* configure.in: Add summary to end of configure output.
  [Fix GH-1277]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 14:14:42 +00:00
seki 018f081233 * lib/drb/drb.rb (error_print): Add verbose failure messages and
avoid infamous DRb::DRbConnError. [Feature #12101]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 11:28:58 +00:00
nobu 4d9f5482ae NoMethodError#private_call?
* error.c (nometh_err_initialize): add private_call? parameter.
* error.c (nometh_err_private_call_p): add private_call? method,
  to tell if the exception raised in private form FCALL or VCALL.
  [Feature #12043]
* vm_eval.c (make_no_method_exception): append private_call?
  argument.
* vm_insnhelper.c (ci_missing_reason): copy FCALL flag.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 04:41:38 +00:00
nobu 491c44e984 Clarify set intersection and union documentation
* array.c (rb_ary_and): clarify that set intersection returns the
  unique elements common to both arrays.

* array.c (rb_ary_or): clarify that union preserves the order from
  the given arrays.

- Most know what intersection means, but saying the operation
  excludes duplicates could be misleading ([1] & [1], duplicates
  excluded, might mean a result of []).
- Instead, saying intersection returns the unique elements common to both
  arrays is more concise and less ambiguous.
- The set union's documentation was incomplete in its describing
  preservation of order. Saying union preserves the order of the
  original array neglects the idea that the order of the elements
  in both arrays, as given, will be preserved.
- Instead, saying set union preserves the order from the given arrays (and
  adding an example) fully demonstrates the idea.

[Fix GH-1273] [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 01:20:39 +00:00
duerst c4e6964141 * enc/unicode/case-folding.rb, casefold.h: Reducing size of TitleCase
table by eliminating duplicates.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-27 08:06:17 +00:00
nobu 60dad06d53 numeric.c: wrong type step should raise TypeError
* numeric.c (num_step_scan_args): comparison String with Numeric
  should raise TypeError. it is an invalid type, but not a
  mismatch the number of arguments.  [ruby-core:62430] [Bug #9810]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 05:41:37 +00:00
nobu a12e8fd2ed doc: editor local variables [ci skip]
* doc/extension.rdoc, doc/extension.ja.rdoc: add editor local
  variables, with commenting out by :enddoc: directives which are
  just ignored unless code object mode.  [Bug #12111]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 05:40:28 +00:00
hsbt d7c46522fc * doc/extension.ja.rdoc: removed rendering error caused by editor specific
configuration on http://docs.ruby-lang.org/en/trunk/extension_rdoc.html .
  [Bug #12111][ruby-core:73990]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 03:26:55 +00:00
hsbt 0676ce8739 * lib/xmlrpc.rb: Removed references to NQXML. It's obsoleted parser.
[fix GH-1245][ruby-core:59593][Feature #9371]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 02:25:40 +00:00
hsbt 379c3b8b24 * lib/tmpdir.rb: Unify to coding-style for method definition.
[fix GH-1252]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 02:11:14 +00:00
hsbt 49f17cc6a3 * README.md: update markdown syntax for anchor tag.
[fix GH-1265] Patch by @lukBarros

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 02:03:03 +00:00
hsbt 966e020add * lib/irb.rb: avoid to needless truncation when using back_trace_limit option.
[fix GH-1205][ruby-core:72773][Bug #11969]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 01:57:58 +00:00
tenderlove 4102031164 Reduce system calls by activating the `did_you_mean` gem.
Activating the gem puts the gem on the load path, where simply requiring
the file will search every gem that's installed until it can find a gem
that contains the `did_you_mean` file.

Calling RubyGems' `require` will search each installed gem until it can
find one that contains the file it should require.  This means that the
more gems you have installed, the longer it can take to require that
gem.

To see this in action, lets compare the number of `stat` calls for a
"bare require" vs the number of `stat` calls for a require that follows
a gem activation by using these two programs:

```
[aaron@TC rubygems (master)]$ cat req_dym.rb
begin
  require 'did_you_mean'
rescue LoadError
end
[aaron@TC rubygems (master)]$ cat gem_dym.rb
begin
  gem 'did_you_mean'
  require 'did_you_mean'
rescue Gem::LoadError, LoadError
end
```

The first program just requires the `did_you_mean` gem, where the second
one activates the gem, then requires it.  We can count the number of
`stat` calls using `dtrace`:

```
[aaron@TC rubygems (master)]$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean req_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
     283
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean gem_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
      13
```

The "bare require" version does over 10x the number of stat calls
compared to the "gem, then require" version.  Of course the number for
the first one depends on the number of gems you have installed that sort
before the `did_you_mean` gem.

Lets also look at trunk Ruby:

```
[aaron@TC rubygems (master)]$ ruby -v
ruby 2.4.0dev (2016-02-25 trunk 53940) [x86_64-darwin15]
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean req_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
    2325
[aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean gem_dym.rb" | wc -l

dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24
     685
```

This change will reduce the number of `stat` calls on trunk Ruby too,
but since this installation doesn't have the `did_you_mean` gem,
RubyGems is still reading every gem spec file so that it can raise a
`Gem::LoadError` exception with a nice error message.  If we can modify
RubyGems a little, it may be possible to drop the number of stat calls
even on a Ruby installation that doesn't have the `did_you_mean` gem.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-25 23:23:30 +00:00
duerst 7feb182a08 * enc/unicode/case-folding.rb: Adding possibility for debugging output
for TitleCase table in casefold.h.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-25 10:04:59 +00:00
duerst f1f48e6103 * include/ruby/oniguruma.h: Rearranging flag assignments and making
space for titlecase indices; adding additional macros to add or
  extract titlecase index; adding comments for better documentation.
* enc/unicode.c: Moving some macros to include/ruby/oniguruma.h;
  activating use of titlecase indices.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-24 13:32:01 +00:00
akr 169b867fbf * random.c (limited_rand): Add a specialized path for the limit fits in 32 bit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-24 12:30:20 +00:00
duerst 1cc579cb00 * enc/unicode/case-folding.rb, casefold.h: Outputting actual titlecase
data (new table, with indices from other tables).
* enc/unicode.c: Ignoring titlecase data indices for the moment.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-23 12:53:10 +00:00
duerst 8aa8847b7c * enc/unicode/case-folding.rb, casefold.h: Reading casing data from
SpecialCasing.txt.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-23 06:21:55 +00:00
kazu f42d2ca85a fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-22 11:00:38 +00:00
duerst 4ca9138bac * enc/unicode/case-folding.rb, casefold.h: Adding flag for title-case,
not yet operational.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-22 09:34:34 +00:00
duerst 5470ce8206 * enc/unicode/case-folding.rb, casefold.h: Fixed bug that avoided inclusion
of compatibility characters in uppper-/lower-case mappings.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-22 09:17:43 +00:00
nobu d463c492bc cgi/escape: Optimize CGI.unescape
* cgi/escape/escape.c: Optimize CGI.unescape performance by C ext
  for ASCII-compatible encodings.  [Fix GH-1250]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-21 04:57:57 +00:00
nobu 1b7109e11a cgi/escape: Optimize CGI.unescapeHTML
* cgi/escape/escape.c: Optimize CGI.unescapeHTML performance by C
  ext for ASCII-compatible encodings.  [Fix GH-1242]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-21 04:57:35 +00:00
normal 68d4d7e41f doc/extension.rdoc: update paths for defs/ directory
These files were moved in r19844

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-20 06:39:14 +00:00
nobu 7cb7b5f7f2 Fix Module#module_eval rdoc [ci skip]
* vm_eval.c (rb_mod_module_eval): [DOC] Fix documentation
  signature for Module#module_eval.  [Fix GH-1258]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-20 05:44:52 +00:00
nobu 27c7dfa7e7 Update README.md
* README.md: a few grammatical changes to the main Ruby README.md.
  [Fix GH-1259]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-20 05:41:20 +00:00
nobu 4f969f6eee dir.c: paths as UTF-8
* dir.c (push_pattern, push_glob): deal with read paths as UTF-8
  to stat later, on Windows as well as OS X.
  [ruby-core:73868] [Bug #12081]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-20 04:04:59 +00:00
nobu 8790fdce57 object.c: fix error message
* object.c (rb_mod_const_get): make error message at uninterned
  string consistent with symbols.  [ruby-dev:49498] [Bug #12089]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-19 16:54:08 +00:00
nobu 3ad8210ce1 find.rb: raise with the name
* lib/find.rb (Find#find): raise with the given path name if it
  does not exist.  [ruby-dev:49497] [Bug #12087]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-19 14:38:28 +00:00
duerst 6286ff6301 * enc/unicode.c: Activated use of case mapping data in CaseUnfold_11 array.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-19 03:45:32 +00:00
nobu 9bfa5d917f extmk.rb: cygwin case
* ext/extmk.rb: add cygwin case, nothing excluded.
  [ruby-core:73806] [Bug#12071]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-19 02:09:06 +00:00
kazu cf87846f16 fix output in EXAMPLES [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-18 12:33:48 +00:00
nobu 49a272d728 string.c: Symbol#match
* string.c (sym_match_m): delegate to String#match but not
  String#=~.  [ruby-core:72864] [Bug #11991]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-18 12:06:20 +00:00
svn 5a6b090368 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-18 05:29:19 +00:00
sorah e8074a382e * re.c: Add MatchData#named_captures
[Feature #11999] [ruby-core:72897]

* test/ruby/test_regexp.rb(test_match_data_named_captures): Test for above.

* NEWS: News about MatchData#named_captures.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-18 05:29:18 +00:00
nobu 527a1eb065 ChangeLog: remove duplicate entry [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-17 15:00:10 +00:00
kazu 19413ef43b fix typos [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-17 14:33:31 +00:00
nobu 0201900d76 id.def: $~ and $_
* defs/id.def (predefined): add idLASTLINE and idBACKREF for $~
  and $_ respectively.
* parse.y: use idLASTLINE and idBACKREF instead of rb_intern.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-17 12:42:00 +00:00
nobu 5a6a502ef9 string.c: fix rb_str_init
* string.c (rb_str_init): fix segfault and memory leak, consider
  wide char encoding terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-17 11:24:09 +00:00
naruse d46e2aea71 * string.c (rb_str_init): introduce String.new(capacity: size)
[Feature #12024]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-17 03:21:35 +00:00
kazu 45aa35cd5d fix indent [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-16 12:25:53 +00:00
kazu 0395a51ea7 ChangeLog should be us-ascii [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-16 12:25:51 +00:00
duerst 6a808bda64 * enc/unicode/case-folding.rb, casefold.h: Used only first element
(rather than all) of target in CaseUnfold_11 array.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-16 10:10:37 +00:00
nobu 527fa61087 numeric.c: fix segfault
* numeric.c (compare_with_zero): fix variable name, rb_cmperr
  requires VALUEs but not an ID.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-16 09:25:08 +00:00
nobu 135a171ce1 dir.c: Dir.empty?
* dir.c (rb_dir_s_empty_p): add Dir.empty? method, which tells the
  argument is the name of an empty directory.  [Feature #10121]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-16 08:34:47 +00:00
nobu 9cedfbcb91 rbinstall.rb: drive letter in without_destdir
* tool/rbinstall.rb (without_destdir): just strip a drive letter
  which is prepended by with_destdir.
  pointed out by @DavidEGrayson.
  https://github.com/ruby/ruby/commit/0e5f9ae#commitcomment-16101763

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-16 00:51:48 +00:00
naruse 2708fb6ba7 * insns.def (opt_plus): simply use LONG2NUM() instead of wrongly
complex overflow case.

* insns.def (opt_sub): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-15 19:42:59 +00:00
nobu 0e5f9aeaea rbinstall.rb: drive letter in without_destdir
* tool/rbinstall.rb (without_destdir): compare with the destdir
  after stripping a drive letter, on dosish platforms.
  pointed out by @DavidEGrayson.
  https://github.com/ruby/ruby/commit/d0cf23b#commitcomment-16100407

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-15 17:50:08 +00:00
nobu fbb51ff44c parse.y: kwarg to method with same name variable
* parse.y (parse_ident): allow keyword arguments just after a
  method where the same name local variable is defined.
  [ruby-core:73816] [Bug#12073]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-15 06:44:36 +00:00
duerst c3554cdea6 * enc/unicode/case-folding.rb: Added debugging option
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-15 05:43:55 +00:00
nobu fdcc924fce mkmf.rb: Do not modify caller strings
* lib/mkmf.rb (with_{cpp,c,ld}flags): copy caller strings not to
  be modified, in append_{cpp,c,ld}flags respectively.
  [Fix GH-1246]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-14 08:32:15 +00:00
nobu e294f4cfdf not overwrite cause
* eval.c (setup_exception): set the cause only if it is explicitly
  given or not set yet.  [Bug #12068]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-14 07:19:23 +00:00
akr f061d40326 * hash.c (rb_hash_invert): [DOC] more examples.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-13 12:45:59 +00:00
nobu 1ee9cad027 CIDR in no_proxy
* lib/uri/generic.rb (URI::Generic#find_proxy): support CIDR in
  no_proxy.  [ruby-core:73769] [Feature#12062]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-13 08:31:12 +00:00
nobu 423d042371 no_proxy with whitespaces and leading dots
* lib/uri/generic.rb (find_proxy): exclude white-spaces and allow
  for a leading dot in the domain name in no_proxy.
  [ruby-core:54542] [Feature #8317]

The previous implementation wouldn't allow for white-spaces nor a leading dot
in the domain name. The latter is described in the wget documentation as a valid case.

By being more strict on the characters, which are counted to a domainname,
we allow for white-spaces.
Also, a possible leading dot will be handled gracefully.

[Fix GH-285]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-13 08:12:21 +00:00
nobu 6bbe44a39a error.c: fix doc [ci skip]
* error.c (name_err_initialize, nometh_err_initialize): [DOC] fix
  argument positions.  optional parameters except for the message
  are placed at the last.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-12 03:21:17 +00:00
nobu 0a19e7f0a3 net/ftp.rb: NullSocket#closed?
* net/ftp.rb: add NullSocket#closed? to fix closing not opened
  connection.  [Fix GH-1232]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-12 02:50:09 +00:00
nobu 301cbf4d69 Update re.c [ci skip]
* re.c (rb_reg_initialize_m): [DOC] fix missing right bracket.
  [Fix GH-1243]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-12 02:17:58 +00:00
nobu 2456239f18 configure.in: fix universal binary
* configure.in (RUBY_CHECK_SIZEOF, RUBY_DEFINT): fix for types
  which are conditionally available depending on architectures
  when universal binary, e.g., __int128.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-11 05:58:16 +00:00
naruse 832f275316 * configure.in (RUBY_DEFINT): use Parameter Expansion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-10 21:29:50 +00:00
naruse 60f3986914 * configure.in (int128_t): don't check HAVE_XXX (for example
HAVE___INT128) because RUBY_CHECK_SIZEOF() don't define it for
  config.h and use of $ac_cv_sizeof___int128 alternates the check.
  (and don't need to define because users shouldn't know that)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-10 20:57:49 +00:00
nobu 12eb0df4d5 check ar D flag
* configure.in (ARFLAGS): check if deterministic mode flag is
  effective, which is on by default on Ubuntu.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-10 03:03:57 +00:00
sonots 460e9d8d83 * lib/logger.rb: Remove block from Logger.add as it's not needed
patch provided by Daniel Lobato Garcí [fix GH-1240] [Bug #12054]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-09 07:41:51 +00:00
zzak 70d040ddbd * ext/zlib/zlib.c: Document mtime header behavior with patch by @schneems
Fixes [GH-1129]: https://github.com/ruby/ruby/pull/1129


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-09 05:33:35 +00:00
zzak d901058900 * re.c: Remove deprecated kcode argument from Regexp.new and compile
patch provided by Dylan Pulliam [Bug #11495]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-09 04:54:39 +00:00
duerst 73ab88994f * enc/unicode/case-folding.rb, enc/unicode/casefold.h: Flags for
upper/lower conversion added (titlecase and SpecialCasing still missing)
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-08 12:26:35 +00:00
duerst 2ca7569c6d * string.c, enc/unicode.c: Disassociating ONIGENC_CASE_FOLD flag from
ONIGENC_CASE_DOWNCASE.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-08 11:44:12 +00:00
duerst 8f10a72d90 * enc/unicode.c: Shortened macros for enc/unicode/casefold.h to
single-letter; use flags in casefold.h for logic.
* enc/unicode/case-folding.rb: Added flag for case folding.
  Changed parameter passing.
* enc/unicode/casefold.h: New flags added.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-08 04:00:31 +00:00
nobu 12bdb15e71 ruby.c: err ambiguous feature name [ci skip]
* ruby.c (feature_option): raise a runtime error if ambiguous
  feature name is given, in the future.  [Bug #12050]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-08 01:30:22 +00:00
duerst c1db3a49a4 * common.mk: Removed enc/unicode/casefold.h from automatic build because
some CI systems don't have gperf. Creation of enc/unicode/casefold.h
  is now possible with make unicode-up. This is intended as a temporary measure.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-08 00:44:10 +00:00
nagachika d5b4511020 * ChangeLog: revive an entry for r53762 accidentally removed at r53764.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-07 19:40:05 +00:00
duerst 49ca434bcf * common.mk: Added two more precondition files for enc/unicode/casefold.h
* enc/unicode.c: Added shortening macros for enc/unicode/casefold.h
* enc/unicode/case-folding.rb: Fixed file encoding for CaseFolding.txt
  to ASCII-8BIT (should fix some ci errors). Clarified usage. Created
  class MapItem. Partially implemented class CaseMapping.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-07 13:10:20 +00:00
duerst e40d117339 * enc/unicode/case-folding.rb: Fixing parameter passing.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-07 05:12:44 +00:00
duerst 5cbe9fe5c4 * enc/unicode/case-folding.rb: New classes CaseMapping/CaseMappingDummy
to pass as parameters; not yet implemented or used.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-07 02:44:14 +00:00
duerst ee696372a8 * common.mk: using new option in recipe for enc/unicode/casefold.h
* enc/unicode/case-folding.rb: Correctly specify argument to new option.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-07 02:16:12 +00:00
duerst 1e7770d372 (this commit message applies to the previous commit)
* common.mk: explicit recipe for enc/unicode/casefold.h
* enc/unicode/case-folding.rb: Adding -m option to prepare for using
  multiple data files.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-07 01:43:39 +00:00
naruse 0a3fc607c1 Revert "check __int64_t and __int128_t"
This reverts commit r53750.
Those types seems to be for C++, and breaks old GCC.
http://rubyci.s3.amazonaws.com/c64b/ruby-trunk/log/20160206T130202Z.diff.html.gz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-06 17:56:47 +00:00
nobu 8e46f401b2 ASCII-incompatible escape
* lib/cgi/util.rb (escapeHTML, unescapeHTML): consider
  ASCII-incompatible encodings.  [Fix GH-1239]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-06 13:31:07 +00:00
nobu 7475d8048e check __int64_t and __int128_t
* configure.in: check __int64_t and __int128_t for RUBY_DEFINT on
  OS X.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-06 11:44:33 +00:00
duerst e8dde46b60 * test/ruby/enc/test_regex_casefold.rb: Added data-based testing for
String#downcase :fold.
* enc/unicode.c: Fixed a range error (lowest non-ASCII character affected
  by case operations is U+00B5, MICRO SIGN)
* test/ruby/enc/test_case_mapping.rb: Explicit test for case folding of
  MICRO SIGN to Greek mu.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-06 06:18:38 +00:00
duerst b217dc81f3 * test/ruby/enc/test_regex_casefold.rb: Tests for three case folding
primitives (mbc_case_fold, get_case_fold_codes_by_str,
  apply_all_case_fold) in the various encodings. Currently only known
  good encodings are tested to avoid test failures. For bug hunting,
  start by adding more encodings with
      generate_test_casefold encoding
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-06 05:51:33 +00:00
duerst 81515b2381 * enc/unicode.c, test/ruby/enc/test_case_mapping.rb: Implemented :fold
option for String#downcase by using case folding data from
  regular expression engine, and added a few simple tests.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-06 05:37:29 +00:00
duerst 6ab70ad72a * test/ruby/enc/test_case_mapping.rb: added tests for :ascii option.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-05 11:09:07 +00:00
naruse 1f57a334da * insns.def (opt_mult): Use int128_t for overflow detection.
* bignum.c (rb_uint128t2big): added for opt_mult.

* bignum.c (rb_uint128t2big): added for rb_uint128t2big..

* configure.in: define int128_t, uint128_t and related MACROs.
  Initially introduced by r41379 but reverted by r50749.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-05 04:31:27 +00:00
duerst b658249cef * enc/unicode.c: Activated :ascii flag for ASCII-only case conversion
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 12:05:23 +00:00
nobu 445b015c3a fstring without copy
* re.c (reg_set_source): make source string frozen without
  copying.
* re.c (rb_reg_initialize_m): refactor initialization with
  encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 08:38:06 +00:00
nobu 09c9110896 revert re.c in r53736
* re.c (rb_reg_initialize): must copy the source string content,
  it is not a static literal.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 06:46:28 +00:00
nobu 94c70c7d72 fstring_enc_new
* string.c (rb_fstring_enc_new, rb_fstring_enc_cstr): functions to
  make fstring with encoding.
* re.c (rb_reg_initialize): make fstring without copying.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 06:35:34 +00:00
duerst bb4f87127f * common.mk: Added Unicode data file SpecialCasing.txt to be additionally
downloaded (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 05:42:35 +00:00
nobu 217ad664ab cgi/escape: Optimize CGI.escape
* cgi/escape/escape.c: Optimize CGI.escape performance by C ext
  for ASCII-compatible encodings.  [Fix GH-1238]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 03:39:12 +00:00
duerst 6ec7e30ce0 * common.mk: Introduce two variables (UNICODE_DATA_DIR and
UNICODE_SRC_DATA_DIR) to eliminate repetitions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 02:54:02 +00:00
naruse 040ce05610 * string.c (str_new_frozen): if the given string is embeddedable
but not embedded, embed a new copied string. [Bug #11946]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-03 04:52:13 +00:00
nobu e14c9f1048 Fix typo on OpenSSL::PKey doc [ci skip]
* ext/openssl/ossl_pkey.c (Init_ossl_pkey): [DOC] Fix typo
  "encrypted" to "decrypted".  [Fix GH-1235]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02 23:25:40 +00:00
nobu a43f2cbaa1 Fix Ripper.lex error in dedenting squiggly heredoc
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): Fix
  Ripper.lex error in dedenting squiggly heredoc.  heredoc tree is
  also an array of Elem in the outer tree.  [Fix GH-1234]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02 23:21:34 +00:00
naruse 7aefa7b89f * re.c (rb_reg_prepare_enc): use already compiled US-ASCII regexp
if given string is ASCII only.
  121.2s to 113.9s on my x86_64-freebsd10.2 Intel Core i5 661

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02 17:38:00 +00:00
naruse 21daa56b2a * re.c: Introduce RREGEXP_PTR.
patch by dbussink.
  partially merge https://github.com/ruby/ruby/pull/497

* include/ruby/ruby.h: ditto.

* gc.c: ditto.

* ext/strscan/strscan.c: ditto.

* parse.y: ditto.

* string.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02 04:39:44 +00:00
nobu 120c23edad ChangeLog: reword
* ChangeLog: reword "affect" as it is a verb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02 03:53:01 +00:00
hsbt 4e8b8c10dd * lib/rubygems/specification.rb: `coding` is affect only first line except
shebang.
* lib/rubygems/package.rb, lib/rubygems/package/*: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02 00:11:34 +00:00
hsbt a21d403f21 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.5.2.
It supports to enable frozen string literal and add `--norc` option for
  disable to `.gemrc` configuration.
  See 2.5.2 release notes for other fixes and enhancements.
  a8aa3bac72/History.txt (L3)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-01 12:43:26 +00:00
nobu c2e998d6a3 additional math operations
* test/drb/ut_large.rb (multiply, avg, median): add additional
  math operations to DRbLarge.  [Fix GH-1086]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-31 03:34:21 +00:00
nobu 8b9cd1dbb2 test for File#lstat.
* test/ruby/test_file_exhaustive.rb (test_lstat): Add lacking test
  for File#lstat.  [Fix GH-1231]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-31 03:20:22 +00:00
nobu 9286266137 standard_library.rdoc: fix typo [ci skip]
* doc/standard_library.rdoc: fix typo  [Fix GH-1230]
  Spelling mistakes -
  outputing > outputting
  publich > publish

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-31 03:16:40 +00:00
nobu 6ee8ec7069 vm_eval.c: fix hook call
* vm_eval.c (rb_check_funcall_with_hook): also should call the
  given hook before returning Qundef when overridden respond_to?
  method returned false.  [ruby-core:73556] [Bug #12030]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-30 06:19:13 +00:00
nobu ec943ac668 win32/file.c: drop garbage
* win32/file.c (rb_readlink): drop garbage after the substitute
  name, as rb_w32_read_reparse_point returns the expected buffer
  size but "\??\" prefix is dropped from the result.
* win32/win32.c (w32_readlink): ditto, including NUL-terminator.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 08:41:10 +00:00
usa 47f6196cf0 * win32/win32.c (fileattr_to_unixmode, rb_w32_reparse_symlink_p): volume
mount point should be treated as directory, not symlink.
  [ruby-core:72483] [Bug #11874]

* win32/win32.c (rb_w32_read_reparse_point): check the reparse point is
  a volume mount point or not.

* win32/file.c (rb_readlink): follow above change (but this pass won't
  be used).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 08:13:42 +00:00
kazu c0b13e292f fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 08:01:01 +00:00
nobu 93eb95f0b9 Rename parameter name
* enum.c (enum_take_while, enum_drop_while): rename block
  parameter to obj, since they are generic objects.  [Fix GH-1226]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 07:18:10 +00:00
nobu 4f8245b703 erb.rb: fronzen-string-literal in comment [Fix GH-1229]
* lib/erb.rb (ERB::Compiler#detect_magic_comment): allow
  fronzen-string-literal in comment as well as encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 05:16:29 +00:00
nobu 708a982cb4 erb.rb: duplicated magic comments [Fix GH-1229]
* lib/erb.rb (ERB#def_method): insert def line just before the
  first non-comment and non-empty line, not to leave duplicated
  and stale magic comments.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 05:14:31 +00:00
nobu c55ad90a6e erb.rb: frozen-string-literal safe
* lib/erb.rb (ERB#set_eoutvar): explicitly make mutable string as
  a buffer to make ERB work with --enable-frozen-string-literal.
  [ruby-core:73561] [Bug #12031]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 02:14:36 +00:00
hsbt 809d3770e6 * lib/net/http/header.rb: Warn nil variable on HTTP Header.
It caused to NoMethodError. [fix GH-952][fix GH-641] Patch by @teosz
* test/net/http/test_httpheader.rb: Added test for nil HTTP Header.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-29 01:46:02 +00:00
nobu 173e287ff9 socket.c: unlimited size hostname
* ext/socket/socket.c (sock_gethostname): support unlimited size
  hostname.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-28 08:32:44 +00:00
svn b6e761e647 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-27 12:04:48 +00:00
hsbt b7b5692aea * test/-ext-/string/test_capacity.rb: Added missing library.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-27 12:04:47 +00:00
duerst a7c987968d * enc/unicode.c: Fixed bit mask in macro OnigCodePointCount
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-27 09:54:38 +00:00
duerst 415949faba * enc/unicode.c: Protect code point count by macro, in order to
be able to use the remaining bits for flags.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-27 08:55:40 +00:00
nobu 75687e0aff Fix doc with default value with GH-523
* lib/tempfile.rb (Tempfile#initialize): [DOC] the first parameter
  `basename` is optional and defaulted to an empty string since
  [GH-523].  [Fix GH-1225]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-27 07:35:34 +00:00
nobu 4df168074c Fix a Ruby-Doc comment for Array#dig
* array.c (rb_ary_dig): [DOC] fix the exception class to be raised
  when intermediate object does not have dig method.  TypeError
  will be raised now.  [Fix GH-1224]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-27 07:26:53 +00:00
kazu d0128a699a fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-26 10:39:50 +00:00
nobu 7cf2a0a1b9 array.c: reword [ci skip]
* array.c (permute0, rpermute0): [DOC] Substitute indexes ->
  indices in documentation for consistency.  [Fix GH-1222]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-26 10:37:12 +00:00
normal 1282a4a895 fstring early for internal iseq
All of the strings created here eventually get converted to
fstrings when they are frozen into the iseq.  Prepare the
fstring early so we may reduce a one or two objects.

This is a very minor change, mainly for the '<main>' dedupe.

* compile.c (caller_location): use rb_fstring_cstr for "<compiled>"
  (it is converted to fstring anyways inside rb_iseq_new_with_opt)
* iseq.c (iseqw_s_compile): ditto
* iseq.c (rb_iseq_new_main): use rb_fstring_cstr for "<main>"
* vm.c (Init_VM): ditto, share with with above
* iseq.c (iseqw_s_compile_file): rb_fstring before rb_io_t->pathv
  share "<main>" with above
* vm.c (rb_binding_add_dynavars): fstring "<temp>" immediately

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-26 06:23:47 +00:00
nobu f4ca0739ec compile.c: fix tailcall optimization
* compile.c (iseq_peephole_optimize): don't apply tailcall
  optimization to send/invokesuper instructions with blockiseq.
  This is a follow-up to the changes in r51903; blockiseq is now
  the third operand of send/invokesuper instructions.
  [ruby-core:73413] [Bug #12018]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-26 06:14:59 +00:00
normal 667c0a3a8c Signal.list deduplicates keys
This allows us to reuse string objects used in symbols as well
as any string representations of signal names in source code.

* signal.c (sig_list): use fstring for hash key
* test/ruby/test_signal.rb (test_signal_list_dedupe_keys): added

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-26 05:33:28 +00:00
nobu a52be8fb8f signal.c: reserved signals
* signal.c (rb_f_kill): should immediately deliver reserved
  signals SIGILL and SIGFPE, ont only SIGSEGV and SIGBUS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-26 04:09:31 +00:00
nobu 4378bd6628 Macro typo
* gc.c (RVALUE_PAGE_WB_UNPROTECTED): fix a typo of argument name.
  [Fix GH-1221]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-25 22:58:25 +00:00
normal afa7c15d6e fix build with VM_CHECK_MODE > 0
* ruby_assert.h (RUBY_ASSERT_WHEN): fix reference to macro name
* vm_core.h: include ruby_assert.h before using
  [ruby-core:73371]

This does not fix the test failure documented in [ruby-core:73371],
that is for later.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-25 08:34:00 +00:00
nobu dfca38eaa2 symbol.c: more informative error message
* symbol.c (sym_check_asciionly): more informative error message
  with the encoding name and the inspected content.
  [ruby-core:73398] [Feature #12016]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-25 06:56:26 +00:00
hsbt 390f087d87 * test/ruby/test_string.rb: added testcase for next!, succ and succ!
[fix GH-1213] Patch by @K0mAtoru

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-25 00:39:26 +00:00
hsbt 65793c9c17 * lib/webrick/httpservlet/filehandler.rb: fix documentation for namespace.
[fix GH-1219][ci skip] Patch by @leafac

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-25 00:33:17 +00:00
normal 0feaa041e7 vm_insnhelper.c (vm_check_if_namespace): tiny size reduction
Take advantage of "%+" modifier in the format string instead of
explicitly calling rb_inspect to reduce object size.

On x86 32-bit:

           text    data     bss     dec     hex filename
before: 2949572   12448   30680 2992700  2daa3c miniruby
after:  2949464   12448   30680 2992592  2da9d0 miniruby

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-24 10:36:16 +00:00
duerst 615d99b7e7 * common.mk: Simplifying Unicode data file download logic to make
it more reliable (including additional fix not in r53633) [Bug #12007]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-24 09:13:30 +00:00
nobu b58fac9a97 wait readable/writable
* ext/io/wait/wait.c (io_wait_readwrite): [EXPERIMENTAL] allow to
  wait for multiple modes, readable and writable, at once.  the
  arguments may change in the future.  [Feature #12013]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-24 07:55:05 +00:00
nobu be8b517f52 Add test for Array#keep_if
* test/ruby/test_array.rb (test_keep_if): Add test for
  Array#keep_if separate from Array#select!  [Fix GH-1218]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 13:31:51 +00:00
hsbt 4bfda5d951 * common.mk: revert r53633. It broke rubyci and travis.
https://travis-ci.org/ruby/ruby/builds/104259623

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 11:55:32 +00:00
shugo a0019b27e6 fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 11:19:22 +00:00
shugo 62b750bb55 * range.c (range_eqq): revert r11113 because rb_call_super() is
called in range_include() and thus r11113 doesn't work when the
  receiver Range object consists of non linear objects such as Date
  objects.
  [ruby-core:72908] [Bug #12003]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 11:16:09 +00:00
duerst 387e838c02 ChangeLog: Fixing wrong time on previous commit, and adding
previous commit message to svn [ci skip]

The message on the previous commit should have read:
common.mk: Simplifying Unicode data file download logic to make
it more reliable [Bug #12007]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 09:38:50 +00:00
duerst 0d3d8a8cda git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e 2016-01-23 09:32:44 +00:00
duerst 39988ff0ac * tool/downloader.rb: Fixed a logical error, improved documentation
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 07:30:32 +00:00
kazu 9608176fad fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 05:19:42 +00:00
nobu a3f4fcb45c Use SVG Travis badge over PNG
* README.md: Use SVG Travis badge over PNG for better quality and
  devise support.  [Fix GH-1214] [Fix GH-1216]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 02:43:34 +00:00
nobu ba5a40fe7d Update documentation of CSV header converter
* lib/csv.rb: Update documentation of CSV header converter for
  r45498, [GH-575].  [Fix GH-1215]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-23 02:30:07 +00:00
nobu 4a01021002 vm_core.h: use RUBY_ASSERT
* vm_core.h (VM_ASSERT): use RUBY_ASSERT instead of rb_bug.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-22 08:37:36 +00:00
nobu 439224a590 RUBY_ASSERT
* error.c (rb_assert_failure): assertion with stack dump.
* ruby_assert.h (RUBY_ASSERT): new header for the assertion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-22 08:33:55 +00:00