summaryrefslogtreecommitdiff
path: root/eval.c
AgeCommit message (Collapse)Author
2009-02-22merge revision(s) 21354:shyouhei
* eval.c (stack_extend): streamlined rb_thread_restore_context() to ensure O(1) time. based on a patch by Brent Roman <brent AT mbari.org>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@22542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22merge revision(s) 21353:shyouhei
* eval.c (cc_mark): frees the continuation's stack if its thread is dead to avoid recursive gc that segfaults. [ruby-core:13889] a patch by Brent Roman <brent AT mbari.org>. * eval.c (rb_cont_check): checks for valid continuation instance. * eval.c (rb_callcc): assigns th->thread before scope_dup() to avoid segfaults if this scope_dup() triggers a gc pass. a patch by Brent Roman <brent AT mbari.org>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@22538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-21merge revision(s) 21165:shyouhei
* eval.c (rb_thread_schedule): Don't change status of threads which don't run next even if select notify readability/writability. [ruby-core:20446] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@22476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-10merge revision(s) 20225:shyouhei
* eval.c (load_lock): makes circular require deadlock. [ruby-core:19821] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@22203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-10merge revision(s) 20214:shyouhei
* eval.c (rb_feature_p): returns found feature name if loading. [ruby-core:19798] * eval.c (search_required): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@22199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-28merge revision(s) 19690:shyouhei
* 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_6@21855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-16merge revision(s) 18485:shyouhei
* 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_6@21583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-15merge revision(s) 18463:shyouhei
* gc.c (STACK_LEVEL_MAX, ruby_stack_length): returns size_t. [ruby-core:18207] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@21522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-07merge revision(s) 18355:shyouhei
* 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_6@21357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-05merge revision(s) 18316,18319:shyouhei
* 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_6@21332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-04merge revision(s) 17833:17837:shyouhei
* gc.c (Init_GC): fix syntax error. * error.c (rb_exc_new3): keeps the given string itself. * eval.c (Init_Proc), gc.c (Init_GC): freeze messages of preallocated special exceptions also. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@18325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-07merge revision(s) 17832:shyouhei
* 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_6@17928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-29merge revision(s) 17636:shyouhei
* 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_6@17715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-29merge revision(s) 17581:shyouhei
* 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_6@17694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-29merge revision(s) 17547:shyouhei
* 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_6@17678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-29merge revision(s) 16507:shyouhei
* eval.c (search_method, remove_method, error_print, rb_alias) (rb_eval, rb_rescue2, search_required, Init_eval, rb_thread_create), gc.c (rb_source_filename, Init_stack), io.c (rb_io_getline), parse.y (rb_id2name, rb_parser_free): suppress warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-28merge revision(s) 16536:shyouhei
* eval.c (rb_copy_node_scope), node.h: Rename from copy_node_scope and export. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-16merge revision(s) 16514:shyouhei
* proc.c (proc_dup): should copy safe_level from src proc 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_6@17359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-15merge revision(s) 16564:shyouhei
* marshal.c (reentrant_check): check reentrance via callcc. [ruby-dev:34802] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-15merge revision(s) 16385:shyouhei
* eval.c (is_defined): add NODE_OP_ASGN_{OR,AND}. "defined?(a||=1)" should not operate assignment. [ruby-dev:34645] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09merge revision(s) 15054:shyouhei
* eval.c (eval): check if backtrace is empty. [ruby-core:15040] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-07merge revision(s) 15005:shyouhei
* eval.c (rb_define_alloc_func, rb_undef_alloc_func): should define/undef on a signleton class. [ruby-core:09959] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-07merge revision(s) 14086:shyouhei
* eval.c (error_print): put newline unless multiple line message ends with a newline. [ruby-dev:32429] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@16970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-07merge revision(s) 13957:shyouhei
* eval.c (rb_alias): do not call hook functions until initialization finishes. [ruby-talk:279538] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@16951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-04merge revision(s) 13586:shyouhei
* eval.c (remove_method): should not remove undef place holder. [ruby-dev:31817] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@16816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-23 * eval.c, intern.h, ext/thread/thread.c: should not free queue whileshyouhei
any live threads are waiting. [ruby-dev:30653] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-07* eval.c (rb_thread_start_0): should unset time_thread_alive_p.shyouhei
[ruby-talk:257219], [ruby-core:11542], [ruby-dev:31253] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-07 * eval.c (mnew): should preserve noex as safe_level.shyouhei
* eval.c (rb_call0): tighten security check condition.. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-22 * eval.c (get_backtrace): check the result more.shyouhei
[ruby-dev:31261] [ruby-bugs-12398] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-22 * eval.c (ruby_cleanup): return EXIT_FAILURE if any exceptions occuredshyouhei
in at_exit blocks. [ruby-core:11263] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-21 * eval.c (rb_kill_thread): renamed in order to get rid of conflictshyouhei
with a BeOS system function. [ruby-core:10830] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-08* eval.c (rb_thread_cancel_timer): fix undefined functionshyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-08* eval.c (rb_eval_cmd): just return if no exceptions.shyouhei
[ruby-dev:30820] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-08 * eval.c (rb_eval_cmd): just return if no exceptions.shyouhei
[ruby-dev:30820] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-08* eval.c (rb_eval_cmd): just return if no exceptions.shyouhei
[ruby-dev:30820] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-07* eval.c, intern.h, ext/thread/thread.c: should not free queueshyouhei
while any live threads are waiting. [ruby-dev:30653] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-07* eval.c (method_inspect): show proper class name.shyouhei
[ruby-talk:248647], Thanks Calamitas. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-26* eval.c (mnew): call of super via a method object should work again.shyouhei
[ruby-talk:248647], Thanks Calamitas. * test/ruby/test_method.rb (TestMethod::test_method_super): test for above fix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22* process.c (proc_exec_v): terminate timer thread in advance.shyouhei
[ruby-dev:30581], Thanks H. Holon. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22merge -c 12267shyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22merge -c 12187shyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22merge -c 12127shyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22merge -c 12126shyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-22merge -c 12123shyouhei
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@12308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-11* eval.c (error_handle): no message when exiting by signal.knu
* 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_6@12027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-03* eval.c (stack_check): Unset inline to fix build with GCC 3.4.6;knu
submitted by: NISHIMATSU Takeshi <t_nissie AT yahoo.co.jp> in [ruby-list:43218]. cf. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24556 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@11972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-03* eval.c (rb_provided): return true only for features loaded fromknu
.rb files, and not search actual library type. [ruby-dev:30414] * eval.c (rb_feature_p): check loading_tbl if the given ext is empty. [ruby-dev:30452] * eval.c (rb_feature_p): fix possible buffer overrun. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@11966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-03* env.h (SCOPE_CLONE): Introduce a new scope flag to prevent aknu
local_tbl region from getting freed many times; submitted by Chikanaga Tomoyuki <chikanag AT nippon-control-system.co.jp> in [ruby-dev:30460]. * eval.c (proc_invoke): Ditto. * gc.c (obj_free): Ditto. * parse.y (top_local_setup_gen): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@11965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-19* configure.in, defines.h, eval.c (rb_feature_p, rb_provided,knu
load_wait, search_required, rb_require_safe), ext/extmk.rb: Fix a bug where a statically linked extension cannot be autoloaded. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@11781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-01-31* eval.c (rb_iterate): need to PUSH_ITER in proper order.matz
[ruby-core:10125] * test/ruby/test_iterator.rb (TestIterator::test_block_given_within_iterator): add new test. [ruby-core:10125] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e