* eval.c (exec_under): should initialize ruby_frame->self;
5 lines of code changed in:
* eval.c (POP_VARS): should not set DVAR_DONT_RECYCLE if _old
ruby_vars is already force_recycled.
* gc.c (rb_gc): handles mark stack overflow.
* gc.c (PUSH_MARK): use static mark stack, no more recursion.
167 lines of code changed in:
* lib/cgi.rb: CGI::Cookie::parse(): Ignore duplicate keys caused by
Netscape bug.
6 lines of code changed in:
* win32/mkexports.rb: follow the change of rb_io_puts().
6 lines of code changed in:
* string.c (rb_str_chomp_bang): do smart chomp if $/ == '\n'.
* io.c (rb_io_puts): don't treat Array specially.
* bignum.c (rb_big_cmp): should convert bignum to float.
* eval.c (rb_f_eval): can't modify untainted binding.
* regex.c (re_compile_pattern): should preverve p0 value.
158 lines of code changed in:
* intern.h (rb_protect_inspect): follow the change of array.c.
* eval.c (rb_exec_end_proc): follow the change of rb_protect().
* eval.c (method_proc, umethod_proc, rb_catch): cast the first
parameter of rb_iterate() to avoid VC++ warning.
* range.c (range_step): ditto.
* ext/sdbm/init.c (fsdbm_update, fsdbm_replace): ditto.
24 lines of code changed in:
* parse.y (str_extend): shuould allow interpolation of $-x.
* variable.c (rb_cvar_set): empty iv_tbl may cause infinite loop.
* variable.c (rb_cvar_get): ditto.
* variable.c (cvar_override_check): ditto.
* bignum.c (rb_big_eq): convert Bignum to Float, instead of
reverse.
* time.c (time_localtime): getting tm should not be prohibited for
frozen time objects.
* time.c (time_gmtime): ditto.
* version.c (Init_version): freeze RUBY_VERSION,
RUBY_RELEASE_DATE, and RUBY_PLATFORM.
* file.c (Init_File): freeze File::SEPARATOR, ALT_SEPARATOR and
PATH_SEPARATOR.
* file.c (rb_stat_cmp): should check operand type before calling
get_stat().
* eval.c (rb_eval_cmd): should not invoke "call" with a block on
any occasion.
* numeric.c (fix_aref): idx may be a Bignum.
* numeric.c (num_remainder): a bug in Numeric#remainder.
* eval.c (rb_exec_end_proc): END might be called within END
block.
* class.c (rb_mod_clone): should not copy class name, since clone
should remain anonymous.
174 lines of code changed in:
* eval.c (proc_invoke): fix self switching in Proc#call
(ruby-bugs-ja#PR108) and GC failure. use Qundef instead of 0
to direct not switching self.
* eval.c (call_trace_func): ditto.
* eval.c (call_end_proc): ditto.
* eval.c (proc_call): ditto.
* eval.c (proc_yield): ditto.
19 lines of code changed in:
* variable.c (rb_global_entry): reconstruct global variable
aliasing (sharing global_entry->var with other global_entry).
* variable.c (undef_getter): ditto.
* variable.c (undef_setter): ditto.
* variable.c (val_setter): ditto.
* variable.c (mark_global_entry): ditto.
* variable.c (rb_define_hooked_variable): ditto.
* variable.c (rb_f_trace_var): ditto.
* variable.c (remove_trace): ditto.
* variable.c (rb_f_untrace_var): ditto.
* variable.c (rb_gvar_get): ditto.
* variable.c (trace_en): ditto.
* variable.c (rb_gvar_set): ditto.
* variable.c (rb_gvar_defined): ditto.
* variable.c (rb_alias_variable): ditto.
113 lines of code changed in:
2001-10-22
2 lines of code changed in:
* class.c (rb_mod_clone): should not copy class name, since clone
should remain anonymous.
* eval.c (rb_call0): self in a block given to define_method now be
switched to the receiver of the method.
* eval.c (proc_invoke): added new parameter to allow self
switching.
59 lines of code changed in:
* variable.c (remove_trace): should not access already freed area.
* variable.c (rb_f_untrace_var): fix memory leak.
11 lines of code changed in:
* marshal.c (w_uclass): cloned class is not user
class. (ruby-bugs-ja#PR103)
* marshal.c (r_object): Struct subclass couldn't
load. (ruby-bugs-ja#PR104)
12 lines of code changed in:
20011017
2 lines of code changed in:
* variable.c (alias_fixup): added. ad hoc support for ordinary
global variable aliasing. when original entry is set, make the
alias to refer directly as possible.
* variable.c (alias_getter, alias_setter): ditto.
* variable.c (rb_alias_variable): ditto. and no need to mark alias
variables.
* variable.c (rb_gvar_defined): refer the original entry of an alias.
68 lines of code changed in:
* eval.c (rb_f_missing): check stack level with rb_stack_check().
* eval.c (rb_call0): ditto.
* eval.c, intern.h (rb_stack_check): added. [new]
20 lines of code changed in:
missing changelog.
5 lines of code changed in:
* string.c (rb_str_index): wrong increment for non alphanumeric
string.
47 lines of code changed in:
20011015
2 lines of code changed in:
* parse.y (yylex): disallow alpha-numeric and mbchar for
terminator of %string.
9 lines of code changed in:
2001-10-10
2 lines of code changed in:
* file.c (rb_stat_clone): should copy internal data too.
* numeric.c (num_clone): Numeric should not be copied by clone.
* object.c (rb_obj_clone): should check immediate values.
* parse.y (command): `yield' should take command_args.
* parse.y (parse_quotedwords): %w(...) is not a string.
51 lines of code changed in:
eval.c backout.
6 lines of code changed in:
* eval.c (rb_eval): NODE_MATCH3 was confusing left and right. sigh.
35 lines of code changed in:
* process.c (Init_process): activate the case NT.
7 lines of code changed in:
* eval.c (thread_status_name): separated from
rb_thread_inspect(). return string expression for thread status.
* eval.c (rb_thread_status, rb_thread_inspect): use
thread_status_name().
* eval.c (rb_thread_priority_set): return the priority not but
self.
32 lines of code changed in:
* marshal.c (w_unique): should not dump anonymous class.
23 lines of code changed in:
* eval.c (proc_s_new): revived.
* eval.c (Init_Proc): define Proc.new instead of Proc.allocate to
inhibit from creating uninitialized Proc.
21 lines of code changed in:
2001-10-05
2 lines of code changed in:
* re.c (rb_reg_s_alloc): avoid inifinte recursion.
6 lines of code changed in:
* re.c (rb_reg_s_alloc): avoid inifinte recursion.
4 lines of code changed in:
* ext/socket/socket.c (ruby_connect): EALREADY is the equivalent
for EINPROGRESS in ws2_32.lib.
9 lines of code changed in:
* ext/gdbm/gdbm.c (rb_gdbm_fetch): str is a VALUE now.
5 lines of code changed in:
* marshal.c (r_object): better allocation type check for
TYPE_UCLASS. usage of allocation framework is disabled for now.
* variable.c (rb_class_path): Module may have subclass.
* string.c (rb_str_update): should maintain original negative
offset.
* string.c (rb_str_subpat_set): ditto
* string.c (rb_str_aset): ditto.
* re.c (rb_reg_nth_match): should check negative nth.
* re.c (rb_reg_nth_defined): ditto.
345 lines of code changed in:
* lib/ftools.rb (catname): allow trailing '/' for the destination.
5 lines of code changed in:
* ext/socket/socket.c (unix_addr): getsockname(2) may result len = 0.
* ext/socket/socket.c (unix_peeraddr): getpeername(2) may result
len = 0.
* string.c (rb_str_subpat_set): support function for new argument
pattern String#[re,offset] = val. [new]
* eval.c (POP_BLOCK): rb_gc_force_recycle() was called too much.
Should not be called if SCOPE_DONT_RECYCLE is set.
* string.c (rb_str_aref_m): new argument pattern
String#[re,offset]. [new]
* string.c (rb_str_substr): should return an instance of
receiver's class.
* string.c (rb_str_succ): ditto.
* array.c (rb_ary_subseq): ditto.
* array.c (rb_ary_initialize): Array.new([1,2,3]) => [1,2,3]. [new]
* string.c (rb_str_reverse): should return an instance of
receiver's class.
* string.c (rb_str_times): ditto.
* array.c (rb_ary_times): ditto
* string.c (str_gsub): ditto.
* string.c (rb_str_ljust): ditto.
* string.c (rb_str_rjust): ditto.
* string.c (rb_str_center): ditto.
* eval.c (eval): retrieves file, line information from binding.
* eval.c (intersect_fds): counts intersecting fds.
* eval.c (rb_thread_schedule): only fds requested by
each thread count as select_value.
254 lines of code changed in:
* marshal.c (r_object): TYPE_UCLASS check should be inversed.
5 lines of code changed in: