Age | Commit message (Collapse) | Author |
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
block is given.
* struct.c (rb_struct_each, rb_struct_each_pair): Ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
of call rb_bug(). [ruby-dev:31709]
* marshal.c (r_object0): no nil check require any more.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[ruby-dev:31168]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[ruby-core:07177]
* struct.c (rb_struct_select): update RDoc description.
[ruby-core:7254]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
NUL at the end. [ruby-dev:26574]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
over the place by snprintf() to avoid integer overflow.
* sample/svr.rb: service can be stopped by ill-behaved client; use
tsvr.rb instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[ruby-core:04585]
* eval.c (rb_attr): check if attribute name is local_id or
const_id.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
names. [ruby-core:04575]
* struct.c (inspect_struct): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* struct.c (rb_struct_set): use original method name, not callee
name, to retrieve member slot. [ruby-core:04268]
* time.c (time_strftime): protect from format modification from GC
finalizers.
* gc.c (rb_data_object_alloc): klass may be NULL.
[ruby-list:40498]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/openssl/ossl_asn1.c (ossl_asn1_decode): ditto.
* ext/openssl/ossl_asn1.c (ossl_asn1_decode_all): ditto.
* struct.c (make_struct): [ruby-dev:25249]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
ALLOCA_N() to prevent modification. [ruby-dev:24438]
* 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]
* marshal.c (r_byte): retrieve pointer from string value for each
time. [ruby-dev:24404]
* marshal.c (r_bytes0): ditto.
* enum.c (sort_by_i): re-entrance check added. [ruby-dev:24399]
* io.c (io_read): should freeze all reading buffer.
[ruby-dev:24400]
* string.c (rb_str_sum): should use bignums when bits is greater
than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]
* eval.c (specific_eval): defer pointer retrieval to prevent
unsafe sourcefile string modification. [ruby-dev:24382]
* eval.c (specific_eval): defer pointer retrieval to prevent
unsafe sourcefile string modification. [ruby-dev:24382]
* string.c (rb_str_sum): wrong cast caused wrong result.
[ruby-dev:24385]
* enum.c (enum_sort_by): hide temporary array from
ObjectSpace.each_object. [ruby-dev:24386]
* string.c (rb_str_sum): check was done with false pointer.
[ruby-dev:24383]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[ruby-dev:24383]
* 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/branches/ruby_1_8@6979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
conflict. [ruby-dev:24210]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
the wrapper, not for a singleton class for wrapped main.
[ruby-dev:23305]
* bignum.c (rb_big_eq): use temporary double variable to save the
result (internal float register may be bigger than 64 bits, for
example, 80 bits on x86). [ruby-dev:23311]
* eval.c (block_pass): should generate unique identifier of the
pushing block. [ruby-talk:96363]
* ext/socket/socket.c (make_hostent): fix memory leak, based on
the patch from HORIKAWA Hisashi <vzw00011@nifty.ne.jp>.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
signal handler.
* io.c (io_read): ditto.
* string.c (get_pat): remove 1.8.0 warning code.
* string.c (rb_str_match): extend warning until 1.8.2.
* string.c (rb_str_match2): ditto.
* class.c (class_instance_method_list): remove 1.8.0 warnings.
method_list now recurs. [ruby-dev:21816]
* class.c (rb_obj_singleton_methods): ditto.
* array.c (rb_ary_select): remove select with block.
[ruby-dev:21824]
* hash.c (rb_hash_select): ditto.
* hash.c (env_select): ditto.
* re.c (match_select): ditto.
* struct.c (rb_struct_select): ditto.
* process.c (check_uid_switch): remove duplicated error messages.
* process.c (check_gid_switch): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
rb_ary_values_at. follow DRY principle.
* re.c (match_values_at): values_at should understand ranges.
* struct.c (rb_struct_values_at): ditto.
* struct.c (inspect_struct): inspect format changed; add "struct "
at the top.
* sprintf.c (rb_f_sprintf): "%p" specifier for inspect output.
(RCR#68)
* eval.c (rb_mod_undef_method): allow "undef_method" to accept
multiple arguments. (RCR#146)
* lib/timeout.rb: put timeout in Timeout module. (RCR#121)
[ruby-talk:61028]
* re.c (match_groups): new method added. (RCR#139)
* variable.c (rb_mod_const_of): should exclude constant defined
in Object, unless retrieving constants of Object.
* string.c (rb_str_new4): do not allocate new string if original
is frozen or already have copy-on-write entry. [ruby-talk:74940]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
block parameter.
* eval.c (rb_yield_values): a function to yield multiple values.
* array.c (sort_1): use rb_yield_values.
* enum.c (min_ii, max_ii): ditto.
* hash.c (rb_hash_update_block_i, delete_if_i, select_i,
each_pair_i, env_each, env_reject_bang, env_select,
env_update_i): ditto.
* struct.c (rb_struct_each_pair): ditto.
* eval.c (top_include): should include module in the current self,
not ruby_top_self. [ruby-dev:20198]
* eval.c (top_include): stop inclusion to ruby_wrapper; give
warning.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
since it works as copy constructor.
* eval.c (rb_add_method): initialize_copy should always be
private, like initialize.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
argument is false; list all methods otherwise.
* numeric.c (num_step): double epsilon to make "1.1.step(1.5,0.1)"
to work.
* ext/gdbm/gdbm.c (fgdbm_values_at): new method to replace
select(index..).
* ext/sdbm/init.c (fsdbm_values_at): ditto.
* ext/dbm/dbm.c (fdbm_values_at): ditto.
* ext/dbm/dbm.c (DBM::VERSION): defined.
* ext/gdbm/testgdbm.rb: replace select with values_at.
* ext/sdbm/testsdbm.rb: ditto.
* ext/dbm/testdbm.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* hash.c (rb_hash_values_at,env_values_at): ditto.
* re.c (match_values_at): ditto.
* struct.c (rb_struct_values_at): ditto.
* re.c (match_select): add iterator behavior.
* ext/curses/curses.c, ext/digest/sha2/sha2.c, ext/iconv/iconv.c,
ext/racc/cparse/cparse.c: include "ruby.h" at the top to shut up
"_FILE_OFFSET_BITS redefined" warning on Solaris.
* class.c (rb_class_protected_instance_methods): now gives
warnings to show migration path. The default will be reversed
on Jan 2004.
* numeric.c (num_step): "1.1.step(1.5,0.1)" to work.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* range.c (range_check): <=> returns nil for invalid values;
should check.
* regex.c (re_compile_pattern): should not set RE_OPTIMIZE_ANCHOR,
if anychar_repeat is enclosed by parentheses.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* parse.y (cmd_brace_block): new tLBRACE_ARG block rule
* parse.y (command): can take optional cmd_brace_block; use %prec
to resolve shift/reduce conflict. (ruby-bugs-ja PR#372)
* eval.c (ruby_finalize): trace_func should be cleared here (after
executing exit procs and finalizers).
* eval.c (rb_define_alloc_func): new allocation framework, based
on Nobu's work [ruby-dev:19116]. "allocate" method is no longer
used for object allocation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
still left; removed.
* sprintf.c (rb_f_sprintf): should not prepend '0' if width > prec
for example "%5.3d".
* process.c (Init_process): add Process.exit and Process.abort
* pack.c (utf8_to_uv): raise ArgumentError for malformed/redundant
UTF-8 sequences.
* process.c (last_status_set): add pid attribute to Process::Status.
* pack.c (uv_to_utf8): limit maximum length of the encoded string
to 6 bytes, even when the platform supports 8 bytes long integers.
* pack.c (utf8_to_uv): do not decode sequences longer than 6 bytes.
* object.c (copy_object): use "copy_object" method, not "become".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
ext/socket/socket.c: differentiate long and int; use proper
printf type specifiers and do casts where appropriate.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
variable table if it existes.
* class.c (rb_make_metaclass): metaclass of a metaclass is a
metaclass itself.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* eval.c (rb_alias): prohibit making an alias named "allocate" if
klass is a metaclass.
* string.c (rb_string_value_ptr): StringValuePtr() should never
return NULL pointer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* file.c (rb_find_file_ext): ditto.
* range.c (range_eq): class check should be based on range.class,
instead of Range to work with Range.dup.
* range.c (range_eql): ditto.
* class.c (rb_mod_dup): need to preserve metaclass and flags.
* object.c (rb_cstr_to_dbl): had a buffer overrun.
* marshal.c (w_class): integrate singleton check into a funciton
to follow DRY principle.
* marshal.c (w_uclass): should check singleton method.
* object.c (rb_obj_dup): dmark and dfree functions must be match
for T_DATA type.
* object.c (rb_obj_dup): class of the duped object must be match
to the class of the original.
* re.c (rb_reg_quote): do not escape \t, \f, \r, \n, for they are
not regular expression metacharacters.
* time.c (time_s_alloc): use time_free instead of free (null check,
also serves for type mark).
* time.c (time_s_at): check dfree function too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* eval.c (set_method_visibility): should have clear cache forq
updated visibility.
* numeric.c (flo_to_s): default format precision to be "%.16g".
* util.c (ruby_strtod): use own strtod(3) implementation to avoid
locale hell. Due to this change "0xff".to_f no longer returns 255.0
* eval.c (avalue_to_yvalue): new function to distinguish yvalue
(no-arg == Qundef) from svalue (no-arg == Qnil).
* eval.c (rb_yield_0): use avalue_to_yvalue().
* eval.c (assign): warn if val == Qundef where it means rhs is
void (e.g. yield without value or call without argument).
* parse.y (value_expr): need not to warn for WHILE and UNTIL,
since they can have return value (via valued break).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* io.c (io_write): check error if written data is less than
specified size to detect EPIPE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
specified instance variable is not defined.
* variable.c (generic_ivar_remove): modified to check ivar
existence.
* file.c (rb_file_s_extname): new method based on the proposal
(and patch) from Mike Hall. [new]
* eval.c (error_handle): default to 1 unless status is set.
* eval.c (ruby_options): guard error_handle() with PROT_NONE.
* eval.c (ruby_stop): ditto.
* math.c (math_acosh): added. [new]
* math.c (math_asinh): ditto.
* math.c (math_atanh): ditto.
* struct.c (rb_struct_each_pair): method added. [new]
* class.c (rb_singleton_class): wrong condition; was creating
unnecessary singleton class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
class (it's redefined in the subclasses).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* class.c (rb_define_class_id): use rb_make_metaclass(), don't
call Class#inherited hook.
* class.c (rb_class_inherited): [new]
* class.c (rb_define_class): call Class#inherited hook here.
* class.c (rb_define_class_under): ditto after class path is set.
* class.c (rb_singleton_class): use rb_make_metaclass().
* eval.c (rb_eval): same as rb_define_class_under().
* intern.h: prototypes of rb_make_metaclass() and
rb_class_inherited().
* object.c (rb_class_s_new): use rb_make_metaclass() and
rb_class_inherited().
* object.c (Init_Object): use rb_make_metaclass().
* struct.c (make_struct): use rb_class_inherited().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
regexp if it's a string.
* array.c (rb_ary_select): Array#select(n,m,...) now works like
Array#indexes(n,m,..). [new, experimental]
* hash.c (rb_hash_select): ditto.
* hash.c (env_select): ditto.
* re.c (match_select): ditto.
* struct.c (rb_struct_select): ditto.
* gc.c (STR_ASSOC): use FL_USER3 instead of FL_USER2.
* parse.y (str_extend): make up pushback call.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
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.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* eval.c (rb_f_require): should check static linked libraries
before raising exception.
* array.c (rb_ary_equal): check identiry equality first.
* string.c (rb_str_equal): ditto.
* struct.c (rb_struct_equal): ditto.
* numeric.c (Init_Numeric): undef Integer::new.
* eval.c (rb_eval): NODE_WHILE should update result for each
conditional evaluation.
* eval.c (rb_eval): NODE_UNTIL should return last evaluated value
(or value given to break).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* marshal.c (w_object): should retrieve __member__ data from
non-singleton class.
* variable.c (rb_cvar_get): class variable override check added.
* variable.c (rb_cvar_set): ditto
* variable.c (rb_cvar_declare): ditto.
* parse.y (parse_regx): handle backslash escaping of delimiter here.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
status.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
creating brand new exception object of the receiver.
* eval.c (rb_eval_string_wrap): extend new ruby_top_self, not
original self.
* eval.c (rb_eval_cmd): respect ruby_wrapper if set.
* eval.c (eval): do not update ruby_class unless scope is not
provided.
* eval.c (eval): preserve wrapper information.
* eval.c (proc_invoke): ditto.
* eval.c (block_pass): ditto.
* parse.y (void_expr): too much warnings for void context
(e.g. foo[1] that can be mere Proc call).
* error.c (rb_name_error): new function to raise NameError with
name attribute set.
* eval.c (rb_f_missing): set name and args in the exception
object. [new]
* error.c (name_name): NameError#name - new method.
* error.c (nometh_args): NoMethodError#args - new method.
* lex.c (rb_reserved_word): lex_state after tRESCUE should be
EXPR_MID.
* gc.c (add_heap): allocation size of the heap unit is doubled for
each allocation.
* dir.c (isdelim): space, tab, and newline are no longer
delimiters for glob patterns.
* eval.c (svalue_to_avalue): new conversion scheme between single
value and array values.
* eval.c (avalue_to_svalue): ditto.
* eval.c (rb_eval): REXPAND now uses avalue_to_svalue(), return
and yield too.
* eval.c (rb_yield_0): use avalue_to_svalue().
* eval.c (proc_invoke): Proc#call gives avaules, whereas
Proc#yield gives mvalues.
* eval.c (bmcall): convert given value (svalue) to avalue.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* regex.c (re_compile_pattern): * \1 .. \9 should be
backreferences always.
* regex.c (re_match): backreferences corresponding to
unclosed/unmatched parentheses should fail always.
* string.c (rb_str_cat): use rb_str_buf_cat() if possible. [new]
* string.c (rb_str_append): ditto.
* string.c (rb_str_buf_cat): remove unnecessary check (type,
taint, modify) to gain performance.
* string.c (rb_str_buf_append): ditto.
* string.c (rb_str_buf_new): buffering string function. [new]
* string.c (rb_str_buf_append): ditto.
* string.c (rb_str_buf_cat): ditto.
* time.c (make_time_t): local time adjustment revised.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/dbm/extconf.rb: allow specifying dbm-type explicitly.
* ext/dbm/extconf.rb: avoid gdbm if possible, because it leaks
memory, whereas gdbm.so doesn't. potential incompatibility.
* string.c (rb_str_insert): new method.
* parse.y (yylex): lex_state after RESCUE_MOD should be EXPR_BEG.
* array.c (rb_ary_insert): new method.
* array.c (rb_ary_update): new utility function.
* io.c (set_outfile): should check if closed before assignment.
* eval.c (rb_eval): should preserve value of ruby_errinfo.
* eval.c (rb_thread_schedule): infinite sleep should not cause
dead lock.
* array.c (rb_ary_flatten_bang): proper recursive detection.
* eval.c (yield_under): need not to prohibit at safe level 4.
* pack.c (pack_pack): p/P packs nil into NULL.
* pack.c (pack_unpack): p/P unpacks NULL into nil.
* pack.c (pack_pack): size check for P template.
* ruby.c (set_arg0): wrong predicate when new $0 value is bigger
than original space.
* gc.c (id2ref): should use NUM2ULONG()
* object.c (rb_mod_const_get): check whether name is a class
variable name.
* object.c (rb_mod_const_set): ditto.
* object.c (rb_mod_const_defined): ditto.
* marshal.c (w_float): precision changed to "%.16g"
* eval.c (rb_call0): wrong retry behavior.
* numeric.c (fix_aref): a bug on long>int architecture.
* eval.c (rb_eval_string_wrap): should restore ruby_wrapper.
* regex.c (re_compile_pattern): char class at either edge of range
should be invalid.
* eval.c (handle_rescue): use === to compare exception match.
* error.c (syserr_eqq): comparison between SytemCallErrors should
based on their error numbers.
* eval.c (safe_getter): should use INT2NUM().
* bignum.c (rb_big2long): 2**31 cannot fit in 31 bit long.
* regex.c (calculate_must_string): wrong length calculation.
* eval.c (rb_thread_start_0): fixed memory leak.
* parse.y (none): should clear cmdarg_stack too.
* io.c (rb_fopen): use setvbuf() to avoid recursive malloc() on
some platforms.
* file.c (rb_stat_dev): device functions should honor stat field
types (except long long such as dev_t).
* eval.c (rb_mod_nesting): should not push nil for nesting array.
* eval.c (rb_mod_s_constants): should not search array by
rb_mod_const_at() for nil (happens for singleton class).
* class.c (rb_singleton_class_attached): should modify iv_tbl by
itself, no longer use rb_iv_set() to avoid freeze check error.
* variable.c (rb_const_get): error message "uninitialized constant
Foo at Bar::Baz" instead of "uninitialized constantBar::Baz::Foo".
* eval.c (rb_mod_included): new hook called from rb_mod_include().
* io.c (opt_i_set): should strdup() inplace_edit string.
* eval.c (exec_under): need to push cref too.
* eval.c (rb_f_missing): raise NameError for "undefined local
variable or method".
* error.c (Init_Exception): new exception NoMethodError.
NameError moved under ScriptError again.
* eval.c (rb_f_missing): use NoMethodError instead of NameError.
* file.c (Init_File): should redifine "new" class method.
* eval.c (PUSH_CREF): sharing cref node was problematic. maintain
runtime cref list instead.
* eval.c (rb_eval): copy defn node before registering.
* eval.c (rb_load): clear ruby_cref before loading.
* variable.c (rb_const_get): no recursion to show full class path
for modules.
* eval.c (rb_set_safe_level): should set safe level in curr_thread
as well.
* eval.c (safe_setter): ditto.
* object.c (rb_obj_is_instance_of): nil belongs to false, not true.
* time.c (make_time_t): proper (I hope) daylight saving time
handling for both US and Europe. I HATE DST!
* eval.c (rb_thread_wait_for): non blocked signal interrupt should
stop the interval.
* eval.c (proc_eq): class check aded.
* eval.c (proc_eq): typo fixed ("return" was ommitted).
* error.c (Init_Exception): move NameError under StandardError.
* class.c (rb_mod_clone): should copy method bodies too.
* bignum.c (bigdivrem): should trim trailing zero bdigits of
remainder, even if dd == 0.
* file.c (check3rdbyte): safe string check moved here.
* time.c (make_time_t): remove HAVE_TM_ZONE code since it
sometimes reports wrong time.
* time.c (make_time_t): remove unnecessary range check for
platforms where negative time_t is available.
* process.c (proc_waitall): should push Process::Status instead of
Finuxm status.
* process.c (waitall_each): should add all entries in pid_tbl.
these changes are inspired by Koji Arai. Thanks.
* process.c (proc_wait): should not iterate if pid_tbl is 0.
* process.c (proc_waitall): ditto.
* numeric.c (flodivmod): a bug in no fmod case.
* process.c (pst_wifsignaled): should apply WIFSIGNALED for status
(int), not st (VALUE).
* io.c (Init_IO): value of $/ and $\ are no longer restricted to
strings. type checks are done on demand.
* class.c (rb_include_module): module inclusion should be check
taints.
* ruby.h (STR2CSTR): replace to StringType() and StringTypePtr().
* ruby.h (rb_str2cstr): ditto.
* eval.c (rb_load): should not copy topleve local variables. It
cause variable/method ambiguity. Thanks to L. Peter Deutsch.
* class.c (rb_include_module): freeze check at first.
* eval.c (rb_attr): sprintf() and rb_intern() moved into
conditional body.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
and delimiters.
* dir.c (remove_backslases): remove backslashes from path before
calling stat(2).
* dir.c (dir_s_glob): call rb_yield directly (via push_pattern) if
block is given to the method.
* dir.c (push_pattern): do not call rb_ary_push; yield directly.
* eval.c (blk_copy_prev): reduced ALLOC_N too much.
* eval.c (frame_dup): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|