a patch from Keita Yamaguchi <keita.yamaguchi at gmail.com>.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
possible optimization bug on OS X/PPC. This at least makes
build with gcc -O1 and `make test' pass.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
properly. a patch from Keita Yamaguchi
<keita.yamaguchi at gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
uninitialized value, since search_method doesn't set origin if the
method wasn't found.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
should not operate assignment. [ruby-dev:34645]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(clone_method): Properly handle NODE_BMETHOD and NODE_DMETHOD.
(rb_singleton_class_clone, singleton_class_clone_int): Set a
proper value to klass and propagate cref. [ruby-core:16238]
* eval.c (rb_block_dup, rb_method_dup), intern.h: Add duplicator
methods for use from class.c#clone_method().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to a Proc. [ruby-dev:23533]
* parse.y (block_par, block_var): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
YIELD_FUNC_LAMBDA which avoids automatic `avalue' conversion for
arguments. This fixes a bug where [1,[2,3]].map(&:object_id)
fails.
* intern.h, object.c: Hide rb_proc_new() from intern.h. It should
not be considered an official API function yet.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c (sym_to_proc), test/ruby/test_symbol.rb: Add back
Symbol#to_proc, now that it passes the tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
backported from matzruby / 1.9.
* eval.c (rb_frame_this_func), intern.h: New internal function.
* intern.h (RETURN_ENUMERATOR): Use rb_frame_this_func() instead
of rb_frame_last_func(), to accommodate the behavior to that of
1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Add a new exception class StopIteration, which breaks Kernel#loop
iteration when raised; backported from 1.9.
* enumerator.c (enumerator_next, enumerator_rewind): Implement
#next and #rewind using the "generator" library.
* lib/generator.rb: Implement Enumerable::Enumerator#next and
#rewind.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
__builtin_setjmp, _setjmp over setjmp and sigsetjmp.
[ruby-core:16023], [ruby-core:16086]
* configure.in (--with-setjmp-type): new option to override the
default rule in the above.
* eval.c (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp),
node.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and
RUBY_JMP_BUF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
condition has been evaluated, not before; submitted by Rocky
Bernstein in #18722.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
define/undef on a signleton class. [ruby-core:09959]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
any live threads are waiting. [ruby-dev:30653]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
with a BeOS system function. [ruby-core:10830]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
inherited from the creating thread. [ruby-core:10607]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
it's invoked from within lambda body. [ruby-talk:248136]
* eval.c (proc_invoke): handle TAG_NEXT which would be caused by
next in the lambda body as well.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e