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

28249 Коммитов

Автор SHA1 Сообщение Дата
nobu b01c28eeb3 Clarify object references example
* doc/marshal.rdoc: Clarify object references example, that the
  reference is same object.  [Fix GH-1156]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-05 02:47:38 +00:00
normal dc59c76898 stringio: binmode sets encoding to ASCII-8BIT
This should match the behavior of IO#binmode as far
as treating content as ASCII-8BIT (binary).

* ext/stringio/stringio.c (strio_binmode): implement to set encoding
* test/stringio/test_stringio.rb (test_binmode): new test
  [ruby-core:72699] [Bug #11945]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 20:45:14 +00:00
sho-h d5f4a2ba12 variable.c (rb_mod_deprecate_constant): [DOC] added
documentation for Module#deprecate_constant. [ci skip]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 07:08:05 +00:00
sho-h 571fb5b687 thread_sync.c: [DOC] remove SizedQueue#close argument. [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 06:38:26 +00:00
ngoto 1c8b8173be * version.h (RUBY_BUILD_VERSION_STR_3): Workaround for old version of
Fujitsu C Compiler (fcc) on Solaris. [Bug #11944] [ruby-dev:49468]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 03:12:44 +00:00
nobu 8fe2421ef1 ChangeLog: remove unnecessary preposition [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 01:50:06 +00:00
nobu 09ecfbf3f7 ChangeLog: remove stale log [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 01:46:36 +00:00
hsbt acc472dd24 * test/coverage/test_coverage.rb: ignored test when enabled to coverage.
It lead to crash with `make test-all`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 01:14:45 +00:00
yui-knk c48abea0c3 Move a comment to the appropriate position.
The position of `/* fall through */` was moved by r52931.

* insns.def (opt_case_dispatch): Move a comment to the
  appropriate position.
  [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-03 23:14:43 +00:00
nobu 192b63fd3e Fix defined? expressions
* lib/rubygems/security.rb (DIGEST_ALGORITHM, KEY_ALGORITHM):
  should check same name as the used constants.
  [ruby-core:72674] [Bug #11940]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-03 14:55:25 +00:00
nobu 853ef28af3 aclocal.m4: add
* aclocal.m4: add fallback file for non-aclocal environments.
  [ruby-core:72683] [Bug #11942]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-03 10:22:12 +00:00
yui-knk 5cf9b65aa3 Use `rb_method_visibility_t` instead of `int` in `rb_print_undef`
* eval_error.c (rb_print_undef): Use `rb_method_visibility_t`
  instead of `int`.
* eval_intern.h (rb_print_undef): ditto
* proc.c (mnew_internal): ditto
* vm_method.c (rb_export_method): ditto
  [Misc #11649] [ruby-core:71311] [fix GH-1078]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-03 04:59:54 +00:00
nobu e05a853718 acinclude.m4: rename
* acinclude.m4: rename aclocal.m4, which should be generated by
  aclocal.  [ruby-core:72675] [Bug #11941]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-03 03:12:20 +00:00
normal 004bb16ccc thread_sync.c: remove unnecessary casts for queue_sleep
"Qfalse" and "(VALUE)0" are equivalent, and do not matter
for an ignored argument, either.

Additionally, there's no reason to cast the pointer to
rb_thread_sleep_deadly when we already have a queue_sleep
wrapper.

* thread_sync.c (queue_do_pop): avoid cast with Qfalse
  (rb_szqueue_push): ditto, use queue_sleep wrapper

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-02 12:08:34 +00:00
seki 32b4a8b36b Allow ERB subclass to add token easily. [Feature #11936]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-02 07:19:58 +00:00
nobu 123313e205 parse.y: use nd_tag
* parse.y (regexp): set_yylval_num sets u1, should use nd_tag
  instead of nd_state.  [ruby-core:72638] [Bug #11932]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-02 05:44:41 +00:00
naruse 9c54107903 Revert r53409 "parse.y: yylval.num should be u3"
It introduces SEGV

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-02 04:39:56 +00:00
nobu 10c2251add parse.y: yylval.num should be u3
* parse.y (set_yylval_num): should be used as nd_state, set to u3.
  [ruby-core:72638] [Bug #11932]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-02 02:11:09 +00:00
marcandre 9543908c9f * lib/ostruct.rb: Fix case of frozen object with initializer.
Bug revealed by RubySpec [ruby-core:72639]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 17:27:38 +00:00
kazu 428fe14f5e * NEWS: mention about CSV's liberal_parsing option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 13:02:56 +00:00
hsbt b8057a5cda * ChangeLog: added missing reference for GitHub
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 12:39:29 +00:00
hsbt b4c1a13dcc * doc/NEWS-2.3.0: fix double words typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 10:39:16 +00:00
nobu 910eb9836d compile.c: adjust call_info count
* compile.c (remove_unreachable_chunk): decrease count of
  call_info in removed instructions.  fix up r53402.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 06:28:58 +00:00
nobu 0094737575 compile.c: remove unreferred label
* compile.c (remove_unreachable_chunk): remove unreferred label
  to optimize away unreachable chunk.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 03:05:55 +00:00
jeg2 f18f940802 Adding a liberal_parsing option to CSV. Patch by Braden Anderson.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 02:44:48 +00:00
nobu 7d9342aecd mkconfig.rb: SDKROOT
* tool/mkconfig.rb (RbConfig): prefix SDKROOT to oldincludedir
  not includedir, the latter is outside the ruby installation.
  [ruby-core:72496] [Bug #11881]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 01:27:30 +00:00
nobu bd5d443a56 Add test for Enumerator::Lazy#take
* test/ruby/test_lazy_enumerator.rb (test_take_bad_arg): Add test
  code in case of Enumerator::Lazy#take called with negative number.
  [ruby-dev:49467] [Bug #11933]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-31 23:53:04 +00:00
nobu b1796737cf parse.y: single-quote indented heredoc
* parse.y (parser_here_document): update indent for each line in
  indented here document with single-quotes.
  [ruby-core:72479] [Bug #11871]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-31 20:06:22 +00:00
nobu 6e5967e2ae ostruct.rb: deferred accessors
* lib/ostruct.rb (freeze): define deferred accessors before
  freezing to get rid of an error when just reading frozen
  OpenStruct.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-31 18:26:46 +00:00
marcandre 2f2a5c3ae9 * lib/ostruct.rb: Fix new_ostruct_member to correctly avoid redefinition
[#11901]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-31 05:37:21 +00:00
naruse 5da0e86396 * test/ruby/test_module.rb (test_classpath): r53376 may change
the order of m.constants.
  `make TESTS='-v ruby/test_class.rb ruby/test_module.rb' test-all`
  may fail after that.
  http://rubyci.s3.amazonaws.com/tk2-243-31075/ruby-trunk/log/20151230T164202Z.log.html.gz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 17:47:43 +00:00
eregon 6ec9331c2a * common.mk (help): Fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 17:20:28 +00:00
hsbt 95aadb1426 * lib/net/http/responses.rb: Added new response class for 451 status code.
* lib/net/http.rb: documentation for HTTPUnavailableForLegalReasons

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 11:53:15 +00:00
hsbt 27f00a7a22 * lib/webrick/httpstatus.rb: Added HTTP 451 Status Code.
[fix GH-1167] Patch by @MuhammetDilmac
  https://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 11:45:52 +00:00
hsbt 8f8f92b508 * doc/syntax/calling_methods.rdoc: fix old operator for safe navigation
operator. [ci skip][fix GH-1182] Patch by @dougo

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 11:26:09 +00:00
nobu f880d5dcd2 Add test for String#ord
* test/ruby/test_string.rb (test_ord): Add test for String#ord.
  [Fix GH-1181]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 07:43:25 +00:00
nobu 6fd18ca51b forwardable.rb: adjust backtrace by tail call
* lib/forwardable.rb (def_instance_delegator): adjust backtrace of
  method body by tail call optimization.  adjusting the delegated
  target is still done by deleting backtrace.
* lib/forwardable.rb (def_single_delegator): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 02:28:59 +00:00
nobu 986fb55961 Forwardable: Fix delegating to 'args' and 'block'
* lib/forwardable.rb (def_instance_delegator) fix delegating to
  'args' and 'block', clashing with local variables in generated
  methods.  [ruby-core:72579] [Bug #11916]

* lib/forwardable.rb (def_single_delegator): ditto.

If you have a class that uses Forwardable to delegate a method to
another object, and the method that returns the delegate object is
called `args` or `block`, then Forwardable will fail to work.

Here's a simple example:

    class ModelCreator
      extend Forwardable

      attr_reader :args

      def_delegator :args, :model_name

      def initialize(args)
        @args = args
      end
    end

    ModelCreator.new.model_name

If you run the last line above, then you'll get:

    NoMethodError: undefined method `model_name' for []:Array

This error occurs because `def_delegator` -- as it is written in Ruby --
uses metaprogramming to add methods to the class that will then delegate
to the delegate object. So it's as if we had written:

    class ModelCreator
      extend Forwardable

      attr_reader :args

      def model_name(*args, &block)
        args.model_name(*args, &block)
      end

      def initialize(args)
        @args = args
      end
    end

As you can see, `def_delegator` will not only forward the method call
onto the delegate object, it will also forward any arguments provided as
well. It is here that the bug arises: it splats all of the arguments
into a variable which is called `args`, and because of how variable
scope works in Ruby, it then attempts to call `model_name` on *this*
variable and *not* our delegate object method.

The fix is to call the delegate object method manually using `__send__`.
(This assumes, of course, that the given receiver is, in fact, the name
of a method and not the name of an instance variable, which is also a
possibility.) We use `__send__` because the delegate object method could
be private.

So, that looks like this:

    def model_name(*args, &block)
      __send__(:args).model_name(*args, &block)
    end

Because `def_delegators` and `delegate` use `def_delegator` internally,
they also get this fix as well.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 02:18:44 +00:00
nobu a974041b0e object.c: fix prepend cmp
* object.c (rb_class_inherited_p): search the corresponding
  ancestor to prepended module from prepending class itself.
  [ruby-core:72493] [Bug #11878]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 00:58:58 +00:00
nobu d252e224f6 test_io.rb: test for rb_io_modestr_fmode
* test/stringio/test_io.rb (test_flag): add assertion for error when
  text and binary mode are mixed.
  [ruby-dev:49465] [Feature #11921]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-30 00:20:03 +00:00
nobu 3586aef4b8 test_stringio.rb: test_initialize
* test/stringio/test_stringio.rb (test_initialize): add test for
  StringIO#initialize.  [ruby-core:72585] [Feature #11920]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 23:44:01 +00:00
normal 7e85d487fe ChangeLog: add entry for r53376
Oops :x
[ruby-core:72112] [Feature #11614]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 20:21:17 +00:00
nagachika b7573a0081 * thread_pthread.c (rb_thread_create_timer_thread): destroy attr even
if pthread_create() failed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 19:26:52 +00:00
normal 24c979bdea thread_pthread.c (rb_thread_create_timer_thread): fix race
This fixes an occasional [ASYNC BUG] failure in
bootstraptest/test_fork.rb '[ruby-dev:37934]'
which tests fork/pthread_create failure by setting
RLIMIT_NPROC to 1 and triggering EAGAIN on pthread_create
when attempting to recreate the timer thread.

The problem timeline is as follows:

thread 1                           thread 2
---------------------------------------------------------------
rb_thread_create_timer_thread
setup_communication_pipe
                                   rb_thread_wakeup_timer_thread_low
pthread_create fails               pipe looks valid, write!
CLOSE_INVALIDATE (x4)              EBADF -> ASYNC BUG

The checks in rb_thread_wakeup_timer_thread_low only tried to
guarantee proper ordering with native_stop_timer_thread, not
rb_thread_create_timer_thread :x

Now, this should allow rb_thread_create_timer_thread to
synchronize properly with rb_thread_wakeup_timer_thread_low by
delaying the validation marking of the timer_thread_pipe until
we are certain the timer thread is alive.

In this version, rb_thread_wakeup_timer_thread_low becomes a
noop.  Threading is still completely broken with NPROC==1, but
there's not much we can do about it beside warn the user.
We no longer spew a scary [ASYNC BUG] message or dump core
on them.

* thread_pthread.c (setup_communication_pipe): delay setting owner
  (rb_thread_create_timer_thread): until thread creation succeeds
  [ruby-core:72590] [Bug #11922]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 18:20:27 +00:00
nagachika 3d458cd051 * ChangeLog: remove duplicated entries at r53366.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 12:17:21 +00:00
nobu 66fe2c0dd9 ruby.c: command line option over RUBYOPT env
* ruby.c (proc_options): -W command line option should be able to
  override -w in RUBYOPT environment variable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 10:12:48 +00:00
nobu b6b1038c6b eval.c: warn block for using
* eval.c (ignored_block): warn if a block is given to `using`,
  which is probably for `Module.new`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 08:54:18 +00:00
nobu 15960b37e8 ostruct.rb: respond_to?
* lib/ostruct.rb (OpenStruct): make respond_to? working on
  just-allocated objects for workaround of Psych.
  [ruby-core:72501] [Bug #11884]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 03:48:36 +00:00
mrkn 88aa6abf9c * test/mkmf/test_have_func.rb (test_have_func):
Add assertion to examine the existence of HAVE_RUBY_INIT.

* test/mkmf/test_have_func.rb (test_not_have_func):
  Add assertion to examine the absence of HAVE_RUBY_INIT.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 01:37:20 +00:00
normal 5ad289b133 thread_sync.c: static classes
We do not want to waste space by exposing globals to other
objects.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-28 21:52:15 +00:00