1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

42662 commits

Author SHA1 Message Date
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
nobu
ed921b85dc gc.c: mark_stack_locations
* gc.c (mark_stack_locations): extract the common part from
  mark_current_machine_context and rb_gc_mark_machine_stack.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 07:02:09 +00:00
nobu
d424873980 gc.c: rb_objspace_of
* gc.c (rb_objspace_of): macro to get the objspace from a thread.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 06:42:29 +00:00
nobu
cbfe564ed2 gc.c: expand a local macro
* gc.c (mark_current_machine_context, rb_gc_mark_machine_stack):
  expand rb_gc_mark_locations local macro.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 06:42:27 +00:00
svn
10fa31a603 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 04:49:25 +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 ][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
nobu
4511af873a test_marshal.rb: use assert_ruby_status
* test/ruby/test_marshal.rb (test_marshal_load_extended_class_crash):
  use assert_ruby_status to deal with signals, core dump and
  diagnostic reports.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 00:47:46 +00:00
nobu
f507406030 test_rubyoptions.rb: VERSION_PATTERN
* test/ruby/test_rubyoptions.rb (VERSION_PATTERN): make the
  pattern at loading, and escape regexp meta characters.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-15 00:28:17 +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
svn
4358ff468b * 2016-03-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 16:24:05 +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 ]

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
svn
bd61891167 * 2016-03-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-13 16:26:05 +00:00
nobu
3392b6c9e2 parse.y: adjust indent
* parse.y: adjust indent and tabify spaces after tabs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-13 16:26:04 +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 ]

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
svn
f0d1787a1f * 2016-03-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-13 00:15:49 +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
8b4448e2e1 unicode.c: off-by-one error
* enc/unicode.c (CodePointListValidP): fix off-by-one error.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-12 01:35:54 +00:00
nobu
d48f923648 unicode.c: boundary check
* enc/unicode.c (CodePointListValidP): add pathological boundary
  check, for gcc 4.9.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-12 01:15:31 +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
svn
2d6f1d90f3 * 2016-03-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-11 17:58:50 +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
a2b88f5325 Revert r54082 "ruby.c: load in binary mode"
DATA is expected to be text mode, but there is no ways to make a
FD to text mode from binary mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-11 03:30:25 +00:00
svn
50dd73582e * 2016-03-11
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-11 01:47:20 +00:00
nobu
d661eb44c7 ruby.c: load in binary mode
* ruby.c (open_load_file): always open in binary mode if provided,
  parser deals with CRs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-11 01:47:19 +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
2d39d11436 node.c: no nd_compile_option unless set
* node.c (dump_node): show nd_compile_option only when it is set.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 07:27:41 +00:00
nobu
72b3e226fc node.c: stringize before expansion
* node.c (F_NODE, F_OPTION): stringize member names defined as
  macros before expansion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 07:27:40 +00:00
nobu
46ac76b6ed iseq.h: bit flags
* iseq.h (rb_compile_option_struct): turn boolean flags to bit
  fields.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 07:06:39 +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
nobu
9871d88ee4 iseq.c: set coverage at once
* iseq.c (prepare_iseq_build): set coverage at once, not
  repeatedly resetting.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 05:32:49 +00:00
nobu
c3900ff4a8 thread.c: check type of coverage
* thread.c (update_coverage): check type of coverage array not
  only if non-zero.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 05:32:48 +00:00
svn
e266279aca * 2016-03-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-10 00:55:37 +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
nobu
47c00f30ab common.mk: dependency of prelude.o
* common.mk (prelude.o): fix missing dependency on iseq.h, for
  rb_compile_option_t.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 10:39:21 +00:00
nobu
649736deaf driver.rb: unused variable
* benchmark/driver.rb (BenchmarkDriver.load): remove unused
  variable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:52:27 +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