* process.c (posix_sh_cmds): the command name of colon is ":".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
test_cgi.rb: skip a test on Windows

* test/webrick/test_cgi.rb (TestWEBrickCGI#test_cgi): skip a test
  depending on locale on Windows. ENV[] doesn't work properly if
  console code page is not equal to file system encoding.
  [ruby-core:47910] [Bug #7140]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
win32.h: set floating point precision for pow()

* include/ruby/win32.h (rb_w32_pow): set floating point precision
  for mingw-w64 x86 pow(). This improves the precision of pow() on
  Windows XP for TestFloat#test_round_with_precision failure.
  [ruby-core:47911] [Bug #7142]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
use tty(1) to check if /dev/tty is usable or not

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2012-10-13

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_regexp.rb
  (TestRegexp#test_raw_hyphen_and_type_char_after_range): added new
  test. ref [ruby-core:47115] [Backport #6853]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
file.c: GC guard

* file.c (realpath_rec): prevent link from GC while link_names refers
  the content.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* regparse.c (parse_char_class): should match with a hyphen after a
  range in a character class.

* test/ruby/test_regexp.rb (TestRegexp#test_char_class): fixed wrong
  test.

* test/ruby/test_regexp.rb (TestRegexp#check): now can accept the
  error message.

* test/ruby/test_regexp.rb
  (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): renamed
  because the previous name was wrong.

* test/ruby/test_regexp.rb
  (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): added
  more test pattern.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ruby.c: passing block

* ruby.c (rb_f_sub, rb_f_gsub): pass the given block.
  [ruby-core:47967] [Bug #7157]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2012-10-14

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
fix a typo

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* insns.def (send, invokesuper, invokeblock, opt_*), vm_core.h:
  use only a `ci' (rb_call_info_t) parameter instead of using
  parameters such as `op_id', 'op_argc', `blockiseq' and flag.
  These information are stored in rb_call_info_t at the compile
  time.
  This technique simplifies parameter passings at related
  function calls (~10% speedups for simple mehtod invocation at
  my machine).
  `rb_call_info_t' also has new function pointer variable `call'.
  This `call' variable enables to customize method (block)
  invocation process for each place. However, it always call
  `vm_call_general()' at this changes.
  `rb_call_info_t' also has temporary variables for method
  (block) invocation.
* vm_core.h, compile.c, insns.def: introduce VM_CALL_ARGS_SKIP_SETUP
  VM_CALL macro.  This flag indicates that this call can skip
  caller_setup (block arg and splat arg).
* compile.c: catch up above changes.
* iseq.c: catch up above changes (especially for TS_CALLINFO).
* tool/instruction.rb: catch up above chagnes.
* vm_insnhelper.c, vm_insnhelper.h: ditto. Macros and functions
  parameters are changed.
* vm_eval.c (vm_call0): ditto (it will be rewriten soon).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2012-10-15

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
remove garbage line

* compile.c (new_insn_send): remove garbage line.
* tool/instruction.rb (sp_increase_c_expr): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c (vm_call0_body): add new function.
  `vm_call0()' makes call_info struct and calls `vm_call0_body()'
  with this struct. In near future, `vm_call0()' will be removed
  because all of `vm_call0()' users setup call_info struct by itself.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* benchmark/bm_vm1_attr_ivar(_set).rb: added (for method dispatch speed).
* benchmark/bm_vm1_float_simple.rb: added (for flonum/float).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c: refactoring.
  - move all `call' related functions to the last of file.
  - make functions for respective method types in vm_call_method().
  (all functions have same function parameters)
* vm_core.h: add `opt_pc' filed in `rb_call_info_t'
  as temporal variable.
* vm_eval.c (vm_call0_body): catch up above cahnges.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.h CI_SET_FASTPATH: introduce new macro
  `CI_SET_FASTPATH(ci, func)'. This macro set `ci->call' as `func'.
  `func' (ci->call) is called at the last of `send'
  (and `invokesuper') instruction.
  `CI_SET_FASTPATH' does not set `ci->call' when the method
  (stored in `ci->me') is `protected'.
* vm_insnhelper.c (vm_call_method): use `CI_SET_FASTPATH'.
  After several checking (visibility, argc checking), the result of
  checking can be reused until re-definition of this method
  with inline method cache.
  Note that this optimization is now experimental.
  If you find any problem about it, please tell us.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c (VM_CALLEE_SETUP_ARG): skip CI_SET_FASTPATH() if
  it was called from vm_yield_setup_args().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm_insnhelper.c: suppress warnings

* vm_insnhelper.c (vm_callee_setup_arg_complex): suppress
  shorten-64-to-32 warnings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e