* eval.c (rb_mod_modfunc): method undefined in included module
may not have nd_body. [ruby-core:18738]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@21857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c (clone_method): should copy cbase in cref as well.
[ruby-dev:35116]
* node.h (NEW_CREF): new NEW_ macro.
* eval.c (PUSH_CREF): use NEW_CREF().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@21585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (timeofday): use monotonic clock. based on a patch
from zimbatm <zimbatm@oree.ch> in [ruby-core:16627].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@21359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* rubysig.h (CHECK_INTS): gives the chance to perform to deferred
finalizers before explicit GC.start or the process termination.
[ruby-core:18045]
* eval.c (rb_thread_schedule): runs deferred finalizers.
* gc.c (gc_sweep): sets rb_thread_pending to run deferred finalizers.
* rubysig.h (CHECK_INTS): now checks rb_thread_pending even on
platforms where setitimer is not available. [ruby-core:18045]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@21334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (rb_longjmp): duplicate the thrown exception to set backtrace
if it was frozen. clear all raised flags.
* eval.c (stack_check): leave clearing flag to rb_longjmp.
* eval.c (rb_thread_set_raised, rb_thread_reset_raised): use generic
flags.
* eval.c (Init_Proc), gc.c (Init_GC): freeze preallocated special exceptions.
* gc.c (rb_memerror): use thread raised flag instead of static flag,
and raise nomem_error without backtrace if failed to make backtrace.
[ruby-dev:34724]
* gc.c (ruby_xmalloc): increase malloc_increase only if malloc
succeeds. failed malloc size can be huge. it may increase
malloc_limit too big which cause less GC and memory full.
(ruby_xrealloc): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (rb_obj_respond_to): use RTEST to test the result of
respond_to? method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (rb_call0): wrong condition to check insecure method.
a patch from Keita Yamaguchi <keita.yamaguchi at gmail.com>.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (PUSH_FRAME, PUSH_CLASS): Add volatile to avoid a
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_7@17680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Note that passing a block to a Proc is experimental and partly broken.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16605 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