matz
fbb88b011a
* io.c (rb_io_mode_flags): preserve append mode flag.
...
[ruby-dev:24436]
* io.c (rb_io_modenum_mode): do not use external output buffer.
* string.c (rb_str_justify): differ pointer retrieval to prevent
padding string modification. [ruby-dev:24434]
* range.c (range_each_func): allow func to terminate loop by
returning RANGE_EACH_BREAK.
* range.c (member_i): use RANGE_EACH_BREAK. [ruby-talk:114959]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-06 07:40:06 +00:00
matz
77636d0364
* string.c (rb_str_sum): should use bignums when bits is greater
...
than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-02 11:30:40 +00:00
matz
1b4d97ddba
* string.c (rb_str_sum): string may be altered. [ruby-dev:24381]
...
* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
sourcefile string modification. [ruby-dev:24373]
* io.c (io_read): block string buffer modification during
rb_io_fread() by freezing it temporarily. [ruby-dev:24366]
* io.c (rb_io_s_popen): mode argument may be altered.
[ruby-dev:24375]
* file.c (rb_file_s_basename): ext argument may be altered.
[ruby-dev:24377]
* enum.c (enum_sort_by): use NODE instead of 2 element arrays.
[ruby-dev:24378]
* string.c (rb_str_chomp_bang): StringValue() may change the
receiver. [ruby-dev:24371]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-01 15:56:05 +00:00
nobu
6f42276d05
* eval.c (rb_call0): invoke finalizers periodically.
...
* gc.c (gc_sweep): defer running finalizers.
* gc.c (rb_gc_finalize_deferred): run deferred finalizers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-27 12:25:21 +00:00
matz
08f84dcf44
* struct.c (rb_struct_s_members): wrong call of struct_members.
...
[ruby-dev:24333]
* eval.c (proc_invoke): propagate DVAR_DONT_RECYCLE on termination
to avoid double call to rb_gc_force_recycle(). [ruby-dev:24311]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-24 16:58:51 +00:00
matz
c0a998d027
* parse.y (rb_parser_append_print): should handle prelude.
...
[llama@u01.gate0 ]
* parse.y (rb_parser_while_loop): ditto.
* array.c (rb_ary_subseq): original object might be modified after
sharing data creation. [ruby-dev:24327]
* array.c (rb_ary_replace): ditto.
* array.c (ary_make_shared): freeze shared array. [ruby-dev:24325]
* struct.c (struct_members): always check struct size and size of
members list in the class. [ruby-dev:24320]
* string.c (rb_str_sub_bang): check if string is not modified
during iteration. [ruby-dev:24315]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-24 05:53:43 +00:00
matz
bf189b88d3
* eval.c: remove debug print.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-23 00:53:21 +00:00
matz
959176599c
* eval.c: remove debug print.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-23 00:52:23 +00:00
matz
f1f0f39e03
* hash.c (rb_hash_rehash): replace st_foreach() by its deep
...
checking counterpart. [ruby-dev:24310]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-23 00:51:32 +00:00
matz
136b284b59
* parse.y: remove global variables ruby_eval_tree and
...
ruby_eval_tree_begin.
* array.c (rb_ary_collect_bang): element size might change during
comparison. [ruby-dev:24300]
* array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300]
* array.c (rb_ary_eql): ditto. [ruby-dev:24300]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-22 00:19:15 +00:00
matz
bfabc05a43
* enum.c (enum_sort_by): do not use qsort directly. use
...
rb_ary_sort_bang() instead. [ruby-dev:24291]
* enum.c (enum_sort_by): pedantic type check added.
[ruby-dev:24291]
* hash.c (rb_hash_foreach_iter): check iter_lev after each
iteration. [ruby-dev:24289]
* array.c (rb_ary_and): element size might change during
comparison. [ruby-dev:24290]
* array.c (rb_ary_or): ditto. [ruby-dev:24292]
* array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-21 03:08:33 +00:00
eban
f3721195a9
* eval.c (blk_copy_prev): need frame_dup(). [ruby-dev:24103]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-13 10:20:36 +00:00
matz
d58885977b
* eval.c (cvar_cbase): singletons should refer outer cvar scope.
...
[ruby-dev:24223]
* eval.c (rb_load): should preserve previous ruby_wrapper value.
[ruby-dev:24226]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-06 00:48:03 +00:00
matz
bf22dff8ea
* eval.c (cvar_cbase): class variables cause SEGV in
...
instance_eval() for fixnums and symbols. [ruby-dev:24213]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-03 17:41:27 +00:00
matz
880d7af47a
* struct.c (make_struct): remove redefining constant when
...
conflict. [ruby-dev:24210]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-03 09:00:52 +00:00
matz
88ba175ab0
* bignum.c (rb_big_and): protect parameters from GC.
...
[ruby-talk:110664]
* error.c (exc_equal): exceptions are equal if they share same
class, message and backtrace. [ruby-talk:110354]
* error.c (name_err_mesg_equal): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-28 14:14:11 +00:00
dave
ad7564a02a
Must learn how to transpose words in Emacs. Sorry...
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-25 19:44:46 +00:00
dave
4441ea370b
Minor fix to error message
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-25 19:41:31 +00:00
nobu
0d6b190e9f
* eval.c (rb_longjmp): Exception#to_str is no longer defined.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-25 06:19:01 +00:00
matz
d73fa69935
* dir.c (free_dir): fix memory leak. reported by yamamoto
...
madoka.
* eval.c (bind_eval): new method. [RCR 251]
* string.c (rb_str_clear): new method. [ruby-dev:24104]
* io.c (rb_io_reopen): should clear allocated OpenFile. pointed
out by Guy Decoux. [ruby-core:03288]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-19 07:33:15 +00:00
nobu
4937f8cf34
* eval.c (rb_obj_instance_eval): evaluates under special singleton
...
classes as for special constants.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-18 03:53:50 +00:00
matz
c267d34070
* eval.c (blk_free): fixed serious memory leak. [ruby-dev:24013]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-08-02 08:52:53 +00:00
matz
fd404f03cb
* eval.c (is_defined): stupid mistakes fixed. [ruby-dev:24006]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-31 14:13:30 +00:00
matz
021b336535
* eval.c (is_defined): avoid unnecessary method invocations.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-31 04:40:11 +00:00
matz
d21727bdc5
* eval.c (is_defined): call is_defined() before invoking
...
rb_eval(). [ruby-talk:107867]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-30 16:38:03 +00:00
matz
1bd47bf0bc
* eval.c (rb_call0): should call rb_call_super() directly for
...
visibility overriding. [ruby-dev:23989]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-28 09:05:08 +00:00
matz
9531aef9eb
* env.h: remove argv from ruby_frame.
...
* eval.c (rb_eval): no more copy on write.
* eval.c (assign): ditto.
* eval.c (rb_call0): can receive *rest by specifying negative
argc. (-1 means 0 arg and *rest, -2 means 1 arg and *rest...)
* eval.c (rb_call0): properly set frame's argc counter.
* gc.c (rb_gc_mark_frame): need not to mark frame's argv
* gc.c (run_final): wrong order of data. [ruby-dev:23948]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-28 01:22:49 +00:00
matz
7b5b448a1e
* eval.c (rb_call0): update ruby_frame->argv with the default
...
value used for the optional arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-27 08:34:28 +00:00
matz
bc667633d0
* eval.c (rb_eval): copy on write for argument local variable
...
assignment.
* eval.c (assign): ditto.
* eval.c (rb_call0): update ruby_frame->argv with the default
value used for the optional arguments.
* object.c (Init_Object): "===" calls rb_obj_equal() directly.
[ruby-list:39937]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-27 08:11:36 +00:00
matz
ca14017bb6
* gc.c (define_final): should not disclose NODE* to Ruby world.
...
[ruby-dev:23957]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-23 07:52:38 +00:00
matz
15ba9f85cf
* eval.c (THREAD_ALLOC): th->thread should be initialized to NULL.
...
[ruby-talk:106657] The solution was found by Guy Decoux.
* file.c (rb_stat_dev_major): new methods File::Stat#dev_major and
#dev_minor. [ruby-core:03195]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-17 02:23:52 +00:00
nobu
fea3684d5e
* eval.c (rb_thread_raise): accept third argument as well as
...
Kernel#raise, and evaluate the arguments to create an exception in
the caller's context. [ruby-talk:105507]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-09 05:29:45 +00:00
nobu
4f46d8a69a
* eval.c (rb_thread_yield, rb_f_catch): 4th argument to rb_yield_0()
...
is a set of bit flags. [ruby-dev:23859]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-05 00:03:50 +00:00
nobu
ac3c46901c
* eval.c (rb_eval_cmd, rb_thread_trap_eval): restore safe level.
...
* gc.c (define_final, run_final): preserve and restore safe level for
finalizers. [ruby-core:03058]
* signal.c (signal_exec, rb_trap_exit, trap): preserve and restore
safe level for signal handlers. [ruby-dev:23829]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-29 01:31:37 +00:00
nobu
e99c018d87
* eval.c (return_jump, break_jump): raise unexpceted local jump
...
exception directly. [ruby-dev:23740]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-22 14:59:25 +00:00
nobu
33b8591248
* eval.c (proc_set_safe_level, proc_invoke, rb_mod_define_method): not
...
set $SAFE for methods defined from Proc. [ruby-dev:23697]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-19 04:27:08 +00:00
nobu
934064ba5a
* eval.c (method_call): allow changing $SAFE. [ruby-dev:23713]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-19 04:24:34 +00:00
nobu
960d79099f
* eval.c (eval): adjust indent.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-18 14:52:07 +00:00
nobu
31764d62ce
* eval.c (proc_save_safe_level, rb_set_safe_level, safe_setter): limit
...
safe level.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-18 14:12:42 +00:00
matz
9d1f9bd56b
* eval.c (rb_mod_freeze): prepare string representation before
...
freezing. [ruby-talk:103646]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-16 14:21:34 +00:00
nobu
e3308c5272
* eval.c (rb_eval): bad influence on frame node.
...
* eval.c (eval): reverted wrongly removed condition. [ruby-dev:23638]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-28 02:20:34 +00:00
nobu
74ab20eb37
* eval.c (rb_eval, eval): make line number consistent on eval with
...
Proc. [ruby-talk:101253]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-26 05:19:50 +00:00
nobu
82572952ec
* eval.c (rb_yield_0, proc_invoke, proc_arity): allow passing a block
...
to a Proc. [ruby-dev:23533]
* parse.y (block_par, block_var): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-25 02:54:22 +00:00
matz
e0e8ee0ac8
* eval.c (rb_method_node): search cache entry first.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-18 00:32:30 +00:00
matz
094290e68f
* eval.c (eval): forgot to restore $SAFE value before evaluating
...
compiled node. [ruby-core:02872]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-14 16:45:40 +00:00
matz
6a60393280
* range.c (range_each_func): terminates loop if generating value
...
is same to @end. [ruby-talk:100269]
* string.c (rb_str_new4): should not reuse frozen shared string if
the original is not an instance of String. [ruby-talk:100193]
* time.c (time_mdump): preserve GMT bit in the marshal data.
[ruby-talk:100213]
* eval.c (is_defined): do not protect exception during receiver
evaluation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-14 16:39:15 +00:00
matz
ae3241dcfe
* eval.c (eval): warning during eval should not cause deadlock.
...
[ruby-talk:98651]
* eval.c (rb_eval): raise TypeError exception for superclass
mismatch. [ruby-dev:39567]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-10 08:23:13 +00:00
matz
1b0f90ca33
* parse.y (string_content): turn off NODE_NEWLINE flag to avoid
...
unnecessary line trace for inlined expression.
(ruby-bugs PR#1320)
* numeric.c (flo_to_s): tweak output string based to preserve
decimal point and to remove trailing zeros. [ruby-talk:97891]
* string.c (rb_str_index_m): use unsigned comparison for T_FIXNUM
search. [ruby-talk:97342]
* hash.c (rb_hash_equal): returns true if two hashes have same set
of key-value set. [ruby-talk:97559]
* hash.c (rb_hash_eql): returns true if two hashes are equal and
have same default values.
* string.c (rb_str_equal): always returns true or false, never
returns nil. [ruby-dev:23404]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-07 08:44:24 +00:00
nobu
c94f8ab926
* eval.c (rb_mod_define_method): allow binding methods to modules.
...
[ruby-dev:23410]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-21 19:16:40 +00:00
nobu
d952e33003
* array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
...
process.c, re.c, string.c: typos in RDoc comments. [ruby-core:02783]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-14 04:06:52 +00:00