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

42646 Коммитов

Автор SHA1 Сообщение Дата
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
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 #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
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
svn a5ca1179f3 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:22:28 +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
nobu 2d3a6ba66d hash.c: COPY_DEFAULT
* hash.c (COPY_DEFAULT): new macro to copy the default value/proc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:17:04 +00:00
nobu e684069042 hash.c: SET_PROC_DEFAULT
* hash.c (SET_PROC_DEFAULT): new macro to set the default proc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:17:03 +00:00
nobu 7522e06424 hash.c: SET_DEFAULT
* hash.c (SET_DEFAULT): new macro to set the default value.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:17:03 +00:00
nobu 921d6e269d hash.c: hash_dup for rb_hash_to_h
* hash.c (rb_hash_to_h): share hash_dup to copy the contents and
  the default value/proc only.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:17:02 +00:00
nobu 865a326da9 hash.c: make duplicated hash WB protected
* hash.c (hash_alloc_flags): allocate new hash with the flags and
  the default value.

* hash.c (hash_dup): duplicate with the flags and the default
  value.

* hash.c (rb_hash_dup): make the duplicated hash write-barrier
  protected.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 07:17:01 +00:00
svn f937d32f3f * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 06:05:54 +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 cccfe4774c test_hash.rb: tests for to_h
* test/ruby/test_hash.rb: add tests for Hash#to_h, which copies
  default value/proc but not instance variables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 05:14:42 +00:00
nobu d000891e43 hash.c: tbl_update_func
* hash.c (tbl_update_func): extract function typedef from the
  declaration of tbl_update.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 04:45:27 +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
nobu b3f4db9227 memory_status.rb: remove unused values
* test/lib/memory_status.rb: remove initial status values, which
  are not used.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-09 03:48:33 +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
usa 96e0b7d45f * win32/win32.c (rb_w32_write_console): remove unused variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-08 23:00:32 +00:00