matz
568602aeea
* eval.c (method_missing): update old argument adjustment.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-07 08:51:15 +00:00
matz
f54e979d36
* eval.c (when_check): need to splat for NODE_ARGSCAT as well.
...
[ruby-dev:29860]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-07 07:45:57 +00:00
matz
862e723d03
* eval.c (svalue_to_avalue): need to splat but no error.
...
* eval.c: new macros - YIELD_CALL, YIELD_VALUES.
* eval.c (rb_yield_values): specify YIELD_VALUES.
* eval.c (rb_yield_0): use new macros.
* eval.c (proc_invoke): slightly modified to separate YIELD_CALL
and YIELD_VALUES from YIELD_ARY_ARGS.
* object.c (Init_Object): add nil.to_splat => [].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-06 10:27:59 +00:00
matz
07c4bb10e0
* eval.c (rb_call0): fixed bug of zsuper with both of opt and rest.
...
fixed: [ruby-list:42928]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-02 04:44:52 +00:00
matz
76f721470b
* eval.c (rb_obj_define_method): add half boiled RDoc document.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-11 08:12:17 +00:00
matz
bd62057a8b
* eval.c (rb_obj_define_method): add new method
...
Kernel#define_singleton_method. [ruby-list:42851]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-09 13:46:56 +00:00
matz
b067aef7c0
* eval.c (formal_assign): packed post splat arguments may conflict
...
with normal arguments. [ruby-core:09021]
* eval.c (rb_call0): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-07 14:35:19 +00:00
matz
2d09685150
* eval.c (rb_yield_0): small refactoring.
...
* parse.y (bparam_item): fixed bugs in handling parenthesized LHS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-05 22:32:04 +00:00
matz
feafc46363
* eval.c (rb_call): check protected visibility based on real self,
...
not ruby_frame->self. [ruby-talk:217822]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-04 08:38:23 +00:00
matz
9317700a5d
* eval.c (splat_value): use "to_splat" instead of "to_ary" to
...
prepare splat values as an array.
* array.c (Init_Array): define to_splat.
* range.c (range_to_splat): new method.
* enumerator.c (enumerator_to_splat): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-02 17:39:57 +00:00
why
dcb6131f78
* eval.c (rb_thread_save_context, rb_thread_restore_context):
...
sandbox hook to save and restore sandbox state.
* eval.c (thread_no_ensure): added THREAD_NO_ENSURE thread flag.
* eval.c (rb_thread_kill_bang): Thread#kill! uses the above flag
to circumvent ensure, in order to prevent endless loops.
contributed by MenTaLguY. [ruby-core:08768]
* eval.c (rb_thread_kill): fix Thread#kill docs, which returns
the thread object in all cases.
* node.h: expose the rb_jmpbuf_t and rb_thread_t structs, along
with the thread flags. used by the sandbox extension.
* ruby.h: extern rb_eThreadError, so sandbox can swap it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-23 21:29:47 +00:00
matz
749df1d0fd
* dir.c (dir_s_glob): remove unused variable.
...
* math.c (math_log): ditto.
* re.c (rb_reg_regcomp): ditto.
* eval.c (break_jump): ditto.
* eval.c (rb_thread_yield_0): remove unused function.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-18 01:59:00 +00:00
nobu
36e79167ab
* eval.c (rb_require_safe): prevent extension from loading twice.
...
fixed: [ruby-dev:29523]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-10 00:18:39 +00:00
matz
b4afac07bc
* eval.c (rb_f_local_variables): list symbols.
...
* struct.c (rb_struct_s_members_m): ditto.
* variable.c (ivar_i): ditto.
* variable.c (gvar_i): ditto.
* variable.c (cv_i): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-04 05:46:47 +00:00
matz
2156870525
* ruby.h (struct RArray): embed small arrays.
...
(RARRAY_LEN): defined for accessing array members.
(RARRAY_PTR): ditto.
* array.c: use RARRAY_LEN and RARRAY_PTR.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-02 14:42:08 +00:00
matz
8581164ea6
* eval.c (rb_eval): should handle when in else clause. a patch
...
from Eric Hodel <drbrain at segment7.net>. [ruby-core:08662]
* parse.y (primary): wrap with NODE_CASE. [ruby-core:08663]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-02 14:36:22 +00:00
usa
974037a542
* eval.c (search_required): use RSTRING_PTR and RSTRING_STR.
...
* object.c (nil_plus): ditto.
* ext/dl/cptr.c (rb_dlptr_s_to_ptr): ditto.
* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 12:10:08 +00:00
matz
54af80844f
* ruby.h (struct RString): embed small strings.
...
(RSTRING_LEN): defined for accessing string members.
(RSTRING_PTR): ditto.
* string.c: use RSTRING_LEN and RSTRING_PTR.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 10:47:44 +00:00
why
a6487b236a
* eval.c (ruby_init): rename top_cref to ruby_top_cref and export,
...
along with ruby_cref, for use by the sandbox. [ruby-core:08762]
* node.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-31 04:14:53 +00:00
drbrain
657b626899
Revert.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-28 02:33:04 +00:00
drbrain
6e83a71d3b
Include attribution
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-27 23:03:20 +00:00
akr
1f84a162df
ansificated.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-13 09:44:16 +00:00
matz
275f12623d
* dln.c, eval.c, gc.c, ruby.h: shut up AIX alloca warning.
...
[ruby-dev:29191]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-08-07 03:37:47 +00:00
nobu
799a6bc67b
* eval.c (rb_call0): trace call/return of method defined from block.
...
fixed: [ruby-core:08329]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-30 14:27:01 +00:00
nobu
782d8df4f5
* eval.c (rb_trap_eval): make the current thread runnable to deal with
...
exceptions which occurred within the trap. fixed: [ruby-dev:27729]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-30 13:30:19 +00:00
matz
35526b1b00
* eval.c (rb_call): fixed typo in cache look-up. [ruby-dev:29167]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-28 05:10:03 +00:00
matz
94f9fc2b6e
* eval.c (rb_call): a bug in method cache look-up.
...
http://www.rubyist.net/~matz/20060720.html#c04
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-28 01:43:10 +00:00
matz
c0a8089044
* eval.c (Init_eval): rename #invoke_method and
...
#invoke_functional_method to __send and __send! respectively.
* eval.c (remove_method): prohibit removing __send and __send!.
* eval.c (rb_undef): prohibit undef'ing __send and __send!.
* eval.c (rb_eval): prohibit redefining __send and __send!.
* lib/delegate.rb (Delegator): preserve __send.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-26 09:40:05 +00:00
nobu
c0e5d45a1e
* eval.c (backtrace): porting miss.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-24 14:53:42 +00:00
nobu
2e7a8bf228
* eval.c (backtrace): skip frames successive on node and method name.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-24 13:04:39 +00:00
matz
93d5566170
* eval.c (rb_call0): revert last change. [ruby-dev:29112]
...
[ruby-core:08374]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-24 07:02:20 +00:00
nobu
252d273832
* eval.c (rb_call0): include funcalled methods in caller list.
...
fixed: [ruby-core:08290]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-21 12:22:08 +00:00
matz
58f09b0916
* eval.c (rb_call): try local method look-up first for fcall, then
...
normal method look-up. [ruby-talk:202564]
* eval.c (rb_get_method_body): save local method cache separately.
* eval.c (search_method): export info whether method is local or
not.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-20 19:20:31 +00:00
matz
cb3e51e712
* eval.c (rb_yield_0): should check args_args before lambda
...
argument check. [ruby-dev:29029]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-19 13:52:03 +00:00
matz
7318a6db76
* eval.c (yield_under_i): argument should be passed in avalue
...
from. [ruby-dev:29044]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-18 07:54:26 +00:00
akr
b3fd4cf833
// comment removed.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-15 02:38:26 +00:00
matz
ead9b197be
* parse.y (f_args): allow post mandatory arguments after optional
...
arguments. [ruby-dev:29014]
* parse.y (new_args_gen): allow post_args without rest_args.
* eval.c (formal_assign): ditto.
* parse.y (new_args_gen): check post argument duplication.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-12 11:10:22 +00:00
matz
1db0db3ba0
* bignum.c (rb_int2big): use SIGNED_VALUE. [ruby-dev:29019]
...
* bignum.c (rb_int2inum, rb_uint2inum): use VALUE sized integer.
* bignum.c (rb_big2long, rb_big2ulong): ditto.
* numeric.c (rb_num2long, rb_num2ulong): ditto.
* numeric.c (check_int, check_uint): ditto.
* bignum.c (rb_quad_pack): typo fixed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-11 06:47:09 +00:00
akr
599de8d7f1
remove an unused label and variable.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-11 00:26:15 +00:00
matz
c4ad5309f9
* eval.c (rb_call): remove erroneously restored prot_tag->blkid
...
initialization. [ruby-dev:28997] [ruby-dev:29000]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-10 05:48:10 +00:00
matz
672549bb47
* eval.c (proc_invoke): should not overwrite block information in
...
current frame. [ruby-dev:28957]
* eval.c (rb_yield_0): retrieve proper block object from the frame
record.
* eval.c (proc_alloc): return preserved block object if it's
available.
* st.h (st_data_t): use pointer sized integer for st_data_t.
[ruby-dev:28988]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-10 01:08:15 +00:00
nobu
4696270c72
* eval.c (rb_clear_cache_for_remove): clear entries for included
...
module. fixed: [ruby-core:08180]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-10 00:29:43 +00:00
nobu
b922355c0d
* eval.c (next_jump): deal with destination of next.
...
fixed: [ruby-core:08169]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-08 15:55:37 +00:00
matz
6243e40920
* eval.c (rb_call): should not set prot_tag->blkid since it would
...
never catch breaks at this level. [ruby-dev:28922]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-04 06:22:11 +00:00
matz
bb0687f680
* eval.c (PUSH_FRAME): initialize frame->self. [ruby-dev:28911]
...
* configure.in: should test isinf for Solaris with GCC compiler.
a patch from <ville.mattila at stonesoft.com>. [ruby-core:07791]
* configure.in: -shared patch from Andrew Morrow
<andrew.c.morrow at gmail.com>. [ruby-core:08100]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-01 16:40:13 +00:00
matz
4df2cb8053
* parse.y: use ARGSPUSH instead of ARGSCAT to prevent too much
...
splat expansion.
* eval.c (when_check): need to handle ARGSPUSH as well.
* eval.c (block_orphan): lambda and proc from method are always
orphan.
* gc.c (gc_mark_children): proper marking for NODE_BLOCK_PASS and
NODE_LAMBDA.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-29 14:05:40 +00:00
akr
d7ac2f0cd2
* eval.c (SETUP_ARGS0): avoid GC problem.
...
[ruby-dev:28902]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-29 13:49:23 +00:00
nobu
ab15a714f8
* eval.c (when_check): arbitrary values are allowed after splats.
...
fixed: [ruby-dev:28879]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-28 04:51:27 +00:00
matz
c7d9ba96cb
* eval.c (rb_eval): problem to handle else part. [ruby-dev:28873]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-27 23:13:20 +00:00
matz
4a497026b6
* eval.c (rb_eval): support splat in when expression list.
...
[ruby-dev:28822]
* eval.c (when_check): a new auxiliary function for case match.
* eval.c (when_cond): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-27 16:51:08 +00:00