summaryrefslogtreecommitdiff
path: root/eval.c
AgeCommit message (Collapse)Author
2006-02-23* eval.c (SETUP_ARGS0): fixed memory corruption. [ruby-dev:28360]ocean
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-22* eval.c (proc_alloc): add proper check for creation of a lambdamatz
without a block. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-20* eval.c: initial value for block_unique must be 1.matz
[ruby-talk:180420] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-18* eval.c (rb_obj_instance_eval): RDoc description updated. amatz
patch from Ozgur Murat Homurlu <ozgurmurath at gmail.com>. [ruby-core:07381] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-17* variable.c (rb_const_get_0): skip ruby_wrapper in const searchmatz
to give it lower priority (just above Object). need not to change rb_const_defined_0() since it's only a precedence matter; they are defined anyway. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-17* eval.c (ev_const_get): simplified using rb_const_get_fallback().matz
* eval.c (ev_const_defined): adopt to ev_const_get() using rb_const_defined_fallback(). * variable.c (rb_const_get_fallback): new function to implement constant search. * variable.c (rb_const_defined_fallback): new function to implement constant definition check. * variable.c (rb_const_get_0): adopt to new behavior. constants are looked up in the order of: current class, super classes (but Object), lexically external classes/modules, and Object. * variable.c (rb_const_defined_0): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-17* eval.c (rb_thread_wait_for): sleep should always sleep formatz
specified amount of time. [ruby-talk:180067] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-15* eval.c (rb_eval): NODE_OP_ASGN1 should allow splat in itsmatz
argument list. [ruby-core:07366] * parse.y (arg): avoid unnecessary extra argument. [ruby-core:07366] * eval.c (rb_eval): honor visibility on OP_ASGN1 and OP_ASGN2. [ruby-core:07366] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-15* eval.c (error_line): remove void control path. [ruby-dev:28335]matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-15* eval.c (yield_under_i): should not pass self as an argument tomatz
the block for instance_eval. [ruby-core:07364] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-15* eval.c (rb_obj_instance_eval): should no singleton classes formatz
true, false, and nil. [ruby-dev:28186] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-14* eval.c (DMETHOD_P): accessing wrong frame. [ruby-dev:28181]matz
* eval.c (proc_invoke): preserve FRAME_DMETH flag. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-13* eval.c (copy_node_scope): remove duplicated semicolons at end.matz
a patch from KIMURA Koichi <kimura.koichi at canon.co.jp>. [ruby-dev:28332] * eval.c (VIS_MODE): remove unnecessary argument. [ruby-dev:28332] * parse.y (parser_parse_string): mention "regexp" in a error message. a patch from Mauricio Fernandez <mfp at acm.org> [ruby-core:07340] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-13* parse.y (parser_parse_string): mention "regexp" in a errormatz
message. a patch from Mauricio Fernandez <mfp at acm.org> [ruby-core:07340] * eval.c (rb_f_autoload): check if ruby_cbase is nil (during instance_eval for objects cannot have singleton classes, e.g. fixnums and symbols). [ruby-dev:28178] * gc.c (rb_gc_call_finalizer_at_exit): turn on during_gc while invoking finalizers. * gc.c (rb_gc_finalize_deferred): ditto. * io.c (rb_write_error2): use fwrite(3) if rb_stderr is not updated or is already freed. [ruby-dev:28313] * eval.c (error_line): include the class name of a surrounding method in error position description. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-09* eval.c (rb_obj_instance_exec): fixed typo of rdoc.usa
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-04* eval.c: apply the FreeBSD getcontext/setcontext workaroundakr
only before FreeBSD 7-CURRENT. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-02-03* eval.c: unify ruby_class (for method definition) and ruby_cbasematz
(for constant reference). * eval.c (rb_call0): use TMP_ALLOC() instead of allocating a temporary array object. * eval.c (eval): need not to protect $SAFE value. [ruby-core:07177] * error.c (Init_Exception): change NameError to direct subclass of Exception so that default rescue do not handle it silently. * struct.c (rb_struct_select): update RDoc description. [ruby-core:7254] * numeric.c (int_upto): return an enumerator if no block is attached to the method. * numeric.c (int_downto): ditto. * numeric.c (int_dotimes): ditto. * enum.c (enum_first): new method Enumerable#first to take first n element from an enumerable. * enum.c (enum_group_by): new method Enumerable#group_by that groups enumerable values according to their block values. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-22* eval.c (POST_GETCONTEXT): define separately from PRE_GETCONTEXT onakr
IA64 to avoid reusing variable address. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-22* eval.c (ruby_setjmp): workaround for FreeBSD/i386akr
getcontext/setcontext bug. [ruby-dev:28263] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-18* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): don't clobber %l7 of SPARCakr
if enable-shared. (ruby_setjmp): call FUNCTION_CALL_MAY_RETURN_TWICE after getcontext too. reported by Pav Lucistnik and Marius Strobl. http://lists.freebsd.org/pipermail/freebsd-sparc64/2006-January/003739.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-17* eval.c (rb_mod_method_defined): ditto.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-08comment FreeBSD PR number.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-08* eval.c (GCC_VERSION_BEFORE): check __INTEL_COMPILER.akr
Intel C++ Compiler defines __GNUC__. http://www.intel.com/software/products/compilers/clin/docs/ug_cpp/lin1077.htm git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-08the bug was FreeBSD specific.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-06* eval.c (rb_fd_isset): compare the result of FD_ISSET with 0 toakr
avoid BSD bug. BSD defines FD_ISSET as just a bitmap of unsigned long. So returning the value from rb_fd_isset discards upper 32bits on LP64 environment. http://www.freebsd.org/cgi/query-pr.cgi?pr=ia64/91421 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-05avoid "left-hand operand of comma expression has no effect" warnings.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-01-05* configure.in: don't force getcontext on IA64.akr
* eval.c (ruby_setjmp): add an argument for just before getcontext. (THREAD_SAVE_CONTEXT): call rb_thread_save_context just before getcontext. [ruby-dev:28205] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-31* eval.c (rb_thread_save_context): should not recycle scope object usednobu
in a thread. fixed: [ruby-dev:28177] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29avoid a GC problem with RUBY_ALWAYS_GC= ./ruby -e ''.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29* eval.c (rb_gc_mark_threads): keep unmarked threads which won't wakenobu
up alone, and mark threads in the loading table. [ruby-dev:28154] * eval.c (rb_gc_abort_threads), gc.c (gc_sweep): kill unmarked threads. [ruby-dev:28172] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29* eval.c (rb_mod_define_method): should save safe_level in thematz
proc object. [ruby-dev:28146] * test/drb/drbtest.rb (DRbService::self.ext_service): increase timeout limit. a patch from Kazuhiro NISHIYAMA <zn at mbf.nifty.com>. [ruby-dev:28132] * eval.c (ev_const_get): fixed a bug in constant reference during instance_eval. [yarv-dev:707] * eval.c (ev_const_defined): ditto. * lib/yaml.rb (YAML::add_domain_type): typo fixed. a patch from Joel VanderWerf <vjoel at path.berkeley.edu>. [ruby-talk:165285] [ruby-core:6995] * ext/digest/sha2/sha2.c (ULL): support AIX C. a patch from Kailden <kailden at gmail.com>. [ruby-core:06984] * ext/syck/rubyext.c (rb_syck_compile): avoid potential memory leak. * ext/syck/rubyext.c (syck_set_ivars): avoid potential memory leak by explicit symbol allocation. * lib/delegate.rb (Delegator::method_missing): should delegate block as well. * lib/cgi.rb (CGI::QueryExtension::MorphingBody): fix criteria to use Tempfile. A fix from Zev Blut <rubyzbibd at ubit.com>. [ruby-core:06076] * string.c: remove global functions work on $_. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27* eval.c (struct thread): add bstr_max.akr
(rb_thread_save_context): use realloc instead of REALLOC_N to avoid GC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27* configure.in: define IA64 for portability. (HP aC++/ANSI C doesn'takr
define __ia64__.) don't check libunwind stuff. check __libc_ia64_register_backing_store_base. * defines.h: declare rb_ia64_bsp and rb_ia64_flushrs. (flush_register_windows): call rb_ia64_flushrs on IA64. * ia64.s: new file for IA64. it is separated from C program files because Intel C++ Compiler for IA64 doesn't support inline assembly. * common.mk (ia64.$(OBJEXT)): new target. * ruby.h (RUBY_INIT_STACK): defined. (ruby_init_stack): declared for RUBY_INIT_STACK. * main.c (main): precedes RUBY_INIT_STACK before ruby_init. * gc.c (rb_gc_register_stack_start): new global variable on IA64. (garbage_collect): simplify register stack marking code. don't use libunwind. (Init_stack): initialize rb_gc_register_stack_start. (ruby_init_stack): new function for RUBY_INIT_STACK. * eval.c (struct thread): add bstr_pos member for original position of register stack. (rb_thread_save_context): simplify register stack saving code. don't use libunwind. (rb_thread_restore_context_0): new function. moved from rb_thread_restore_context except the stack position checking code. don't use libunwind for IA64 register stack. (register_stack_extend): new function. (stack_extend): make it self-recursive with the stack position checking code in old rb_thread_restore_context. (rb_thread_restore_context): just call stack_extend. (flush_register_windows): removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-20* eval.c (eval_under_i): evaluate source in caller's frame.nobu
[ruby-dev:28076] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19simplify previous change.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): activate onlyakr
before gcc 4.0.3 on SPARC and IA64. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16* eval.c (bmcall): fix a GC problem by tail call onakr
IA64 with gcc 4.0.3 20051216 (prerelease). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12precedes registering global VALUE variables before initializing it.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-12* ext/digest/digest.c (rb_digest_base_s_digest): add volatile tomatz
protect temporary context object. [ruby-dev:27979] * ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should be called before actual variable initialization. [ruby-dev:27986] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-09* eval.c (calling_scope_t): gave names to magic numbers for rb_call().nobu
[ruby-dev:27978] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-07* eval.c (umethod_bind): adjust invoking class for module method.nobu
[ruby-dev:27964] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-07* eval.c (call_trace_func): klass parameter should be amatz
class/module that defines calling method. [ruby-talk:169307] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-06* gc.c (ruby_xmalloc2): change check for integer overflow.matz
[ruby-dev:27399] * gc.c (ruby_xrealloc2): ditto. * eval.c (exec_under): avoid accessing ruby_frame->prev. [ruby-dev:27948] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-30* eval.c (rb_funcall2): allow to call protected methods.nobu
fixed: [ruby-dev:27890] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-11* configure.in, eval.c, intern.h: check fd_mask type.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-11* eval.c, intern.h: failed to compile where NFDBITS is defined butocean
howmany() is not defined. [ruby-dev:27680] * io.c (is_socket): failed to compile where S_ISSOCK is not defined. * io.c (pipe_open): failed to compile where socketpair is not supported. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-08* intern.h, eval.c (rb_thread_signal_raise): costified.ocean
* signal.c: cosmetic change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-01* eval.c (rb_call_super): should call method_missing if super ismatz
called from Kernel method. * eval.c (exec_under): frame during eval should preserve external information. * configure.in: use proper option for Sun linker. A patch from Shinya Kuwamura <kuwa@labs.fujitsu.com>. [ruby-dev:27603] * numeric.c (fix_rshift): RDoc fix. [ruby-core:6351] * util.h (strtod): add #undef for platforms defines strtod() macro. [ruby-dev:27563] * ext/etc/etc.c: document update from mathew <meta@pobox.com>. [ruby-core:06473] * ext/fcntl/fcntl.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-21* bin/erb (ERB::Main::run): typo fixed. [ruby-core:06337]matz
* env.h: move struct METHOD and struct BLOCK from eval.c to support NodeWrap and ParseTree. * rubysig.h (CHECK_INTS): prevent signal handler to run during critical section. [ruby-core:04039] * eval.c (load_wait): need not to call rb_thread_schedule() explicitly. [ruby-core:04039] * eval.c (rb_thread_schedule): clear rb_thread_critical. [ruby-core:04039] * eval.c (rb_obj_instance_exec): create instance_exec and module_exec which pass arguments to the block. * eval.c (rb_f_funcall): rename fcall to funcall to follow tradition. * st.c (st_free_table): do not call free() but xfree(). [ruby-core:06205] * eval.c (splat_value): call rb_Array() to convert svalue to values. [ruby-dev:27397] * lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may not be parsed correctly. A patch from August Z. Flatby (augustzf) in [ruby-Patches-2595]. [ruby-core:06183] * object.c (rb_Array): Array() to raise error for objects without to_ary, nor to_a. * object.c (nil_to_a): revert NilClass#to_a. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-20* class.c, eval.c, hash.c, st.c, variable.c: changed /* ??? */ stuffocean
protoize generated to ANYARGS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e