* 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
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
block. [ruby-core:10609]
* test/ruby/test_beginendblock.rb (test_should_propagate_exit_code):
test for exit in END block. [ruby-core:10760]
* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):
test for signal in END block.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c (ruby_cleanup): re-send signal. [ruby-dev:30516]
* eval.c (rb_thread_interrupt): instantiate SignalException.
* eval.c (rb_thread_signal_raise): now takes signal number instead
of signal name.
* intern.h (rb_thread_signal_raise, ruby_default_signal): prototypes.
* signal.c (esignal_init): takes a signal number and an optional
signal name.
* signal.c (interrupt_init): pass SIGINT always.
* signal.c (ruby_default_signal): invoke system default signal
handler.
* signal.c (rb_signal_exec, trap): handle SIGTERM. [ruby-dev:30505]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e