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

28309 Коммитов

Автор SHA1 Сообщение Дата
ko1 43b2144254 * NEWS: rename
"Implementation changes" section to
  "Supported platform changes" section.

* NEWS: add "Implementation improvements" and add several entries.

* NEWS: add NEWS entries by Eric Wong. [ruby-core:72450]




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-24 05:59:17 +00:00
nobu 12a2e17a34 io/console: fix gem build failure on Windows
* ext/io/console/extconf.rb: fix gem build failure on Windows.
  only win32_vk.inc is included in the gem and no dependencies for
  the header, so that gperf will not be mandatory.
  [ruby-core:72453] [Bug #11866]
* ext/io/console/io-console.gemspec: include depend file and
  win32_vk header.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 15:26:08 +00:00
nobu f9adadc5e6 rb_readwrite_syserr_fail
* io.c (rb_readwrite_syserr_fail): works with the given errno than
  thread local errno.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 14:58:47 +00:00
nobu f4166e2dd7 prefer rb_syserr_fail
* file.c, io.c, util.c: prefer rb_syserr_fail with saved errno
  over setting errno then call rb_sys_fail, not to be clobbered
  potentially and to reduce thread local errno accesses.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 08:57:48 +00:00
yui-knk adc0898538 * string.c: Fix document. Default value of the first
argument of `String#split` is not `$;` but `nil`.
  When `nil` is passed as first argument, `$;` is used.
  [ci skip] [Bug #11729] [ruby-dev:49378]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 03:02:07 +00:00
normal 1abef5bd11 ext/socket/init.c (rsock_init_sock): reject reserved FDs
[ruby-core:72445] [Bug #11862]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 22:28:31 +00:00
normal f4cacdc4e2 Revert r53253. naruse fixed it differently in r53244
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 18:20:20 +00:00
normal 5e183c7255 test/socket/test_basicsocket.rb: attempt fix for [ruby-cvs:60402]
I'm not sure how fstat on fd=-1 can succeed on some systems...

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 18:08:49 +00:00
nobu b9576e7d84 configure.in: define __STDC_WANT_LIB_EXT1__
* configure.in (__STDC_WANT_LIB_EXT1__): necessary to use memset_s
  in strict C99 mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 17:59:28 +00:00
nobu 9fb596815d regexec.c: fix build with direct threaded VM
* regexec.c (match_at): move direct threaded VM code to get rid of
  mixed declarations and code, and enable it only for gcc since it
  depends on a gcc extension.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 17:34:38 +00:00
yuki 03cc02c9ab * gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0
* NEWS: Add news about the did_you_mean gem


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 17:30:22 +00:00
nobu e6be17c74a Fix typo in contributing docs [ci skip]
* doc/contributing.rdoc: [DOC] remove an extra word "here".
  [Fix GH-1169]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 17:18:59 +00:00
nobu 6e767dd0ac regexec.c: enable direct threaded VM
* regexec.c (USE_DIRECT_THREADED_VM): enable direct threaded VM by
  the default.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 16:58:22 +00:00
nobu 96ac47c251 gc.c: do not expose internal singleton class
* gc.c (internal_object_p): should not expose singleton classes
  without a metaclass.  based on patches by ko1 and shugo.
  [Bug #11740]
* class.c (rb_singleton_class_object_p): added.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 13:15:58 +00:00
nobu 3f90a4ae1e io-console.gemspec: bump up
* ext/io/console/io-console.gemspec: bump up to 0.4.4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 13:15:11 +00:00
hsbt 9d57cf8809 * NEWS: Added news entry of Psych 2.0.17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 13:11:13 +00:00
hsbt a823014fed * NEWS: Added news entry of RDoc 4.2.1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 13:09:06 +00:00
mrkn d9bddfda03 * ext/bigdecimal/bigdecimal.gemspec: bump version to 1.2.8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 12:20:28 +00:00
hsbt 145433d9a5 * lib/rdoc.rb: bump version to 4.2.1. It contains following fixes.
https://github.com/rdoc/rdoc/pull/340
  https://github.com/rdoc/rdoc/pull/341
  https://github.com/rdoc/rdoc/pull/367
  https://github.com/rdoc/rdoc/pull/368
* lib/rdoc/*: ditto.
* test/rdoc/*: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 12:08:13 +00:00
hsbt 618035b531 * ext/psych/lib/psych.rb: bump version to 2.0.17
* ext/psych/psych.gemspec: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 11:25:39 +00:00
ko1 11f4334f75 * vm_insnhelper.c: move vm_callee_setup_block_arg() (and related
functions) to the latter location.
  This moving recovers performance a little.
  [Bug #11829]




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 11:20:12 +00:00
nobu 9da8a29760 string.c: no exception on dummy encoding
* string.c (str_compat_and_valid): as scrub does nothing for dummy
  encoding string now, incompatible encoding is not a matter.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 06:21:14 +00:00
nobu 10a129cee7 escape.c: should not freeze
* ext/cgi/escape/escape.c (optimized_escape_html): CGI.escapeHTML
  should return unfrozen new string.
  [ruby-core:72426] [Bug #11858]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-22 05:31:31 +00:00
nobu 1b107d48ef escape.c: Preserve original state
* ext/cgi/escape/escape.c (preserve_original_state): Preserve
  original state for tainted and frozen.  [Fix GH-1166]
  [ruby-dev:49451] [Bug #11855]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 20:40:02 +00:00
normal 409e53dec1 avoid rb_bug on BasicSocket.for_fd(-1)
* ext/socket/init.c (rsock_init_sock): check FD after validating
* test/socket/test_basicsocket.rb (test_for_fd): new
  [ruby-core:72418] [Bug #11854]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 18:57:50 +00:00
ngoto 3bf3f825c3 * variable.c (struct ivar_update): rename "extended" to "iv_extended"
to avoid name conflict with /usr/include/floatingpoint.h on
  Solaris. [Bug #11853] [ruby-dev:49448]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 12:35:29 +00:00
ko1 800607aa7e revert r53228 because this patch breaks rubyspec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 10:32:33 +00:00
ko1 1bcee938d5 * gc.c (internal_object_p): should not expose singleton classes
without a metaclass.
  [Bug #11740]

* class.c (rb_singleton_class_has_metaclass_p): added.

* test/ruby/test_class.rb: add a test.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 09:40:58 +00:00
hsbt a7f6b862f0 * test/ruby/test_io.rb: handled rlimit value same as r52277
[Bug #11852][ruby-dev:49446]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 03:15:41 +00:00
normal 268da52347 lib/net/http.rb (open_timeout): update default value in RDoc [ci skip]
[ruby-core:72413]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 01:24:12 +00:00
nobu cc52f511b1 vm_backtrace.c: ignore ifunc frames
* vm_backtrace.c (rb_profile_frames): ignore ifunc frames as it
  did before.  [ruby-core:72409] [Bug #11851]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 01:18:48 +00:00
nobu c17e9e077c NotImplementedError typo
* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket): fix
  NotImplementedError typo.  [Fix GH-1165]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-21 00:33:20 +00:00
nobu ce7f7f5e3d cgi/escape: Optimize CGI.escapeHTML
* cgi/escape/escape.c: Optimize CGI.escapeHTML for
  ASCII-compatible encodings.  [Fix GH-1164]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 11:54:54 +00:00
nobu 840e32c452 ChangeLog: fold long line [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 11:28:30 +00:00
nobu e2b226116d ChangeLog: fix date of r53178 [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 11:28:27 +00:00
hsbt 0516a3378f * lib/erb.rb: revert r53123. It break compatibility like thor and rspec-rails.
We should try with Ruby 2.4 or 3.0.
  [Bug #11842][ruby-core:72374]
* lib/rdoc/erb_partial.rb: ditto.
* template/verconf.h.tmpl: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 06:36:57 +00:00
nobu 9d5abbff97 parse.y: labeled heredoc
* parse.y (parser_yylex): allow here documents in labeled
  argument.  [ruby-core:72396] [Bug #11849]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 02:43:34 +00:00
ko1 a8b0c25293 * proc.c (rb_mod_define_method): should check Symbol or not.
[Bug #11850]

* test/ruby/test_method.rb: add a test.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 02:14:57 +00:00
ko1 3b8730058e * proc.c (rb_mod_define_method): fix notation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 02:02:55 +00:00
ko1 c46ff1bb27 * proc.c (proc_new): fix notation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-20 01:54:59 +00:00
nobu ceea88af51 remove duplicated log by commit miss [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-19 15:30:41 +00:00
nobu 2d97cee4d5 proc.c: fix infinite loop
* proc.c (rb_proc_get_iseq): proc made from symbol does not have
  iseq.  fix infinite loop.  [ruby-core:72381] [Bug #11845]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-19 15:29:01 +00:00
ngoto a2bf609304 * enc/windows_1250.c: Should not use C++ style comments (C99 feature).
[Bug #11843]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-19 11:09:28 +00:00
nobu a5a9d421e7 webrick/utils.rb: get rid of thread leak checker
* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#initialize):
  use WEBrick::Utils::TimeoutHandler::Thread, which is ignored by
  LeakChecker#find_threads, instead of ::Thread to get rid of
  thread leak checker.  since this TimeoutHandler is resident
  during tests because of Singleton, it waits for the next timeout
  if it has any schedules.  in the case of nested timeouts, inner
  timeout does not cancel outer timeouts and then those schedules
  still remain.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-19 08:16:54 +00:00
nobu 26bc97bda4 zlib.c: Fix typo [ci skip]
* ext/zlib/zlib.c (Init_zlib): [DOC] Fix double-word typo and
  grammatical error.  [Fix GH-1162]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-19 05:27:52 +00:00
nobu 0d1a243af1 csv.rb: Fix typo [ci skip
* lib/csv.rb (CSV#initialize): [DOC] Fix double-word typo.
  [Fix GH-1161]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-19 05:23:50 +00:00
duerst 6973c8d51e enc/iso_8859_2.c, enc/windows_1250.c: separate Windows-1250
from ISO-8859-2 to fix 0x80..0x9e range (from Kimihito Matsui)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-19 01:33:38 +00:00
ngoto 0967c1e3ad * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): To prevent
potential deadlocks, Queue is used to tell update of @timeout_info
  instead of sleep and wakeup. [Bug #11742] [ruby-dev:49387]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 12:32:53 +00:00
ko1 9d30ef596c * compile.c (ibf_load_object_string): use fstring if frozen string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 08:24:29 +00:00
nobu 66cfd1310c NEWS: make precise the note of r53188
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 08:16:02 +00:00
shugo 34c97eaaba fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 08:08:08 +00:00
nobu 3e1c01ae46 stringio.c: separate encoding from buffer
* ext/stringio/stringio.c (strio_set_encoding): add StringIO's own
  encoding and separate it from the buffer string to override the
  encoding of string when reading.  [ruby-core:72189] [Bug #11827]
  note that setting the encoding of its buffer string may cause
  unpredictable behavior.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 07:54:33 +00:00
ko1 dd5fd65eef * compile.c (ibf_load_setup): check tainted string argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 07:51:58 +00:00
ko1 f64238e777 * vm_core.h: define USE_LAZY_LOAD if it is not defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 07:13:16 +00:00
nobu 21973c01ab stringio.c: strio_unget_bytes
* ext/stringio/stringio.c (strio_unget_bytes): extract from
  strio_ungetbyte to share with strio_ungetc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 06:40:00 +00:00
hsbt 4f94cb43fc * doc/syntax/*.rdoc: separated modifier at sentence.
[ci skip][fix GH-1121] Patch by @clandry94

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 03:39:49 +00:00
nobu b7d1536991 stringio.c: padding in ungetbyte
* ext/stringio/stringio.c (strio_ungetbyte): pad with \000 when
  the current position is after the end.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 03:09:16 +00:00
shugo f211abcb9c * vm_method.c (rb_method_entry_make, check_override_opt_method):
should check whether a newly created method override a optimize
  method in case the method is defined in a prepended module of a
  built-in class.
  [ruby-core:72226] [Bug #11836]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 02:32:17 +00:00
kosaki 68bac3cca4 * vm.c (vm_exec): call RUBY_DTRACE_CMETHOD_RETURN_HOOK instead of
RUBY_DTRACE_METHOD_RETURN_HOOK.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 02:09:38 +00:00
hsbt 6f04ae5688 * lib/irb/ruby-lex.rb: fixed parse error for striped heredocument syntax.
[fix GH-1127] Patch by @koic

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 01:25:08 +00:00
hsbt b1a658e827 * ext/pty/pty.c: fix double words typo.
[ci skip][fix GH-1157] Patch by @jwworth

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 00:44:52 +00:00
hsbt 7d8290811e * ext/nkf/nkf-utf8/utf8tbl.c: fix a typo.
[ci skip][fix GH-1159] Patch by @akshay-vishnoi
* ext/nkf/nkf-utf8/utf8tbl.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-18 00:42:49 +00:00
shugo 0c659e26cb * vm.c (rb_vm_check_redefinition_opt_method): should check the real
class instead of the origin iclass.
  [ruby-core:72188] [Bug #11826]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-17 22:43:35 +00:00
shugo d7b2eccceb * vm_args.c (vm_caller_setup_arg_block): remove code for ifunc
because it was made unnecessary by r52138.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-17 13:15:20 +00:00
shugo 94b3c4121b * proc.c (rb_block_arity): should not call GetProcPtr() for symbols.
[ruby-core:72205] [Bug #11830]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-17 07:16:14 +00:00
nobu 61c19c9d43 string.c: infection
* string.c (rb_str_scrub): the result should be infected by the
  original string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-17 05:16:27 +00:00
nobu eec8adb168 transcode.c: infection
* transcode.c (rb_econv_substr_append, econv_primitive_convert):
  the result should be infected by the original string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-17 04:35:26 +00:00
nobu e64d814101 re.c: names encoding
* re.c (reg_names_iter): should consider encoding of regexp.
  [ruby-core:72185] [Bug #11825]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-17 00:46:07 +00:00
ko1 70dea9ef28 * vm.c (vm_make_env_each): should not compare with Qfalse and FALSE.
Pointed at http://d.hatena.ne.jp/nagachika/20151216/ruby_trunk_changes_53128_53163




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 18:56:05 +00:00
ko1 5a6c48980a * vm_insnhelper.c (vm_call_method_each_type): should not set fastpath
with keyword arguments for VM_METHOD_TYPE_ATTRSET type methods.

  Normally, we can not use keyword arguments for this kind of methods,
  (obj.foo = 1), but we can set alias names for them.
  [Bug #11657]

* test/ruby/test_keyword.rb: add a test for this fix.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 18:20:29 +00:00
nagachika 3cccf032e6 * ChangeLog: fix a typo in r53149.
* NEWS: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 14:48:09 +00:00
nagachika 79c7a51893 * ext/fiddle/handle.c: check tainted string arguments.
Patch provided by tenderlove and nobu.

* test/fiddle/test_handle.rb (class TestHandle): add test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 12:08:49 +00:00
shugo ed57f299b2 * vm.c (vm_make_proc_from_block): should convert a Symbol to a Proc.
[ruby-core:72083] [Bug #11811]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 10:35:34 +00:00
normal 653f291b66 test/ruby/test_io.rb: fix spelling errors
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 07:25:38 +00:00
normal f12ec3fcbd NEWS: note IO#fadvise change [ruby-core:72168] [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 07:16:00 +00:00
ko1 5dc676a5cf * vm.c: fix mark miss for proc given as passed block.
[Bug #11750]

* vm.c (vm_make_proc_from_block): should return a Proc object
  if block is given. Previous implementation returns
  a Proc object only when corresponding Proc object is not
  available.

* vm.c (vm_make_env_each): ditto.

* test/ruby/test_proc.rb: add a test for this bug.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 06:38:52 +00:00
marcandre f6f7073e12 * test_struct.rb: Test that initialize is overridable [#11708]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 03:25:09 +00:00
nobu bfd34365b6 parse.y: fix block_call&.call
* parse.y (block_command, block_call): fix `&.` calls after
  block_call.  [Feature #11537]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 01:49:42 +00:00
ngoto e337dc6517 * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): Acquire
TimeoutMutex only when accessing @timeout_info for avoiding
  potential deadlock. [Bug #11742] [ruby-dev:49387]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 16:03:00 +00:00
nobu 00f9a74bca Fix typo [ci skip]
* doc/extension.rdoc: [DOC] fix double-word typo.  [Fix GH-1153]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 15:39:20 +00:00
ngoto 804720d2eb * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#initialize):
TimeoutMutex should be acquired when accessing @timeout_info.
  To avoid deadlock, interrupt() calls are delayed.
  Due to the mutex, it is safe to treat ary without ary.dup.
  [Bug #11742] [ruby-dev:49387]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 15:26:47 +00:00
ngoto cef1f23e89 * gc.c: Delete excess semicolon after RUBY_ALIAS_FUNCTION().
Suppress "syntax error:  empty declaration" warnings by
  Oracle Solaris Studio 12.x on Solaris. [Bug #11821]

* hash.c: ditto, after NOINSERT_UPDATE_CALLBACK().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 14:20:27 +00:00
duerst bf6dd5c2f7 fixing ChangeLog problem
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 10:03:11 +00:00
duerst 7274abb7b0 NEWS: added news about EBCDIC encoding
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 09:04:05 +00:00
duerst 81e7be08ed enc/ebcdic.h, enc/trans/ebcdic.trans,
test/ruby/test_transcode.rb: Fixed encoding name
to the correct one in the IANA registry (IBM037)
and added an alias (ebcdic-cp-us)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 08:57:58 +00:00
hsbt ec7a964dca * lib/erb.rb: Render erb with array buffer for function call optimization.
[fix GH-1143]
* lib/rdoc/erb_partial.rb: ditto.
* template/verconf.h.tmpl: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 07:20:07 +00:00
nobu 365fae4dd9 string.c: radix indicators [ci skip]
* string.c (rb_str_oct): [DOC] mention radix indicators.
  [ruby-core:71310] [Bug #11648]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 04:49:59 +00:00
hsbt 1178a6fdba * lib/erb.rb: Simplify regexp to optimize erb scanner.
[fix GH-1144]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 03:20:36 +00:00
nobu d09d1ced1a fix typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 03:00:58 +00:00
hsbt 68b69178f4 * lib/uri/common.rb: make code block for rdoc.
[ci skip][fix GH-1152] Patch by @Tonkpils

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 02:56:38 +00:00
hsbt 79a6daa394 * ext/zlib/zlib.c: fix a typo.
[ci skip][fix GH-1149] Patch by @crismali

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 02:55:13 +00:00
duerst f262863188 tool/transcode_tablegen.rb: detailled documentation
for transcode_tblgen function [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-15 00:14:17 +00:00
duerst 83304b75c1 * enc/ebcdic.h: new dummy encoding EBCDIC-US
* enc/trans/ebcdic.trans: transcodings between EBCDIC-US
  and iso-8859-1 [with code from Andrea Ribuoli]
* test/ruby/test_transcode.rb: tests for above
* tool/transcode_tablegen.rb: additional argument for
  method transcode_tblgen

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 13:11:31 +00:00
hsbt 059c9c1cf3 * ext/socket/lib/socket.rb: use safe navigation operator.
[fix GH-1142] Patch by @mlarraz
* lib/drb/extservm.rb: ditto.
* lib/net/http.rb: ditto.
* lib/net/http/response.rb: ditto.
* lib/scanf.rb: ditto.
* lib/uri/generic.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 08:05:35 +00:00
hsbt 6cf568f4b5 * bootstraptest/runner.rb: use safe navigation operator.
[fix GH-1142] Patch by @mlarraz
* test/openssl/test_pair.rb: ditto.
* test/ruby/test_econv.rb: ditto.
* test/ruby/test_settracefunc.rb: ditto.
* test/thread/test_queue.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 08:04:28 +00:00
hsbt 4f09696496 * lib/xmlrpc.rb: added documentation for parser details.
[ci skip][fix GH-1124] Patch by @jrafanie

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 05:33:42 +00:00
hsbt 52cd994814 * enum.c: fix a typo in documentation.
[ci skip][fix GH-1140] Patch by @jutaz
* io.c: ditto.
* iseq.c: ditto.
* numeric.c: ditto.
* process.c: ditto.
* string.c: ditto.
* vm_trace.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 02:52:14 +00:00
hsbt 53e4e7fc3d * lib/cgi.rb: fix a typo in documentation.
[ci skip][fix GH-1140] Patch by @jutaz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 02:51:34 +00:00
hsbt 6851be0f0c * compile.c: fix typos.
[ci skip][fix GH-1140] Patch by @jutaz
* dir.c: ditto.
* gc.c: ditto.
* io.c: ditto.
* node.h: ditto.
* thread_pthread.c: ditto.
* vm_insnhelper.c: ditto.
* vsnprintf.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 02:51:13 +00:00
hsbt 43ba3280c3 * enc/iso_2022_jp.h: fix typos.
[ci skip][fix GH-1140] Patch by @jutaz
* enc/utf_16_32.h: ditto.
* enc/utf_7.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 02:50:21 +00:00
hsbt 30280ef6cd * benchmark/bm_app_aobench.rb: fix typos.
[ci skip][fix GH-1140] Patch by @jutaz
* benchmark/bm_vm_thread_pipe.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-14 02:50:01 +00:00
nobu a9b40cad41 remove duplicated log by mistake
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 14:48:58 +00:00
nobu 0f076affb6 parse.y: lex_state trace by yydebug
* parse.y (trace_lex_state): trace lex_state changes if yydebug is
  set, and send the messages to rb_stdout.
* parse.y (rb_parser_printf): store YYPRINTF messages per lines
  so that lex_state traces do not mix.
* tool/ytab.sed: add parser argument to yy_stack_print too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 14:46:09 +00:00
nobu ada76728f6 parse.y: lex_state bits
* parse.y (build_lex_state_name, trace_lex_state): lex_state is
  now bit flags and can be set 2 bits or more.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 11:41:14 +00:00
yugui ed7620434e * test/ruby/test_syntax.rb: fix typo in test
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 11:27:45 +00:00
yugui 99ac392284 * parse.y (parse_percent): Allow %-literals in labeled arg as
r51624 did for parentheses.
  Fixes [ruby-core:72084] [Bug #11812].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 11:17:18 +00:00
hsbt 5f0324e52d * ChangeLog: fix a typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 11:02:20 +00:00
hsbt 0d5d742b32 * test/lib/envutil.rb: move enutil's assertions under Test::Unit::Assertion.
* test/lib/test/unit/assertions.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 10:54:30 +00:00
yugui af64b09514 * parse.y (lex_state_name): Make it return the correct names.
Add new names to follow r51617; Indices ffs(2) returns are 1-origin.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 10:37:52 +00:00
yugui 4e4a76e8f4 * parse.y: debug output of lex_state transition if PARSER_DEBUG
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 10:37:25 +00:00
nobu add73a8713 io.c: encoding in warnings
* io.c (parse_mode_enc): preserve encoding of mode string in
  warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:49:25 +00:00
nobu b861d5473c io.c: BOM with non-UTF
* io.c (io_encname_bom_p): check BOM prefix only, not including
  UTF prefix.
* io.c (parse_mode_enc): warn BOM with non-UTF encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:48:27 +00:00
nobu ce6f0e36a3 io.c: fix stack smashing
* io.c (parse_mode_enc): fix buffer overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:45:12 +00:00
nobu bcc2421b49 function.c: check arguments
* ext/fiddle/function.c (initialize): check all arguments first.
  reported by Marcin 'Icewall' Noga of Cisco Talos.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:35:58 +00:00
nobu 34a0df159b conversions.h: PTR2NUM
* ext/fiddle/conversions.h (PTR2NUM): use signed integer to make
  Fixnum for negative values.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:35:10 +00:00
nobu d10d5a974d pack.c: check index range
* pack.c (pack_pack): always check index range against the
  receiver array length, which can be shortened by elements
  conversion.  reported by Marcin 'Icewall' Noga of Cisco Talos.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:33:40 +00:00
nobu db48c30794 psych_emitter.c: check tags range
* ext/psych/psych_emitter.c (start_document): should not exceed
  tags array range.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:28:51 +00:00
nobu cc03134361 psych_emitter.c: check string
* ext/psych/psych_emitter.c (start_document): ensure string before
  encoding conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:27:52 +00:00
nobu cdaa94eab4 tkutil.c: check arg
* ext/tk/tkutil/tkutil.c (tk_hash_kv): check types of array
  argument.  reported by Marcin 'Icewall' Noga of Cisco Talos.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:26:30 +00:00
nobu 62539b49a7 tkutil.c: array length
* ext/tk/tkutil/tkutil.c (cbsubst_table_setup): check length of
  argument arrays for each access, as callback methods can modify
  them.  reported by Marcin 'Icewall' Noga of Cisco Talos.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:25:15 +00:00
nobu b2d3c6a86f tkutil.c: check args
* ext/tk/tkutil/tkutil.c (cbsubst_table_setup): check types of
  argument elements.  reported by Marcin 'Icewall' Noga of Cisco
  Talos.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:23:36 +00:00
nobu 739d9a37cb win32ole.c: check argument type
* ext/win32ole/win32ole.c (ole_vstr2wc): check argument type, vstr
  must be a String here.  reported by Marcin 'Icewall' Noga of
  Cisco Talos.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 09:19:20 +00:00
nobu 207360044b configure.in: make BASERUBY fullpath
* configure.in (BOOTSTRAPRUBY): make BASERUBY full path before
  building ruby to get rid of unexpectedly invoking built ruby.
  [ruby-core:72065] [Bug #11807]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 07:41:01 +00:00
nobu 621b05ed61 configure.in: make BOOTSTRAPRUBY MINIRUBY
* configure.in (BOOTSTRAPRUBY): use MINIRUBY but not BASERUBY
  unless cross compiling.  [ruby-core:72065] [Bug #11807]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 07:29:21 +00:00
knu f7ca4f30c4 * test/test_shellwords.rb (TestShellwords): Add many more tests
for handling whitespace characters and frozenness.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 05:22:22 +00:00
knu 273d5004be * lib/shellwords.rb (Shellwords#shellsplit): Document that this
method does not treat shell metacharacters as such.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 05:19:03 +00:00
normal c53479ae8a ChangeLog: r53068 entry [ci skip]
oops :x

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 03:21:12 +00:00
shugo 2854a7f121 * object.c (rb_inspect): check the default internal encoding as
String#inspect do.
  [ruby-dev:49415] [Bug #11787]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 02:48:34 +00:00
knu fdfb8804c0 * lib/shellwords.rb: Turn on frozen-string-literal after fixing
shellsplit.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 02:43:56 +00:00
duerst 373489bb4e KNOWNBUGS.rb: Fixed typo, made more explicit [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 01:45:00 +00:00
naruse 1dd1a9873e * ext/openssl/ossl_ssl.c (ssl_npn_select_cb_common): fix parsing
protocol list.
  The protocol list from OpenSSL is not null-terminated.
  patched by Kazuki Yamaguchi [Bug #11810] [ruby-core:72082]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-13 01:29:44 +00:00
marcandre 13d8bb0385 * lib/ostruct.rb: Have OpenStruct#dig raise if argument is not a symbol
nor a string. See [#11762]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-12 21:40:50 +00:00
shugo 3703ebbe84 * vm_insnhelper.c (vm_call_method_missing): method_missing should
not be refined.
  [ruby-core:72080] [Bug #11809]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-12 15:08:52 +00:00
naruse 7fe3c2665e * ext/nkf/nkf-utf8/nkf.c: Merge nkf 2.1.4.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-12 14:01:56 +00:00
nobu 975c414b91 object.c: raise TypeError
* object.c (rb_obj_dig): raise TypeError if an element does not
  have #dig method.  [ruby-core:71798] [Bug #11762]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-12 09:52:36 +00:00
yui-knk c0c733791c * test/ruby/test_regexp.rb: Add test cases for `$KCODE` and `$=` warning
[Misc #11770][ruby-dev:49398]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-12 09:29:35 +00:00
nagachika 75c5b0afe4 * doc/NEWS-0.2.2: add description about incompatible change in Hash
duplicated key overriding policy. [Bug #10315] [Bug #11501]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-12 08:17:22 +00:00
normal fae144419c IO#advise should not raise Errno::ENOSYS
As it is just a hint the kernel is free to ignore,
IO#advise already succeeds when posix_fadvise is not
available build time at all.  Following that, if posix_fadvise
was available at build time but not implemented in the running
kernel, we should also ignore it.

* io.c (do_io_advise): do not raise on ENOSYS
* test/ruby/test_io.rb (test_advise): do not skip on Errno::ENOSYS
  (test_advise_pipe): ditto
  [ruby-core:72066] [Feature #11806]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 22:49:27 +00:00
nobu 3ee57230b3 enc/windows_1252.c: new
* enc/windows_1252.c: separate from ISO-8859-1 to fix 0x80..0x9e
  range.  [ruby-core:64049] [Bug #10097]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 22:05:31 +00:00
mame 5c28308f9f * sample/trick2015/: added the award-winning entries of TRICK 2015.
See https://github.com/tric/trick2015 for the contest outline.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 14:37:06 +00:00
normal d65bc80d3f insns.def (opt_case_dispatch): avoid converting Infinity
Infinity cannot be written as an optimizable literal,
so it can never match a key in a CDHASH.
Avoid converting it to prevent FloatDomainError.

* insns.def (opt_case_dispatch): avoid converting Infinity
* test/ruby/test_optimization.rb (test_opt_case_dispatch_inf): new
  [ruby-dev:49423] [Bug #11804]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 09:15:14 +00:00
normal e52b3a0e2c hash.c (rb_num_hash_start): avoid pathological behavior
The OR-ing itself is bad for a hash function, and shifting 3 bits
left was not enough to undo the damage done by shifting
(RUBY_SPECIAL_SHIFT+3) bits right.  Experimentally, shifting 16-17
bits seemed to work well in preparing the number for murmur hash.

Add a few more benchmarks to based on bm_hash_shift to ensure
we don't hurt performance too much with tweaks.

I'm pretty confident about this change and commiting it now;
especially since we're still using Murmur behind it (but perhaps
we can update to a newer hash from Murmur...)

[ruby-core:72028] [Feature #11405]

target 0: a (ruby 2.3.0dev (2015-12-11 trunk 53027) [x86_64-linux]) at "/home/ew/rrrr/b/ruby"
target 1: b (ruby 2.3.0dev (2015-12-11 master 53027) [x86_64-linux]) at "/home/ew/ruby/b/ruby"

benchmark results:
minimum results in each 5 measurements.
Execution time (sec)
name	a	b
hash_aref_dsym	0.279	0.276
hash_aref_dsym_long	4.951	4.936
hash_aref_fix	0.281	0.283
hash_aref_flo	0.060	0.060
hash_aref_miss	0.409	0.410
hash_aref_str	0.387	0.385
hash_aref_sym	0.275	0.270
hash_aref_sym_long	0.410	0.411
hash_flatten	0.252	0.237
hash_ident_flo	0.035	0.032
hash_ident_num	0.254	0.251
hash_ident_obj	0.252	0.256
hash_ident_str	0.250	0.252
hash_ident_sym	0.259	0.270
hash_keys	0.267	0.267
hash_shift	0.016	0.015
hash_shift_u16	0.074	0.072
hash_shift_u24	0.071	0.071
hash_shift_u32	0.073	0.072
hash_to_proc	0.008	0.008
hash_values	0.263	0.264

Speedup ratio: compare with the result of `a' (greater is better)
name	b
hash_aref_dsym	1.009
hash_aref_dsym_long	1.003
hash_aref_fix	0.993
hash_aref_flo	1.001
hash_aref_miss	0.996
hash_aref_str	1.006
hash_aref_sym	1.017
hash_aref_sym_long	0.998
hash_flatten	1.061
hash_ident_flo	1.072
hash_ident_num	1.012
hash_ident_obj	0.987
hash_ident_str	0.993
hash_ident_sym	0.959
hash_keys	0.997
hash_shift	1.036
hash_shift_u16	1.039
hash_shift_u24	1.001
hash_shift_u32	1.017
hash_to_proc	1.001
hash_values	0.995

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 08:23:46 +00:00
hsbt 5e69854daf * NEWS: Mentioned rubygems-2.5.1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 02:58:52 +00:00
hsbt 0c5841bead * lib/rubygems: Update to RubyGems 2.5.1
* test/rubygems: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 02:53:09 +00:00
nobu 165e10b6cf compile.c: rehash cdhash
* compile.c (iseq_compile_each, ibf_load_object_hash): rehash
  case-dispatch hash to reduce collisions.
  http://d.hatena.ne.jp/ku-ma-me/20151210

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-11 02:38:20 +00:00
naruse e3ab670a71 * object.c (rb_inspect): dump inspected result with rb_str_escape()
instead of raising Encoding::CompatibilityError. [Feature #11801]

* string.c (rb_str_escape): added to dump given string like
  rb_str_inspect without quotes and always dump in US-ASCII
  like rb_str_dump.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10 18:57:08 +00:00
kazu 08937d8db3 fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10 16:10:47 +00:00
ko1 10f7ad6264 * test/ruby/test_gc.rb (test_expand_heap): relax condition (1->2).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10 06:00:57 +00:00
hsbt 88c78ef17c * cont.c: fix a double word typo.
[Bug #11313][ruby-core:69749]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10 05:16:17 +00:00
hsbt 567eb15df3 * ext/tk/lib/multi-tk.rb: fix typos.
[Bug #11764][ruby-core:71800]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10 05:13:39 +00:00
normal 7c41f09342 compile.c (iseq_compile_each): reduce needless rb_str_dup
There is no need to dup the fstring unless we want to set the
debug ivar for it.

[ruby-core:72018] <5668DB6E.8000101@ruby-lang.org>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10 02:35:22 +00:00
nobu 01c432169f disable frozen-string-literal
* lib/mkmf.rb, lib/shellwords.rb: disable frozen-string-literal.
  [ruby-core:72011] [Bug #11800]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-10 00:32:53 +00:00
normal 328205c56e marshal.c: remove NULL checks for *_memsize
This follows r52986, NULL checks in rb_data_type_t.function.dsize
callbacks are unnecessary.

* marshal.c (memsize_dump_arg): remove NULL check
  (memsize_load_arg): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 21:34:01 +00:00
nobu 19f035ccee mkconfig.rb: must not be frozen
* tool/mkconfig.rb: rbconfig must not be fronzen-string-literal to
  expand CONFIG hash.  [ruby-core:72006] [Bug #11798]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 20:53:21 +00:00
normal 10735e2d03 ext/socket/ifaddr.c: remove empty ifaddr_mark
We do not need to maintain empty functions for GC,
gc_mark_children will not attempt to dereference NULL
dmark callbacks.

* ext/socket/ifaddr.c (ifaddr_mark): remove empty function
  (ifaddr_type): pass zero to rb_data_type_t.function.dmark

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 20:07:23 +00:00
normal 06d1660e69 proc.c: remove bm_free, use default
bm_free no longer has special handling of unlinked method
entries since r50728 when method entries were made VALUEs
for GC safety.

* proc.c (bm_free): remove, use default free
  (method_data_type): use RUBY_TYPED_DEFAULT_FREE

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 19:58:48 +00:00
ko1 6fb2ec5394 * compile.c (iseq_compile_each): do not add debug information
without --debug or --debug=frozen-string-literal option
  because String#dup slows down with debug information.
  [Feature #11725]

* NEWS: apply about it.

* test/ruby/test_rubyoptions.rb: catch up this fix with refactoring.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 17:02:02 +00:00
ko1 4b8da4b9c8 * iseq.c: rename methods
RubyVM::InstructionSequence#to_binary_format -> #to_binary
  RubyVM::InstructionSequence.from_binary_format -> .load_from_binary
  RubyVM::InstructionSequence.from_binary_format_extra_data ->
                             .load_from_binary_extra_data

* iseq.c: fix document of iseq.to_binary.
  [Fix GH-1134]

* sample/iseq_loader.rb: catch up this change.

* test/lib/iseq_loader_checker.rb: ditto.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 15:10:57 +00:00
kazu 98b75d59b9 References to tickets added
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 14:14:40 +00:00
kazu 41b719d0d8 fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 14:14:25 +00:00
nobu 1263f82a59 regparse.h: ANSI alias rule fix
* regparse.h (SET_NTYPE): get rid of breaking strict aliasing.
  patch by Zarko Todorovski in [ruby-core:71953].  [Bug #11790]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 08:02:06 +00:00
nobu b3377eaa13 Revert r52995
revert slow atomic operations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 07:30:44 +00:00
ko1 303cd88d40 * vm.c (rb_vm_cref_in_context): Module#define_method in non-class
expression should be public.
  [Bug #11754]

* test/ruby/test_method.rb: add a test.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 07:15:48 +00:00
nobu 0599d7de58 use atomic operations
* regcomp.c (onig_chain_link_add): use atomic operation instead of
  mutex.
* regint.h (ONIG_STATE_{INC,DEC}_THREAD): ditto.
* regparse.c (PopFreeNode, node_recycle): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 06:48:15 +00:00
ko1 e48adae2b3 * gc.c (gc_mark_stacked_objects): fix typo.
reported by XIE Zhibang. [Bug #11763]




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 05:49:27 +00:00
shugo 6df0853173 * doc/syntax/refinements.rdoc: remove outdated description.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 05:38:31 +00:00
ko1 dff42b0ea0 * ext/**/*.c (*_memsize): same as r52986 for extensions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 01:01:17 +00:00
hsbt e76567c15b * .gitignore: ignored ISeq binary format.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 00:46:26 +00:00
ko1 2f5b8f0529 * *.c (*_memsize): do not check ptr.
NULL checking is finished Before call of memsize functions.
  See r52979.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 00:38:32 +00:00
hsbt 6a15a37f0b * test/net/smtp/test_response.rb: use Test::Unit. We should use Test::Unit
without rubygems and rdoc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 00:25:34 +00:00
normal f2b9563bb4 lib/uri/generic.rb: enable frozen_string_literal
* lib/uri/generic.rb: enable frozen_string_literal
  (split_userinfo): remove explicit .freeze for string literals
  (check_path): ditto
  (query): ditto
  (fragment): ditto
  (to_s): ditto
  [ruby-core:71910] [Bug #11759]

Patch-by: Colin Kelley <colindkelley@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 21:28:26 +00:00
normal 0df938d5be test/uri/test_generic.rb (to_s): new test
Ensure URI::Generic#to_s continues to return mutable strings to
prevent breakage when we enable frozen string literals in future
commits.

[ruby-core:71820]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 21:27:34 +00:00
ko1 e78bf7976c * compile.c (ibf_dump_memsize): should check NULL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 17:19:58 +00:00
usa 4466d4baa9 * string.c (rb_str_init): now accepts new option parameter `encoding'.
[Feature #11785]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 16:48:52 +00:00
nobu 46df9c425e file.c: call get_stat only once
* file.c (rb_stat_wr, rb_stat_ww): call get_stat only once and
  reduce checking struct.  patch by Yuki Kurihara in
  [ruby-core:71949].  [Misc #11789]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 15:52:40 +00:00
ko1 ddba2014c6 * compile.c (iseq_ibf_dump): dump extra data just string length.
* sample/iseq_loader.rb: add using
  RubyVM::InstructionSequence.from_binary_format_extra_data method
  (commented out).




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 15:30:46 +00:00
yuki 3ba62bde36 gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0.rc1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 15:23:39 +00:00
ko1 34cfdd2f67 * compile.c (ibf_load_setup): cast to int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 15:18:30 +00:00
ko1 d0d0898c0a * compile.c (ibf_setup_load): rename to ibf_load_setup().
* compile.c (iseq_load_setup): check binary format.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 15:14:55 +00:00
kazu c01f1655be fix typos [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 14:49:29 +00:00
ngoto d573666e62 * test/io/console/test_io_console.rb (run_pty): Avoid waiting twice
for a process. Fix Errno::ECHILD in TestIO_Console#test_close and
  TestIO_Console#test_sync.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 14:33:29 +00:00
ko1 b8574cdcff * compile.c (iseq_ibf_dump): fix for clang type checker.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 14:06:13 +00:00
ko1 23124ffbe8 * iseq.c (iseq_s_load): fix mysterious bug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 14:05:44 +00:00
ko1 3dbb390180 * introduce new ISeq binary format serializer/de-serializer
and a pre-compilation/runtime loader sample.
  [Feature #11788]

* iseq.c: add new methods:
  * RubyVM::InstructionSequence#to_binary_format(extra_data = nil)
  * RubyVM::InstructionSequence.from_binary_format(binary)
  * RubyVM::InstructionSequence.from_binary_format_extra_data(binary)

* compile.c: implement body of this new feature.

* load.c (rb_load_internal0), iseq.c (rb_iseq_load_iseq):
  call RubyVM::InstructionSequence.load_iseq(fname) with
  loading script name if this method is defined.

  We can return any ISeq object as a result value.
  Otherwise loading will be continue as usual.

  This interface is not matured and is not extensible.
  So that we don't guarantee the future compatibility of this method.
  Basically, you should'nt use this method.

* iseq.h: move ISEQ_MAJOR/MINOR_VERSION (and some definitions)
  from iseq.c.

* encoding.c (rb_data_is_encoding), internal.h: added.

* vm_core.h: add several supports for lazy load.
  * add USE_LAZY_LOAD macro to specify enable or disable of
    this feature.
  * add several fields to rb_iseq_t.
  * introduce new macro rb_iseq_check().

* insns.def: some check for lazy loading feature.

* vm_insnhelper.c: ditto.

* proc.c: ditto.

* vm.c: ditto.

* test/lib/iseq_loader_checker.rb: enabled iff suitable
  environment variables are provided.

* test/runner.rb: enable lib/iseq_loader_checker.rb.

* sample/iseq_loader.rb: add sample compiler and loader.

    $ ruby sample/iseq_loader.rb [dir]

  will compile all ruby scripts in [dir].
  With default setting, this compile creates *.rb.yarb files
  in same directory of target .rb scripts.

    $ ruby -r sample/iseq_loader.rb [app]

  will run with enable to load compiled binary data.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 13:58:50 +00:00
kazu dc331ca5c0 mention about Enumerator::Lazy#grep_v in NEWS
* NEWS: mention about Enumerator::Lazy#grep_v.
  [ruby-core:71845] [Feature #11773]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 12:31:28 +00:00
kazu 5f7d6c0ce9 Revert r52907 "* configure.in: add missing x."
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 12:20:25 +00:00
duerst d9c6135c5b string.c: removed unused variable
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 08:36:43 +00:00
nobu 7d0b7fb4cf enumerator.c: lazy_grep_v
* enumerator.c (lazy_grep_v): add Enumerator::Lazy#grep_v as well
  as Enumerable, to enumerate lazily.
  [ruby-core:71845] [Feature #11773]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 07:23:43 +00:00
nobu 506b25aabf error.c: name_err_local_variables
* error.c (name_err_local_variables): new method
  NameError#local_variables for internal use only.
  [Feature #11777]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 05:27:10 +00:00
nobu 1fadd43881 marshal.c: skip internal names
* marshal.c (w_objivar): skip internal instance variables in
  T_OBJECT too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 05:20:41 +00:00
ngoto 14c46e5f1a * test/io/console/test_io_console.rb (test_getpass): s.getpass
should be tested. Narrow ensure block. This reverts r52911.
  [Bug #11780] [ruby-dev:49412]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 04:03:53 +00:00
normal 4ebab10bf5 compile optimized case dispatch for nil/true/false
nil/true/false are special literals just like floats, integers,
literal strings, and symbols.  Optimize when statements with
them by using a jump table, too.

target 0: a (ruby 2.3.0dev (2015-12-08 trunk 52928) [x86_64-linux]) at "/home/ew/rrrr/b/ruby"
target 1: b (ruby 2.3.0dev (2015-12-08 master 52928) [x86_64-linux]) at "/home/ew/ruby/b/ruby"

benchmark results:
minimum results in each 5 measurements.
Execution time (sec)
name	a	b
loop_whileloop2	0.102	0.103
vm2_case_lit*	1.657	0.549

Speedup ratio: compare with the result of `a' (greater is better)
name	b
loop_whileloop2	0.988
vm2_case_lit*	3.017

* benchmark/bm_vm2_case_lit.rb: new benchmark
* compile.c (case_when_optimizable_literal): add nil/true/false
* insns.def (opt_case_dispatch): ditto
* vm.c (vm_redefinition_check_flag): ditto
* vm.c (vm_init_redefined_flag): ditto
* vm_core.h: ditto
* object.c (InitVM_Object): define === explicitly for nil/true/false
* test/ruby/test_case.rb (test_deoptimize_nil): new test
* test/ruby/test_optimization.rb (test_opt_case_dispatch): update
  (test_eqq): new test
  [ruby-core:71923] [Feature #11769]
  Original patch by Aaron Patterson <tenderlove@ruby-lang.org>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 01:46:45 +00:00
nobu c84e62cd32 optparse.rb: Fix typo [ci skip]
* lib/optparse.rb: fix double word typo in the document.
  [Misc #10608] [Fix GH-1126]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 01:19:04 +00:00
nobu 08753137de date_core.c: missing argument check
* ext/date/date_core.c (d_lite_lshift): should check the argument
  before negation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 00:03:21 +00:00
normal 4d2ce0cbff insns.def (opt_case_dispatch): check Float#=== redefinition
The missing check for Float#=== redefinition was noticed while
working on enhancing optimized case dispatch for nil/true/false
in [ruby-core:71818] https://bugs.ruby-lang.org/issues/11769

So no, I don't normally redefine core classes like this :P

* insns.def (opt_case_dispatch): check Float#=== redefinition
* test/ruby/test_optimization.rb (test_opt_case_dispatch): new
  [ruby-core:71920] [Bug #11784]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-07 23:56:57 +00:00
ko1 7476be4def * test/lib/iseq_loader_checker.rb: add iseq dumper/loader checker.
If you enable this checker (remove `#' in test/runner.rb),
  you can see comparison results between an original iseq disassembed
  result and dumped and loaded iseq disassembed result.

  There are several bugs around there, because of inexact stack depth
  calculation. Now, I leave these bugs because they are not critical
  and difficult to solve completely.

* test/runner.rb: require test/lib/iseq_loader_checker.rb but
  disabled at default (commented out).




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-07 19:01:29 +00:00
normal b401937c62 doc/extension.rdoc: warn about kwargs performance in C [ci skip]
This existing API seems doomed performance-wise, and writing
things in Ruby is nicer anyways.  So discourage folks from
using it.

[Feature #11339]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-07 18:49:49 +00:00
ko1 8dce6b15cc * iseq.c (iseq_load): disable peephole optimization option
because apply it multiple times change the sequence.
  (iseq != peephole_optimize(load(iseq.to_a)))




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-07 18:46:27 +00:00
ko1 21366b17a5 * compile.c (rb_iseq_build_from_ary): do not allocate table
if table_size is 0.




git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-07 18:44:45 +00:00
normal 889f50227c socket: expand docs+tests for recv_io/send_io
* ext/socket/unixsocket.c (unix_send_io): document args
  (unix_recv_io): ditto
* test/socket/test_unix.rb (test_fd_passing_class_mode): added

I was working on these when I encountered the problem in
with BasicSocket.for_fd not handling mode args:
https://bugs.ruby-lang.org/issues/11778

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-07 18:39:47 +00:00