Sun Nov 18 19:37:55 2001 Nobuyoshi Nakada * parse.y: needless conditionals. * parse.y (parse_regx): parse error at unterminated regex /#{. (ruby-bugs-ja:PR#142) Thu Nov 15 15:29:39 2001 Nobuyoshi Nakada * array.c (rb_ary_join): non-nil separator must be converted to String. and separators' total length was wrong. Thu Nov 15 03:37:17 2001 Usaku Nakamura * hash.c (ruby_setenv): remove USE_WIN32_RTL_ENV block since it's obsoleted. * win32/win32.c, win32/win32.h: sort out #if 0 - #endif or others. Wed Nov 14 01:12:07 2001 Usaku Nakamura * win32/win32.c (waitpid): fix wait count. * win32/win32.c (poll_child_status): rename from wait_child(). Tue Nov 13 19:50:30 2001 WATANABE Hirofumi * configure.in: do not override CC if set. Tue Nov 13 16:49:16 2001 Usaku Nakamura * win32/win32.c (mypopen): return error status instead of calling rb_sys_fail(). * win32/win32.c (do_spawn): ditto. Tue Nov 13 14:39:11 2001 WATANABE Tetsuya * signal.c (sighandle): should not re-register sighandler if POSIX_SIGNAL is defined. Tue Nov 13 12:55:59 2001 Usaku Nakamura * win32/win32.c (do_spawn): use CreateChild() instead of calling CreateProcess() directly. Original patches comes from Patrick Cheng. * win32/win32.c (mypopen): ditto. * win32/win32.c (mypclose): use rb_syswait() instead of waiting in this function. * win32/win32.c (waitpid): use wait_child() instead of _cwait(). * win32/win32.c (CreateChild): added. [new] * win32/win32.c (wait_child): added. [new] * win32/win32.c (FindFirstChildSlot): added. [new] * win32/win32.c (FindChildSlot): added. [new] * win32/win32.c (FindPipedChildSlot): added. [new] * win32/win32.c (CloseChildHandle): added. [new] * win32/win32.c (FindFreeChildSlot): added. [new] Tue Nov 13 12:38:12 2001 Usaku Nakamura * hash.c (envix): use GET_ENVIRON and FREE_ENVIRON to get environment variables list. * hash.c (env_keys): ditto. * hash.c (env_each_key): ditto. * hash.c (env_values): ditto. * hash.c (env_keys): ditto. * hash.c (env_each_value): ditto. * hash.c (env_each): ditto. * hash.c (env_inspect): ditto. * hash.c (env_to_a): ditto. * hash.c (env_size): ditto. * hash.c (env_empty_p): ditto. * hash.c (env_has_value): ditto. * hash.c (env_index): ditto. * hash.c (env_to_hash): ditto. * win32/win32.c (win32_getenv): use static buffer. * win32/win32.c, win32/win32.h (win32_get_environ): get environment variables list. [new] * win32/win32.c, win32/win32.h (win32_free_environ): free environment variables list. [new] Mon Nov 12 16:48:48 2001 Yukihiro Matsumoto * eval.c (error_print): errat array may be empty. Mon Nov 12 01:30:37 2001 Yukihiro Matsumoto * eval.c (rb_eval_cmd): should not upgrade safe level unless explicitly specified by argument newly added. * signal.c (sig_trap): should not allow tainted trap closure. * variable.c (rb_f_trace_var): should not allow trace_var on safe level higher than 3. * variable.c (rb_f_trace_var): should not allow tainted trace closure. Sun Nov 11 00:12:23 2001 TAMURA Takashi * gc.c: do not use static stack until system stack overflows. Sat Nov 10 03:57:09 2001 Yukihiro Matsumoto * eval.c (eval): should call Exception#exception instead of calling rb_exc_new3() directly. * error.c (exc_exception): set "mesg" directly to the clone. it might be better to set mesg via some method for flexibility. Sat Nov 10 00:14:24 2001 Yukihiro Matsumoto * variable.c (cvar_override_check): should print original module name, if 'a' is T_ICLASS. * parse.y (yylex): float '1_.0' should not be allowed. * variable.c (var_getter): should care about var as Qfalse (ruby-bugs#PR199). Fri Nov 9 13:50:06 2001 Usaku Nakamura * win32/config.status.in: make CFLAGS same as Makefile's one. Thu Nov 8 20:20:37 2001 Nobuyoshi Nakada * eval.c (rb_trap_eval): avoid annoying warning with signal. [ruby-talk:23225] * eval.c (rb_call0): adjust caller source file/line while evaluating optional arguments. Thu Nov 8 18:41:58 2001 Yukihiro Matsumoto * array.c (cmpint): <=> or block for {min,max} may return bignum. * array.c (sort_1): use rb_compint. * array.c (sort_2): ditto. * enum.c (min_ii): ditto. * enum.c (min_ii): ditto. * enum.c (max_i): ditto. * enum.c (max_ii): ditto. Thu Nov 8 18:21:02 2001 Yukihiro Matsumoto * file.c (path_check_1): forgot to initialize 'p'. Thu Nov 8 14:52:15 2001 Tanaka Akira * mkconfig.rb: use String#dump to generate Ruby string literal. Thu Nov 8 15:46:54 2001 Yukihiro Matsumoto * range.c (range_eql): should override 'eql?' * array.c (rb_ary_hash): should override 'hash' too. Tue Nov 6 14:38:48 2001 Yukihiro Matsumoto * process.c (security): always give warning for insecure PATH. * dir.c (my_getcwd): do not rely on MAXPATHLEN. * file.c (rb_file_s_readlink): ditto. * file.c (path_check_1): ditto. Tue Nov 6 14:17:14 2001 Amos Gouaux * lib/net/imap.rb (getquota_response): use astring for mailbox names. * lib/net/imap.rb (getacl_response): ditto. Mon Nov 5 17:09:55 2001 Yukihiro Matsumoto * eval.c (rb_yield_0): should not call rb_f_block_given_p(). Sat Nov 3 23:33:18 2001 Yukihiro Matsumoto * string.c (rb_str_chomp_bang): should terminate string by NUL. Sat Nov 3 22:28:51 2001 Keiju Ishitsuka * matrix.rb (Matrix#column_vectors, Matrix#row_vectors): ditto bug. this bug report and fix by tsutomu@nucba.ac.jp. * forwardable.rb: change raise to Kernel::raise Sat Nov 3 10:11:57 2001 Yukihiro Matsumoto * eval.c (rb_yield_0): better error message. Thu Nov 1 14:08:42 2001 Yukihiro Matsumoto * bignum.c (rb_big_aref): idx may be a Bignum. * numeric.c (fix_aref): negative index must return zero. Thu Nov 1 13:23:50 2001 Yukihiro Matsumoto * gc.c (gc_mark_children): should NOT treat last element of structs and arrays specially. Wed Oct 31 16:59:25 2001 Yukihiro Matsumoto * eval.c (exec_under): should initialize ruby_frame->self; Wed Oct 31 15:09:28 2001 Yukihiro Matsumoto * eval.c (POP_VARS): should not set DVAR_DONT_RECYCLE if _old ruby_vars is already force_recycled. Wed Oct 31 10:28:49 2001 Yukihiro Matsumoto * gc.c (rb_gc): handles mark stack overflow. * gc.c (PUSH_MARK): use static mark stack, no more recursion. Wed Oct 31 02:44:06 2001 Wakou Aoyama * lib/cgi.rb: CGI::Cookie::parse(): Ignore duplicate keys caused by Netscape bug. Tue Oct 30 18:21:51 2001 Usaku Nakamura * win32/mkexports.rb: follow the change of rb_io_puts(). Tue Oct 30 14:04:04 2001 Yukihiro Matsumoto * 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. Mon Oct 29 16:08:30 2001 Yukihiro Matsumoto * regex.c (re_compile_pattern): should preverve p0 value. Mon Oct 29 14:56:44 2001 Usaku Nakamura * 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. Mon Oct 29 07:57:31 2001 Yukihiro Matsumoto * parse.y (str_extend): should 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. Sat Oct 27 23:01:19 2001 Yukihiro Matsumoto * bignum.c (rb_big_eq): convert Bignum to Float, instead of reverse. Fri Oct 26 06:19:29 2001 Yukihiro Matsumoto * 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(). Thu Oct 25 10:28:15 2001 Yukihiro Matsumoto * eval.c (rb_eval_cmd): should not invoke "call" with a block on any occasion. Wed Oct 24 03:25:31 2001 Yukihiro Matsumoto * numeric.c (fix_aref): idx may be a Bignum. Tue Oct 23 01:21:19 2001 Nobuyoshi Nakada * 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. Tue Oct 23 01:15:43 2001 K.Kosako * 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. Mon Oct 22 18:53:55 2001 Masahiro Tanaka * numeric.c (num_remainder): a bug in Numeric#remainder. Mon Oct 22 15:21:55 2001 Yukihiro Matsumoto * 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. Fri Oct 19 23:40:37 2001 Nobuyoshi Nakada * variable.c (remove_trace): should not access already freed area. * variable.c (rb_f_untrace_var): fix memory leak. Fri Oct 19 17:55:14 2001 Nobuyoshi Nakada * 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) Wed Oct 17 14:12:50 2001 Nobuyoshi Nakada * 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. Tue Oct 16 23:29:26 2001 Yukihiro Matsumoto * 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. Tue Oct 16 21:38:15 2001 Nobuyoshi Nakada * 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] Tue Oct 16 13:18:47 2001 Nobuyoshi Nakada * object.c (rb_mod_initialize): optional block with Module.new. [new] (from 2001-10-10) Tue Oct 16 00:07:06 2001 Nobuyoshi Nakada * parse.y (yylex): disallow alpha-numeric and mbchar for terminator of %string. Mon Oct 15 18:00:05 2001 Pit Capitain * string.c (rb_str_index): wrong increment for non alphanumeric string. Mon Oct 15 05:23:02 2001 Koji Arai * sprintf.c (rb_f_sprintf): support "%B". Wed Oct 10 03:11:47 2001 Yukihiro Matsumoto * 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. Tue Oct 9 18:40:35 2001 WATANABE Hirofumi * process.c (Init_process): activate the case NT. Tue Oct 9 17:08:00 2001 Nobuyoshi Nakada * 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. Sat Oct 6 23:07:08 2001 Yukihiro Matsumoto * eval.c (rb_eval): NODE_MATCH3 was confusing left and right. sigh. Fri Oct 5 15:19:46 2001 Yukihiro Matsumoto * marshal.c (w_unique): should not dump anonymous class. Fri Oct 5 11:59:13 2001 Nobuyoshi Nakada * eval.c (proc_s_new): revived. * eval.c (Init_Proc): define Proc.new instead of Proc.allocate to inhibit from creating uninitialized Proc. Thu Oct 4 14:11:03 2001 WATANABE Hirofumi * ext/socket/socket.c (ruby_connect): EALREADY is the equivalent for EINPROGRESS in ws2_32.lib. Wed Oct 3 20:11:06 2001 Nobuyoshi Nakada * re.c (rb_reg_s_alloc): avoid inifinte recursion. Wed Oct 3 16:49:49 2001 Nobuyoshi Nakada * ext/gdbm/gdbm.c (rb_gdbm_fetch): str is a VALUE now. Wed Oct 3 13:32:06 2001 Yukihiro Matsumoto * 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. Tue Oct 2 19:12:47 2001 WATANABE Hirofumi * lib/ftools.rb (catname): allow trailing '/' for the destination. Tue Oct 2 18:31:20 2001 Yukihiro Matsumoto * eval.c (rb_eval): should override existing class. Tue Oct 2 17:08:49 2001 Yukihiro Matsumoto * object.c (rb_obj_alloc): general instance allocation framework. use of NEWOBJ() is deprecated except within 'allocate' method. Tue Oct 2 08:04:52 2001 Nobuyoshi Nakada * marshal.c (r_object): TYPE_UCLASS check should be inversed. Mon Oct 1 19:18:54 2001 Tanaka Akira * ext/socket/socket.c (unix_addr): getsockname(2) may result len = 0. * ext/socket/socket.c (unix_peeraddr): getpeername(2) may result len = 0. Mon Oct 1 09:59:07 2001 Yukihiro Matsumoto * string.c (rb_str_subpat_set): support function for new argument pattern String#[re,offset] = val. [new] Sat Sep 29 02:30:06 2001 Yukihiro Matsumoto * eval.c (POP_BLOCK): rb_gc_force_recycle() was called too much. Should not be called if SCOPE_DONT_RECYCLE is set. Wed Sep 26 22:21:52 2001 Yukihiro Matsumoto * string.c (rb_str_aref_m): new argument pattern String#[re,offset]. [new] Wed Sep 26 19:02:39 2001 Guy Decoux * parse.y: allow 'primary[] = arg' Tue Sep 25 10:46:42 2001 Usaku Nakamura * win32/win32.c (isInternalCmd): check return value of NtMakeCmdVector (Tietew 's patch). Mon Sep 24 00:55:06 2001 Yukihiro Matsumoto * 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] Sat Sep 22 22:16:08 2001 Yukihiro Matsumoto * 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. Sat Sep 22 12:13:39 2001 Yukihiro Matsumoto * eval.c (eval): retrieves file, line information from binding. Thu Sep 20 21:25:00 2001 Nobuyoshi Nakada * eval.c (MATCH_DATA): access via rb_svar(). Thu Sep 20 15:20:00 2001 Nobuyoshi Nakada * eval.c, intern.h (rb_svar): return reference to special variable from local variable index. [new] * eval.c (rb_eval): use rb_svar() for NODE_FLIP{2,3}. * parse.y (rb_(backref|lastline)_(get|set)): access via rb_svar(). * eval.c (proc_invoke): push dynamic variables. * eval.c (rb_thread_yield): push special variables as dynamic variables($_, $~ and FLIP states). Thu Sep 20 15:20:00 2001 Nobuyoshi Nakada * intern.h, parse.y (rb_is_local_id): return true if the ID is local symbol. [new] * parse.y (internal_id): make new ID for internal use. [new] * parse.y (cond0): allocate internal ID for NODE_FLIP{2,3}. * eval.c (rb_f_local_variables): use rb_is_local_id() to select visible local variables. Thu Sep 20 15:20:00 2001 Nobuyoshi Nakada * eval.c (rb_thread_start_0): SCOPE_SHARED is removed. * eval.c, intern.h (rb_thread_scope_shared_p): removed. special variables are no longer shared by threads. * re.c (rb_reg_search): MATCHDATA is no longer shared by threads. Tue Sep 18 11:44:26 2001 Yukihiro Matsumoto * string.c (rb_str_init): String.new() => "" [new] Tue Sep 11 20:53:56 2001 Yukihiro Matsumoto * dir.c (dir_path): new method. * dir.c (dir_initialize): wrap DIR into struct, along with path information. Sat Sep 8 07:13:42 2001 Wakou Aoyama * lib/net/telnet.rb: waitfor(): improvement. thanks to nobu.nakada@nifty.ne.jp Sat Sep 8 04:34:17 2001 Yukihiro Matsumoto * eval.c (rb_thread_restore_context): save current value of lastline and lastmatch in the thread struct for later restore. * eval.c (rb_thread_save_context): restore lastline and lastmatch. Fri Sep 7 11:27:56 2001 akira yamada * numeric.c (flo_to_s): should handle negative float value. Fri Sep 7 09:44:44 2001 Wakou Aoyama * lib/net/telnet.rb: waitfor(): bug fix. Fri Sep 7 07:11:34 2001 Wakou Aoyama * lib/cgi.rb: CGI#doctype(): bug fix (html4Fr). * lib/net/telnet.rb, lib/cgi.rb: remove VERSION, RELEASE_DATE, VERSION_CODE, RELEASE_CODE. please use REVISION. * lib/cgi.rb: CGI#header(): bug fix. * lib/net/telnet.rb, lib/cgi.rb: concat --> += Thu Sep 6 17:38:18 2001 Nobuyoshi Nakada * dir.c (dir_s_chdir): raise if environment variable HOME/LOGDIR not set. * dir.c (glob_helper): avoid infinite loop on a file name with wildcard characters. (ruby-bugs#PR177) Thu Sep 6 14:25:15 2001 Akinori MUSHA * ext/digest/digest.c (rb_digest_base_s_hexdigest): remove a debug print. Thu Sep 6 13:56:14 2001 Akinori MUSHA * ext/digest/digest.c (rb_digest_base_s_digest, rb_digest_base_s_hexdigest): ensure that a string is given. Thu Sep 6 13:28:51 2001 WATANABE Hirofumi * lib/jcode.rb (_regexp_quote): fix quote handling, again. Thu Sep 6 07:28:56 2001 Nobuyoshi Nakada * file.c (rb_find_file_ext): add const qualifiers to ext. * intern.h (rb_find_file_ext): ditto. Thu Sep 6 07:16:14 2001 Nobuyoshi Nakada * ext/socket/socket.c (Init_socket): remove duplicating constants. Thu Sep 6 03:15:24 2001 Yukihiro Matsumoto * class.c (rb_include_module): should check whole ancestors to avoid duplicate module inclusion. Wed Sep 5 20:02:27 2001 Shin'ya Adzumi * string.c (trnext): should check backslash before updating "now" position. Wed Sep 5 17:41:11 2001 WATANABE Hirofumi * lib/jcode.rb (_regexp_quote): fix quote handling. Tue Sep 4 01:03:18 2001 Yukihiro Matsumoto * re.c (Init_Regexp): to_s to be alias to inspect. Mon Sep 3 22:46:59 2001 Yukihiro Matsumoto * parse.y (yylex): should support 'keyword='. Mon Sep 3 20:26:08 2001 Nobuyoshi Nakada * intern.h (rb_find_file_ext): changed from rb_find_file_noext(). Mon Sep 3 15:12:49 2001 Yukihiro Matsumoto * ruby.c (proc_options): should not adjust argc/argv if -e option is supplied. Mon Sep 3 14:11:17 2001 Akinori MUSHA * error.c: unbreak the build on *BSD with gcc 3.0.1 by removing the conflicting declaration of sys_nerr for *BSD. Sat Sep 1 18:50:07 2001 Yukihiro Matsumoto * ruby.c (proc_options): should not alter origargv[]. * ruby.c (set_arg0): long strings for $0 dumped core. Sat Sep 1 09:50:54 2001 Nobuyoshi Nakada * ruby.c (set_arg0): prevent SEGV when val is longer than the original arguments. * ruby.c (ruby_process_options): initialize total length of original arguments at first. Sat Sep 1 14:05:28 2001 Brian F. Feldman * ruby.c (set_arg0): use setprogtitle() if it's available. Sat Sep 1 03:49:11 2001 Yukihiro Matsumoto * io.c (rb_io_popen): accept integer flags as mode. Fri Aug 31 19:46:05 2001 Nobuyoshi Nakada * file.c (rb_find_file_ext): extension table can be supplied from outside. renamed. * eval.c (rb_f_require): replace rb_find_file_noext by rb_find_file_ext. Fri Aug 31 19:26:55 2001 Nobuyoshi Nakada * eval.c (rb_provided): should also check feature without extension. Fri Aug 31 13:06:33 2001 Yukihiro Matsumoto * numeric.c (flo_to_s): do not rely on decimal point to be '.' Wed Aug 29 02:18:53 2001 Yukihiro Matsumoto * parse.y (yylex): ternary ? can be followed by newline. Tue Aug 28 00:40:48 2001 Yukihiro Matsumoto * eval.c (rb_f_require): should check static linked libraries before raising exception. Fri Aug 24 15:17:40 2001 Yukihiro Matsumoto * array.c (rb_ary_equal): check identiry equality first. * string.c (rb_str_equal): ditto. * struct.c (rb_struct_equal): ditto. Fri Aug 24 14:38:17 2001 Usaku Nakamura * dln.c (dln_strerror): fix a bug that sometimes made null message on win32 (Tietew 's patch). * win32/win32.c (mystrerror): ditto. Fri Aug 24 03:15:07 2001 Yukihiro Matsumoto * numeric.c (Init_Numeric): undef Integer::new. Fri Aug 24 00:46:44 2001 Yukihiro Matsumoto * 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). Thu Aug 23 21:59:38 2001 Nobuyoshi Nakada * enum.c (sort_by_i): fix typo. Thu Aug 23 10:10:59 2001 Yukihiro Matsumoto * eval.c (is_defined): should not dump core for "defined?(())". * eval.c (umethod_bind): recv can be an instance of descender of oklass if oklass is a Module. Wed Aug 22 23:20:03 2001 Yukihiro Matsumoto * hash.c (rb_hash_equal): check identiry equality first. Wed Aug 22 19:58:59 2001 Nobuyoshi Nakada * eval.c (intersect_fds): counts intersecting fds. * eval.c (rb_thread_schedule): only fds requested by each thread count as select_value. Tue Aug 21 22:28:09 2001 Nobuyoshi Nakada * file.c (group_member): should check real gid only. * file.c (eaccess): do not cache euid, since effective euid may be changed via Process.euid=(). * file.c (eaccess): return -1 unless every specified access mode is permitted. Tue Aug 21 16:09:27 2001 Yukihiro Matsumoto * eval.c (rb_eval): while/until returns the value which is given to break. * parse.y (value_expr): using while/until/class/def as an expression is now gives a warning, not an error. Tue Aug 21 11:56:02 2001 Yukihiro Matsumoto * range.c (range_eqq): should compare strings based on magical increment (using String#upto), not dictionary order. Mon Aug 20 19:53:16 2001 WATANABE Hirofumi * ext/digest/sha2/extconf.rb: fix support for cross-compiling. * mkconfig.rb: fix support for autoconf 2.52. Mon Aug 20 17:24:15 2001 Yukihiro Matsumoto * enum.c (enum_sort_by): new method for Schewartzian transformed stable sort. Mon Aug 20 16:09:05 2001 Yukihiro Matsumoto * variable.c (mod_av_set): detect constant overriding for built-in classes/modules. Mon Aug 20 15:14:27 2001 Yukihiro Matsumoto * parse.y (tokadd_escape): escaped backslashes too much. Mon Aug 20 13:24:08 2001 Yukihiro Matsumoto * range.c (range_step): 'iter' here should be an array. Mon Aug 20 12:43:08 2001 Yukihiro Matsumoto * marshal.c (w_object): should retrieve __member__ data from non-singleton class. Sat Aug 18 23:11:14 2001 Yukihiro Matsumoto * variable.c (rb_cvar_get): class variable override check added. * variable.c (rb_cvar_set): ditto * variable.c (rb_cvar_declare): ditto. Fri Aug 17 12:13:48 2001 Minero Aoki * lib/net/protocol.rb: Protocol.new requires at least one arg. * lib/net/smtp.rb: ditto. * lib/net/pop.rb: ditto. * lib/net/http.rb: ditto. Fri Aug 17 00:49:51 2001 Yukihiro Matsumoto * parse.y (parse_regx): handle backslash escaping of delimiter here. Thu Aug 16 23:03:40 2001 Koji Arai * io.c: prevent recursive malloc calls on NEC UX/4800. * ext/socket/socket.c: ditto. Thu Aug 16 13:54:04 2001 Usaku Nakamura * ext/socket/socket.c (s_recvfrom): fix typo. Thu Aug 16 09:53:28 2001 Usaku Nakamura * ext/socket/socket.c (s_recvfrom): avoid VC++6 warning. Thu Aug 16 03:50:33 2001 Usaku Nakamura * win32/win32.c (NtCmdGlob): avoid VC++ warning. * lib/mkmf.rb: add -I$(srcdir) to CPPFLAGS. Wed Aug 15 04:59:15 2001 Akinori MUSHA * ext/digest/*/extconf.rb: really fix so that they build from any directory. Wed Aug 15 04:04:02 2001 Akinori MUSHA * ext/digest/sha2/extconf.rb: fix so that they build from any directory. Wed Aug 15 01:59:19 2001 Akinori MUSHA * ext/digest/defs.h: Define NO_UINT64_T instead of emitting an error to fail. * ext/digest/sha2/extconf.rb: Do not exit on error, and utilize NO_UINT64_T to detect if the system has a 64bit integer type. Tue Aug 14 21:14:07 2001 Akinori MUSHA * ext/digest/sha2/extconf.rb: do not create Makefile when no 64bit integer type is detected. Tue Aug 14 17:09:12 2001 Yukihiro Matsumoto * range.c (range_step): new method. Tue Aug 14 11:49:00 2001 TOYOFUKU Chikanobu * string.c (rb_str_cmp): remove needless conditional. Tue Aug 14 03:23:25 2001 Koji Arai * string.c (rb_str_lstrip_bang) `return Qnil' was missing. Mon Aug 13 14:16:46 2001 Akinori MUSHA * bignum.c, marshal.c: Detypo: s/SIZEOF_ING/SIZEOF_INT/. Sun Aug 12 15:01:58 2001 Nobuyoshi Nakada * string.c (rb_str_cat): fix buffer overflow. * string.c (rb_str_append): nothing to append actually when `str2' is empty. Sat Aug 11 14:43:47 2001 Tanaka Akira * array.c (rb_inspecting_p): initialize inspect_key if it is not initialized yet. Fri Aug 10 22:14:37 2001 Yukihiro Matsumoto * parse.y (cond0): operands of logical operators are not treated as conditional expresion anymore, but propagate conditional status if used in conditionals. Tue Aug 7 09:10:32 2001 Usaku Nakamura * win32/win32.h: fix problems with BC++ (ruby-bugs#PR161). Mon Aug 6 23:47:46 2001 Nobuyoshi Nakada * pack.c (pack_pack): associates p/P strings once at last (reverted to 1.26). * string.c (rb_str_associate): associates an Array at once, not but a String. realloc's when str_buf. Mon Aug 6 17:01:33 2001 Yukihiro Matsumoto * eval.c (rb_gc_mark_threads): should mark ruby_cref. Mon Aug 6 14:31:37 2001 Usaku Nakamura * numeric.c (num_divmod): fix typo. Mon Aug 6 03:29:03 2001 Yukihiro Matsumoto * string.c (rb_str_lstrip_bang): new method. * string.c (rb_str_rstrip_bang): new method. Mon Aug 6 00:35:03 2001 Guy Decoux * struct.c (rb_struct_modify): should check frozen and taint status. Sun Aug 5 19:28:39 2001 Nobuyoshi Nakada * string.c (rb_str_associate): should consider STR_ASSOC too. Sun Aug 5 07:46:18 2001 Nobuyoshi Nakada * eval.c (rb_undefined): do not recurse if method_missing is undefined. Thu Aug 2 21:37:32 2001 Yukihiro Matsumoto * process.c (proc_waitpid): now all arguments are optional. * process.c (Init_process): waitpid is now alias to wait. * process.c (Init_process): waitpid2 is now alias to wait2. * process.c (rb_waitpid): made public. * ext/pty/pty.c (pty_getpty): avoid disturbing SIGCHLD using thread and rb_waitpid. Thu Aug 2 11:23:07 2001 Yukihiro Matsumoto * process.c (proc_getpgrp): now takes no argument on all platforms. * process.c (proc_setpgrp): ditto. Thu Aug 2 01:29:42 2001 Nobuyoshi Nakada * file.c (strrdirsep): removed meaningless code. * file.c (rb_file_s_expand_path): reverted to 1.66. Wed Aug 1 16:17:47 2001 Yukihiro Matsumoto * ext/socket/socket.c (sock_s_pack_sockaddr_in): added Socket::pack_sockaddr_in(). [new] * ext/socket/socket.c (sock_s_pack_sockaddr_un): added Socket::pack_sockaddr_un(). [new] * ext/socket/socket.c (sock_s_pack_sockaddr_in): added Socket::unpack_sockaddr_in(). [new] * ext/socket/socket.c (sock_s_pack_sockaddr_un): added Socket::unpack_sockaddr_un(). [new] Wed Aug 1 15:42:16 2001 Usaku Nakamura * eval.c (ruby_run): avoid VC++ warning. Tue Jul 31 17:30:53 2001 Usaku Nakamura * marshal.c (Init_marshal): fix typos. Tue Jul 31 15:16:39 2001 Nobuyoshi Nakada * process.c (last_status_set): nothing returned, should be void. * ext/socket/socket.c (load_addr_info): ditto. Tue Jul 31 12:11:42 2001 Yukihiro Matsumoto * marshal.c (Init_marshal): new constant Marshal::MAJOR_VERSION and Marshal::MINOR_VERSION. Tue Jul 31 07:18:04 2001 Nobuyoshi Nakada * file.c (rb_file_s_expand_path): scans per path element not per byte/character, including fix of [ruby-talk:18152] and multi-byte pathname support. Tue Jul 31 11:52:10 2001 akira yamada * marshal.c (marshal_load): ruby_verbose test should be wrapped by RTEST(). Mon Jul 30 17:54:23 2001 Yukihiro Matsumoto * hash.c (rb_hash_index): should return nil (not the default value) if value is not in the hash. Mon Jul 30 12:55:47 2001 Yukihiro Matsumoto * numeric.c (num_div): new method added. alias to '/' which should be preserved even if '/' is redefined (e.g. by mathn). [new] Mon Jul 30 11:12:14 2001 Amos Gouaux * lib/net/imap.rb: added new commands for managing folder quotas and folder ACLs. Mon Jul 30 03:19:53 2001 Yukihiro Matsumoto * bignum.c (rb_cstr2inum): "0 ff".hex should return 0, not 255. Fri Jul 27 22:29:41 2001 Nobuyoshi Nakada * file.c (rb_file_s_expand_path): fixed using CharNext(). Fri Jul 27 18:07:27 2001 Yukihiro Matsumoto * eval.c (rb_provided): extension should be guessed using rb_find_file_noext(). * eval.c (rb_f_require): should call rb_feature_p() after extension completion. Fri Jul 27 16:25:52 2001 Yukihiro Matsumoto * eval.c (rb_eval): add CHECK_INTS before next, redo, retry to avoid potential uninterruptable infinite loop. Thu Jul 26 11:27:12 2001 WATANABE Hirofumi * file.c (rb_find_file_noext, rb_find_file): fix tilde expansion problem. Wed Jul 25 17:54:20 2001 Yukihiro Matsumoto * file.c (rb_file_s_expand_path): use CharNext() to expand. Wed Jul 25 17:16:26 2001 Akinori MUSHA * intern.h: add some missing function prototypes. Wed Jul 25 15:50:05 2001 Guy Decoux * file.c (rb_file_s_expand_path): should not expand "." and ".." not following dirsep. Wed Jul 25 12:15:32 2001 WATANABE Hirofumi * file.c (rb_find_file_noext): should update f by expanded path. * file.c (rb_find_file): ditto. Tue Jul 24 23:10:47 2001 Nobuyoshi Nakada * file.c (strrdirsep): multi-byte pathname and DOSish separater supprot. originally comes from Patrick Cheng. [new] * file.c (rb_file_s_basename, rb_file_s_dirname): use strrdirsep(). comes from Patrick Cheng. * file.c (is_absolute_path): restricted in DOSish absolute path with drive letter, and UNC support. originally comes from Patrick Cheng. * file.c (getcwd): define macro using getwd() unless provided. Tue Jul 24 19:23:15 2001 Akinori MUSHA * ext/extmk.rb.in, lib/mkmf.rb: dig the target subdirectory for lib/* files properly in case of create_makefile("dir/name"). Mon Jul 23 00:26:04 2001 Yukihiro Matsumoto * eval.c (rb_provide_feature): should not tweak extension used for loading. Sun Jul 22 21:16:43 2001 Akinori MUSHA * ext/extmk.rb.in, lib/mkmf.rb: introduce a couple of new make variables: CLEANFILES and DISTCLEANFILES. They'd typically be defined in a file "depend". Sat Jul 21 09:40:10 2001 Nobuyoshi Nakada * io.c (io_fread): use fread(3) if PENDING_COUNT is available. Fri Jul 20 22:55:01 2001 Akinori MUSHA * gc.c (ruby_xrealloc): fix a dangling bug which led memory reallocation to fail even though the second try after a GC succeeds. Fri Jul 20 03:00:46 2001 Akinori MUSHA * class.c (rb_mod_include_p): Module#include? added. [new] Fri Jul 20 01:05:50 2001 Yukihiro Matsumoto * re.c (ignorecase_setter): give warning on modifying $=. * string.c (rb_str_casecmp): new method. [new] * string.c (rb_str_eql): separated from rb_str_equal(), make it always be case sensitive. [new] * string.c (rb_str_hash): made it always be case sensitive. Thu Jul 19 13:03:15 2001 Nobuyoshi Nakada * eval.c (rb_f_require): should not include path in $" value * file.c (rb_find_file): should return 0 explicitly on failure. Tue Jul 17 11:44:40 2001 Usaku Nakamura * ruby.h: enable volatile directive with VC++. * regex.c: ditto. Tue Jul 17 06:01:12 2001 Minero Aoki * doc/net/smtp.rd.ja, pop.rd.ja, http.rd.ja: new files. * MANIFEST: add doc/net/{http,pop,smtp}.rd.ja. Tue Jul 17 11:22:01 2001 Yukihiro Matsumoto * regex.c (NUM_FAILURE_ITEMS): was confusing NUM_REG_ITEMS and NUM_NONREG_ITEMS, which have happened to be same value. Tue Jul 17 11:08:34 2001 Usaku Nakamura * ext/extmk.rb.in: modify RM macro because command.com/cmd.exe don't recognize single quotation as quote character. * lib/mkmf.rb: ditto. Tue Jul 17 01:38:15 2001 Yukihiro Matsumoto * class.c (rb_class_new): subclass check moved to this function. * class.c (rb_class_boot): check less version of rb_class_new(). Man Jul 16 13:21:30 2001 Usaku Nakamura * file.c (file_load_ok): fix typo. Mon Jul 16 12:58:07 2001 Yukihiro Matsumoto * eval.c (proc_invoke): should preserve iter status for embedded frame in the block. Mon Jul 16 00:04:39 2001 Yukihiro Matsumoto * file.c (rb_file_s_expand_path): may overrun buffer on stack. Sun Jul 15 01:38:28 2001 Guy Decoux * string.c (rb_str_insert): forgot to call rb_str_modify(). Sat Jul 14 12:26:30 2001 Nobuyoshi Nakada * ext/digest/*/extconf.rb: fix so that they build from any directory. Sat Jul 14 06:20:17 2001 WATANABE Hirofumi * lib/net/http.rb: HTTP#proxy? did not worked. Sat Jul 14 02:56:19 2001 Akinori MUSHA * ext/extmk.rb.in: support multi-level ext/ directories. (e.g. you can have ext/foo, ext/foo/bar and ext/foo/baz) Sat Jul 14 02:55:02 2001 Akinori MUSHA * ext/.cvsignore: let cvs ignore extinit.c. Fri Jul 13 23:47:35 2001 Yukihiro Matsumoto * regex.c (re_search): should consider reverse search. Fri Jul 13 22:26:09 2001 Akinori MUSHA * lib/mkmf.rb: use File::split to split a target into a prefix and a module name. This also works around a just found bug of String#rindex. * ext/extmk.rb.in: ditto. Fri Jul 13 02:36:10 2001 Minero Aoki * dir.c (dir_s_chdir): warn only when invoked from multiple threads or block is not given. Thu Jul 12 15:11:48 2001 WATANABE Hirofumi * ext/socket/socket.c (ruby_connect): workaround for the setup of Cygwin socket(EALREADY). Mon Jul 9 16:49:30 2001 WATANABE Hirofumi * ext/extmk.rb.in: modify RM macro. * lib/mkmf.rb: ditto. Sun Jul 8 20:52:02 2001 Akinori MUSHA * ruby.h: fix a wrong function name: rb_iglob() -> rb_globi(). Sun Jul 8 16:04:35 2001 Minero Aoki * lib/net/http.rb: rename HTTP#request_by_name to send_request. * lib/net/protocol.rb (ProtoSocket#read): modify typo. Sat Jul 7 17:45:35 2001 Yukihiro Matsumoto * object.c (rb_convert_type): should use rb_rescue(), not rb_rescue2(). * range.c (range_init): ditto. Fri Jul 6 18:01:10 2001 Yukihiro Matsumoto * object.c (rb_obj_dup): copies (actually does not free) generic_ivar on dupif original owns them. Fri Jul 6 02:15:06 2001 Akinori MUSHA * lib/tempfile.rb: a tempfile must be created with mode 0600. Thu Jul 5 20:28:53 2001 Tietew * string.c (rb_str_each_line): should propagate taint mark. * ext/nkf/nkf.c (rb_nkf_kconv): ditto. Fri Jul 6 14:54:27 2001 Yukihiro Matsumoto * eval.c (rb_f_require): revamp for simpler implementation. * file.c (rb_find_file_noext): use String object, instead of passing char* around. * file.c (rb_find_file): ditto. Thu Jul 5 22:01:02 2001 Mitsuhiro Kondo * dln.c (dln_load): should use NSLINKMODULE_OPTION_BINDNOW. Thu Jul 5 13:44:03 2001 Yukihiro Matsumoto * ruby.c (load_file): local variables 'c' remain uninitialized on xflag. Thu Jul 5 10:00:59 2001 Yukihiro Matsumoto * regex.c (re_match): prefetched escaped character too early. Wed Jul 4 08:58:30 2001 Yukihiro Matsumoto * eval.c (rb_call0): add argument check for attr_readers. Wed Jul 4 04:22:44 2001 Minero Aoki * lib/net/http.rb (HTTP#request_by_name): arg order changes. Wed Jul 4 04:07:36 2001 Minero Aoki * lib/net/http.rb (HTTP#request_by_name): bug fix. * lib/net/http.rb: does not write Connection: by default. * lib/net/protocol.rb: "start" for started protocol is an error. * lib/net/protocol.rb: "finish" for finished protocol is an error. Wed Jul 4 03:17:31 2001 Minero Aoki * lib/net/http.rb: new method HTTP#request_by_name (test) * lib/net/http.rb: new class HTTPGenericRequest Tue Jul 3 23:58:29 2001 Akinori MUSHA * lib/mkmf.rb: distclean should remove mkmf.log as well. Tue Jul 3 18:35:49 2001 Yukihiro Matsumoto * eval.c (rb_eval_string_wrap): should push frame (and adjust cbase) before wrapped eval. * eval.c (rb_eval_cmd): ditto. * eval.c (eval): should update ruby_class always after all. Tue Jul 3 14:56:27 2001 Shugo Maeda * eval.c (block_pass): do not change wrapper information. * eval.c (rb_yield_0): preserve wrapper information. Tue Jul 3 08:59:50 2001 Nobuyoshi Nakada * error.c (rb_name_error): raise NameError instead of LoadError. Mon Jul 2 17:22:00 2001 Yukihiro Matsumoto * error.c (exc_exception): clone the receiver exception instead of creating brand new exception object of the receiver. Mon Jul 2 09:53:12 2001 Yukihiro Matsumoto * 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. Sun Jul 1 10:51:15 2001 Shugo Maeda * eval.c (eval): preserve wrapper information. * eval.c (proc_invoke): ditto. * eval.c (block_pass): ditto. Sat Jun 30 02:55:45 2001 Yukihiro Matsumoto * parse.y (void_expr): too much warnings for void context (e.g. foo[1] that can be mere Proc call). Fri Jun 29 17:23:18 2001 Yukihiro Matsumoto * 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. Fri Jun 29 15:29:31 2001 Yukihiro Matsumoto * lex.c (rb_reserved_word): lex_state after tRESCUE should be EXPR_MID. Thu Jun 28 00:21:28 2001 Keiju Ishitsuka * lib/matrix.rb: resolve 'ruby -w' warnings. * lib/irb/locale.rb: resolve 'ruby -w' warnings. * lib/irb/multi-irb.rb: resolve 'ruby -w' warnings. * lib/irb/ruby-lex.rb: fix problem for "\\M-\\..." and "\\C-\\..." and resolve 'ruby -w' warnings. * lib/irb/ruby-token.rb: fix typo * lib/shell/command-processor.rb: resolve 'ruby -w' warnings. Wed Jun 27 08:53:26 2001 Minero Aoki * lib/net/pop.rb: new methods POP3.auth_only, POP3#auth_only * lib/net/http.rb: HTTP.Proxy returns self if ADDRESS is nil. * lib/net/protocol.rb: new method ProtocolError#response * lib/net/protocol.rb,smtp.rb,pop.rb,http.rb: add document. Tue Jun 26 18:42:42 2001 Yukihiro Matsumoto * gc.c (add_heap): allocation size of the heap unit is doubled for each allocation. Mon Jun 25 09:54:48 2001 Yukihiro Matsumoto * dir.c (isdelim): space, tab, and newline are no longer delimiters for glob patterns. Sat Jun 23 22:28:52 2001 Yukihiro Matsumoto * 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. Sat Jun 23 18:28:52 2001 Akinori MUSHA * ext/readline/readline.c (readline_event): a non-void function should return a value. Fri Jun 22 23:17:28 2001 WATANABE Hirofumi * ext/socket/socket.c (ruby_connect): workaround for the setup of Cygwin socket. Fri Jun 22 23:11:17 2001 Keiju Ishitsuka * lib/irb/locale.rb: fix for require "kconv" problem Fri Jun 22 18:08:45 2001 Yukihiro Matsumoto * eval.c (rb_yield_0): no mvalue_to_svalue conversion here. * eval.c (massign): takes svalue, convert it to mvalue inside. * eval.c (rb_eval): parameters for yield/return are always svalues now. * eval.c (svalue_to_mvalue): more strict conversion. * eval.c (mvalue_to_svalue): ditto. Fri Jun 22 17:12:23 2001 Yukihiro Matsumoto * st.c (new_size): prime hash size enabled. * ext/socket/socket.c (Init_socket): SO_* constants added. Tue Jun 19 22:24:07 2001 WATANABE Hirofumi * gc.c (rb_setjmp): avoid GCC 3.0 warnings. Tue Jun 19 18:19:30 2001 Akinori MUSHA * ext/readline/readline.c: add new methods: Readline::completion_append_character and Readline::completion_append_character=. Tue Jun 19 16:29:50 2001 Yukihiro Matsumoto * eval.c (svalue_to_mvalue): new function to convert from svalue to mvalue. [experimental] * eval.c (mvalue_to_svalue): new function to convert from mvalue to svalue. * eval.c (rb_eval): use mvalue_to_svalue(). * eval.c (rb_yield_0): use mvalue_to_svalue(). * eval.c (proc_invoke): proper mvalue handling. Mon Jun 18 17:38:50 2001 Yukihiro Matsumoto * eval.c (rb_f_require): searches ".rb" and ".so" at the same time. previous behavior (search ".rb", then ".so") has a security risk (ruby-bugs#PR140). * array.c (rb_ary_to_ary): new function to replace internal rb_Array(), which never calls to_a, but to_ary (rb_Array() might call both). [new] Mon Jun 18 00:43:20 2001 Yukihiro Matsumoto * regex.c (PUSH_FAILURE_POINT): push option status again. * regex.c (re_compile_pattern): avoid pushing unnecessary option_set. Sat Jun 16 10:58:48 2001 Yukihiro Matsumoto * eval.c (rb_load): tainted string is OK if wrapped *and* $SAFE >= 4. Thu Jun 14 16:27:07 2001 Yukihiro Matsumoto * eval.c (rb_thread_start_0): should not nail down higher blocks before preserving original context (i.e. should not alter original context). Wed Jun 13 19:34:59 2001 Akinori MUSHA * dir.c (Init_Dir): add a new method File::fnmatch? along with File::Constants::FNM_*. While I am here, FNM_NOCASE is renamed to FNM_CASEFOLD which is commonly used by *BSD and GNU libc. Wed Jun 13 09:33:45 2001 Yukihiro Matsumoto * eval.c (proc_yield): new method equivalent to Proc#call but no check for number of arguments. [new] Tue Jun 12 14:21:28 2001 Nobuyoshi Nakada * lib/mkmf.rb: target_prefix is only for installation, not for build. Tue Jun 12 00:41:18 2001 Yukihiro Matsumoto * eval.c (method_eq): new method Method#==. [new] Mon Jun 11 14:29:41 2001 WATANABE Hirofumi * confgure.in: add RUBY_CANONICAL_BUILD. Sun Jun 10 17:31:47 2001 Guy Decoux * gc.c (STR_NO_ORIG): STR_NO_ORIG value was different between string.c and gc.c Sat Jun 9 22:10:04 2001 Yukihiro Matsumoto * eval.c (rb_eval): should convert *non-array at the end of arguments by using Array(). Sat Jun 9 17:04:30 2001 Nobuyoshi Nakada * hash.c (ruby_setenv): readline library leaves their environment strings uncopied. "free" check revised. Sat Jun 9 16:31:03 2001 Usaku Nakamura * ext/extmk.rb.in: Use -F and -T for mswin32 because cl.exe doesn't support -o officially and cl.exe considers that *.cc and *.cxx are OBJs. * lib/mkmf.rb: ditto. * win32/Makefile.sub: Use del instead of rm. All these changes are derived from Nobuyoshi Nakada's patch. Thanks. Fri Jun 8 22:37:40 2001 Yukihiro Matsumoto * gc.c (Init_stack): avoid __builtin_frame_address(2) to retrieve stack bottom line. Fri Jun 8 18:14:12 2001 Yukihiro Matsumoto * st.c (numhash): should shuffle bits by dividing by prime number. Fri Jun 8 17:05:21 2001 Yukihiro Matsumoto * eval.c (rb_eval): multiple assignment behavior fixed, which results "*a = nil" makes "a == []" now. Fri Jun 8 15:25:09 2001 Yukihiro Matsumoto * eval.c (rb_f_require): should set SCOPE_PUBLIC before calling dln_load(). Thu Jun 7 17:28:00 2001 Yukihiro Matsumoto * parse.y (yylex): exclude kDO_BLOCK too much by false condition. Wed Jun 6 23:02:36 2001 Keiju Ishitsuka * lib/sync.rb: bug fix if obj.initialize has parameters when obj.extend(Sync_m) * lib/mutex_m.rb: modified bit Wed Jun 6 16:11:06 2001 Yukihiro Matsumoto * eval.c (rb_load): should check if tainted even when wrap is specified. Wed Jun 6 14:34:27 2001 Yukihiro Matsumoto * parse.y (mrhs_basic): "*arg" should always be expanded by REXPAND. * regex.c (re_compile_pattern): too much optimization for the cases like /(.|a)b/. Tue Jun 5 23:58:43 2001 Yukihiro Matsumoto * variable.c (fc_i): removed vast string allocation. Tue Jun 5 16:45:48 2001 Yukihiro Matsumoto * error.c (Init_Exception): NameError went under StandardError, and NoMethodError went under NameError. Tue Jun 5 16:40:06 2001 Yukihiro Matsumoto * parse.y (rb_intern): non identifier symbols should be categorized as ID_JUNK. [new] Tue Jun 5 16:15:58 2001 Yukihiro Matsumoto * variable.c (rb_mod_const_at): use hash table as internal data. [new] * variable.c (rb_mod_const_of): ditto. * variable.c (rb_const_list): new function to convert internal data (hash table) to array of strings. * eval.c (rb_mod_s_constants): data handling scheme has changed. Tue Jun 5 15:16:06 2001 Yukihiro Matsumoto * eval.c (rb_add_method): should not call rb_secure(), for last_func may not be set. * io.c (rb_io_ctl): ioctl should accept any integer within C long range. Tue Jun 5 13:41:13 2001 WATANABE Hirofumi * ext/etc/extconf.rb: use egrep_cpp. Tue Jun 5 12:44:59 2001 Yukihiro Matsumoto * marshal.c (r_object): wrong type check for modules. * marshal.c (w_object): should not dump anonymous classes/modules. Tue Jun 5 01:19:34 2001 Yukihiro Matsumoto * io.c (rb_open_file): use rb_file_sysopen_internal() if the 3rd argument (permission flags) is given. [new, should be backported?] * io.c (rb_io_mode_binmode): mode string (e.g. "r+") to flags to open(2). Mon Jun 4 23:55:54 2001 Yukihiro Matsumoto * eval.c (rb_eval): NODE_REXPAND expand an array of 1 element as the element itself. [new, should be backported?] * parse.y (ret_args): should treat "*[a]" in rhs expression as "a", not "[a]". Mon Jun 4 04:14:53 2001 Wakou Aoyama * lib/shellwords.rb: don't destroy argument. Sat Jun 2 23:23:05 2001 Yukihiro Matsumoto * regex.c (re_compile_pattern): should push option modifier at the right place. Sat Jun 2 23:05:20 2001 Shugo Maeda * lib/cgi/session.rb: don't use module_function for Class. Sat Jun 2 00:02:22 2001 Keiju Ishitsuka * irb messages: fix typos. Fri Jun 1 17:26:24 2001 K.Kosako * hash.c (replace_i): ignore when key == Qundef. Fri Jun 1 16:50:59 2001 Yukihiro Matsumoto * parse.y (call_args2): confusion with list_append() and list_concat() was fixed. Fri Jun 1 15:01:40 2001 Yukihiro Matsumoto * parse.y (yylex): fixed 'print CGI::bar() {}, "\n"' syntax breakage, adding new lex_state status. sigh. [new] Fri Jun 1 11:21:04 2001 WATANABE Hirofumi * configure.in: use waitpid on mingw32. * ext/dbm/extconf.rb: include , not . Thu May 31 18:34:57 2001 K.Kosako * file.c (rb_file_s_unlink): should not allow if $SAFE >= 2. Thu May 31 17:23:25 2001 Yukihiro Matsumoto * range.c (Init_Range): define "to_ary". Thu May 31 13:30:25 2001 WATANABE Hirofumi * mkconfig.rb, ext/configsub.rb: VERSION -> RUBY_VERSION. Thu May 31 08:00:58 2001 Usaku Nakamura * win32/dir.h: re-add. Thu May 31 01:25:59 2001 Akinori MUSHA * configure.in: default --with-libc_r to `no' until the problem is fixed. (FreeBSD only) Tue May 29 17:24:23 2001 K.Kosako * ruby.c (proc_options): unexpected SecurityError happens when -T4. Tue May 29 18:46:04 2001 Yukihiro Matsumoto * regex.c (re_compile_pattern): * \1 .. \9 should be backreferences always. * regex.c (re_match): backreferences corresponding to unclosed/unmatched parentheses should fail always. Tue May 29 16:35:49 2001 Yukihiro Matsumoto * 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_finish): removed. Tue May 29 02:05:55 2001 Yukihiro Matsumoto * string.c (rb_str_buf_new): buffering string function. [new] * string.c (rb_str_buf_append): ditto. * string.c (rb_str_buf_cat): ditto. * string.c (rb_str_buf_finish): ditto. Mon May 28 23:20:43 2001 WATANABE Hirofumi * configure.in: remove unnecessary AC_CANONICAL_BUILD * defins.h: #define HAVE_SETITIMER on Cygwin(bug fixed). * ruby.c: use relative path from LIBRUBY_SO. * ruby.c: don't use -mwin32 option on Cygwin. * cygwin/GNUmakefile.in: ditto. * ext/sdbm/_sdbm: ditto. * ext/tcltklib/extconf.rb: ditto. * ext/tcltklib/stubs.c: ditto. Mon May 28 22:12:01 2001 Nobuyoshi Nakada * ext/extconf.rb.in: make the priority of the make rule of .c higher than .C . Mon May 28 13:22:19 2001 Tanaka Akira * time.c (make_time_t): local time adjustment revised. Mon May 28 02:20:38 2001 Akinori MUSHA * dir.c (glob_helper): teach has_magic() to handle flags and get glob_helper to properly support FNM_NOESCAPE. * dir.c (fnmatch): fix a bug when FNM_PATHNAME and FNM_PERIOD are specified at the same time. Sat May 26 09:55:26 2001 Yukihiro Matsumoto * parse.y: accomplish extended syntax described in [ruby-talk:14525] using tSPC token. [new, experimental] Sat May 26 07:05:45 2001 Usaku Nakamura * MANIFEST: add win32/dir.h . Fri May 25 20:03:51 2001 Pascal Rigaux * dln.c (dln_find_1): should exclude directories in executable file lookup. Fri May 25 18:00:26 2001 Yukihiro Matsumoto * class.c (rb_obj_singleton_methods): list methods in extended modules if optional argument is true. [new] Fri May 25 14:19:25 2001 K.Kosako * string.c (rb_str_replace): add taint status infection (OBJ_INFECT()). * string.c (rb_str_crypt): ditto. * string.c (rb_str_ljust): ditto. * string.c (rb_str_rjust): ditto. * string.c (rb_str_center): ditto. Fri May 25 05:39:03 2001 Akinori MUSHA * ext/sha1/sha1-ruby.c (sha1_hexdigest): fix buffer overflow. The buffer for a SHA-1 hexdigest needs to be 41 bytes in length. Fri May 25 01:47:39 2001 Akinori MUSHA * MANIFEST: update the entries I forgot to add or remove. Fri May 25 00:57:25 2001 Akinori MUSHA * ext/sha1/sha1-ruby.c (sha1_new): separate initialize() from new(). * ext/md5/md5init.c (md5i_new): ditto. Fri May 25 00:53:41 2001 Akinori MUSHA * ext/dbm/extconf.rb: fix support for *BSD and set $CFLAGS properly. Thu May 24 16:10:33 2001 Yukihiro Matsumoto * range.c (range_member): check based on "<=>" comparison. [new] * range.c (range_check): add "succ" check if first end is not a numeric. * range.c (range_eqq): comparison should based on "<=>". * range.c (range_each): ditto. Thu May 24 16:08:21 2001 WATANABE Hirofumi * mkconfig.rb: autoconf 2.50 support. Thu May 24 14:23:35 2001 Yukihiro Matsumoto * eval.c (rb_yield_0): need argument adjustment for C defined blocks too. Thu May 24 01:11:30 2001 Yukihiro Matsumoto * ext/dbm/extconf.rb: header search added. [new] Wed May 23 02:58:21 2001 Tanaka Akira * time.c (make_time_t): fix ad-hoc local time adjustment, using binary tree search. Tue May 22 17:10:35 2001 K.Kosako * variable.c (rb_alias_variable): should not allow variable aliasing if $SAFE >= 4. Tue May 22 02:37:45 2001 Yukihiro Matsumoto * parse.y (expr): "break" and "next" to take optional expression, which is used as a value for termination. [new, experimental] * eval.c (rb_eval): "break" can give value to terminating method. * eval.c (rb_eval): "break" and "next" to take optional expression. * eval.c (rb_yield_0): "next" can give value to terminating "yield". * eval.c (rb_iterate): "break" can give value to terminating method. * eval.c (proc_call): ditto. Mon May 21 13:15:25 2001 Yukihiro Matsumoto * bignum.c (rb_big2str): t should be protected from GC. Sat May 19 09:29:07 2001 Yukihiro Matsumoto * process.c (rb_proc_times): need not to check retrun value from times(2). Fri May 18 05:36:08 2001 Akinori MUSHA * ext/extmk.rb.in (xsystem): backout the previous fix which was bogus. Fri May 18 05:19:55 2001 Akinori MUSHA * lib/mkmf.rb (xsystem): make a temporary fix to get $(...) macros properly expanded on a command execution. * ext/extmk.rb.in (xsystem): ditto. Fri May 18 03:45:55 2001 Brian F. Feldman * lib/mkmf.rb: unbreak "make install". lib/* must be installed under $rubylibdir, not under $libdir. Fri May 18 01:28:07 2001 Yukihiro Matsumoto * parse.y (expr): break, next, redo, retry are moved from primary. Fri May 18 01:11:02 2001 Usaku Nakamura * ext/sha1/sha1-ruby.c (sha1_new): get rid of an unneeded rb_obj_call_init() call. Fri May 18 01:03:55 2001 Usaku Nakamura * ext/sha1/sha1.txt, ext/sha1/sha1.txt.jp: fix typos. Thu May 17 19:17:11 2001 Akinori MUSHA * lib/shell.rb, lib/shell/process-controller.rb, lib/shell/command-processor.rb: translate Japanese comments into English. Thu May 17 19:07:14 2001 Akinori MUSHA * doc/shell.rd.jp: RD'ify and make some fixes. * doc/shell.rd: RD'ify, delete Japanese leftovers, make overall English fixes, and sync with doc/shell.rd.jp. Thu May 17 17:35:04 2001 Yukihiro Matsumoto * eval.c (rb_call0): address of local_vars might change during eval. Thu May 17 07:27:09 2001 Akinori MUSHA * ext/md5/md5.txt.jp, ext/sha1/sha1.txt.jp: s/SuperClass/Superclass/. Thu May 17 07:21:44 2001 Akinori MUSHA * ext/Setup.dj, ext/Setup.emx, ext/Setup.nt, ext/Setup.x68: compile sha1 in as well as md5. * ext/Setup: put sha1 in a comment. Thu May 17 07:16:38 2001 Akinori MUSHA * ext/sha1/sha1.txt.jp: add the Japanese version derived from ext/md5/md5.txt.jp. * ext/sha1/sha1.txt: revise the copyright info and reduce the difference from ext/md5/md5.txt. * ext/md5/md5.txt: reduce the difference from ext/sha1/sha1.txt. Thu May 17 07:11:35 2001 Akinori MUSHA * ext/sha1/extconf.rb, ext/sha1/sha1.c: use WORDS_BIGENDIAN to detect the platform's endian. Thu May 17 06:31:30 2001 Akinori MUSHA * ext/md5/md5.txt: make wording fixes, and mention the newly added method: "<<". * ext/md5/md5.txt.jp: ditto. Wed May 16 18:05:52 2001 Akinori MUSHA * ext/md5/md5init.c: add an instance method "<<" as an alias for "update". (inspired by Steve Coltrin's ruby-sha1) Tue May 15 17:46:37 2001 Yukihiro Matsumoto * array.c (rb_ary_and): should not push frozen key string. * array.c (rb_ary_or): ditto. Tue May 15 02:18:23 2001 Akinori MUSHA * lib/thread.rb: rescue ThreadError in case the thread is dead just before calling Thread#run. Mon May 14 13:50:22 2001 Yukihiro Matsumoto * eval.c (rb_thread_schedule): should save context before raising deadlock, saved context for current thread might be obsolete. * time.c (make_time_t): non DST timezone shift supported (hopefully). * time.c (make_time_t): strict range detection for negative time_t. Mon May 14 11:54:20 2001 Tanaka Akira * signal.c: SIGINFO added. Mon May 14 08:57:06 2001 Yukihiro Matsumoto * eval.c (rb_ensure): should not SEGV when prot_tag is NULL. Sun May 13 23:51:14 2001 Usaku Nakamura * win32/resource.rb: Modify copyright in resource script. Sun May 13 14:03:33 2001 Okada Jun * lib/thread.rb: fix Queue#pop and SizedQueue#max= to avoid deadlock. Sat May 12 15:43:55 2001 Usaku Nakamura * win32/win32.c (kill): add support of signal 9 on mswin32/mingw32. Fri May 11 15:09:52 2001 WATANABE Hirofumi * ruby.h (rb_string_value): add volatile to avoid compiler warning. * string.c (rb_string_value): ditto. Fri May 11 03:35:33 2001 Akinori MUSHA * README.EXT: Document find_library(), with_config() and dir_config(). Fri May 11 03:34:20 2001 Akinori MUSHA * README.EXT.jp: Remove the description of find_header() because such a function does not actually exist. * README.EXT.jp: Update the description of dir_config(). Fri May 11 02:42:05 2001 Kazuhiro NISHIYAMA * README, README.jp: Fix CVS access and mailing lists info. Fri May 11 02:00:44 2001 Ryo HAYASAKA * bignum.c (bigdivrem): access boundary bug. Thu May 10 02:40:47 2001 Yukihiro Matsumoto * marshal.c (w_object): prohibit dumping out singleton classes. * object.c (rb_mod_to_s): distinguish singleton classes. * variable.c (rb_class2name): it's ok to reveal NilClass, TrueClass, FalseClass. Wed May 9 14:38:33 2001 K.Kosako * eval.c (rb_yield_0): preserve and restore ruby_cref as well. Tue May 8 18:28:19 2001 Keiju Ishitsuka * lib/irb.rb lib/irb/multi-irb.rb lib/irb/ruby-lex.rb lib/irb/version.rb resolve ctrl-c problem Tue May 8 17:12:43 2001 K.Kosako * eval.c (is_defined): core dumped during instance_eval for special constants. * eval.c (rb_eval): ditto. Tue May 8 08:52:57 2001 Akinori MUSHA * doc/forwardable.rd, doc/forwardable.rd.jp: Hit `=begin' and `=end' in proper places so rd2 can format them without a problem. * doc/irb/irb-tools.rd.jp, doc/irb/irb.rd, doc/irb/irb.rd.jp: ditto. Tue May 8 08:38:53 2001 Akinori MUSHA * doc/forwardable.rd, doc/forwardable.rd.jp, lib/forwardable.rb: Import forwardable 1.1. Tue May 8 08:34:33 2001 Akinori MUSHA * doc/irb/irb-tools.rd.jp, doc/irb/irb.rd.jp: Convert from JIS to EUC. Tue May 8 03:46:39 2001 Akinori MUSHA * sample/rbc.rb: Obsoleted by IRB. Mon May 7 15:58:45 2001 Yukihiro Matsumoto * parse.y (arg): "||=" should not warn for uninitialized instance variables. * eval.c (rb_eval): ditto. * eval.c (eval): preserve and restore ruby_cref as well. Mon May 7 15:45:48 2001 WATANABE Hirofumi * lib/ftools.rb (syscopy): chmod destination file only if it does not exist. Mon May 7 14:35:57 2001 Yukihiro Matsumoto * object.c (rb_obj_is_instance_of): takes only class/module as an argument. Sun May 6 16:27:29 2001 Koji Arai * eval.c (is_defined): rb_reg_nth_defined() may return Qnil. Thu May 3 03:15:06 2001 SHIROYAMA Takayuki * configure.in: get --enable-shared to work on MacOS X. * Makefile.in: make $(LIBRUBY_SO) depend on miniruby properly. Now `make -jN' should work without a problem. Thu May 3 02:07:45 2001 Usaku Nakamura * win32/config.h.in: add SIZEOF___INT64 definition. Wed May 2 20:39:35 2001 WATANABE Hirofumi * dir.c (rb_glob, rb_globi): remove unnecessary FNM_PATHNAME. Wed May 2 11:46:13 2001 K.Kosako * eval.c (block_pass): should not downgrade safe level. Wed May 2 03:07:49 2001 Yukihiro Matsumoto * 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. Wed May 2 02:02:18 2001 Yukihiro Matsumoto * string.c (rb_str_insert): new method. Tue May 1 17:55:58 2001 Yukihiro Matsumoto * parse.y (yylex): lex_state after RESCUE_MOD should be EXPR_BEG. Tue May 1 16:23:03 2001 Yukihiro Matsumoto * array.c (rb_ary_insert): new method. * array.c (rb_ary_update): new utility function. Tue May 1 03:24:05 2001 Akinori MUSHA * lib/irb/completion.rb, lib/irb/frame.rb, lib/irb/xmp.rb, doc/irb/irb-tools.rd.jp: Merge from irb-tools 0.7.1. Tue May 1 03:07:17 2001 Akinori MUSHA * sample/irb.rb, lib/irb.rb, lib/irb/*, doc/irb/*: Merge from irb 0.7.3. * instruby.rb: Install help-message's too. * lib/irb/main.rb: This file is not needed anymore. Fri Apr 27 09:27:10 2001 Yukihiro Matsumoto * io.c (set_outfile): should check if closed before assignment. Thu Apr 26 22:36:11 2001 WATANABE Hirofumi * configure.in: don't use tzname on Cygwin 1.3.1+. * configure.in: add -mieee/-ieee to CFLAGS on OSF1/Alpha to disable "DIVISION BY ZERO" exception. Thu Apr 26 22:30:43 2001 Yukihiro Matsumoto * eval.c (rb_eval): should preserve value of ruby_errinfo. Thu Apr 26 10:36:09 2001 Yukihiro Matsumoto * eval.c (rb_thread_schedule): infinite sleep should not cause dead lock. Wed Apr 25 16:40:44 2001 Yukihiro Matsumoto * array.c (rb_ary_flatten_bang): proper recursive detection. Wed Apr 25 15:36:15 2001 K.Kosako * eval.c (yield_under): need not to prohibit at safe level 4. Wed Apr 25 15:22:20 2001 Yukihiro Matsumoto * pack.c (pack_pack): p/P packs nil into NULL. * pack.c (pack_unpack): p/P unpacks NULL into nil. Tue Apr 24 15:35:32 2001 Yukihiro Matsumoto * pack.c (pack_pack): size check for P template. * ruby.c (set_arg0): wrong predicate when new $0 value is bigger than original space. Tue Apr 24 15:18:49 2001 Akinori MUSHA * ext/extmk.rb.in, lib/mkmf.rb: (dir_config) do not add the specified include directory if already included in $CPPFLAGS. * ext/extmk.rb.in, lib/mkmf.rb: (dir_config) return a more useful value, [include_dir, lib_dir]. Mon Apr 23 14:43:59 2001 Yukihiro Matsumoto * 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. Sat Apr 21 22:33:26 2001 Yukihiro Matsumoto * marshal.c (w_float): precision changed to "%.16g" Sat Apr 21 22:07:58 2001 Guy Decoux * eval.c (rb_call0): wrong retry behavior. Fri Apr 20 19:12:20 2001 Yukihiro Matsumoto * numeric.c (fix_aref): a bug on long>int architecture. Fri Apr 20 14:57:15 2001 K.Kosako * eval.c (rb_eval_string_wrap): should restore ruby_wrapper. Sun Apr 22 17:44:37 2001 WATANABE Hirofumi * configure.in: add -mieee to CFLAGS on Linux/Alpha to disable "DIVISION BY ZERO" exception. * configure.in: remove -ansi on OSF/1. Wed Apr 18 04:37:51 2001 Wakou Aoyama * lib/cgi.rb: CGI::Cookie: no use PATH_INFO. Wed Apr 18 00:24:40 2001 Yukihiro Matsumoto * regex.c (re_compile_pattern): char class at either edge of range should be invalid. Tue Apr 17 17:33:55 2001 Yukihiro Matsumoto * eval.c (handle_rescue): use === to compare exception match. * error.c (syserr_eqq): comparison between SytemCallErrors should based on their error numbers. Tue Apr 17 16:54:39 2001 K.Kosako * eval.c (safe_getter): should use INT2NUM(). Tue Apr 17 15:12:56 2001 Yukihiro Matsumoto * bignum.c (rb_big2long): 2**31 cannot fit in 31 bit long. Sat Apr 14 22:46:43 2001 Guy Decoux * regex.c (calculate_must_string): wrong length calculation. Sat Apr 14 13:37:32 2001 Usaku Nakamura * win32/config.status.in: no longer use missing/alloca.c. * win32/Makefile.sub: ditto. Fri Apr 13 12:40:48 2001 K.Kosako * eval.c (rb_thread_start_0): fixed memory leak. Fri Apr 13 16:41:18 2001 Yukihiro Matsumoto * parse.y (none): should clear cmdarg_stack too. Fri Apr 13 06:19:29 2001 GOTOU YUUZOU * io.c (rb_fopen): use setvbuf() to avoid recursive malloc() on some platforms. Wed Apr 11 23:36:26 2001 Yukihiro Matsumoto * file.c (rb_stat_dev): device functions should honor stat field types (except long long such as dev_t). Wed Apr 11 18:07:53 2001 K.Kosako * 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). Wed Apr 11 13:29:26 2001 Yukihiro Matsumoto * 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". Tue Apr 10 17:52:10 2001 Yukihiro Matsumoto * eval.c (rb_mod_included): new hook called from rb_mod_include(). Tue Apr 10 02:24:40 2001 Nobuyoshi Nakada * io.c (opt_i_set): should strdup() inplace_edit string. Mon Apr 9 23:29:54 2001 Yukihiro Matsumoto * eval.c (exec_under): need to push cref too. Mon Apr 9 15:20:21 2001 Yukihiro Matsumoto * 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. Mon Apr 9 12:05:44 2001 Yukihiro Matsumoto * file.c (Init_File): should redifine "new" class method. Mon Apr 9 11:56:52 2001 Shugo Maeda * lib/net/imap.rb: fix typo. Fri Apr 6 01:46:35 2001 Yukihiro Matsumoto * 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. Thu Apr 5 22:40:12 2001 Yukihiro Matsumoto * 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. Thu Apr 5 13:46:06 2001 K.Kosako * object.c (rb_obj_is_instance_of): nil belongs to false, not true. Thu Apr 5 02:19:03 2001 Yukihiro Matsumoto * 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. Wed Apr 4 03:47:03 2001 Yukihiro Matsumoto * 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. Tue Apr 3 09:56:20 2001 WATANABE Hirofumi * ext/extmk.rb.in (create_makefile): create def file only if it does not yet exist. * lib/mkmf.rb: ditto. Tue Apr 3 00:05:07 2001 Yukihiro Matsumoto * 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. Mon Apr 2 16:52:48 2001 Yukihiro Matsumoto * 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. Mon Apr 2 14:25:49 2001 Shugo Maeda * lib/monitor.rb (wait): ensure reentrance. * lib/monitor.rb (wait): fix timeout support. Mon Apr 2 12:40:45 2001 Shugo Maeda * lib/net/imap.rb (media_subtype): return subtype. Mon Apr 2 12:01:15 2001 Shugo Maeda * lib/net/imap.rb (flag_list): capitalize flags. Mon Apr 2 01:32:38 2001 Akinori MUSHA * Makefile.in: Introduce MAINLIBS. * configure.in: Link libc_r against the ruby executable on FreeBSD, which is the first attempt to work around a certain problem regarding pthread on FreeBSD. It should make ruby/libruby happy when it loads an extention to a library compiled and linked with -pthread. Note, however, that libruby is _not_ linked with libc_r so as not to mess up pthread unfriendly stuff including apache+mod_ruby and vim6+ruby_interp. Mon Apr 2 01:16:24 2001 WATANABE Hirofumi * win32/win32.c: use ruby's opendir on mingw32. * win32/dir.h, dir.c, Makefile: ditto. Sun Apr 1 23:26:14 2001 TOYOFUKU Chikanobu * numeric.c (flodivmod): a bug in no fmod case. Sun Apr 1 18:36:14 2001 Koji Arai * process.c (pst_wifsignaled): should apply WIFSIGNALED for status (int), not st (VALUE). Sat Mar 31 04:47:55 2001 Shugo Maeda * lib/net/imap.rb: add document and example code. Sat Mar 31 03:24:10 2001 Yukihiro Matsumoto * 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. Fri Mar 30 23:37:49 2001 Yukihiro Matsumoto * eval.c (rb_load): should not copy topleve local variables. It cause variable/method ambiguity. Thanks to L. Peter Deutsch. Fri Mar 30 22:56:56 2001 Shugo Maeda * lib/net/imap.rb: rename ContinueRequest to ContinuationRequest. Fri Mar 30 12:51:19 2001 Yukihiro Matsumoto * class.c (rb_include_module): freeze check at first. Thu Mar 29 17:05:09 2001 Yukihiro Matsumoto * eval.c (rb_attr): sprintf() and rb_intern() moved into conditional body. Wed Mar 28 23:43:00 2001 Nobuyoshi Nakada * ext/extmk.rb.in, lib/mkmf.rb: add C++ rules in addition to C rules for the mswin32 platforms. Wed Mar 28 19:29:21 2001 Akinori MUSHA * ext/extmk.rb.in, lib/mkmf.rb: move C++ rules to the right place. Wed Mar 28 17:39:04 2001 Yukihiro Matsumoto * object.c (rb_str2cstr): warn if string contains \0 and length value is ignored. Wed Mar 28 15:00:31 2001 K.Kosako * class.c (rb_singleton_class_clone): should copy class constant table as well. Wed Mar 28 14:23:23 2001 Yukihiro Matsumoto * class.c (rb_include_module): sometimes cache was mistakenly left uncleared - based on the patch by K.Kosako. * ruby.h: all Check_SafeStr()'s are replaced by SafeStr() to ensure 'to_str' be always effective. Wed Mar 28 09:52:33 2001 WATANABE Hirofumi * win32/Makefile.sub: disable global optimization. Tue Mar 27 15:00:54 2001 K.Kosako * eval.c (rb_mod_define_method): should have clear method cache. * eval.c (rb_mod_define_method): should have raised exception for type error. Tue Mar 27 14:48:17 2001 Yukihiro Matsumoto * ruby.h: changed "extern INLINE" to "static inline". Mon Mar 26 23:19:33 2001 WATANABE Hirofumi * time.c (rb_strftime): check whether strftime returns empty string. Mon Mar 26 21:16:56 2001 Shugo Maeda * lib/net/imap.rb: supports response handlers and multiple commands. Mon Mar 26 17:21:07 2001 Yukihiro Matsumoto * eval.c: remove TMP_PROTECT_END to prevent C_ALLOCA crash. Mon Mar 26 14:04:41 2001 WATANABE Hirofumi * ext/Win32API/Win32API.c: remove Init_win32api(). Sun Mar 25 16:52:48 2001 Koji Arai * file.c (rb_file_flock): do not trap EINTR. * missing/flock.c (flock): returns the value from lockf(2) directly. Sat Mar 24 23:44:50 2001 Yukihiro Matsumoto * eval.c (ev_const_defined): should ignore toplevel cbase (Object). * eval.c (ev_const_get): ditto. Fri Mar 23 17:37:52 2001 Yukihiro Matsumoto * ext/md5/md5.h: replace by independent md5 implementation contributed by L. Peter Deutsch (thanks). * ext/md5/md5init.c: adopted to Deutsch's md5 implementation. Fri Mar 23 17:26:19 2001 Yukihiro Matsumoto * pack.c (pack_unpack): string from P/p should be tainted. Fri Mar 23 12:18:44 2001 SHIROYAMA Takayuki * ext/curses/curses.c: curses on Mac OS X public beta does not have _maxx etc. Fri Mar 23 10:50:31 2001 Yukihiro Matsumoto * marshal.c (w_object): should truncate trailing zero short for bignums. Fri Mar 23 09:49:02 2001 Yukihiro Matsumoto * object.c (sym_intern): new method. Thu Mar 22 22:15:45 2001 WATANABE Hirofumi * ext/Win32API/extconf.rb: add -fno-omit-frame-pointer. Thu Mar 22 18:17:36 2001 Yukihiro Matsumoto * eval.c (rb_mod_nesting): should not include Object at the toplevel. Thu Mar 22 17:43:44 2001 Yukihiro Matsumoto * ruby.h: better inline function support. * configure.in (NO_C_INLINE): check if inline is available for the C compiler. Mon Mar 19 11:03:10 2001 Koji Arai * marshal.c (r_object): len calculation patch was wrong for machines SIZEOF_BDIGITS == SIZEOF_SHORT. * gc.c: alloca prototype reorganized for C_ALLOCA machine. Wed Mar 21 23:07:45 2001 WATANABE Hirofumi * win32/win32.c (win32_stat): WinNT/2k "//host/share" support. Wed Mar 21 08:05:35 2001 Nobuyoshi Nakada * win32/dir.h: replace missing/dir.h . * win32/win32.h: ditto. * win32/win32.c: ditto. Wed Mar 21 01:26:14 2001 Yukihiro Matsumoto * gc.c (id2ref): sometimes confused symbol and reference. Tue Mar 20 23:09:33 2001 WATANABE Hirofumi * win32/win32.c (win32_stat): UNC support. * dir.c (extract_path): fix "./*" problem. Tue Mar 20 15:10:00 2001 Yukihiro Matsumoto * dir.c (glob_helper): breaks loop after calling recusive glob_helper; all wild cards should be consumed; no need for further match. * dir.c (dir_s_glob): gives warning if no match found. Tue Mar 20 14:13:45 Koji Arai * object.c (sym_inspect): did allocate extra byte space. Mon Mar 19 19:14:47 2001 Guy Decoux * marshal.c (shortlen): shortlen should return number of bytes written. Mon Mar 19 16:52:23 2001 K.Kosako * eval.c (ev_const_defined): need not to check if cbase->nd_class is rb_cObject. * eval.c (ev_const_get): ditto. Mon Mar 19 17:11:20 2001 Yukihiro Matsumoto * time.c (time_zone): return "UTC" for UTC time objects. Mon Mar 19 16:27:32 2001 Yukihiro Matsumoto * eval.c (THREAD_ALLOC): flags should be initialized. * signal.c (rb_f_kill): should use FIX2INT, not FIX2UINT. Mon Mar 19 10:55:10 2001 Yukihiro Matsumoto * dir.c (glob_helper): replace lstat() by stat() to follow symlink in the case like 'symlink/*'. * dir.c (glob_helper): gave warning too much. Sun Mar 18 08:58:18 2001 Wakou Aoyama * lib/cgi.rb: // === '' --> //.match('') * lib/cgi.rb: cgi#header(): improvement for mod_ruby. * lib/cgi.rb: cgi#rfc1123date(): improvement. thanks to TADA Tadashi . * lib/cgi.rb: cgi#rfc1123date(): document bug fix. thanks to Kazuhiro NISHIYAMA . * lib/cgi.rb: cgi#header(): bug fix. thanks to IWATSUKI Hiroyuki . Sat Mar 17 11:11:24 2001 Yukihiro Matsumoto * dir.c (glob_helper): * should follow symlink, whereas ** should not follow. Thu Mar 15 01:28:02 2001 Yukihiro Matsumoto * dir.c (dir_s_chdir): block form of Dir.chdir. (RCR#U016). Fri Mar 16 17:14:17 2001 Akinori MUSHA * configure.in: Set SOLIBS properly for all ELF and FreeBSD/NetBSD/OpenBSD a.out platforms so that the shlib dependencies are recorded in the libruby shlib. Wed Mar 14 16:41:45 2001 Yukihiro Matsumoto * eval.c (rb_thread_schedule): raise FATAL just once to THREAD_TO_KILL. Wed Mar 14 10:41:34 2001 Yukihiro Matsumoto * eval.c (rb_yield_0): 0 (= Qfalse) is a valid value, so that default self should be checked by klass == 0. * bignum.c (rb_cstr2inum): should disallow '++1', '+-1', etc. Tue Mar 13 17:51:09 2001 Yukihiro Matsumoto * eval.c (ev_const_defined): add new parameter self for special const fallback. * eval.c (ev_const_get): ditto. Tue Mar 13 16:39:45 2001 WATANABE Hirofumi * dir.c (rb_glob_helper): fix drive letter handling on DOSISH. Tue Mar 13 14:54:39 2001 Minero Aoki * lib/net/http.rb: add HTTPRequest#basic_auth. * lib/net/smtp.rb: raise if only account or password is given. * lib/net/protocol.rb: WriteAdapter#<< returns self. Tue Mar 13 14:41:16 2001 Yukihiro Matsumoto * io.c (argf_seek_m): wrong calling sequence of rb_io_seek(). Tue Mar 13 09:14:19 2001 Yukihiro Matsumoto * parse.y (cond0): no special treatment of string literal in condition. Mon Mar 12 18:59:38 2001 WATANABE Hirofumi * lib/mkmf.rb (create_makefile): save/restore $libs and $LIBPATH. Sun Mar 11 18:13:34 2001 Masahiro Tanaka * math.c: add acos, asin, atan, conh, sinh, tanh and hypot to Math. * configure.in: check hypot availablility. * missing/hypot.c: public domain rewrite of hypot. Sun Mar 11 13:21:04 2001 Koji Arai * parse.y (warn_unless_e_option): warning condition was wrong. * parse.y (warning_unless_e_option): ditto. Sun Mar 11 00:55:31 2001 WATANABE Hirofumi * lib/mkmf.rb (install_rb): fix handling of destination path. Sat Mar 10 22:56:44 2001 Yukihiro Matsumoto * enum.c (enum_all): new method 'all?', which returns true if block returns true for all elements. * enum.c (enum_any): new method 'any?', which returns true if block retruns true for any of elements. Sat Mar 10 02:34:18 2001 WATANABE Hirofumi * math.c (math_log, math_log10): use nan() instead of 0.0/0.0 on Cygwin. Fri Mar 9 09:56:19 2001 Yukihiro Matsumoto * marshal.c (marshal_load): do not give warning unless explicitly set to verbose. Fri Mar 9 02:07:53 2001 Yukihiro Matsumoto * eval.c (rb_exit): give string value "exit" to SystemExit. * ruby.c (proc_options): -v should not print version if proc_options called via moreswitches(). Thu Mar 8 17:45:19 2001 Minero Aoki * lib/net/protocol.rb: one write(2) per one line. Wed Mar 7 14:26:11 2001 WATANABE Hirofumi * math.c (math_log, math_log10): should return NaN if x < 0.0 on Cygwin. Thu Mar 7 10:31:26 2001 Nobuyoshi Nakada * parse.y (stmt): while/until modifier must work for empty body. Tue Mar 6 22:53:58 2001 Kazuhiro Yoshida * ruby.c (ruby_set_argv): clear ARGV contents before adding args. Tue Mar 6 10:50:29 2001 Yukihiro Matsumoto * parse.y (primary): rescue and ensure clauses should be allowed to appear in singleton method body. Mon Mar 5 17:25:13 2001 Yukihiro Matsumoto * eval.c (proc_eq): compare Procs using blocktag equality. * eval.c (proc_to_s): stringify according to block tag address. Mon Mar 5 17:19:56 2001 WATANABE Hirofumi * win32/win32.c (gettimeofday): use GetLocalTime() instead of ftime() for high-resolution timing. Sun Mar 4 17:01:09 2001 WATANABE Hirofumi * string.c (trnext): support backslash escape in String#tr. Sat Mar 3 16:15:16 2001 Yukihiro Matsumoto * eval.c (rb_eval): push cbase if ruby_cbase != ruby_class, for example in the case NODE_DEFN/NODE_DEFS are called within module_eval. Wed Feb 28 11:02:41 2001 Yukihiro Matsumoto * string.c (rb_str_delete_bang): delete! should take at least 1 argument. * ruby.c (load_file): add rb_gc() after loading to avoid extraordinary memory growth. Wed Feb 28 05:01:40 2001 Koji Arai * dir.c (rb_glob_helper): "./foo" should match "foo", not "./foo". Tue Feb 27 16:38:15 2001 Yukihiro Matsumoto * eval.c (ev_const_get): retrieve Object's constant if no current class is available (e.g. defining singleton class for Fixnums). * eval.c (ev_const_defined): check Object's constant if no current class is available (e.g. defining singleton class for Fixnums). * time.c (time_timeval): negative time interval shoule not be allowed. * eval.c (proc_call): ignore block to `call' always, despite of being orphan or not. Wed Feb 27 10:16:32 2001 Nobuyoshi Nakada * eval.c (rb_yield_0): should check based on rb_block_given_p() and rb_f_block_given_p(). Tue Feb 27 04:13:45 2001 Nobuyoshi Nakada * configure.in (frame-address): --enable-frame-address to allow __builtin_frame_address() to be used. * eval.c (stack_length): use __builtin_frame_address() based on the macro USE_BUILTIN_FRAME_ADDRESS. * gc.c (rb_gc): ditto. * gc.c (Init_stack): ditto. Mon Feb 26 16:20:27 2001 Yukihiro Matsumoto * ruby.c (proc_options): call ruby_show_version() just once. * dir.c (dir_s_open): returns the value from a block (if given). Mon Feb 26 14:29:04 2001 Akinori MUSHA * ext/extmk.rb.in, lib/mkmf.rb: add C++ rules in addition to C rules. Mon Feb 26 00:04:52 2001 Yukihiro Matsumoto * eval.c (proc_call): should not modify ruby_block->frame.iter based on ruby_frame->iter altered by PUSH_ITER(). Mon Feb 26 05:27:52 2001 Wakou Aoyama * lib/net/telnet.rb: #telnetmode(), #binmode(): bug fix. thanks to nobu.nakada@nifty.ne.jp. Mon Feb 26 04:55:50 2001 Wakou Aoyama * lib/cgi.rb: CGI#form(): bug fix. thanks to MoonWolf . * lib/cgi.rb: CGI#rfc1123_date(): improvement. thanks to Tomoyasu Akita . * lib/cgi.rb: CGI#header(): improvement for mod_ruby. thanks to Shugo Maeda . Sun Feb 25 02:45:30 2001 WATANABE Hirofumi * file.c (rb_file_s_rename): avoid Cygwin's bug. Sat Feb 24 23:32:55 2001 Yukihiro Matsumoto * eval.c (rb_thread_fd_close): should save current context before raising exception. Sat Feb 24 22:14:00 2001 WATANABE Hirofumi * win32/win32.c (myrename): fix error handling. Sat Feb 24 13:58:48 2001 Minero Aoki * lib/net/http.rb: always close connection on request without body. * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: change copyright. Sat Feb 24 03:15:49 2001 Yukihiro Matsumoto * io.c (set_stdin): preserve original stdin. * io.c (set_outfile): preserve original stdout/stderr. Fri Feb 23 08:28:58 2001 Minero Aoki * lib/net/protocol.rb: clear read buffer after reopen. * lib/net/protocol.rb: refactoring. * lib/net/http.rb: split module HTTPHeader from HTTPResponse. Tue Feb 20 23:45:35 2001 WATANABE Hirofumi * process.c: add W* macro if not available. Tue Feb 20 16:37:58 2001 Yukihiro Matsumoto * configure.in: add check for negative time_t for gmtime(3). * time.c (time_new_internal): no positive check if gmtime(3) can handle negative time_t. * time.c (time_timeval): ditto. * bignum.c (rb_big2long): should not raise RangeError for Bignum LONG_MIN value. Mon Feb 19 17:46:37 2001 Yukihiro Matsumoto * string.c (rb_str_substr): "a"[1,2] should return ""; need rubicon upgrade. Mon Feb 19 12:10:36 2001 Triet H. Lai * error.c (rb_sys_warning): new function to give warning with strerror() message. * dir.c (rb_glob_helper): better error handling, along with performance tune. Mon Feb 19 01:55:43 2001 Yukihiro Matsumoto * eval.c (secure_visibility): visibility check for untainted modules. Mon Feb 19 00:29:29 2001 Nobuyoshi Nakada * signal.c (sigpipe): sighandler which does nothing. * signal.c (trap): set sigpipe function for SIGPIPE. * signal.c (Init_signal): default SIGPIPE handler should be sigpipe function. Sun Feb 18 15:42:38 2001 WATANABE Hirofumi * ext/curses/extconf.rb: add dir_config. * missing/flock.c: use fcntl(2) instead of lockf(2). Sun Feb 18 05:46:03 2001 Minero Aoki * lib/net/http.rb: Response#range_length was not debugged. Sun Feb 18 04:02:03 2001 Yasushi Shoji * array.c (rb_ary_subseq): wrong boundary check. Sun Feb 18 00:09:50 2001 Nobuyoshi Nakada * win32/win32.c: make file I/O faster on mswin32/mingw32. * win32/win32.h: ditto. * rubysig.h: ditto. Sat Feb 17 23:32:45 2001 Yukihiro Matsumoto * parse.y (cond0): integer literal in condition should not be compared to lineno ($.). Fri Feb 16 01:44:56 2001 Yukihiro Matsumoto * io.c (set_outfile): f should be the FILE* from the assigning value. * ext/socket/socket.c (tcp_s_open): should not give default value to local_host. * time.c (time_s_times): move to Process::times. * file.c (rb_file_s_lchmod): new method File::lchmod. * file.c (rb_file_s_lchown): new method File::lchown. Thu Feb 15 11:33:49 2001 Shugo Maeda * lib/cgi/session.rb (close): fixed reversed condition. Thu Feb 15 08:34:14 2001 Yukihiro Matsumoto * process.c (proc_waitall): new method based on a patch from Brian Fundakowski Feldman . * process.c (last_status_set): objectify $? value (Process::Status). Wed Feb 14 17:28:24 2001 Shugo Maeda * lib/net/imap.rb: supports unknown resp_text_code. Wed Feb 14 00:44:17 2001 Yukihiro Matsumoto * dir.c (dir_s_glob): support backslash escape of metacharacters 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. Tue Feb 13 23:05:38 2001 WATANABE Hirofumi * dir.c (lstat): should use rb_sys_stat if lstat(2) is not available. Sun Feb 11 16:00:30 2001 WATANABE Hirofumi * eval.c (stack_length): use __builtin_frame_address() only if GCC and i386 CPU. * gc.c (rb_gc, Init_stack): ditto. * configure.in: add ac_cv_func_getpgrp_void=yes on DJGPP. Tue Feb 13 08:43:10 2001 Yukihiro Matsumoto * io.c (rb_io_ctl): do not call ioctl/fcntl for f2, if f and f2 have same fileno. Tue Feb 13 01:13:43 2001 Yukihiro Matsumoto * eval.c (rb_load): raise LocaJumpError if unexpected local jumps appear during load. * ext/socket/socket.c (bsock_close_read): don't call rb_thread_fd_close(); it's supposed to be called by io_io_close(). * ext/socket/socket.c (bsock_close_read): do not modify f and f2. * ext/socket/socket.c (bsock_close_write): ditto. * ext/socket/socket.c (sock_new): avoid dup(2) on sockets. * parse.y (primary): preserve and clear in_single and in_def using stack to prevent nested method errors in singleton class bodies. Sun Feb 11 16:00:30 2001 WATANABE Hirofumi * eval.c (stack_length): use __builtin_frame_address() only if GCC and i386 CPU. * gc.c (rb_gc, Init_stack): ditto. * configure.in: add ac_cv_func_getpgrp_void=yes on DJGPP. Sat Feb 10 23:43:49 2001 Nobuyoshi Nakada * hash.c (rb_any_hash): dumped core on machines sizeof(int) != sizeof(long). Sat Feb 10 23:07:15 2001 Yukihiro Matsumoto * io.c (rb_io_s_for_fd): IO::for_fd(fd) - new method. * regex.c (PREV_IS_A_LETTER): should not treat c>0x7f as a word character if -Kn. Sat Feb 10 00:00:30 2001 Nobuyoshi Nakada * win32/win32.c (win32_stat): replace stat to enable when pathname ends with '/' or '\' for mswin32 on Win9X / Win2k. * win32/win32.h: ditto. * ruby.h: ditto. * dir.c (rb_glob_helper): ditto. * file.c (rb_stat, rb_file_s_stat, eaccess, check3rdbyte): ditto. Fri Feb 9 22:54:57 2001 WATANABE Hirofumi * ruby.c (ruby_init_loadpath): convert '\\' to '/' before finding executable file path. Fri Feb 9 17:41:53 2001 Triet H. Lai * dir.c (rb_glob_helper): do not follow symbolic links. Thu Feb 8 21:27:24 2001 WATANABE Hirofumi * lib/mkmf.rb (install_rb): fix handling of relative path. * lib/mkmf.rb (create_makefile): add srcdir. Thu Feb 8 02:22:09 2001 Minero Aoki * lib/net/http.rb: join HTTPReadResponse into HTTPResponse again. * lib/net/http.rb: move http_version() from HTTPRequest to HTTPResponse. * lib/net/protocol.rb: refactoring. Wed Feb 7 16:27:27 2001 Minero Aoki * lib/net/http.rb: split HTTPResponse into HTTPReadResponse module. * lib/net/protocol.rb: add Net::net_private. * lib/net/protocol.rb: Socket#reopen takes arg, open_timeout. Wed Feb 7 16:05:22 2001 Nobuyoshi Nakada * parse.y (parse_quotedwords): %w should allow parenthesis escape. Wed Feb 7 00:57:42 2001 Yukihiro Matsumoto * parse.y (parse_qstring): %q should allow terminator escape. * re.c (rb_reg_options): new method to give an option values. * parse.y (cond0): disable special treating of integer literal in conditional unless option -e is supplied. changes current behavior. experimental. * parse.y (cond0): give warning for string/integer literals and dot operators in conditionals unless option -e is supplied. * re.c (rb_reg_equal): all option flags should be same to be equal. Tue Feb 6 21:30:44 2001 Minero Aoki * lib/net/http.rb: call on_connect() on re-opening socket. * lib/net/pop.rb: also POP3 can use APOP auth. Tue Feb 6 20:19:10 2001 Minero Aoki * lib/net/http.rb: add HTTP#request. * lib/net/http.rb: take HTTP 1.0 server into account (incomplete). * lib/net/protocol.rb: timeout for open/read. * lib/net/protocol.rb: add Protocol#on_connect,on_disconnect. Mon Feb 5 23:15:46 2001 Yukihiro Matsumoto * error.c (Init_Exception): make Interrupt a subclass of SignalException. Mon Feb 5 00:39:06 2001 KANEKO Naoshi * dir.c: use ISXXX() instead of isxxx(). * dln.c (aix_loaderror): ditto. * file.c (rb_file_s_expand_path): ditto. * string.c (rb_str_upcase_bang): ditto. * win32/win32.c (do_spawn): ditto. * win32/win32.c (NtMakeCmdVector): ditto. * win32/win32.c (opendir): ditto. Sat Feb 3 14:44:53 2001 Nobuyoshi Nakada * configure.in (AC_C_INLINE): check inline attribute. * gc.c (is_pointer_to_heap): use inline rather than __inline__. * pack.c (hex2num): ditto. * ruby.h (rb_class_of, rb_type, rb_special_const_p): ditto. * util.c (rb_class_of, rb_type, rb_special_const_p): defined in ruby.h. Fri Feb 2 16:14:51 2001 Yukihiro Matsumoto * array.c (rb_ary_sort_bang): returns self, even if its length is less than 2. * eval.c (POP_VARS): propagate DVAR_DONT_RECYCLE, if SCOPE_DONT_RECYCLE of ruby_scope is set. Wed Jan 31 22:27:29 2001 WATANABE Hirofumi * configure.in: gcc-2.95.2-7(Cygwin) support. add -mwin32 if available. * cygwin/GNUmakefile: ditto. Tue Jan 30 17:56:48 2001 Yukihiro Matsumoto * array.c (rb_ary_fetch): new method. Mon Jan 29 17:36:19 2001 TOYOFUKU Chikanobu * eval.c (rb_eval): nd_iter evaluation should be wrapped by BEGIN_CALLARGS and END_CALLARGS. Mon Jan 29 14:25:39 2001 Yukihiro Matsumoto * eval.c (block_pass): return from block jumps directory to block invoker. Mon Jan 29 01:40:27 2001 Yukihiro Matsumoto * string.c (str_independent): should not clear str->orig here. it's too early. Fri Jan 26 01:42:40 2001 Yukihiro Matsumoto * parse.y: clarify do ambiguity, bit more complex but natural from my point of view. Wed Jan 24 14:58:08 2001 Akinori MUSHA * lib/cgi.rb: fix the problem that when running under mod_ruby header() outputs only one Set-Cookie line. Wed Jan 24 01:45:49 2001 Yukihiro Matsumoto * eval.c (POP_BLOCK_TAG): call rb_gc_force_recycle() if block has not been objectified. * eval.c (rb_callcc): should nail down block->tag history to avoid rb_gc_force_recycle(). Tue Jan 23 18:51:57 2001 Yukihiro Matsumoto * gc.c (rb_gc_call_finalizer_at_exit): should finalize objects in deferred_final_list too. Tue Jan 23 16:10:12 2001 Yukihiro Matsumoto * gc.c (os_live_obj): do not list terminated object. * gc.c (os_obj_of): ditto. * gc.c (rb_gc_mark): support new T_BLKTAG tag. * gc.c (obj_free): ditto. * eval.c (new_blktag): creation of new block tag, which holds destination of global jump and orphan status. * eval.c (block_pass): break from orphan Proc object will raise a LocalJumpError exception. Mon Jan 22 16:33:16 2001 WATANABE Hirofumi * mkconfig.rb: autoconf 2.49 support. Mon Jan 22 00:32:44 2001 Yukihiro Matsumoto * eval.c (block_pass): behavior consistency with proc_call(). do not propagate `break'. Sat Jan 20 03:54:00 2001 Yukihiro Matsumoto * parse.y (yylex): fixed serious syntax misbehavior. do's preceding was too high. a block in `foo bar do .. end' should be passed to `foo', not `bar'. * parse.y (block_call): syntax restructure. Thu Jan 18 04:28:14 2001 Yukihiro Matsumoto * io.c (rb_io_s_read): new method to call IO#read from pathname. In addition, it accepts third optional argument to specify starting point. Wed Jan 17 13:28:26 2001 WATANABE Hirofumi * configure.in: remove DEFS definition. * mkconfig.rb: ditto. * win32/config.status.in: ditto. Tue Jan 16 17:00:50 2001 Minero Aoki * lib/net/protocol.rb: ignore EOFError for read. * lib/net/http.rb: user specified header was not used. Mon Jan 15 16:00:07 2001 Yukihiro Matsumoto * pack.c (pack_unpack): should check associated pointer packed by pack("P"). Thus pointers can be retrieved only from pointer packed strings. restriction added. Sun Jan 14 21:49:28 2001 Koji Arai * sprintf.c (rb_f_sprintf): simple typo. binary base should be 2, not '2'. * re.c (rb_reg_s_last_match): should explicitly return nth match. Sun Jan 14 18:21:30 2001 Usaku Nakamura * win32/config.status.in: add some field. * win32/win32.c (isInternalCmd): ignore case for shell's internal command. * win32/win32.c (do_spawn): recognize quoted command line. Sun Jan 14 04:10:27 2001 Minero Aoki * lib/net/protocol.rb (adding): too few "yield" in case of arg is not String/File. * lib/net/http.rb: add http request object. Sat Jan 13 19:39:30 2001 WATANABE Hirofumi * re.c (rb_reg_desc): separate RE_OPTION_MULTILINE * re.c (rb_reg_options): add RE_OPTION_{POSIXLINE,RE_OPTION_MULTILINE, RE_OPTION_EXTENDED} Thu Jan 11 10:45:04 2001 WATANABE Hirofumi * win32/win32.h, win32/config.h.in: move NORETURN from win32.h to config.h.in. * win32/config.h.in (inline): renamed from INLINE. * djgpp/config.hin (INLINE): removed. Thu Jan 11 06:45:55 2001 Yukihiro Matsumoto * object.c (rb_mod_dup): should propagate FL_SINGLETON. * object.c (inspect_obj): handles the case of no instance variable. Wed Jan 10 16:15:08 2001 WATANABE Hirofumi * ruby.h: NORETURN macro is changed for VC++ 6.0. * eval.c, intern.h: ditto. * djgpp/config.hin, win32/win32.h: ditto. * configure.in: ditto. Wed Jan 10 13:54:53 2001 WATANABE Hirofumi * process.c (proc_setuid): use setresuid() if available. * process.c (proc_setgid): use setresgid() if available. * configure.in: ditto. Wed Jan 10 01:50:45 2001 Yukihiro Matsumoto * configure.in (AC_C_INLINE): check inline attribute. * string.c (rb_str_reverse_bang): forgot to call rb_str_modify(). Tue Jan 9 17:41:40 2001 Yukihiro Matsumoto * object.c (rb_obj_taint): check frozen status before modifying taint status. * object.c (rb_obj_untaint): ditto. Tue Jan 9 16:22:14 2001 Yukihiro Matsumoto * enum.c (enum_inject): new method. Tue Jan 9 02:16:42 2001 Yukihiro Matsumoto * gc.c (rb_gc_call_finalizer_at_exit): clear klass member of terminating object. * eval.c (rb_call): raise exception for terminated object. Mon Jan 8 21:24:37 2001 Yukihiro Matsumoto * bignum.c (bigdivrem): t2 might be too big for signed long; do not use rb_int2big(), but rb_uint2big(). Mon Jan 8 21:35:10 2001 Guy Decoux * file.c (path_check_1): should restore modified path. Mon Jan 8 03:09:58 2001 Yukihiro Matsumoto * error.c (rb_load_fail): new func to report LoadError. * ruby.c (load_file): use rb_load_fail. Sat Jan 6 00:17:18 2001 WATANABE Hirofumi * pack.c (pack_pack): avoid infinite loop(pack 'm2'). Fri Jan 5 01:02:17 2001 Yukihiro Matsumoto * eval.c (ruby_finalize): should enclosed by PUSH_TAG/POP_TAG. * gc.c (rb_gc_mark): link 2 of NODE_IFUNC should not be explicitly marked. it may contain non object pointer. Tue Jan 2 00:20:06 2001 Yukihiro Matsumoto * re.c (reg_s_last_match): Regexp::last_match(nth) returns nth substring of the match (alternative for $& and $). Sun Dec 31 01:39:16 2000 Guy Decoux * eval.c (rb_mod_define_method): wrong comparison for blocks. Sat Dec 30 19:28:50 2000 Yukihiro Matsumoto * gc.c (id2ref): should handle Symbol too. * gc.c (id2ref): should print original ptr value Sat Dec 30 03:14:22 2000 Yukihiro Matsumoto * eval.c (rb_iterate): NODE_CFUNC does not protect its data (nd_tval), so create new node NODE_IFUNC for iteration C function. * eval.c (rb_yield_0): use NODE_IFUNC. * gc.c (rb_gc_mark): support NODE_IFUNC. Fri Dec 29 11:41:55 2000 Yukihiro Matsumoto * gc.c (mem_error): prohibit recursive mem_error(). (ruby-bugs-ja:PR#36) Fri Dec 29 11:05:41 2000 Yukihiro Matsumoto * eval.c (rb_thread_fd_writable): should not switch context if rb_thread_critical is set. * eval.c (rb_thread_wait_fd): ditto. * eval.c (rb_thread_wait_for): ditto. * eval.c (rb_thread_select): ditto. * eval.c (rb_thread_join): join during critical section causes deadlock. Fri Dec 29 00:38:46 2000 Yukihiro Matsumoto * m17n.c: new file - core functions of M17N. Tue Dec 26 18:46:41 2000 NAKAMURA Hiroshi * lib/debug.rb: Avoid thread deadlock in debugging stopped thread. * lib/debug.rb: Uncleared 'finish' state. Tue Dec 26 16:53:55 2000 Yukihiro Matsumoto * eval.c (rb_yield_0): remove dvar node by rb_gc_force_recycle() more eagerly. * eval.c (rb_f_binding): recycling should be stopped for outer scope too. * eval.c (proc_new): ditto. Tue Dec 26 15:45:35 2000 Yukihiro Matsumoto * string.c (rb_str_inspect): should treat multibyte chracters properly. Mon Dec 25 17:49:08 2000 K.Kosako * string.c (rb_str_replace_m): unexpected string share happens if replace is done for associated (STR_NO_ORIG) string. Tue Dec 26 15:01:53 2000 Yukihiro Matsumoto * io.c (rb_f_p): should not call rb_io_flush() if rb_defout is not a IO (T_FILE). Mon Dec 25 15:52:39 2000 Yukihiro Matsumoto * stable version 1.6.2 released. Mon Dec 25 05:11:04 2000 Wakou Aoyama * lib/cgi.rb: version 2.1.2 (some bug fixes). * lib/cgi.rb: Regexp::last_match[1] --> $1 * lib/net/telnet.rb: ditto. Mon Dec 25 04:43:02 2000 Minero Aoki * lib/net/http.rb: does not send HEAD on closing socket. Mon Dec 25 00:44:48 2000 Yukihiro Matsumoto * hash.c (rb_any_cmp): should use rb_str_cmp() if TYPE == T_STRING and CLASS_OF == rb_cString. * string.c (rb_str_new4): should copy class of original too. Mon Dec 25 00:04:54 2000 Nobuyoshi Nakada * eval.c (rb_thread_schedule): initial value of `max' changed to -1. Mon Dec 25 00:16:14 2000 Yukihiro Matsumoto * string.c (rb_str_replace_m): copy-on-write replace. * parse.y (yylex): should handle => after identifier as well as == and =~. Sat Dec 23 23:55:57 2000 Yukihiro Matsumoto * bignum.c (rb_cstr2inum): Integer("") should not return 0. Sat Dec 23 11:55:57 2000 Yukihiro Matsumoto * array.c (rb_ary_and): Array#& should preverve original order. Sat Dec 23 03:44:16 2000 Minero Aoki * lib/net/protocol.rb: set @closed false in Socket#reopen. * lib/net/pop.rb: add POP3.foreach, delete_all. * lib/net/pop.rb: add POP3#delete_all. * lib/net/http.rb: add HTTP.version_1_1, version_1_2 * lib/net/http.rb: refactoring. Fri Dec 22 23:11:12 2000 Ueno Katsuhiro * eval.c (rb_feature_p): ext might be null. Fri Dec 22 17:04:12 2000 Nobuyoshi Nakada * win32/win32.c (myselect): avoid busy loop by adjusting fd_count. Fri Dec 22 15:07:55 2000 Yukihiro Matsumoto * bignum.c (rb_cstr2inum): prefix like '0x' had removed too much. Thu Dec 21 13:01:46 2000 Tanaka Akira * lib/net/ftp.rb (makeport): don't use TCPsocket.getaddress. Wed Dec 20 12:00:15 2000 Yukihiro Matsumoto * bignum.c (rb_big_lshift): should cast up to BDIGIT_DBL. * parse.y (yylex): disallow trailing '_' for numeric litrals. * bignum.c (rb_cstr2inum): allow `_' within converting string. * eval.c (specific_eval): should take no argument if block is supplied. Tue Dec 19 13:44:50 2000 K.Kosako * io.c (rb_f_p): should flush rb_defout, not stdout. Tue Dec 19 00:57:10 2000 Yukihiro Matsumoto * time.c (time_minus): usec might overflow. (ruby-bugs-ja:PR#35) * eval.c (rb_obj_extend): Object#extend should take at least one argument. * parse.y (mrhs_basic): should check value_expr($3), not $1. Mon Dec 18 23:18:39 2000 WATANABE Hirofumi * util.c (mblen, __crt0_glob_function): add for multibyte on DJGPP 2.03. Mon Dec 18 18:10:30 2000 Yukihiro Matsumoto * time.c (time_plus): usec might underflow (ruby-bugs-ja:#PR33). Mon Dec 18 08:11:20 2000 Yukihiro Matsumoto * hash.c (rb_hash_set_default): should call rb_hash_modify(). Sat Dec 16 02:58:26 2000 Minero Aoki * eval.c (rb_eval): should clear ruby_errinfo on retry. * eval.c (rb_rescue2): ditto. Thu Dec 14 13:06:18 2000 Nobuyoshi Nakada * class.c (rb_include_module): prohibit fronzen class/module. * eval.c (rb_frozen_class_p): make external. * intern.h (rb_frozen_class_p): prototyped. * intern.h (rb_undef): prototyped not but rb_undef_method() which is also in ruby.h. Thu Dec 14 09:20:26 2000 Wakou Aoyama * lib/cgi.rb: support -T1 on ruby 1.6.2 * lib/cgi.rb: $1 --> Regexp::last_match[1] * lib/net/telnet.rb: ditto. Wed Dec 13 23:27:06 2000 Yukihiro Matsumoto * eval.c (rb_eval): handles case statement without expr, which looks for any TRUE (non nil, non false) when expression. * parse.y (primary): case expression should not be compstmt, but mere expr. * parse.y (primary): case without following expression is now separated rule. Wed Dec 13 12:41:27 2000 WATANABE Hirofumi * ruby.c (proc_options): accept "--^M" for DOS line endings. Tue Dec 12 15:45:42 2000 Yukihiro Matsumoto * parse.y (newline_node): cancel newline unification. Mon Dec 11 23:01:57 2000 Yukihiro Matsumoto * parse.y (yylex): supports cases `?' precedes EOF and newline. Mon Dec 11 12:11:25 2000 Yukihiro Matsumoto * eval.c (call_end_proc): some frame members were left uninitialized. Mon Dec 11 01:14:58 2000 Yukihiro Matsumoto * io.c (rb_io_fptr_finalize): do not fclose stdin, stdout and stderr at exit. Sat Dec 9 17:34:48 2000 Tachino Nobuhiro * time.c (time_cmp): should check with kind_of?, not instance_of? * time.c (time_eql): ditto. * time.c (time_minus): ditto. Fri Dec 8 17:23:25 2000 Tachino Nobuhiro * sprintf.c (rb_f_sprintf): proper string precision treat. Fri Dec 8 10:44:05 2000 Yukihiro Matsumoto * variable.c (rb_mod_remove_cvar): Module#remove_class_variable added. Thu Dec 7 17:35:51 2000 Shugo Maeda * eval.c (stack_length): don't use __builtin_frame_address() on alpha. Wed Dec 6 18:07:13 2000 WATANABE Hirofumi * djgpp/config.sed, win32/Makefile.sub: typo. * eval.c (rb_mod_define_method): avoid VC4.0 warnings. Wed Dec 6 13:38:08 2000 Yukihiro Matsumoto * array.c (rb_ary_and): tuning, make hash from shorter operand. Wed Dec 6 01:28:50 2000 SHIROYAMA Takayuki * gc.c (rb_gc): __builtin_frame_address() should not be used on MacOS X. * gc.c (Init_stack): ditto. Mon Dec 4 13:44:01 2000 WATANABE Hirofumi * lib/jcode.rb: consider multibyte. not /n. Mon Dec 4 09:49:36 2000 Yukihiro Matsumoto * string.c (rb_str_inspect): output whole string contents. no more `...' * string.c (rb_str_dump): should propagate taintness. * hash.c (env_inspect): hash like human readable output. * variable.c (rb_ivar_get): prohibiting instance variable access is too much restriction. * class.c (method_list): retrieving information should not be restricted where $SAFE=4. * class.c (rb_obj_singleton_methods): ditto. * eval.c (rb_thread_priority): ditto. * eval.c (rb_thread_local_aref): ditto. * variable.c (rb_obj_instance_variables): ditto. * variable.c (rb_mod_const_at): ditto. * variable.c (rb_mod_class_variables): ditto. * eval.c (rb_exec_end_proc): end_proc should be preserved. Sat Dec 2 22:32:43 2000 Yukihiro Matsumoto * eval.c (rb_yield_0): || should accept exactly zero argument. * parse.y (stmt): multiple right hand side for single assignment (e.g. a = 1,2) is allowed. Wed Nov 29 07:55:29 2000 Yukihiro Matsumoto * marshal.c (w_long): dumping long should be smaller than 32bit max. * marshal.c (w_long): shorter long format for small integers(-123..122). * marshal.c (r_long): ditto. Tue Nov 28 18:10:51 2000 Yukihiro Matsumoto * eval.c (rb_mod_define_method): quick hack to implement on-the-fly method definition. experimental. Mon Nov 27 17:00:35 2000 Yukihiro Matsumoto * eval.c (rb_eval): should not redefine builtin classes/modules from within wrapped load. Mon Nov 27 08:57:33 2000 Yukihiro Matsumoto * eval.c (call_end_proc): should be isolated from outer block. Mon Nov 27 00:10:08 2000 Yukihiro Matsumoto * io.c (rb_io_ctl): call ioctl/fcntl for fptr->f2 too. * process.c (rb_f_fork): call rb_thread_atfork() after creating child process. * eval.c (rb_thread_atfork): kill all other threads immediately, then turn the current thread into the main thread. Sat Nov 25 23:12:22 2000 Yukihiro Matsumoto * eval.c (ruby_run): move calling point of rb_trap_exit after cleaning up threads. * eval.c (ruby_finalize): new function to call EXIT trap, END procs and GC finalizers. * eval.c (rb_exec_end_proc): prevent recursion. * gc.c (rb_gc_call_finalizer_at_exit): ditto. * signal.c (rb_trap_exit): ditto. made static. * process.c (rb_f_fork): should swallow all exceptions from block execution. * process.c (fork_rescue): should call ruby_finalize(). * parse.y (yycompile): rb_gc() removed. I don't remember why I put this here. test code? Fri Nov 24 22:03:48 2000 Yukihiro Matsumoto * range.c (EXCL): exclusive infomation is now stored in an instance variable. this enables proper marshal dump. * process.c (proc_waitpid): should clear rb_last_status ($?) if no pid was given by waitpid(2). Thu Nov 23 01:35:38 2000 Yukihiro Matsumoto * process.c (proc_waitpid2): returns nil if no pid found. Wed Nov 22 23:45:15 2000 Yukihiro Matsumoto * range.c (range_eq): new method. Compares start and end of range respectively. Wed Nov 22 11:01:32 2000 Yukihiro Matsumoto * variable.c (rb_mod_class_variables): should honor singleton class variable rule defined yesterday. Tue Nov 21 23:24:14 2000 Mitsuteru S Nakao * numeric.c (flodivmod): missing second operand (typo). Tue Nov 21 03:39:41 2000 Yukihiro Matsumoto * marshal.c (marshal_load): marshal format compatibility check revised. greater minor revision is UPWARD compatibile; downward compatibility is not assured. * eval.c (is_defined): clarify class variable behavior for singleton classes. class variables within singleton class should be treated like within singleton method. Mon Nov 20 13:45:21 2000 Yukihiro Matsumoto * eval.c (rb_eval): set ruby_sourceline before evaluating exceptions. * gc.c (gc_sweep): defer finalization in GC during compilation or interrupt prohibit section. * gc.c (gc_sweep): mark all nodes before sweeping if GC happened during compilation. * eval.c (rb_eval): should treat class variables specially in a method defined in the singleton class. Mon Nov 20 10:20:21 2000 WATANABE Hirofumi * dir.c, win32/win32.c, ruby.h: add rb_iglob(). Mon Nov 20 00:18:16 2000 Yukihiro Matsumoto * array.c (rb_ary_subseq): should return nil for outbound start index. * marshal.c (marshal_load): show format versions explicitly when format version mismatch happens. Sun Nov 19 06:13:24 2000 Kazuhiro NISHIYAMA * marshal.c: use long for string/array length. * pack.c (swaps): use bit-or(|) instead of plus(+). * pack.c (swapl): ditto. Sat Nov 18 15:18:16 2000 Kazuhiro NISHIYAMA * array.c (rb_ary_replace): array size should be in long. * array.c (rb_ary_concat): ditto. * array.c (rb_ary_hash): ditto. Sat Nov 18 14:07:20 2000 Minero Aoki * lib/net/http.rb: Socket#readline() reads until "\n", not "\r\n" Fri Nov 17 14:55:18 2000 WATANABE Hirofumi * string.c (rb_str_succ): output should be NUL terminated. Fri Nov 17 02:54:15 2000 Yukihiro Matsumoto * io.c (rb_io_close): need not to flush before closing. * eval.c (rb_thread_join): should preserve last thread status when THREAD_TO_KILL. * eval.c (rb_thread_stop): ditto. * io.c (io_fflush): wrap fflush by TRAP_BEG, TRAP_END. * eval.c (rb_eval): method defined within singleton class definition should behave like singleton method about class variables. * eval.c (is_defined): ditto. Thu Nov 16 23:06:07 2000 Minero Aoki * lib/net/http.rb: can call {old,new}_implementation any times. * lib/net/http.rb: HTTP#connecting, receive -> common_oper, connecting. * lib/net/http.rb: output warning if u_header includes duplicated header. * lib/net/http.rb: not check Connection:/Proxy-Connection; always read until eof. * lib/net/protocol.rb: detects and catches "break" from block. Thu Nov 16 16:32:45 2000 Masahiro Tanaka * bignum.c (bigdivrem): should have incremented ny first. Thu Nov 16 14:58:00 2000 Nobuyoshi Nakada * ext/socket/socket.c (sock_new): duplicates file descriptor with myfddup() on mswin32/mingw32. * win32/win32.h: uses system original fdopen(). * win32/win32.c (myfddup): newly added instead of myfdopen(). * win32/win32.c (mybind, myconnect, mygetsockname, mygetsockopt, mylisten, mysetsockopt): now accept file descriptor only, not SOCKET. * win32/win32.c (myaccept, mysocket): return file descriptor, instead of SOCKET. Thu Nov 16 10:23:24 2000 Yukihiro Matsumoto * eval.c (massign): too strict check for nameless rest argument. * eval.c (method_arity): mere * should return -1. * eval.c (intersect_fds): should check all FDs in the fd_set. Wed Nov 15 19:33:20 2000 Nobuyoshi Nakada * eval.c (rb_attr): should clear method cache before calling hook. * eval.c (rb_eval): ditto. * eval.c (rb_mod_modfunc): ditto. Mon Nov 13 22:44:52 2000 Yukihiro Matsumoto * error.c (rb_bug): print version to stderr. Mon Nov 13 19:02:08 2000 WATANABE Hirofumi * win32/win32.c, io.c, process.c: the exit status of program must be multiplied 256 on mswin32 and msdosdjgpp(system(), ``). Sat Nov 11 22:57:38 2000 Yukihiro Matsumoto * parse.y (arg): uniformed treatment of -a**b, where a is a number literal; hacky but behavior appears more consistent. * parse.y (newline_node): reduce newline node (one per line). * random.c (rb_f_srand): should be prohibited in safe level greater than 4. Sat Nov 11 22:37:36 2000 Nobuyoshi Nakada * rubysig.h: do not use rb_trap_immediate on win32. * rubysig.h: new macros, ATOMIC_TEST, ATOMIC_SET, ATOMIC_INC, ATOMIC_DEC, RUBY_CRITICAL and new definition of TRAP_BEG, TRAP_END. * gc.c (ruby_xmalloc): should wrap malloc() by RUBY_CRITICAL. * signal.c (sighandle): better win32 sig handling. * win32/win32.c (flock): better implementation. * win32/win32.c (myselect): ditto. * win32/win32.c (myaccept): ditto. * win32/win32.c (waitpid): ditto. * win32/win32.c (myrename): ditto. * win32/win32.c (wait_events): support function for win32 signal handling. Sat Nov 11 08:34:18 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.31. * lib/net/http.rb: initializes header in HTTP, not HTTPCommand. * lib/net/protocol.rb, http.rb: rewrites proxy code. Fri Nov 10 16:15:53 2000 Yukihiro Matsumoto * numeric.c (rb_num2long): use to_int, not to_i. * error.c: T_SYMBOL was misplaced by T_UNDEF. * parse.y (yylex): eval("^") caused infinite loop. Thu Nov 9 14:22:13 2000 Yukihiro Matsumoto * io.c (rb_io_taint_check): should check IO taintness; no operation for untainted IO should be allowed in the sandbox. * rubyio.h (GetOpenFile): check IO taintness inside using rb_io_taint_check(). Wed Nov 8 03:08:53 2000 Yukihiro Matsumoto * io.c (io_fflush): ensure fflush(3) would not block by calling rb_thread_fd_writable(). Tue Nov 7 20:29:56 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.30. * lib/net/protocol.rb, smtp.rb: Command#critical_ok -> error_ok * lib/net/http.rb: reads header when also "100 Continue". Tue Nov 7 04:32:19 2000 Yukihiro Matsumoto * bignum.c (bigdivrem): use bit shift to make y's MSB set. Mon Nov 6 1:22:49 2000 Yukihiro Matsumoto * error.c (warn_print): do not use err_append(), to ensure output to stderr. * error.c (rb_warn): use warn_print() instead of err_print(). * error.c (rb_warning): ditto. * error.c (rb_bug): ditto. * eval.c (rb_load): re-raise exceptions during load. * time.c (make_time_t): remove useless adjust Thu Nov 2 18:01:16 2000 Yukihiro Matsumoto * random.c (rb_f_rand): half-baked float support fixed. This fix was originally proposed by K.Kosako . Tue Oct 31 17:27:17 2000 Yukihiro Matsumoto * bignum.c: change digit size to `long|int' if long long is available. * marshal.c (w_object): support `long|int' digits. * marshal.c (r_object): ditto. Sat Oct 28 23:54:22 2000 Yukihiro Matsumoto * parse.y (yylex): allow =end at the end of file (without a newline at the end). Fri Oct 27 10:00:27 2000 Yukihiro Matsumoto * bignum.c (rb_cstr2inum): should ignore trailing white spaces. * bignum.c (rb_str2inum): string may not have sentinel NUL. Fri Oct 27 02:37:22 2000 Yukihiro Matsumoto * bignum.c (rb_cstr2inum): wrongly assigned base to c before badcheck check. Thu Oct 26 02:42:50 2000 Minero Aoki * lib/net/protocol.rb: Command#critical_ok * lib/net/smtp.rb: clear critical flag before go to SMTP Wed Oct 25 12:30:19 2000 Yukihiro Matsumoto * array.c (rb_ary_concat): replacing array might be the receiver itself. do not call rb_ary_push_m. * array.c (rb_ary_replace): replacing array might be the receiver itself. use memmove. Fri Oct 20 07:56:23 2000 Yukihiro Matsumoto * eval.c (rb_eval): ARGSPUSH should not modify args array. Thu Oct 19 14:58:17 2000 WATANABE Tetsuya * pack.c (NUM2U32): should use NUM2ULONG(). Tue Oct 17 17:30:34 2000 WATANABE Hirofumi * eval.c (error_print): ruby_sourcefile may be NULL. Tue Oct 17 16:36:28 2000 Wes Nakamura * pack.c (NATINT_U32): wrong use of sizeof. Tue Oct 17 12:48:20 2000 Katsuyuki Komatsu * eval.c (rb_abort): nil check against ruby_errinfo. * eval.c (rb_thread_schedule): use FOREACH_THREAD_FROM instead of FOREACH_THREAD, since curr_thread may be removed from thread ring. * eval.c (THREAD_ALLOC): errinfo should be Qnil. * eval.c (rb_callcc): th->prev,th->next are now already initialized in THREAD_ALLOC. Mon Oct 16 15:37:33 2000 Kazuhiro NISHIYAMA * eval.c (rb_thread_inspect): tag size was shorter than required. * object.c (rb_obj_inspect): ditto. Mon Oct 16 14:25:18 2000 Shugo Maeda * object.c (sym_inspect): used `name' before initialization. Mon Oct 16 14:06:00 2000 Yukihiro Matsumoto * pack.c (pack_pack): use NATINT_U32 for 'l', 'L', and 'N'. * pack.c (I32,U32): 32 bit sized integer. * pack.c (OFF16,OFF32B): big endian offset for network byteorder. Mon Oct 16 06:39:32 2000 Minero Aoki * lib/net/http.rb: hex-alpha is not [a-h] but [a-f]. Mon Oct 16 01:02:02 2000 Yukihiro Matsumoto * eval.c (rb_thread_start_0): should not abort on exception if $SAFE >= 4. * parse.y (sym): symbols for class variable names. Sun Oct 15 01:49:18 2000 Yukihiro Matsumoto * file.c (rb_file_flock): should accept interrupt. * process.c (rb_waitpid): ditto. * process.c (rb_waitpid): ditto. * process.c (proc_wait): ditto. * process.c (proc_waitpid2): wrong recursion. Sat Oct 14 03:32:13 2000 Yukihiro Matsumoto * eval.c (rb_thread_alloc): should not link a new thread in the live thread ring before initialization. Fri Oct 13 17:08:09 2000 Shugo Maeda * lib/net/imap.rb: new file. Thu Oct 12 18:56:28 2000 Minero Aoki * lib/net/pop.rb: POP3#reset * lib/net/http.rb: a code for "Switch Protocol" was wrongly 100. Thu Oct 12 01:23:38 2000 Wakou Aoyama * lib/cgi.rb: bug fix: CGI::html(): PRETTY option didn't work. Thu Oct 12 00:03:02 2000 Yukihiro Matsumoto * object.c (sym_inspect): should adjust string length. * struct.c (rb_struct_to_s): ditto. * struct.c (rb_struct_inspect): ditto. Wed Oct 11 22:15:47 2000 Katsuyuki Komatsu * eval.c (rb_thread_inspect): should adjust string length. * object.c (rb_any_to_s): ditto. * object.c (rb_obj_inspect): ditto. Wed Oct 11 18:13:50 2000 Yukihiro Matsumoto * eval.c (rb_thread_start_0): should check insecure exit. Wed Oct 11 14:29:51 2000 Minero Aoki * lib/net/protocol.rb: 2nd arg for ProtocolError#initialize is optional. * lib/net/http.rb: code refining. Wed Oct 11 11:13:03 2000 Yukihiro Matsumoto * parse.y (primary): setter method (e.g. foo=) should always be public. * eval.c (rb_thread_raise): should not raise SecurityError if exception raised by the interpreter. * eval.c (rb_thread_cleanup): skip all THREAD_KILLED threads before FOREACH_THREAD. Tue Oct 10 16:11:54 2000 WATANABE Hirofumi * dln.c (dln_load): remove unused code for Cygwin. Tue Oct 10 09:49:23 2000 Yukihiro Matsumoto * file.c (Init_File): FileTest.size should return 0 (not nil) for empty files. Sun Oct 8 13:20:26 2000 Guy Decoux * eval.c (POP_SCOPE): not just set SCOPE_DONT_RECYCLE, but do scope_dup(). Sat Oct 7 15:10:50 2000 Yukihiro Matsumoto * string.c (rb_str_reverse_bang): unnecessary ALLOCA_N() was removed. Fri Oct 6 14:50:24 2000 WATANABE Hirofumi * ext/extmk.rb.in, lib/mkmf.rb: remove "DESTDIR =". * Makefile.in, win32/Makefile.sub, ruby.1: renamed -X to -C. Fri Oct 6 12:50:52 2000 Yukihiro Matsumoto * array.c (rb_ary_plus): use to_ary(), not Check_Type(). * array.c (rb_ary_concat): ditto. * gc.c (rb_gc): use __builtin_frame_address() for gcc. * eval.c (stack_length): ditto. * parse.y (assign_in_cond): stop warning till some better warning condition will be found. Thu Oct 5 18:02:39 2000 Yukihiro Matsumoto * object.c (rb_obj_dup): should have propagated taint flag. (ruby-bugs:#PR64,65) Wed Oct 4 00:26:11 2000 Yukihiro Matsumoto * eval.c (proc_arity): proc{|a|}'s arity should be -1. Mon Oct 2 05:28:58 2000 akira yamada * string.c (trnext): minus at the end of pattern. Sun Oct 1 00:43:34 2000 WATANABE Hirofumi * configure.in: exp-name was wrong on cygwin and mingw32. Thu Sep 28 14:57:09 2000 Yukihiro Matsumoto * regex.c (re_compile_pattern): should try must_string calculation every time. Tue Sep 19 23:47:44 2000 SHIROYAMA Takayuki * configure.in, config.guess, config.sub: MacOS X support. Wed Sep 27 18:40:05 2000 Yukihiro Matsumoto * stable version 1.6.1 released. Wed Sep 27 16:13:05 2000 WATANABE Hirofumi * mkconfig.rb: variables should be expanded only if /\$\{?\w+\}?/. Tue Sep 26 18:09:51 2000 WATANABE Hirofumi * string.c: include Tue Sep 26 15:59:50 2000 Yukihiro Matsumoto * object.c (rb_mod_dup): metaclasses of class/module should not be cleared by rb_obj_dup. Tue Sep 26 02:44:54 2000 Yukihiro Matsumoto * gc.c (GC_MALLOC_LIMIT): size extended. * regex.c (DOUBLE_STACK): use machine's stack region for regex stack if its size is small enough. Mon Sep 25 18:13:07 2000 Yukihiro Matsumoto * regex.c: include . * eval.c (rb_add_method): cache mismatch by method definition. need to clear_cache_by_id every time. Mon Sep 25 13:31:45 2000 WATANABE Hirofumi * win32/win32.c (NtCmdGlob): substitute '\\' with '/'. Mon Sep 25 00:35:01 2000 WATANABE Hirofumi * defines.h: #undef HAVE_SETITIMER on cygwin. Sun Sep 24 03:01:53 2000 Minero Aoki * lib/net/protocol.rb, http.rb: typo. Sat Sep 23 07:33:20 2000 Aleksi Niemela * regex.c (re_compile_pattern): nicer regexp error messages for invalid patterns. Sat Sep 23 03:06:25 2000 Yukihiro Matsumoto * variable.c (rb_autoload_load): should not require already provided features. Fri Sep 22 15:46:21 2000 Minero Aoki * lib/net/http.rb: too early parameter expansion in string. Fri Sep 22 13:58:51 2000 WATANABE Hirofumi * ext/extmk.rb.in: don't use default $: Fri Sep 22 13:42:50 2000 Katsuyuki Komatsu * regex.c (PUSH_FAILURE_COUNT): avoid casting warning on alpha. * regex.c (PUSH_FAILURE_POINT): ditto. Fri Sep 22 10:16:21 2000 WATANABE Hirofumi * win32/config.h.in: add HAVE_TELLDIR, HAVE_SEEKDIR Thu Sep 21 19:04:34 2000 WATANABE Hirofumi * ext/extmk.rb, lib/mkmf.rb (install_rb): check whether libdir is directory or not. Thu Sep 21 17:23:05 2000 Yukihiro Matsumoto * file.c (rb_file_s_symlink): use HAVE_SYMLINK. * file.c (rb_file_s_readlink): use HAVE_READLINK. * dir.c (dir_tell): use HAVE_TELLDIR. * dir.c (dir_seek): use HAVE_SEEKDIR. * configure.in (AC_CHECK_FUNCS): lstat, symlink, readlink, telldir, seekdir checks added. * file.c (lstat): should use stat(2) if lstat(2) is not available. Thu Sep 21 15:59:23 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.29. * lib/net/http.rb: HTTPReadAdapter -> HTTPResponseReceiver * lib/net/http.rb (connecting): response is got in receive() Thu Sep 21 15:49:07 2000 Wayne Scott * lib/find.rb (find): should not follow symbolic links; tuned performance too. Wed Sep 20 23:21:38 2000 Yukihiro Matsumoto * ruby.c (load_file): two Ctrl-D was required to stop ruby at the beginning of stdin script read. Wed Sep 20 14:01:45 2000 Yukihiro Matsumoto * eval.c (rb_provided): detect infinite load loop. * eval.c (rb_provided): too weak filename comparison. * eval.c (rb_thread_alloc): avoid recycling still referenced dvar structures. * eval.c (rb_callcc): ditto. * eval.c (THREAD_ALLOC): fiil dyna_vars field by ruby_dyna_vars. Tue Sep 19 17:47:03 2000 Yukihiro Matsumoto * stable version 1.6.0 released. Tue Sep 19 16:24:52 2000 Yukihiro Matsumoto * marshal.c (Init_marshal): provide marshal.so no more. Tue Sep 19 14:01:01 2000 WATANABE Hirofumi * configure.in, win32/setup.mak: include version number in RUBY_SO_NAME. Tue Sep 19 13:07:47 2000 Yukihiro Matsumoto * parse.y (yylex): was confusing $~ and $_. Tue Sep 19 13:06:53 2000 GOTOU YUUZOU * signal.c (rb_f_kill): signum may be a negative number, should be treated by signed number. Tue Sep 19 01:14:56 2000 Yukihiro Matsumoto * eval.c (rb_provide): better feature handling. * eval.c (rb_f_require): loading ruby library may be partial state. checks in rb_thread_loading is integrated. * eval.c (rb_provided): better thread awareness. * lib/irb/frame.rb: 6 (not 5) parameters for trace_func proc. * eval.c (error_print): should print error position even if get_backtrace() failed. Sat Sep 16 03:29:59 2000 Yukihiro Matsumoto * eval.c (rb_f_require): rb_provided() was called too early; does not work well with threads. * parse.y (ensure): should distinguish empty ensure and non existing ensure. * file.c (Init_File): extending File by class of FileTest was serious mistake. Thu Sep 14 02:46:54 2000 Yukihiro Matsumoto * eval.c (rb_thread_yield): array strip should be done in this function. Wed Sep 13 17:01:03 2000 Yukihiro Matsumoto * bignum.c (rb_big_eq): incomplete value comparison of bignums. Wed Sep 13 06:39:54 2000 Yukihiro Matsumoto * variable.c (rb_mod_class_variables): Module#class_variables added. Wed Sep 13 06:09:26 2000 Wakou Aoyama * lib/cgi.rb: bug fix: CGI::header(): output status header. Wed Sep 13 01:09:12 2000 Yukihiro Matsumoto * parse.y (yylex): allow global variables like '$__a'. Tue Sep 12 22:28:43 2000 WATANABE Hirofumi * ext/socket/extconf.rb: avoid using terrible on cygwin 1.1.5. Tue Sep 12 16:01:58 2000 WATANABE Hirofumi * array.c (rb_ary_unshift_m): typo. Tue Sep 12 15:37:55 2000 Yukihiro Matsumoto * eval.c (rb_yield_0): stripped array too much, should remove just for proc_call(). Tue Sep 12 07:05:24 2000 Wakou Aoyama * lib/cgi.rb: version 2.0.0: require ruby1.5.4 or later. * lib/net/telnet.rb: version 1.6.0 Tue Sep 12 03:26:07 2000 Yukihiro Matsumoto * eval.c (massign): use to_ary to get an array if available. * object.c (rb_Array): ditto. Mon Sep 11 14:24:47 2000 Yukihiro Matsumoto * hash.c (ruby_setenv): should not free the element of origenvironment. * parse.y (command_call): kYIELD moved to this rule to allow 'a = yield b'. (ruby-bugs-ja:#PR15) Mon Sep 11 01:27:54 2000 Yukihiro Matsumoto * eval.c (rb_yield_0): proc#call([]) should pass single value to the block. * eval.c (callargs): reduce array allocation. * eval.c (massign): precise check for argument number. Fri Sep 8 10:05:17 2000 Yukihiro Matsumoto * gc.c (STR_NO_ORIG): should be FL_USER2. Thu Sep 7 14:17:51 2000 Yukihiro Matsumoto * string.c (rb_str_cat): should work even for concatenating same string. Wed Sep 6 17:06:38 2000 Yukihiro Matsumoto * variable.c (rb_cvar_declare): should check superclass's class variable first. Wed Sep 6 10:42:02 2000 Yukihiro Matsumoto * misc/ruby-mode.el (ruby-calculate-indent): shift continuing line if previous line ends with modifier keyword. * misc/ruby-mode.el (ruby-parse-region): should not give up if modifiers are at the end of line. * misc/ruby-mode.el (ruby-expr-beg): indented wrongly if modified statement was size 1. Wed Sep 6 10:41:19 2000 Kenichi Komiya * misc/ruby-mode.el (ruby-parse-region): modifier was not handled well on emacs19. Tue Sep 5 17:10:12 2000 Yukihiro Matsumoto * time.c (time_to_s): fixed zone string UTC for utc time object. Tue Sep 5 00:26:06 2000 Yukihiro Matsumoto * regex.c (re_search): range worked wrongly on bm_search(). Mon Sep 4 13:40:40 2000 WATANABE Hirofumi * configure.in: renamed libruby.a to libruby.{cygwin,mingw32}.a on cygwin and mingw32. Sun Sep 3 23:44:04 2000 Noriaki Harada * io.c (NO_SAFE_RENAME): for BeOS too. Sun Sep 3 11:31:53 2000 Takaaki Tateishi * parse.y (rescue): no assignment was done if rescue body was empty. Sat Sep 2 10:52:21 2000 Yukihiro Matsumoto * parse.y (call_args,aref_args): block_call can be the last argument. * parse.y (COND_PUSH,COND_POP): maintain condition stack to allow kDO2 in parentheses in while/until/for conditions. * parse.y (yylex): generate kDO2 for EXPR_ARG outside of while/until/for condition. Fri Sep 1 10:36:29 2000 Yukihiro Matsumoto * parse.y (aref_args,opt_call_args): add block_call to allow a method without parentheses and with block as a last argument. * hash.c (rb_hash_sort): should not return nil. * re.c (match_aref): should use rb_reg_nth_match(). * eval.c (POP_SCOPE): recycled scopes too much * eval.c (Init_eval): extend room for stack allowance. * eval.c (POP_SCOPE): frees scope too much. Thu Aug 31 14:28:39 2000 Yukihiro Matsumoto * gc.c (rb_gc_mark): T_SCOPE condition must be more precise. * eval.c (scope_dup): should not make all duped scope orphan. Thu Aug 31 10:11:47 2000 Yukihiro Matsumoto * parse.y (stmt): allow stmt_rhs to be right hand side of multiple assignment. * time.c (rb_time_timeval): type error should not mention the word 'interval'. Wed Aug 30 23:21:20 2000 Yukihiro Matsumoto * numeric.c (rb_num2long): use rb_Integer() instead of independent convert routine. * eval.c (rb_rescue2): now takes arbitrary number of exception types. * object.c (rb_convert_type): use rb_rescue2 now to handle NameError. * object.c (rb_convert_type): better error message. Wed Aug 30 17:09:14 2000 WATANABE Hirofumi * ext/Win32API/Win32API.c (Win32API_initialize): AlphaNT support. Wed Aug 30 14:19:07 2000 Yukihiro Matsumoto * parse.y (node_assign): should support NODE_CVASGN2 too. Wed Aug 30 11:31:47 2000 Nobuyoshi Nakada * ext/Win32API/Win32API.c (Win32API_initialize): add the arguments checking. * ext/Win32API/Win32API.c (Win32API_initialize): add taint checking. allow String object in the third argument. Wed Aug 30 10:29:40 2000 Masahiro Tomita * io.c (rb_f_p): flush output buffer. Tue Aug 29 16:29:15 2000 Yukihiro Matsumoto * parse.y (assignable): remove NODE_CVASGN3. * parse.y (gettable): remove NODE_CVAR3. Tue Aug 29 02:02:14 2000 Yukihiro Matsumoto * lib/mkmf.rb (create_makefile): handles create_makefile("a/b"). * ext/extmk.rb.in (create_makefile): ditto Mon Aug 28 18:43:54 2000 Yukihiro Matsumoto * eval.c (is_defined): now handles class variables. * eval.c (rb_eval): class variable behavior revisited. * parse.y (assignable): ditto. * parse.y (gettable): ditto. * regex.c (PUSH_FAILURE_COUNT): push/pop interval count on failure stack. this fix is inspired by the Emacs21 patch from Stefan Monnier . Fri Aug 25 15:24:39 2000 Yukihiro Matsumoto * variable.c (rb_cvar_get): should not follow __attached__. * variable.c (rb_cvar_set): ditto. * variable.c (rb_cvar_declare): ditto. * variable.c (mod_av_set): second class variable assignment at the toplevel should not give warning. Fri Aug 25 01:18:36 2000 Yukihiro Matsumoto * io.c (next_argv): prepare path for open file. * string.c (rb_str_setter): moved from io.c. * io.c (next_argv): filename should be "-" for refreshed ARGF. Thu Aug 24 15:27:39 2000 WATANABE Hirofumi * ext/socket/socketport.h: use `extern int h_errno' if needed. Sat Aug 19 01:34:02 2000 WATANABE Hirofumi * ext/sdbm/_sdbm.c (sdbm_prep): flags should be or-ed by O_BINARY on Win32 too. * ext/sdbm/_sdbm.c (makroom): fill hole with 0 on Win32 too. Fri Aug 18 13:23:59 2000 Yukihiro Matsumoto * eval.c (rb_eval): should preserve and clear $! value before compilation. * eval.c (eval): ditto. Fri Aug 18 11:06:19 2000 Shugo Maeda * ext/socket/socket.c (s_accept): start GC on EMFILE/ENFILE. Thu Aug 17 16:04:48 2000 Yukihiro Matsumoto * eval.c (is_defined): should clear ruby_errinfo. Thu Aug 17 04:26:31 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.27. * lib/net/protocol.rb: writing methods returns written byte size. * lib/net/smtp.rb: send_mail accepts many destinations. Wed Aug 16 00:43:47 2000 Yukihiro Matsumoto * time.c (time_s_times): use CLK_TCK for HZ if it's defined. Tue Aug 15 17:30:59 2000 Yukihiro Matsumoto * eval.c (frame_dup): should set flag FRAME_MALLOC after argv allocation. * eval.c (blk_free): should not free argv if GC was called before frame_dup. Tue Aug 15 16:08:40 2000 WATANABE Hirofumi * configure.in: add ac_cv_func_times=yes for mingw32. * win32/win32.c (mytimes): typo. Tue Aug 15 01:45:28 2000 Yukihiro Matsumoto * io.c (argf_eof): should return true at the end of ARGF without checking stdout if arguments are given. Mon Aug 14 10:34:32 2000 Yukihiro Matsumoto * eval.c (rb_thread_status): status should return false for normal termination, nil for termination by exception. Fri Aug 11 15:43:46 2000 Yukihiro Matsumoto * eval.c (rb_undef): give warning for undefining __id__, __send__. Thu Aug 10 08:05:03 2000 Yukihiro Matsumoto * eval.c (rb_callcc): returned current thread instead of continuation wrongly. Thu Aug 10 05:40:28 2000 WATANABE Hirofumi * ext/extmk.rb.in: $CPPFLAGS should be initialized. * ext/tcltklib/depend: add stubs.o. * ext/tcltklib/extconf.rb: use $CPPFLAGS instead of $CFLAGS. Wed Aug 9 16:31:48 2000 Yukihiro Matsumoto * eval.c (rb_callcc): thread status for continuations must be THREAD_KILLED, otherwise thread_free() breaks other threads. Wed Aug 9 13:24:25 2000 WATANABE Hirofumi * win32/win32.[ch]: emulate rename(2). Tue Aug 8 14:01:46 2000 WATANABE Hirofumi * ext/tcltklib/tcltklib.c: support --enable-tcltk_stubs * ext/tcltklib/extconf.rb: ditto. * ext/tcltklib/stubs.c: created. examine candidate shared libraries. Mon Aug 7 13:59:12 2000 Yukihiro Matsumoto * ruby.h (CLONESETUP): should copy flags before any potential object allocation. * regex.c (re_match): check for stack depth was needed. Sat Aug 5 16:43:43 2000 WATANABE Hirofumi * djgpp/*: convert DOS line endings to UNIX style. * djgpp/config.status: rename to config.sed for SFN. * lib/ftools.rb (compare, safe_unlink, chmod): avoid warnings. * lib/ftools.rb (move): typo. not `tpath', but `to'. Fri Aug 4 23:26:48 2000 Yukihiro Matsumoto * eval.c (proc_call): gives warning if a block is supplied. * eval.c (rb_eval): no warning for discarding if an alias for the method is already made. Fri Aug 4 16:32:29 2000 Yukihiro Matsumoto * array.c (rb_ary_reject_bang): returns nil if no element removed. * hash.c (rb_hash_reject_bang): returns nil if no element removed. Thu Aug 3 19:44:26 2000 Yukihiro Matsumoto * eval.c (rb_thread_fd_writable): should return integer value. * array.c (rb_ary_assoc): search array element whose length is longer than 0 (not 1). Wed Aug 2 18:27:47 2000 Yukihiro Matsumoto * eval.c (rb_thread_wait_fd): prohibit thread context switch during compilation. * eval.c (rb_cont_call): prohibit Continuation#call across threads. Wed Aug 2 08:22:04 2000 Yukihiro Matsumoto * gc.c (rb_gc): clear malloc_memories to zero, to avoid potential super frequent GC invocation. (ruby-bugs:#PR48) * gc.c (rb_gc): only add_heap() if GC trigger condition is satisfied. Tue Aug 1 16:41:58 2000 Yukihiro Matsumoto * ruby.c (proc_options): global load path setting moved from ruby_prog_init(). * ruby.c (incpush): renamed. push path entry at the END of the load path array. This makes -I directories sorted in order in the arguments. Sat Jul 29 23:42:04 2000 Yukihiro Matsumoto * dir.c (dir_each): should check whether dir is closed during the block execution. (ruby-bugs:#PR47) Sat Jul 29 21:57:30 2000 WATANABE Hirofumi * ruby.c (rubylib_mangle): provide another buffer for the result. Wed Jul 26 10:09:01 2000 WATANABE Hirofumi * configure.in: set SOLIBS to LIBS on Cygwin. * configure.in: LIBRUBY_SO='$(RUBY_INSTALL_NAME)'.$target_os.dll on cygwin and mingw32. ruby-cygwin.dll is bad. why? Wed Jul 26 10:04:03 2000 Yukihiro Matsumoto * gc.c (gc_sweep): avoid full scan during compilation. * gc.c (rb_gc): add heap during no gc period (including compilation). Tue Jul 25 19:03:04 2000 WATANABE Hirofumi * cygwin/GNUmakefile: use puts instead of print, because Cygwin DLL's behavior is changed(or bug?). * configure.in: LIBRUBY_SO='$(RUBY_INSTALL_NAME)'-$target_os.dll on cygwin and mingw32. * cygwin/GNUmakefile: ditto. * Makefile.in: $(SOLIBS) should be put after dmyext.@OBJEXT@. * instruby.rb: install $(LIBRUBY) to libdir if $(LIBRUBY) != $(LIBRUBY_A_). Tue Jul 25 15:16:00 2000 Yukihiro Matsumoto * io.c (rb_p): redirect to $defout. Mon Jul 24 18:52:55 2000 WATANABE Hirofumi * win32/win32.c (win32_getenv): should remove `static'. * ruby.c (rubylib_mangle): support "/hoge;/foo" Mon Jul 24 10:28:55 2000 GOTO Kentaro * string.c (rb_str_count): raise exception if no argument is given. Sun Jul 23 12:55:04 2000 Dave Thomas * string.c (rb_str_rindex): Support negative end position. Fri Jul 21 17:35:01 2000 Yukihiro Matsumoto * parse.y (aref_args): command_call now be permitted as aref_args. * process.c (proc_getpriority): getpriority(2) may return valid negative number. use errno to detect error. * marshal.c (dump_ensure): dumped string should be tainted if any among target objects is tainted. * marshal.c (r_regist): restored object should be tainted if and only if the source is a file or a tainted string. Wed Jul 19 15:14:04 2000 Yukihiro Matsumoto * bignum.c (bigdivrem): should use rb_int2big(), not rb_uint2big(). Tue Jul 18 14:58:30 2000 Yukihiro Matsumoto * eval.c (ruby_options): should treat SystemExit etc. properly. * parse.y (yycompile): should check compile_for_eval, not ruby_in_eval. Mon Jul 17 04:29:50 2000 Minero Aoki * lib/mkmf.rb: converts extension of $objs into $OBJEXT. Sun Jul 16 03:02:34 2000 Dave Thomas * lib/weakref.rb: Change to use new ObjectSpace calls. Sat Jul 15 21:59:58 2000 Yukihiro Matsumoto * eval.c (rb_eval): should not redefine __id__ nor __send__. * gc.c (define_final): integrate final.rb features into the interpreter. define_finalizer and undefine_finalizer was added to ObjectSpace. plus, add_finalizer, remove_finalizer, and call_finalizer are deprecated now. Sat Jul 15 01:32:34 2000 Yukihiro Matsumoto * eval.c (rb_mod_method): implements unbound method. * eval.c (Init_eval): should prohibit `module_function' for class Class. Fri Jul 14 17:19:59 2000 WATANABE Hirofumi * cygwin/GNUmakefile.in: use miniruby instead of sed. Fri Jul 14 12:49:50 2000 Yukihiro Matsumoto * io.c (argf_eof): need to check stdin, when next_p == -1. * io.c (read_all): use io_fread() instead of fread(3). * io.c (io_reopen): should clearerr FILE if fd < 3. * re.c (rb_reg_match_m): the result is exported, so it should be declared as busy. * eval.c (rb_eval): should preserve errinfo even if return, break, etc. is called in rescue clause. * instruby.rb: install irb too. Wed Jul 12 15:32:57 2000 Yukihiro Matsumoto * variable.c (rb_const_get): constants for builtin classes must have higher priority than constants from included modules at Object class. * bignum.c (bigdivrem): small embarrassing typo. Wed Jul 12 15:06:28 2000 Yukihiro Matsumoto * eval.c (rb_eval): use rb_const_get_at(). * variable.c (top_const_get): retrieve toplevel constants only, not ones of Object (and its included modules) in general. Wed Jul 12 15:04:11 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.26. * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: add module Net::NetPrivate and its inner classes {Read,Write}Adapter, Command, Socket, SMTPCommand, POP3Command, APOPCommand, HTTPCommand Wed Jul 12 13:10:30 2000 Yukihiro Matsumoto * bignum.c (bigdivrem): defer bignorm(). * bignum.c (bignorm): accepts accidental fixnums. Tue Jul 11 16:54:17 2000 Yukihiro Matsumoto * parse.y (yylex): `@' is no longer a valid instance variable name. Tue Jul 11 01:51:50 2000 Yukihiro Matsumoto * bignum.c (rb_big_divmod): should not use Integer(float) for the right operand. * bignum.c (rb_big_remainder): ditto. * bignum.c (rb_big_modulo): ditto. Mon Jul 10 15:27:16 2000 WATANABE Hirofumi * io.c (pipe_finalize): should set rb_last_status when pclose(). Mon Jul 10 09:07:54 2000 Yukihiro Matsumoto * error.c (rb_bug): print version number and such too. Sat Jul 8 23:08:40 2000 Yukihiro Matsumoto * eval.c (rb_thread_start_0): should copy previous scopes to prevent rb_gc_force_recycle(). Fri Jul 7 23:36:36 2000 Katsuyuki Komatsu * ext/socket/addrinfo.h: move IN_EXPERIMENTAL and IN_LOOPBACKNET definitions to ext/socket/sockport.h. * ext/socket/extconf.rb: add getservbyport() and arpa/inet.h check. * ext/socket/getaddrinfo.c (getaddrinfo): SOCK_RAW may not be defined (ex. BeOS, Palm OS 2.x or before). * ext/socket/getnameinfo.c (getnameinfo): getservbyport() may not exist (ex. BeOS, Palm OS). * ext/socket/sockport.h: add IN_EXPERIMENTAL, IN_CLASSA_NSHIFT, IN_LOOPBACKNET, AF_UNSPEC, PF_UNSPEC and PF_INET. Fri Jul 7 03:30:00 2000 Yukihiro Matsumoto * parse.y (aref_args): should allow Hash[:a=>2] etc. * numeric.c (fix_aref): convert index by NUM2INT, not FIX2INT. (ruby-bugs:#PR37) * time.c (time_localtime): should prohibit for frozen time. * time.c (time_gmtime): ditto. Thu Jul 6 19:12:12 2000 Yukihiro Matsumoto * io.c (rb_file_s_open): should not terminate fptr; just clear it. * ruby.c (proc_options): should not call require_libraries() twice. * ruby.c (require_libraries): clear req_list_head.next after execution. Thu Jul 6 13:51:57 2000 Nobuyoshi Nakada * object.c (rb_to_id): name may not be symbol nor fixnum. * struct.c (rb_struct_s_def): name may be nil. Thu Jul 6 02:09:06 2000 Yukihiro Matsumoto * bignum.c (bigdivrem): new function to return remainder. * numeric.c (fixdivmod): now returns modulo, not remainder. * numeric.c (flodivmod): ditto. * bignum.c (bigdivmod): ditto. * numeric.c (num_modulo): new method; alias to '%'. Thu Jul 6 00:51:43 2000 WATANABE Hirofumi * win32/win32.c (NtCmdGlob): patterns should be separated and NUL terminated. Wed Jul 5 22:27:56 2000 WATANABE Hirofumi * cygwin/GNUmakefile: use ruby.def to make rubycw.dll. * ext/extmk.rb.in: create target.def. * lib/mkmf.rb: ditto. Wed Jul 5 09:47:14 2000 Yukihiro Matsumoto * time.c (time_arg): Time::local, Time::gm now take 7th optional argument for usec. * numeric.c (num_ceil, etc): default ceil, floor, round, truncate implementation for Numeric, using `to_f'. * io.c (rb_io_reopen): clear fptr->path after free() to prevent potential GC crash. * io.c (rb_file_s_open): terminate fptr unless null. * io.c (rb_file_initialize): ditto. * lib/tempfile.rb: specify FILE::CREAT|File::EXCL to open for better security. * numeric.c (flo_truncate): new method. Wed Jul 5 01:02:53 2000 WATANABE Hirofumi * ext/extmk.rb.in: join ' ' -> join(' '). * lib/mkmf.rb: ditto. Tue Jul 4 13:51:29 2000 Yukihiro Matsumoto * ext/dbm/dbm.c: add methods added to Hash in 1.5.x. * ext/gdbm/gdbm.c: ditto. * ext/sdbm/init.c: ditto. * eval.c (proc_call): args may be Qundef (means no argument), do not call TYPE() for args. Tue Jul 4 13:20:56 2000 WATANABE Hirofumi * ext/extmk.rb.in: make command line must be single-quoted. $(RUBY_INSTALL_NAME) is command substitution in the POSIX sh. Tue Jul 4 13:16:02 2000 Yukihiro Matsumoto * util.c (rb_type): should add T_UNDEF. Tue Jul 4 09:30:35 2000 Yukihiro Matsumoto * parse.y (here_document): supports EOF right after terminator. * random.c (rb_f_rand): argument is now optional (rand(max=0)). Tue Jul 4 01:50:49 2000 WATANABE Hirofumi * win32/ruby.def: remove ruby_mktemp. Tue Jul 4 01:27:13 2000 Yukihiro Matsumoto * eval.c (rb_rescue2): new function to rescue arbitrary exception. * numeric.c (do_coerce): should catch NameError explicitly. Tue Jul 4 00:15:23 2000 Dave Thomas * numeric.c (Init_Numeric): forgot to register Numeric#remainder. Mon Jul 3 23:46:56 2000 Katsuyuki Komatsu * win32/win32.c (myselect, myaccept): disable interrupt while executing accept() or select() to avoid Ctrl-C causes "unknown software exception (0xc0000029)". Mon Jul 3 18:35:41 2000 WATANABE Hirofumi * lib/mkmf.rb: use null device if it exists for cross-compiling. Mon Jul 3 18:19:51 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.26. * lib/net/protocol.rb (finish): do nothing unless active. * lib/net/http.rb: HTTP#{get,post}2 again (for new impl). Mon Jul 3 16:47:22 2000 WATANABE Hirofumi * cygwin/GNUmakefile: librubys.a -> lib$(RUBY_INSTALL_NAME)s.a * configure.in: use AC_CANONICAL_{HOST,TARGET,BUILD}. Mon Jul 3 13:15:02 2000 Yukihiro Matsumoto * numeric.c (fix_divmod): x * d + m = y where d, m = x.divmod(y). * bignum.c (rb_big_divmod): ditto. * numeric.c (fixdivmod): does not depend C's undefined % behavior. adopt to fmod(3m) behavior. * numeric.c (flo_mod): modulo now reserves fmod(3m) behavior. * numeric.c (num_remainder): 'deprecated' warning. Mon Jul 3 10:27:28 2000 WATANABE Hirofumi * configure.in: use AC_CANONICAL_SYSTEM. Sun Jul 2 21:17:37 2000 WATANABE Hirofumi * configure.in: support without --enable-shared for cygwin/mingw32. * cygwin/GNUmakefile: ditto. * ext/extmk.rb.in: use null device if it exists for cross-compiling. * lib/mkmf.rb: ditto. * util.c (ruby_mktemp): remove unused ruby_mktemp(). Sun Jul 2 14:18:04 2000 Koji Arai * eval.c (TMP_PROTECT_END): tmp__protect_tmp may be NULL. Sun Jul 2 03:37:50 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.25. * lib/net/protocol.rb (each_crlf_line): beg = 0 is needed in adding{} * lib/net/smtp.rb: allow String for to_addr of SMTP#sendmail Sat Jul 1 15:22:35 2000 Yukihiro Matsumoto * numeric.c (fix_rshift): should handle shift value more than sizeof(long). Sat Jul 1 15:22:35 2000 Yukihiro Matsumoto * eval.c (rb_eval): the value from RTEST() is not valid Ruby object. result should be either true or false. Sat Jul 1 09:30:06 2000 Katsuyuki Komatsu * re.c (rb_reg_initialize): was freeing invalid pointer. Sat Jul 1 03:25:56 2000 Yukihiro Matsumoto * parse.y (call_args): command_call can be the last argument of call_args. It had to be the only argument. * re.c (rb_reg_s_quote): should not dump core even for unsane mbc string. Fri Jun 30 01:36:20 2000 Aleksi Niemela * parse.y (f_norm_arg): better, nicer error message. Thu Jun 29 07:45:33 2000 Yukihiro Matsumoto * ext/socket/socket.c (udp_send): destination may be packed struct sockaddr. * object.c (rb_Integer): Integer(nil) should be invalid, on the other hand, nil.to_i is OK. Wed Jun 28 17:26:06 2000 Yukihiro Matsumoto * ext/socket/socket.c (ip_recvfrom): udp_recvfrom and tcp_recvfrom is merged and moved to IPSocket#recvfrom. * ext/socket/socket.c (sock_s_getaddrinfo): family can be a strings such as "AF_INET" etc. * ruby.c (require_libraries): . and RUBYLIB added to $load_path just before -r procedure. * ruby.c (proc_options): -e, - did not exec -r. Wed Jun 28 14:52:28 2000 Koga Youichirou * config.sub: NetBSD/hpcmips support. Wed Jun 28 10:11:06 2000 Yukihiro Matsumoto * gc.c: gc trigger threshold changed; GC_NEWOBJ_LIMIT removed, FREE_MIN is increased to 4096. Tue Jun 27 22:39:28 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.24. * lib/net/protocol.rb: modified each_crlf_line again. * lib/net/protocol.rb: do_write_beg,do_write_end -> writing{} do_write_do -> do_write * lib/net/http.rb: can make proxy connection by passing addresses to HTTP.new, start. * lib/net/http.rb: HTTP.new_implementation, old_implementation: can use 1.2 implementation of head, get, post, put. (see document) Tue Jun 27 12:05:10 2000 Katsuyuki Komatsu * win32.c (myfdclr): new function. * win32.h: add FD_CLR. Mon Jun 26 23:41:41 2000 WATANABE Hirofumi * ruby.h: add cast for ANSI style. * gc.c (rb_data_object_alloc): use RUBY_DATA_FUNC. Mon Jun 26 22:20:03 2000 Katsuyuki Komatsu * win32/win32.c (is_socket, extract_file_fd): New function. * win32/win32.c (myfdopen): use is_socket(). * win32/win32.c (myselect): return non socket files immediately if file and socket handles are mixed. Mon Jun 26 16:21:30 2000 Yukihiro Matsumoto * eval.c (rb_thread_schedule): wait_for cleared too early. Mon Jun 26 09:15:31 2000 Yukihiro Matsumoto * pack.c: remove obsolete 'F', 'D' specifiers. Sun Jun 25 00:55:03 2000 Katsuyuki Komatsu * ext/socket/socket.c (sock_s_getnameinfo): `res' would not be assigned if TYPE(sa) == T_STRING. Sat Jun 24 14:36:29 2000 WATANABE Hirofumi * config*.dj, configure.bat, top.sed: move to djgpp/. Sat Jun 24 02:34:17 2000 Yukihiro Matsumoto * ruby.c (load_file): call require_libraries() here to let debug.rb work properly. Fri Jun 23 22:34:51 2000 Katsuyuki Komatsu * bignum.c (rb_big_lshift): reorder xds assignment to avoid reusing `x' as `len' by VC++ 6.0 SP3 compiler with -Ox switch. Fri Jun 23 01:11:27 2000 Yukihiro Matsumoto * string.c (rb_str_substr): should return empty string (""), if beg == str.size and len == zero, mostly for convenience and backward compatibility. * parse.y (new_super): should tweak block_pass node for super too. * string.c (rb_str_split_m): last split element should not be nil, but "" when limit is specified. Thu Jun 22 17:27:46 2000 Yukihiro Matsumoto * string.c (rb_str_substr): str[n,m] now returns nil when n equals to str.size. Thu Jun 22 13:49:02 2000 Uechi Yasumasa * lib/net/ftp.rb: support resuming. Thu Jun 22 13:37:19 2000 WATANABE Hirofumi * eval.c (rb_thread_sleep_forever): merge pause() macro. Wed Jun 21 08:49:04 2000 Yukihiro Matsumoto * eval.c (rb_eval): should not raise exception just by defining singleton class. Wed Jun 21 01:18:03 2000 Yukihiro Matsumoto * ruby.h: two macros RUBY_DATA_FUNC and RUBY_METHOD_FUNC are added to make writing C++ extensions easier. * array.c (rb_ary_dup): internal classes should not be shared by dup. * hash.c (rb_hash_dup): ditto. * object.c (rb_obj_dup): ditto. * string.c (rb_str_dup): ditto. * error.c (Init_Exception): renamed NotImplementError to NotImplementedError. Tue Jun 20 16:22:38 2000 Yukihiro Matsumoto * time.c (make_time_t): bug in DST boundary. Tue Jun 20 10:54:19 2000 WATANABE Hirofumi * configure.in: add eval sitedir. Tue Jun 20 06:14:43 2000 Wakou Aoyama * lib/cgi.rb: change: version syntax. old: x.yz, now: x.y.z * lib/net/telnet.rb: ditto. Tue Jun 20 00:37:45 2000 Yukihiro Matsumoto * re.c (rb_reg_kcode_m): Regexp#kcode returns nil for code unfixed regexp object. * bignum.c (bigdivmod): bignum zero check was wrong. Mon Jun 19 10:48:28 2000 Yukihiro Matsumoto * variable.c (rb_cvar_set): forgot to add security check for class variable assignment. Sun Jun 18 22:49:13 2000 WATANABE Hirofumi * configure.in: single quoted sitedir. * mkconfig.rb: add DESTDIR for cross-compiling. * lib/mkmf.rb: add DESTDIR. * ruby.c (load_file): force binmode if fname includes ".exe" on DOSISH. Sat Jun 17 23:22:17 2000 Yukihiro Matsumoto * sprintf.c (rb_f_sprintf): should ignore negative precision given by <%.*>. * sprintf.c (rb_f_sprintf): should allow zero precision. Sat Jun 17 03:13:29 2000 Yukihiro Matsumoto * time.c (time_localtime): avoid unnecessary call of localtime. * time.c (time_gmtime): avoid unnecessary call of gmtime. * process.c (proc_wait2): new method. * process.c (proc_waitpid): second argument made optional. * process.c (proc_waitpid2): new method. Sat Jun 17 00:05:00 2000 Yukihiro Matsumoto * re.c (rb_reg_clone): should initialize member fields. Fri Jun 16 22:49:34 2000 Yukihiro Matsumoto * io.c (rb_io_rewind): set lineno to zero. Fri Jun 16 22:47:47 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.23. * lib/net/protocol.rb: too many CRLF in last line. Fri Jun 16 21:23:59 2000 WATANABE Hirofumi * configure.in: add pause(2) checking. * eval.c: define pause() if missing. Fri Jun 16 18:41:58 2000 Koji Arai * process.c (proc_setsid): BSD-style setpgrp() don't return process group ID, but 0 or -1. Fri Jun 16 16:23:35 2000 Koji Arai * file.c (rb_stat_inspect): gives detailed information; compatibility with ruby-1.4.x. Fri Jun 16 05:18:45 2000 Yasuhiro Fukuma * configure.in: FreeBSD: do not link dummy libxpg4 which was merged into libc. Fri Jun 16 03:17:36 2000 Satoshi Nojo * ext/dbm/dbm.c (fdbm_length): use GetDBM. empty?, [] too. * ext/gdbm/gdbm.c (fgdbm_length): ditto. * ext/sdbm/init.c (fsdbm_length): ditto. Fri Jun 16 01:57:31 2000 Yukihiro Matsumoto * eval.c (rb_thread_sleep_forever): pause(2) instead of sleep(3). Thu Jun 15 10:46:36 2000 Yukihiro Matsumoto * string.c (rb_str_sub_bang): should probagate taintness from replacement string. Wed Jun 14 17:01:41 2000 Katsuyuki Komatsu * rubytest.rb: add CONFIG['EXEEXT'] to the executable file name. Wed Jun 14 14:50:00 2000 Yukihiro Matsumoto * string.c (rb_f_sub): assign to $_ only if modification happens. * string.c (rb_f_gsub): ditto. * string.c (rb_f_chop): ditto. * string.c (rb_f_chomp): ditto. * io.c (io_reopen): preserve file position by ftell/fseek, if io is a seekable. * eval.c (method_arity): wrong arity number for the methods with optional arguments. * time.c (make_time_t): opposite timezone shift (should be negative). Wed Jun 14 14:07:38 2000 WATANABE Hirofumi * io.c: typo(ig/if). * re.c: typo(re/reg). add rb_reg_check(). * time.c: remove unneeded declare(daylight, timezone). * configure.in: add include when daylight checking. Wed Jun 14 11:36:52 2000 WATANABE Hirofumi * marshal.c (r_object): modified for symbols. * marshal.c (w_object): ditto. Wed Jun 14 10:04:58 2000 Yukihiro Matsumoto * re.c (rb_memcmp): should compare according to ruby_ignorecase. * string.c (rb_str_cmp): use rb_memcmp. * string.c (rb_str_index): ditto. * string.c (rb_str_rindex): ditto. * string.c (rb_str_each_line): ditto. Wed Jun 14 04:58:53 2000 Dave Thomas * io.c (rb_io_set_lineno): should have returned VALUE, not integer. Wed Jun 14 09:29:42 2000 Yukihiro Matsumoto * string.c (rb_str_dup): dup should always propagate taintness. Wed Jun 14 00:50:14 2000 Wakou Aoyama * lib/cgi.rb: read_multipart(): if no content body then raise EOFError. Tue Jun 13 11:46:17 2000 Yukihiro Matsumoto * process.c (proc_setsid): try implement it using setpgrp() and ioctl(fd, TIOCNOTTY, NULL). * re.c (rb_reg_prepare_re): magic variable $= should affect regex pattern match. * time.c (make_time_t): use tm.tm_gmtoff if possible. * time.c (time_zone): use tm.tm_zone if available. Tue Jun 13 01:50:57 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.22. * lib/net/http.rb: HTTPResponse#body returns body. Mon Jun 12 23:41:54 2000 WATANABE Hirofumi * configure.in (daylight): avoid GCC optimization. Mon Jun 12 19:02:27 2000 WATANABE Hirofumi * configure.in: cygwin has strange timezone. * time.c (time_zone): use tzname and daylight. Sat Jun 10 23:10:32 2000 Yukihiro Matsumoto * io.c (rb_io_seek): whence is optional, default is SEEK_SET. Fri Jun 9 17:00:29 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.21. * lib/net/http.rb: exception is raised with response object. Fri Jun 9 15:11:35 2000 Yukihiro Matsumoto * time.c (make_time_t): supports daylight saving time. * eval.c (rb_thread_safe_level): should retrieve current $SAFE value if a thread is the current thread. Thu Jun 8 14:25:45 2000 Hiroshi Igarashi * lib/mkmf.rb: add target `distclean' in Makefile for extlib. target `clean' doesn't remove Makefile. Thu Jun 8 13:34:03 2000 Dave Thomas * numeric.c: add nan?, infinite?, and finite? to Float Thu Jun 8 00:31:04 2000 WATANABE Hirofumi * regex.h: export re_mbctab properly on cygwin. * dln.c: use dlopen instead of LoadLibrary on cygwin. Thu Jun 8 13:41:34 2000 Tadayoshi Funaba * file.c (rb_file_s_basename): might dump core. Tue Jun 6 03:29:12 2000 Yukihiro Matsumoto * dir.c (dir_foreach): now returns nil for consistency. * bignum.c (bigdivmod): modulo by small numbers was wrong. Mon Jun 5 00:18:08 2000 WATANABE Hirofumi * bignum.c: avoid conflict with USHORT on mingw32. Mon Jun 5 00:13:35 2000 WATANABE Hirofumi * eval.c (rb_thread_schedule): =/== typo. Sun Jun 4 03:17:36 2000 Wakou Aoyama * lib/cgi.rb: improve: CGI::pretty() Sun Jun 4 02:01:10 2000 WATANABE Hirofumi * lib/mkmf.rb: do not need to add -L$(topdir) in --enable-shared case. Sat Jun 3 13:50:06 2000 Yukihiro Matsumoto * parse.y (rb_id2name): should support constant attrset identifiers. * bignum.c (rb_big_eq): Bignum#== should not raise exception. Fri Jun 2 11:24:48 2000 Yukihiro Matsumoto * io.c (rb_io_popen): open with a block returns the value from the block. old behavior was back. Fri Jun 2 00:42:31 2000 Yukihiro Matsumoto * eval.c (rb_thread_cleanup): should clear priority for thread termination. Thu Jun 01 22:39:41 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.20. * lib/net/http.rb: wrongly closed the socket twice when no Content-Length: was given. Thu Jun 1 00:59:15 2000 Yukihiro Matsumoto * eval.c (rb_yield_0): convert Qundef to []. Wed May 31 20:45:59 2000 Dave Thomas * string.c (rb_str_slice_bang): wrong argument number. Wed May 31 12:37:04 2000 Yukihiro Matsumoto * eval.c (rb_exec_end_proc): print error message from END procs. Wed May 31 04:06:41 2000 Wakou Aoyama * lib/cgi.rb: change: CGI#out() if "HEAD" == REQUEST_METHOD then output only HTTP header. Wed May 31 01:54:21 2000 Yukihiro Matsumoto * eval.c (rb_thread_schedule): set main_thread->status to THREAD_TO_KILL, before raising deadlock error. * eval.c (rb_thread_deadlock): if curr_thread == main_thread, do not call rb_thread_restore_context() Tue May 30 23:33:41 2000 Katsuyuki Komatsu * lib/mkmf.rb (create_makefile): add $(TARGET).ilk and *.pdb to cleanup files for mswin32. Mon May 29 10:41:10 2000 Nobuyoshi Nakada * file.c (rb_file_s_basename): should propagate taintness. Sun May 28 21:37:13 2000 WATANABE Hirofumi * eval.c: bug fix: DLEXT2. Sun May 28 19:21:43 2000 WATANABE Hirofumi * win32/win32.c: use ruby's glob. * dir.c: "glob" exported and renamed to "rb_glob". * ruby.h: ditto. * main.c: turn off command line mingw32's globbing. Wed May 25 22:25:13 2000 WATANABE Hirofumi * ext/extmk.rb.in: use "ftools" instead of "rm -f". * lib/mkmf.rb: ditto. Thu May 25 22:01:32 2000 Katsuyuki Komatsu * defines.h: mswin32: remove obsolete USHORT definition. * re.h: mswin32: use EXTERN instead of extern. * regex.h: mswin32: export re_mbctab properly. * win32/ruby.def: add ruby_ignorecase and regex.c's exports. Thu May 25 21:28:44 2000 Minero Aoki * re.c (rb_reg_expr_str): escape un-printable character. Thu May 25 01:35:15 2000 Yukihiro Matsumoto * parse.y (tokadd_escape): forgot to add `\x' to hexadecimal escape sequences. * object.c (rb_obj_dup): dup for normal object (T_OBJECT) copies instance variables only. Wed May 24 23:49:47 2000 Yukihiro Matsumoto * object.c (rb_mod_initialize): should provide initialize. Wed May 24 23:17:50 2000 Katsuyuki Komatsu * win32/Makefile: remove unnecessary mv and rm command call. Wed May 24 21:01:04 2000 Katsuyuki Komatsu * ext/pty/pty.c: use "" instead of <> to include ruby.h and rubyio.h for BeOS (PowerPC). * file.c (rb_find_file): should check dln_find_file() result. * win32/ruby.def: add rb_block_given_p. Wed May 24 16:32:45 2000 Yukihiro Matsumoto * io.c (rb_io_popen): popen does not take 3rd argument anymore. * re.c (rb_reg_desc): re may be zero, check before dereferencing. Wed May 24 16:03:06 2000 Wakou Aoyama * lib/cgi.rb: bug fix: CGI::escape(), CGI::Cookie::new() * lib/net/telnet.rb: improve: binmode(), telnetmode() interface Wed May 24 13:12:31 2000 Yukihiro Matsumoto * misc/ruby-mode.el (ruby-parse-region): support `while .. do' etc. But corresponding keywords must be at the beginning of line. Tue May 23 23:50:12 2000 Yukihiro Matsumoto * re.c (rb_reg_initialize_m): wrong kcode value. * re.c (rb_reg_s_new): forgot to initialize re->ptr. Tue May 23 08:36:24 2000 Yukihiro Matsumoto * regex.c (re_compile_pattern): forgot to restore old option status by (?ix-ix). * regex.c (re_compile_fastmap): anychar may match newline if RE_OPTION_MULTILINE or RE_OPTION_POSIXLINE is set. Mon May 22 22:45:06 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.19. * lib/net/http.rb: do not use Regexp "p" option. Mon May 22 21:56:43 2000 Nobuyoshi Nakada * struct.c (rb_struct_getmember): should use ID2SYM, not INT2NUM. Mon May 22 15:07:37 2000 Yukihiro Matsumoto * file.c (rb_find_file): should check if the file really exists. Mon May 22 09:08:12 2000 Yukihiro Matsumoto * io.c (rb_io_popen): _exit(0) after processing block under the child process. * io.c (rb_io_popen): flush stdout/stderr before subprocess termination. * eval.c (rb_check_safe_str): insert rb_secure(4); operation requires untainted string should be prohibited in level 4. Sun May 21 21:17:00 2000 WATANABE Hirofumi * configure.in: add Setup.dj for djgpp cross-compiling. * Setup.dj: add readline. * instruby.rb: copy win32/win32.h to archlibdir on mingw32. Sun May 21 20:58:08 2000 Katsuyuki Komatsu * pack.c: fix OFF16 and OFF32 definitions for Alpha and IRIX64. Sun May 21 17:31:37 2000 WATANABE Hirofumi * instruby.rb: support "make install" for cross-compiling. * ext/extmk.rb.in: ditto. Sun May 21 14:22:49 2000 WATANABE Hirofumi * Makefile.in: rename prep.rb to fake.rb. * configure.in: ditto. Sat May 20 23:29:14 2000 Yukihiro Matsumoto * dir.c (dir_s_new): does not take block; "open" does. * io.c (rb_io_s_new): ditto. Fri May 19 07:44:26 2000 Yukihiro Matsumoto * dir.c (dir_s_open): Dir#open does not returns closed Dir if a block is given to the method. * re.c (rb_reg_initialize_m): Regexp::new calls initialize now. * string.c (Init_String): String#delete_at removed. * string.c (rb_str_aset_m): should have checked argc != 2. * eval.c (rb_thread_schedule): select(2) was called too many. * regex.c (re_compile_pattern): a bug in (?m) support. Pointed out by Dave Thomas . Thu May 18 23:55:26 2000 Katsuyuki Komatsu * dln.c (search_undef): st_lookup()'s 3rd parameter should be a pointer of the variable which has the same size and alignment as `char *'. * marshal.c (w_symbol, w_object): ditto. * parse.y (rb_intern): ditto. Thu May 18 18:00:35 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.18. * lib/net/protocol.rb: Net::Version was removed. * lib/net/smtp.rb: use Socket.gethostname to get local host name. Thu May 18 13:34:57 2000 Yukihiro Matsumoto * ext/socket/socket.c (ruby_connect): should not have replaced thread_write_select() by rb_thread_fd_writable(). Thu May 18 09:01:25 2000 Katsuyuki Komatsu * configure.in, ext/extmk.rb.in, lib/mkmf.rb: remove BeOS R3 support. Make a shared library (libruby.so) only if the --enable-shared option is specified. * instruby.rb: no longer use libruby.so.LIB and import.h. * io.c: fix READ_DATA_PENDING definition for BeOS (PowerPC). Wed May 17 14:14:23 2000 Yukihiro Matsumoto * re.c (rb_reg_new_1): use /m instead of /p. Wed May 17 02:22:03 2000 Yukihiro Matsumoto * eval.c (rb_thread_polling): wait 0.06 second to let other processes run. * process.c (rb_waitpid): avoid busy wait using rb_thread_polling. * file.c (rb_thread_flock): ditto. * parse.y (expr): avoid calling value_expr() twice. Wed May 17 00:45:57 2000 WATANABE Hirofumi * io.c (rb_io_binmode): should check PLATFORMs, not O_BINARY, sigh... Wed May 17 00:40:15 2000 Katsuyuki Komatsu * win32/config.h: add DLEXT2, now DLEXT on mswin32 is "so". * win32/config.status: ditto. * win32/ruby.def: add symbol "rb_big_divmod". Tue May 16 19:45:32 2000 Katsuyuki Komatsu * intern.h: use EXTERN instead of extern. * win32/ruby.def: add rb_defout, rb_stdout, ruby_errinfo, ruby_sourceline, ruby_sourcefile to work with eruby reported by Hiroshi Saito . Export both ruby_xmalloc and xmalloc etc. Tue May 16 17:00:05 2000 Masaki Fukushima * eval.c (rb_thread_select): should check whether fds are null. Tue May 16 11:51:31 2000 Yukihiro Matsumoto * io.c (pipe_open): synchronize subprocess stdout/stderr. Mon May 15 15:38:09 2000 Yukihiro Matsumoto * ruby.h: exported symbols should be for xmalloc etc. are now prefixed by 'ruby_', e.g. ruby_xmalloc(). * eval.c (rb_thread_select): remove busy wait for select. * dir.c (glob): trailing path may be null, e.g. glob("**"). Mon May 15 14:48:41 2000 Nobuyoshi Nakada * io.c (rb_io_pid): new method; returns nil if no process attached to the IO. Mon May 15 01:18:20 2000 Yukihiro Matsumoto * io.c (rb_io_s_popen): _exit after Proc execution. Sun May 14 18:05:59 2000 WATANABE Hirofumi * Makefile.in: missing/nt.c -> win32/win32.c * configure.in: bug fix; static linking on mingw32. * cygwin/GNUmakefile.in: remove VPATH. * ext/extmk.rb.in: Makefile set binmode with mingw32 on cygwin32. * lib/mkmf.rb: ditto. * win32/config.h: undef HAVE_SYS_FILE_H. Sun May 14 02:02:48 2000 WATANABE Hirofumi * lib/irb/ruby-lex.rb: '/' should be escaped in character class. Sun May 14 00:54:43 2000 WATANABE Hirofumi * configure.in, ...: support mingw32. * defines.h: ditto. undef EXTERN for tcl/tk on cygwin. * ext/*/extconf.rb: replace PLATFORM with RUBY_PLATFORM. * ext/socket/sockport.h: define IN_MULTICAST for missing IN_MULTICAST. * ext/tcltklib/tcltklib.c: remove declaration of rb_argv0. * file.c: should check S_IXGRP, S_ISGID, not NT. * io.c (rb_io_binmode): should check _IOBIN, O_BINARY, not PLATFORMs. Sat May 13 14:21:15 2000 Koji Arai * io.c (rb_io_s_popen): should check whether a block is given. Fri May 12 17:33:44 2000 Yukihiro Matsumoto * regex.c (re_compile_pattern): charset_not should not exclude newline from matching set. Thu May 11 22:51:05 2000 Ryunosuke Ohshima * pack.c (pack_pack): Bignum support. * pack.c (pack_unpack): ditto. Thu May 11 21:19:29 2000 Hiroshi Igarashi * intern.h: add missing declarations of ruby API functions. * ruby.h: fix function name in declarations. Thu May 11 22:29:25 2000 Katsuyuki Komatsu * ext/md5/depend: add $(topdir)/config.h dependency to md5c.o. * ext/md5/extconf.rb: new file to add -DHAVE_CONFIG_H flag for Alpha. Thu May 11 10:55:52 2000 Ryunosuke Ohshima * pack.c (pack_pack): packing BER compressed integer by `w'. * pack.c (pack_unpack): unpacking BER. Thu May 11 00:37:55 2000 Yukihiro Matsumoto * parse.y (parse_regx): remove in_brack. Wed May 10 12:51:18 2000 Yukihiro Matsumoto * ruby.c (proc_options): move adding RUBYLIB and "." to the load path after #! line parsing. * parse.y (parse_regx): should parse backslash escape like `\c[' here to avoid causing `unterminated regexp' error. Wed May 10 00:19:53 2000 Katsuyuki Komatsu * MANIFEST, beos/GNUmakefile.in, configure.in: no longer need beos/GNUmakefile.in to support BeOS R4.5.2 (Intel) as a result of eban's Makefile.in change. * io.c: NOFILE is already defined on BeOS R4.5 (Intel) or later. * lib/matrix.rb: remove debug print. * regex.c: don't use nested comment. Tue May 9 17:08:43 2000 Yukihiro Matsumoto * eval.c (massign): no longer convert nil into empty array. * io.c (rb_io_s_popen): optional 3rd argument to give proc, which will be executed in spawned child process. Mon May 8 23:47:39 2000 Katsuyuki Komatsu * eval.c (rb_callcc): prev & next should be initialized to zero. Mon May 8 23:17:36 2000 Yukihiro Matsumoto * dln.c (dln_init): remove possible buffer overrun. This is suggested by Aleksi Niemela . * dln.c (init_funcname): ditto. Sat May 6 23:35:47 2000 Yukihiro Matsumoto * parse.y (lhs): should allow `obj.Attr = 5' type expression. Sat May 6 15:46:08 2000 WATANABE Hirofumi * ext/socket/extconf.rb: add a new configure option to force use of the WIDE Project's getaddrinfo(): --enbale-wide-getaddrinfo. Fri May 5 21:19:22 2000 MOROHOSHI Akihiko * parse.y (yylex): allow '$1foo' and such. Fri May 5 17:57:24 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.17. * lib/net/http.rb: write also port number in Host: field. * lib/net/http.rb: see Proxy-Connection: to decide socket connection. Fri May 5 03:25:15 2000 Yukihiro Matsumoto * regex.c (re_compile_fastmap): charset_not for multibyte characters excluded too many characters. Tue May 2 13:23:43 2000 Yukihiro Matsumoto * eval.c (rb_thread_schedule): little bit more impartial context switching. Tue May 2 09:50:03 2000 Katsuyuki Komatsu * configure.in: add DLDLIBS to set platform specific library for extensions. * ext/extmk.rb.in: use @DLDLIBS@ instead of RUBY_PLATFORM choice. * lib/mkmf.rb: use CONFIG["DLDLIBS"] instead of RUBY_PLATFORM choice. * config_s.dj: add @DLDLIBS@. * win32/config.status: ditto. * win32/ruby.def: regular maintenance. Mon May 1 23:42:44 2000 WATANABE Hirofumi * configure.in, eval.c: add DLEXT2. now DLEXT on Cygwin is "so". * defines.h: use dllimport, dllexport for Cygwin 1.1.x. * ruby.h: ditto. * cygwin/GNUmakefile.in: ditto. * ext/Win32API/Win32API.c: directly "call" in asm statement for gcc 2.95.x or newer. Sat Apr 29 04:58:12 2000 Nobuyoshi Nakada * array.c (rb_ary_unshift_m): performance improvement. Fri Apr 28 00:19:22 2000 Nobuyoshi Nakada * array.c (rb_ary_unshift_m): takes items to push. Wed Apr 26 15:23:02 2000 Yukihiro Matsumoto * string.c (rb_str_succ): insert carrying character just before the leftmost alpha numeric character. * string.c (rb_str_succ): proper behavior for "".succ and "\377".succ. * string.c (rb_str_succ): use realloc and memmove. Tue Apr 25 18:28:45 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.16. * lib/net/smtp.rb: add SMTP AUTH Tue Apr 25 14:30:13 2000 Yukihiro Matsumoto * io.c (rb_io_gets_internal): shortcut when rs == rb_default_rs. Sat Apr 22 23:14:41 2000 SHIROYAMA Takayuki * configure.in: MacOS X support. Sat Apr 22 16:37:10 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.15. * lib/net/http.rb: closing socket by watching both user header and server response Fri Apr 21 21:44:34 2000 WATANABE Hirofumi * io.c (rb_io_s_pipe): should set FMODE_SYNC. Thu Apr 20 16:59:22 2000 Nobuyoshi Nakada * eval.c (massign): `*lvalue = false' should assign `[false]' to lvalue. Wed Apr 19 08:35:08 2000 Yukihiro Matsumoto * class.c (rb_singleton_class): generate singleton class for special constants: nil, true, false. Wed Apr 19 02:09:30 2000 Yukihiro Matsumoto * class.c (rb_singleton_class): singleton method for nil, true, false is possible now. * eval.c (rb_eval): ditto. Tue Apr 18 18:54:25 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.14. * lib/net/http.rb: new method HTTP#head2. * lib/net/http.rb: get2/post2 does not raise exceptions. Mon Apr 17 15:16:31 2000 Yukihiro Matsumoto * io.c (rb_io_close): to detect some exceptional status, writable IO should be flushed before close; Sat Apr 15 18:29:00 2000 Yukihiro Matsumoto * array.c (rb_ary_collect_bang): Array#filter renamed. Fri Apr 14 19:47:11 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.13. * lib/net/pop.rb: accept illegal timestamp * lib/net/http.rb: when body was chunked, does not set Content-Length: Tue Apr 11 21:14:42 2000 Katsuyuki Komatsu * config_s.dj: add @sitedir@. * configure.in: add --with-sitedir=DIR option. * instruby.rb: use CONFIG["sitedir"]. * lib/mkmf.rb: support 'make site-install'. * win32/config.status: add @sitedir@. Tue Apr 11 16:25:15 2000 Yukihiro Matsumoto * bignum.c (rb_big_2comp): unnecessary lvalue cast removed. Tue Apr 11 02:25:53 2000 Yukihiro Matsumoto * hash.c (env_fetch): new method. * marshal.c (marshal_dump): accepts depth = nil for unlimited depth. Sun Apr 9 20:49:19 2000 Dave Thomas * parse.y (str_extend): Allow class variables to be expanded. Fri Apr 7 02:03:54 2000 Yukihiro Matsumoto * error.c (rb_sys_fail): escape non-printable characters. Thu Apr 6 20:10:47 2000 Katsuyuki Komatsu * ext/extmk.rb.in (create_makefile): BeOS --program-suffix support. * lib/mkmf.rb (create_makefile): ditto. Thu Apr 6 09:55:26 2000 Katsuyuki Komatsu * error.c (rb_sys_fail): need rb_exc_new2() call on BeOS. Mon Apr 3 17:22:27 2000 Yukihiro Matsumoto * io.c (rb_io_reopen): support tempfile. * eval.c (catch_i): should supply argument. Sat Apr 1 22:50:28 2000 Yukihiro Matsumoto * marshal.c (r_object): wrong symbol restoration. Sat Apr 1 21:30:53 2000 WATANABE Hirofumi * io.c (rb_io_printf, rb_f_printf): should use rb_io_write. Sat Apr 1 00:16:05 2000 Yukihiro Matsumoto * gc.c (rb_gc_call_finalizer_at_exit): should be clear flags before calling finalizers. * eval.c (specific_eval): can be called without SecurityError, if $SAFE >= 4. * object.c (sym_inspect): inspect gives ":sym", to_s gives "sym". Fri Mar 31 22:07:04 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.12. * lib/net/protocol.rb: update Net::Protocol::Proxy#connect * lib/net/protocol.rb: ReplyCode is not a class * lib/net/http.rb: header value format was change: values do not include header name * lib/net/http.rb: header is not a Hash, but HTTPResponse Thu Mar 30 12:19:44 2000 Katsuyuki Komatsu * enum.c (enum_find): rb_eval_cmd() should be called with array. Tue Mar 28 13:57:05 2000 Clemens Hintze * ext/dbm/dbm.c (fdbm_invert): should return new hash. * ext/gdbm/gdbm.c (fgdbm_invert): ditto. Tue Mar 28 00:58:03 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.11. * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: does not dispatch any commands while dispatching command. * lib/net/protocol.rb: failed to get error class of inherited ReplyCode * lib/net/http.rb: change feature of "get2", "post2" Mon Mar 27 01:34:58 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.10. * lib/net/http.rb: return value of 'head' was wrong. Sun Mar 26 17:47:35 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.9. * lib/net/smtp.rb: SMTP#do_ready wrongly took no arguments Sat Mar 25 23:21:10 2000 Yukihiro Matsumoto * marshal.c (w_object): symbols should be converted to ID before dumping out. Fri Mar 24 18:26:51 2000 Yukihiro Matsumoto * file.c (test_check): should have checked exact number of arguments. Fri Mar 24 21:02:11 2000 Koji Arai * signal.c (trap): should treat some symbols as the signal. Fri Mar 24 06:58:03 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.8. * lib/net/http.rb: post, get2, post2, get_body * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: separate Command/Socket documentation. Thu Mar 23 02:26:14 2000 Yukihiro Matsumoto * io.c (rb_io_fptr_finalize): fptr may be null. * io.c (rb_io_s_new): now calls `initialize'. * io.c (rb_io_initialize): actual open done in this method. * io.c (rb_file_initialize): ditto. * eval.c (rb_eval): class variables in singleton class definition is now handled properly (I hope). Wed Mar 22 21:49:36 2000 Minero Aoki * st.c (st_delete_safe): skip already deleted entry. * hash.c (rb_hash_delete): modify brace miss. Wed Mar 22 08:53:58 2000 Yukihiro Matsumoto * eval.c (exec_under): do not push cbase if ruby_cbase == under. * node.h (NEW_CREF0): preserve cbase nesting. Tue Mar 21 12:57:50 2000 Yukihiro Matsumoto * object.c (rb_class_s_new): Class::new should call `inherited'. Sat Mar 18 12:36:09 2000 Nobuyoshi Nakada * eval.c (rb_backtrace, make_backtrace): removed unused variable `lev'. * eval.c (rb_attr): calls `method_added' at attribute definition. * eval.c (rb_mod_modfunc): calls `singleton_method_added' while `module_function'. * eval.c (rb_eval): parameter to `method_added' and `singleton_method_added' is Symbol. * eval.c (Init_eval): caches IDs for `method_added' and `singleton_method_added'. Sat Mar 18 11:25:10 2000 Yukihiro Matsumoto * parse.y (rescue): allows `rescue Error in foo'. experimental. which is better this or preparing alias `exception' for `$!'? Fri Mar 17 15:02:45 2000 Yukihiro Matsumoto * variable.c (rb_autoload_id): defining new autoload should be prohibited for $SAFE > 4. * variable.c (rb_autoload_load): autoload should be possible for $SAFE > 4. * eval.c (call_trace_func): should handle T_ICLASS properly. Fri Mar 17 14:34:30 2000 Yukihiro Matsumoto * string.c (str_gsub): forgot to initialize str->orig. Fri Mar 17 01:24:59 2000 Dave Thomas * string.c (rb_str_clone): forgot to copy str->orig if STR_NO_ORIG is set by Array#pack. Wed Mar 15 21:25:04 2000 Minero Aoki * array.c (rb_ary_join): 'result' is always duplicated before concat string. Wed Mar 15 17:26:05 2000 Yukihiro Matsumoto * hash.c (rb_hash_s_create): unexpected recursive call removed. this bug was found by Satoshi Nojo . Wed Mar 15 13:12:39 2000 Yukihiro Matsumoto * eval.c (Init_Thread): Thread.join removed finally. * string.c (rb_str_chomp_bang): forgot to call rb_str_modify(). Mon Mar 13 16:12:13 2000 Yukihiro Matsumoto * eval.c (block_pass): distinguish real orphan block and still on-stack block passed by block argument. Mon Mar 13 00:20:25 2000 Yukihiro Matsumoto * parse.y (f_norm_arg): proper error message when constant comes in formal argument list. this message is suggested by Muvaw Pnazte . * eval.c (rb_f_raise): proper error message when the first argument is not an exception class/object. * string.c (rb_str_dup): dup now postpone buffer copy as long as possible. performance improved by lazy copying. Sun Mar 12 13:58:52 2000 Koji Arai * signal.c (rb_f_kill): should treat some symbols as the signal. Sat Mar 11 22:03:03 2000 Yukihiro Matsumoto * string.c (rb_str_gsub): performance tune by avoiding buffer copy. * eval.c (rb_f_missing): check if argv[0] is ID. Sat Mar 11 15:49:41 2000 Tadayoshi Funaba * struct.c (rb_struct_aref): struct aref by symbol. Sat Mar 11 05:07:11 2000 Yukihiro Matsumoto * process.c (proc_setpriority): should return 0, not nil. * process.c (proc_setpgid): ditto. Fri Mar 10 18:14:54 2000 Yukihiro Matsumoto * file.c (path_check_1): confusing buf and path. this bug found by . Fri Mar 10 09:37:49 2000 Katsuyuki Komatsu * MANIFEST: add beos/GNUmakefile.in. * configure.in: support BeOS R4.5.2 (Intel). * beos/GNUmakefile.in: new file to support BeOS R4.5.2 (Intel). Thu Mar 9 11:13:32 2000 Yukihiro Matsumoto * regex.c (re_compile_fastmap): fixed embarrassing brace bug. Thu Mar 9 01:36:32 2000 WATANABE Hirofumi * missing/flock.c: emulate missing flock() with fcntl(). Thu Mar 9 00:29:35 2000 Yukihiro Matsumoto * object.c (sym_to_s): returns ":sym". * object.c (sym_id2name): separated from to_s; returns "sym". Wed Mar 8 19:16:19 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.7. * lib/net/http.rb (connecting): returns header Wed Mar 8 02:08:43 2000 Yukihiro Matsumoto * parse.y: escape expansion too early. * string.c (rb_f_scan): Kernel#scan added. * regex.c (re_compile_pattern): support \cX et al. Tue Mar 7 01:44:27 2000 Yukihiro Matsumoto * io.c (set_stdin): simplified procedure, allows $stdin = DATA; experimental. * io.c (set_outfile): ditto. * re.c (Init_Regexp): new method Regexp#last_match added; it's an alternative for $~. * configure.in (DEFAULT_KCODE): KCODE_NONE should be the default. * dir.c (dir_s_rmdir): should return 0 on success. * signal.c: remove CWGUSI support. Mon Mar 6 12:28:37 2000 Yukihiro Matsumoto * marshal.c (w_symbol): support symbol object. * util.c: make symbol as separated class. * error.c (Init_Exception): new exception RangeError. * ext/socket/socket.c (ip_addrsetup): should check length of hostname. * ext/socket/socket.c (ip_addrsetup): check newline at the end of hostname. These fixes suggested by Muvaw Pnazte . Sun Mar 5 20:35:45 2000 WATANABE Hirofumi * ext/Win32API/Win32API.c (Win32API_initialize): should call LoadLibrary() everytime and should assign the hdll to Win32API object(protect the hdll from GC). Sun Mar 5 18:49:06 2000 Nakada.Nobuyoshi * misc/ruby-mode.el (ruby-parse-region): not treat method `begin' and `end' as reserved words. * misc/ruby-mode.el (ruby-font-lock-docs): ignore after `=begin' and `=end'. * misc/ruby-mode.el (ruby-font-lock-keywords, hilit-set-mode-patterns): added `yield' to keywords. * misc/ruby-mode.el (ruby-font-lock-keywords, hilit-set-mode-patterns): matches keywords at end of buffer. Sun Mar 5 18:08:53 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.6. * lib/net/http.rb: allow to omit 'start' Tue Feb 29 01:08:26 2000 Yukihiro Matsumoto * range.c (range_initialize): initialization done in `initialize'; `initialize' should not be called more than once. * object.c (Init_Object): default `initialize' should take zero argument. * time.c (time_s_new): call `initialize' in Time::new. Sat Feb 26 22:39:31 2000 EGUCHI Osamu * string.c (rb_str_times): fix String#* with huge string. Sat Feb 26 00:14:59 2000 Yukihiro Matsumoto * dir.c (dir_s_new): call `initialize' in Dir::new. Fri Feb 25 23:01:49 2000 Katsuyuki Komatsu * ruby.h: export ruby_safe_level by EXTERN for mswin32. * win32/ruby.def: regular maintenance. Fri Feb 25 22:12:46 2000 Yukihiro Matsumoto * io.c (rb_io_reopen): IO#reopen should accept path as well. * string.c (rb_str_s_new): call `initialize' in String::new. * hash.c (rb_hash_s_new): call `initialize' in Hash::new. * array.c (rb_ary_s_new): call `initialize' in Array::new. Fri Feb 25 12:50:20 2000 Yukihiro Matsumoto * eval.c (rb_thread_start_timer): interval changed to 10ms from 50ms. Fri Feb 25 06:42:26 2000 GOTOU YUUZOU * ext/socket/socket.c (ip_addrsetup): hostp should remain NULL if host is nil. Thu Feb 24 16:53:47 2000 Yukihiro Matsumoto * eval.c (rb_thread_schedule): priority check for sleep expired threads needed. Wed Feb 23 14:22:32 2000 Yukihiro Matsumoto * array.c (rb_ary_join): forgot to initialize a local variable `taint'. Tue Feb 22 07:40:55 2000 Yukihiro Matsumoto * re.c (Init_Regexp): renamed to MatchData, old name MatchingData remain as alias. Tue Feb 22 00:20:21 2000 Minero Aoki * lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.5. * lib/net/session.rb: rename to protocol.rb * lib/net/protocol.rb: ProtocolSocket -> Net::Socket * lib/net/protocol.rb: Net::Socket#write, write_pendstr can take block * lib/net/smtp.rb: new methods SMTP#ready SMTPCommand#write_mail * lib/net/pop.rb: POPMail#pop can take block Sat Feb 19 23:58:51 2000 Yukihiro Matsumoto * regex.c (re_match): pop_loop should not pop at forward jump. Fri Feb 18 17:15:40 2000 Yukihiro Matsumoto * eval.c (method_clone): method objects are now clonable. Fri Feb 18 00:27:34 2000 Yukihiro Matsumoto * variable.c (rb_shared_variable_declare): shared variable (aka class/module variable) introduced. prefix `@@'. experimental. * class.c (rb_scan_args): new format char '&'. Thu Feb 17 19:09:05 2000 Katsuyuki Komatsu * win32/win32.c (mypopen): don't close handle if it is not assigned. * win32/win32.c (my_open_osfhandle): support O_NOINHERIT flag. * win32/win32.c (win32_getcwd): rename getcwd to win32_getcwd in order to avoid using the C/C++ runtime DLL's getcwd. Use CharNext() to process directory name. * win32/win32.h: map getcwd to win32_getcwd. Wed Feb 16 00:32:49 2000 Yukihiro Matsumoto * eval.c (method_arity): nd_rest is -1 for no rest argument. * process.c (proc_waitpid): returns nil when waitpid(2) returns 0. Tue Feb 15 01:47:00 2000 Yukihiro Matsumoto * process.c (rb_f_waitpid): pid_t should be signed. Mon Feb 14 13:59:01 2000 Yukihiro Matsumoto * parse.y (yylex): yylex yields wrong tokens for `:foo=~expr'. * ruby.c (load_file): exit if reading file is empty. Mon Feb 14 03:34:52 2000 Yukihiro Matsumoto * parse.y (yylex): `foo.bar=1' should be <.><=><1>, not <.><1>. * eval.c (rb_thread_restore_context): process according to RESTORE_* is moved after longjmp(). * eval.c (thread_switch): new function to process RESTORE_*. Sun Feb 13 16:19:49 2000 WATANABE Hirofumi * ruby.c (require_libraries): don't access freed memory. * ruby.c (add_modules): ditto. Fri Feb 11 12:06:22 2000 Yukihiro Matsumoto * parse.y (parse_quotedwords): %w() need to split not only by mere spaces, but by all whitespaces. Thu Feb 10 02:12:04 2000 Yukihiro Matsumoto * string.c (rb_str_index_m): did not support negative offset. Wed Feb 9 21:54:26 2000 Katsuyuki Komatsu * ext/socket/getaddrinfo.c: gcc --traditional support. Rearrange headers to work AC_C_CONST. * ext/socket/getnameinfo.c: ditto. * ext/socket/socket.c: mswin32: use double instead of long long. Wed Feb 9 16:30:41 2000 Yukihiro Matsumoto * numeric.c (num_coerce): should return [y, x]. Wed Feb 9 11:07:30 2000 Yukihiro Matsumoto * ruby.c (ruby_prog_init): loadpath structure changed. Tue Feb 8 02:07:33 2000 Yukihiro Matsumoto * regex.c (re_search): optimize for \G at top. * regex.c (re_compile_pattern): \G introduced. * regex.c (re_match): ditto. * string.c (str_sub_bang): old behavior restored: bang method returns nil if string not changed. * regex.c (re_compile_pattern): support independent subexpression `(?>pattern)'. * regex.c (re_match): ditto. Mon Feb 7 15:51:08 2000 Yukihiro Matsumoto * regex.c (re_match): now understands interrupts under Ruby. Mon Feb 7 07:51:52 2000 Yukihiro Matsumoto * array.c (rb_ary_uniq_bang): always return an Array. * array.c (rb_ary_compact_bang): ditto. * array.c (rb_ary_flatten_bang): ditto. * hash.c (rb_hash_reject): returns a Hash, not an Array. * hash.c (env_reject): ditto. Fri Feb 4 10:20:25 2000 Yukihiro Matsumoto * string.c (scan_once): scan now leaves information about the last successful pattern match in $&. * io.c (rb_io_close): should not check closed IO. Fri Feb 4 05:44:01 2000 Kentaro Inagaki * ext/socket/socket.c (s_recv): TRAP_BEG after retry entry. Wed Feb 2 22:33:45 2000 Nobuyoshi Nakada * eval.c (rb_thread_start): receives argument from outside, like `Thread::start(1,2,3){|a,b,c| ... }'. Wed Feb 2 22:14:40 2000 Yukihiro Matsumoto * re.c (rb_reg_regsub): should check regs->num_regs. * re.c (rb_reg_search): remove matchcache, use static struct re_register instead. * re.c (match_getter): avoid cloning match data. Wed Feb 2 17:12:15 2000 Dave Thomas * samples/eval.rb: Rescue new ScriptError exception Wed Feb 2 02:06:07 2000 Yukihiro Matsumoto * string.c (str_gsub_bang): gsub! now leaves information about the last successful pattern match in $&. Mon Jan 31 15:24:58 2000 Yukihiro Matsumoto * string.c (str_sub_bang): bang method returns string always. experimental. Sun Jan 30 17:58:09 2000 WATANABE Hirofumi * eval.c: arrange to use setitimer(2) for BOW, DJGPP * defines.h: ditto. use random(3) on cygwin b20.1. Sun Jan 30 17:20:16 2000 WATANABE Hirofumi * eval.c: use getrlimit(2) on DJGPP. Thu Jan 27 01:27:10 2000 GOTO Kentaro * dir.c (glob): glob pattern "/*" did not match. Wed Jan 26 22:30:47 2000 Shigeo Kobayashi * numeric.c (flo_modulo): wrong result for negative modulo. Wed Jan 26 02:01:57 2000 Yukihiro Matsumoto * file.c (test_c): should use S_ISCHR. * file.c (rb_stat_c): ditto. * string.c (rb_str_each_line): should propagate tainting. Tue Jan 25 04:01:34 2000 Yukihiro Matsumoto * object.c (rb_obj_freeze): all objects made freezable. Tue Jan 25 00:37:01 2000 WATANABE Hirofumi * configure.in: use AC_CHECK_TOOL for cross compiling. Mon Jan 24 19:01:54 2000 Nobuyoshi Nakada * array.c (rb_protect_inspect): should be checked by id of objects; not by object themselves. Mon Jan 24 18:48:08 2000 Minero Aoki * eval.c (rb_eval): too many warnings; warned on every method overriding. should be on method discarding. Mon Jan 24 02:56:44 2000 Yukihiro Matsumoto * parse.y (yylex): -2.abs should be `(-2).abs' to accomplish the principle of less surprise. `+2' too. * eval.c (rb_eval): when defining class is already there, and superclass differ, throw away the old class. * variable.c (rb_const_set): gives warning again on constant redefinition. * error.c (Init_Exception): SyntaxError, NameError, LoadError and NotImplementError are subclasses of ScriptError * parse.y (parse_quotedwords): no longer use `String#split'. and enable space escape within quoted word list. e.g. %w(a\ b\ c abc) => ["a b c", "abc"]. * string.c (rb_str_slice_bang): new method `slice!'. Fri Jan 21 21:56:08 2000 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.4. * lib/net/http.rb: can receive messages which have no Content-Length:. Fri Jan 21 16:15:59 2000 Yukihiro Matsumoto * eval.c (thgroup_s_new): new class ThreadGroup. Tue Jan 18 12:24:28 2000 Yukihiro Matsumoto * struct.c (Init_Struct): remove Struct's own hash and eql?. Sat Jan 15 22:21:08 2000 Nobuyoshi Nakada * eval.c (search_method): argument klass may be 0. Sat Jan 15 15:03:46 2000 Yukihiro Matsumoto * enum.c (enum_index): remove this method. * enum.c: remove use of pointers to local variables. find, find_all, min, max, index, member?, each_with_index, * eval.c (massign): multiple assignment does not use to_a anymore. experimental. Fri Jan 14 12:22:04 2000 Yukihiro Matsumoto * string.c (rb_str_replace): use memmove instead of memcpy for overwrapping strings (e.g. a[1] = a). Thu Jan 13 11:12:40 2000 Yukihiro Matsumoto * parse.y (arg_add): use new node, ARGSPUSH. Mon Jan 10 18:32:28 2000 Koji Arai * marshal.c (w_object): forgot an argument to call w_ivar(). Sun Jan 9 18:13:51 2000 Katsuyuki Komatsu * random.c: first was not defined unless HAVE_RANDOM. Sat Jan 8 19:02:49 2000 Yukihiro Matsumoto * io.c (rb_io_sysread): raise IOError for buffered IO. * ext/socket/socket.c (s_recv): ditto. Fri Jan 7 00:59:29 2000 Masahiro Tomita * io.c (io_fread): TRAP_BEG/TRAP_END added around getc(). Thu Jan 6 00:39:54 2000 Yukihiro Matsumoto * random.c (rb_f_rand): should be initialized unless srand is called before. Wed Jan 5 16:59:34 2000 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.3. * lib/net/session.rb: Session -> Protocol, ... * lib/net/http.rb: HTTPCommand implementation was changed. Wed Jan 5 02:14:46 2000 EGUCHI Osamu * parse.y: Fix SEGV on empty parens with UMINUS or UPLUS. Tue Jan 4 22:25:54 2000 Yukihiro Matsumoto * parse.y (stmt): `() while cond' dumped core. Tue Jan 4 06:04:14 2000 WATANABE Hirofumi * configure.in: modify for cross-compiling. use target_* instead of host_*. use AC_CANONICAL_TARGET. * Makefile.in: ditto. * cygwin/GNUmakefile.in: ditto. Sat Jan 1 13:26:14 2000 Yukihiro Matsumoto * eval.c (rb_yield_0): force_recycle ruby_dyna_vars to gain performance. * array.c (rb_ary_delete_at_m): takes same argument pattern with rb_ary_aref. Sat Jan 1 10:12:26 2000 Nobuyoshi Nakada * ruby.h,util.c (rb_special_const_p): peep hole optimization. * ruby.h,util.c (rb_test_false_or_nil): removed. * ruby.h (RTEST, SPECIAL_CONST_P): peep hole optimization. * ruby.h (FL_ABLE, FL_SET, FL_UNSET, FL_REVERSE): made expressions not statements. * ruby.h (OBJ_INFECT): newly added macro which copies taint from `s' to `x'. Sat Jan 1 02:04:18 2000 Yukihiro Matsumoto * eval.c (rb_thread_safe_level): new method. * eval.c (rb_yield_0): recycle dyna_var_map to reduce object allocation. Fri Dec 31 00:52:48 1999 Yukihiro Matsumoto * eval.c: thread independent trace_func not needed. Thu Dec 30 14:47:31 1999 akira yamada * configure.in: specifies -soname in LIBRUBY_DLDFLAGS on linux platforms. Thu Dec 30 10:51:27 1999 Yukihiro Matsumoto * array.c,io.c,hash,c,re.c,string.c: `_m' suffix instead of `_method' for wrapper functions to implement method, e.g. `rb_str_join_m()'. Thu Dec 30 02:08:02 1999 Yukihiro Matsumoto * bignum.c (rb_cstr2inum): non-numeric format check added. currently it works only with base == 0 (i.e. Integer()). * bignum.c (rb_str2inum): now takes VALUE to 1st argument. null byte check added. * array.c (rb_ary_replace): unless replacement is an array, replacement shall be converted to array by `[replacement]', not by `replacement.to_a'. * array.c (rb_ary_plus): right operand must be an array. * array.c (rb_ary_concat): argument must be an array. Mon Dec 27 12:35:47 1999 Katsuyuki Komatsu * ext/socket/socket.c (sock_finalize): mswin32: fix socket handle leak. * win32/win32.c (myfdclose): ditto. Sun Dec 26 23:15:13 1999 Katsuyuki Komatsu * win32/win32.c (mypopen): raise catchable error instead of rb_fatal. * win32/win32.c (mypclose): fix process handle leak. Sun Dec 26 16:17:11 1999 Katsuyuki Komatsu * ext/Win32API/Win32API.c (Win32API_initialize): use UINT2NUM instead of INT2NUM to set __dll__ and __proc__. Sat Dec 25 00:08:59 1999 KANEKO Naoshi * ext/Win32API/Win32API.c (Win32API_Call): remove 'dword ptr' from _asm. Fri Dec 24 10:26:47 1999 Koji Oda * win32/win32.h: use "C++" linkage. Fri Dec 24 02:00:57 1999 Yukihiro Matsumoto * eval.c (THREAD_ALLOC): should initialize th->trace. Fri Dec 24 00:43:39 1999 KANEKO Naoshi * io.c (pipe_open): check for `fptr->f == NULL'. * win32/win32.c (mypopen): STDERR does not work during ` function. Wed Dec 22 22:50:40 1999 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.2. * lib/net/http.rb: HTTP support is enhanced a little * lib/net/http.rb: support proxy Tue Dec 21 17:21:28 1999 Koji Oda * ext/socket/socket.c (sock_finalize): mswin32: fix FILE* leak. Tue Dec 21 05:33:56 1999 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.1. * lib/net/http.rb: support HTTP chunk Mon Dec 20 19:08:12 1999 Nobuyoshi Nakada * file.c (rb_file_s_expand_path): handle dir separator correctly. Sun Dec 19 22:56:31 1999 KANEKO Naoshi * lib/find.rb: support dosish root directory. * win32/Makefile: ditto. * win32/config.status: ditto. * win32/win32.c (opendir): ditto. * win32/win32.c (opendir): use CharPrev() to get last character of the directory name. Sat Dec 18 03:00:01 1999 Yukihiro Matsumoto * file.c (path_check_1): check should be done by absolute path. * marshal.c (r_ivar): should restore generic_ivar too. * marshal.c (w_ivar): should dump generic_ivar too. Fri Dec 17 22:46:46 1999 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.0. * lib/net/http.rb: test release * lib/net/session.rb: support class swapping * lib/net/session.rb: Socket#flush_rbuf * lib/net/session.rb: doquote -> Net.quote Fri Dec 17 19:27:43 1999 IWAMURO Motonori * eval.c (rb_load): should initialize ruby_frame->last_class. Wed Dec 15 01:35:29 1999 Yukihiro Matsumoto * ruby.c (proc_options): option to change directory changed to `-C' like tar. * ruby.c (proc_options): argv boundary check for `-X'. Mon Dec 13 15:15:31 1999 Yukihiro Matsumoto * regex.c (re_adjust_startpos): separate startpos adjustment because of major performance drawback. * class.c (rb_singleton_class): tainted status of the singleton class must be synchronized with the object. * eval.c (rb_thread_schedule): implement thread priority. Sat Dec 11 03:34:38 1999 Yukihiro Matsumoto * gc.c (mark_hashentry): key should be VALUE, not ID. * io.c (argf_eof): should check next_p too. Thu Dec 9 18:09:13 1999 EGUCHI Osamu * error.c (exc_set_backtrace): forgot to declare a VALUE argument. Thu Dec 9 14:19:31 1999 Yukihiro Matsumoto * object.c (rb_obj_taint): explicit tainting must be prohibited at level 4 to prevent polluting trusted object by untrusted code. * file.c: file operations (stat, lstat, chmod, chown, umask, truncate, flock) are prohibited in level 2 (was level 4). Wed Dec 8 11:48:23 1999 Yukihiro Matsumoto * eval.c (rb_f_require): prohibiting require() in the secure mode cause serious autoloading error. * variable.c (rb_obj_instance_variables): don't need to prohibit to get list of instance variable names of untainted objects. * variable.c (rb_ivar_get): don't need to prohibit to get instance variables of untainted objects. * variable.c (rb_mod_remove_const): should prohibit constant removals too. Wed Dec 8 09:23:01 1999 Yukihiro Matsumoto * eval.c (rb_eval): should try autoloading before defining class/module at the toplevel. Tue Dec 7 22:15:30 1999 EGUCHI Osamu * configure.in: Modified rb_cv_rshift_sign detect routine and more simple/fast RSHIFT() for hpux-10.x. Tue Dec 7 11:16:30 1999 Yukihiro Matsumoto * eval.c (Init_eval): calculate stack limit from rlimit where getrlimit(2) is available. Tue Dec 7 09:57:33 1999 Katsuyuki Komatsu * file.c (rb_file_ftype): should have removed mode_t. Mon Dec 6 15:55:30 1999 EGUCHI Osamu * numeric.c (fix_rshift): Fix -1 >> 32 returned 0 (should be -1). * numeric.c (fix_rshift): Fix 1 >> -1 returned 0 (should be 2). Mon Dec 6 11:47:23 1999 Yukihiro Matsumoto * sprintf.c (rb_f_sprintf): formatted string must be tainted if any of parameters is a tainted string. * file.c (rb_file_s_expand_path): expanded file path need not to be tainted always. Sun Dec 5 20:25:29 1999 Katsuhiro Ueno * eval.c (Init_Proc): simple typo. * gc.c (add_heap): sizeof(RVALUE*), not sizeof(RVALUE). Sat Dec 4 01:40:22 1999 Yukihiro Matsumoto * regex.c (re_search): adjust startpos for multibyte match unless the first pattern is forced byte match. * bignum.c (rb_big_rand): should not use rand/random where drand48 may be available. RANDOM_NUMBER should be provided from outside. Fri Dec 3 09:54:59 1999 Yukihiro Matsumoto * ruby.c (moreswitches): there may be trailing garbage at #! line. * eval.c (rb_f_require): should check require 'feature.o' too. Thu Dec 2 11:58:15 1999 Koji Arai * eval.c (rb_thread_loading): should maintain loading_tbl. Thu Dec 2 10:21:43 1999 Yukihiro Matsumoto * eval.c (rb_thread_loading_done): wrong parameter to st_delete(). Wed Dec 1 11:24:06 1999 Nobuyoshi Nakada * ruby.c (process_sflag): process -s properly (should not force `--'). Wed Dec 1 09:47:33 1999 Kazunori NISHI * string.c (rb_str_split_method): should increment end too. Tue Nov 30 18:00:45 1999 Yukihiro Matsumoto * marshal.c: MARSHAL_MINOR incremented; format version is 4.2. * marshal.c (w_object): distinguish class and module. * marshal.c (w_object): save hash's default value. * marshal.c (r_object): restore hash's default value. Tue Nov 30 01:46:18 1999 Yukihiro Matsumoto * re.c (rb_reg_source): generated source string must be tainted if regex is tainted. * file.c (rb_file_s_basename): basename should not be tainted unless the original path is tainted. * file.c (rb_file_s_dirname): ditto. Mon Nov 29 20:42:13 1999 Nobuyoshi Nakada * file.c (stat_new): Struct::Stat -> File::Stat; Stat is no longer a Struct. Mon Nov 29 15:28:52 1999 Yukihiro Matsumoto * variable.c (rb_path2class): evaluated value from path should be module or class. Fri Nov 26 18:12:49 1999 Yukihiro Matsumoto * eval.c (rb_exec_end_proc): should remove only end_procs defined within load wrapper. * eval.c (rb_load): save and restore ruby_wrapper around loading. * eval.c (rb_mark_end_proc): mark end procs registered by END{} or at_exit{}. * eval.c (rb_set_end_proc): should not call rb_global_variable() on heap address; it crashed mod_ruby. Mon Nov 22 14:07:24 1999 Koji Arai * ruby.c (proc_options): variable e_script should be visited by garbage collector. Sat Nov 20 10:10:41 1999 Yukihiro Matsumoto * hash.c (inspect_i): value may be nil, check revised. Fri Nov 19 18:06:21 1999 Yukihiro Matsumoto * dir.c (glob): recursive wildcard match by `**' ala zsh. Fri Nov 19 11:44:26 1999 EGUCHI Osamu * variable.c: was returning void value. Fri Nov 19 03:57:22 1999 Nobuyoshi Nakada * file.c: add methods Stat struct class to reduce stat(2). Thu Nov 18 16:18:27 1999 Yukihiro Matsumoto * lib/pstore.rb: mutual lock by flock(2). Thu Nov 18 11:44:13 1999 Masahiro Tomita * io.c (read_all): should check bytes too. Wed Nov 17 02:40:40 1999 Yukihiro Matsumoto * io.c (Init_IO): $defout (alias of $>) added. Tue Nov 16 09:47:14 1999 Yukihiro Matsumoto * lib/pstore.rb: add mutual lock using symlink. Mon Nov 15 16:50:34 1999 Yukihiro Matsumoto * enum.c (enum_grep): non matching grep returns an empty array, no longer returns nil. * enum.c (enum_grep): grep with block returns collection of evaluated values of block over matched elements. Mon Nov 15 04:50:33 1999 Koji Arai * re.c (rb_reg_source): should not call rb_reg_expr_str() everytime. Sat Nov 13 07:34:18 1999 Yukihiro Matsumoto * variable.c (rb_mod_constants): traverse superclasses to collect constants. * eval.c (assign): modified for shared variables. * eval.c (rb_eval): search nested scope, then superclasses to assign shared variables within methods. * eval.c (rb_eval): remove warnings from constants modification, because they are no longer constants. * parse.y (node_assign): modified for shared variables. * parse.y (assignable): allow constant assignment in methods; constants should be called `shared variable'. Fri Nov 12 23:52:19 1999 Katsuyuki Komatsu * process.c (rb_f_system): argument check for NT, __EMX__, DJGPP. Wed Nov 10 21:54:11 1999 EGUCHI Osamu * hash.c (rb_any_cmp): Fixed return without value. Wed Nov 10 17:57:06 1999 Yukihiro Matsumoto * sprintf.c: incorporate 's sprintf patch at [ruby-dev:7754]. Wed Nov 10 08:28:53 1999 Yukihiro Matsumoto * eval.c (rb_call0): supply class parameter for each invocation. Tue Nov 9 13:21:04 1999 EGUCHI Osamu * configure.in: AC_MINIX move to before AC_EXEEXT and AC_OBJEXT. Mon Nov 8 19:52:29 1999 EGUCHI Osamu * configure.in: Renamed AC_CHAR_UNSIGNED to AC_C_CHAR_UNSIGNED. * configure.in: Added default to AC_CHECK_SIZEOF(). Mon Nov 8 14:28:18 1999 Yukihiro Matsumoto * parse.y (stmt): rescue modifier added to the syntax. * keywords: kRESCUE_MOD added. * eval.c (rb_f_eval): fake outer scope when eval() called without bindings. * eval.c (rb_f_binding): should copy last_class in the outer frame too. Sun Nov 7 18:31:04 1999 Yasuhiro Fukuma * eval.c (is_defined): last_class may be 0. Sat Nov 6 19:26:55 1999 EGUCHI Osamu * Makefile.in: Added depend entry make parse.@OBJEXT@ from parse.c for UCB make Thu Nov 4 17:41:18 1999 Yukihiro Matsumoto * regex.c (re_compile_pattern): \< (wordbeg), \> (wordend) disabled. Wed Nov 3 08:52:57 1999 Masaki Fukushima * io.c (Init_IO): forgot to use INT2FIX() around SEEK_SET, etc. Wed Nov 3 00:25:20 1999 Yukihiro Matsumoto * string.c (rb_str_split_method): use mbclen2() to handle kcode option of regexp objects. Mon Nov 1 14:22:15 1999 EGUCHI Osamu * eval.c (rb_eval): reduce recursive calls to rb_eval() case of ||= and &&= . Sun Oct 31 13:12:42 1999 WATANABE Hirofumi * regex.c (re_compile_pattern): wrong [\W] match. Fri Oct 29 16:57:30 1999 Yukihiro Matsumoto * ext/nkf/lib/kconv.rb: new String methods (kconv, tojis, toeuc, tosjis). * time.c (time_s_at): now accepts optional second argument to specify micro second. Thu Oct 28 13:35:40 1999 Yukihiro Matsumoto * string.c (rb_str_split_method): should be mbchar aware with single char separators. Wed Oct 27 12:57:21 1999 Yukihiro Matsumoto * random.c (rb_f_srand): random seed should be unsigned. Tue Oct 26 23:58:15 1999 Yukihiro Matsumoto * array.c (rb_ary_collect): collect for better performance. Tue Oct 26 19:20:54 1999 Koji Arai * marshal.c (r_object): should register class/module objects. Sat Oct 23 15:59:39 1999 Takaaki Tateishi * process.c (rb_f_system): should require at least one argument. Sat Oct 23 12:42:44 1999 Nobuyoshi Nakada * enum.c (enum_collect): collect without block will collect elements in enumerable. Thu Oct 21 16:14:19 1999 Yukihiro Matsumoto * ruby.c (moreswitches): function to process string option; the name is stolen from perl (not implementation). * ruby.c (proc_options): use RUBYOPT environment variable to retrieve the default options. * dir.c (fnmatch): use eban's fnmatch; do not depend on system's fnmatch (which may have portability problem) anymore. Wed Oct 20 15:14:24 1999 Yukihiro Matsumoto * marshal.c (marshal_load): should protect the generated object table (arg->data) from GC. Mon Oct 18 16:15:52 1999 Yukihiro Matsumoto * ext/nkf/nkf.c (rb_nkf_kconv): output should be NUL terminated. Mon Oct 18 09:03:01 1999 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb: 1.0.3 * lib/net/pop.rb: new methods POP3Command#uidl, POPMail#uidl. Sun Oct 17 03:35:33 1999 Masaki Fukushima * array.c (rb_ary_pop): forgot some freeze checks. Sat Oct 16 12:57:53 1999 EGUCHI Osamu * array.c (rb_ary_sort): always returns the copied array. Fri Oct 15 22:50:41 1999 WATANABE Hirofumi * error.c (sys_nerr): on CYGWIN, it is _sys_nerr. Fri Oct 15 01:32:31 1999 WATANABE Hirofumi * io.c (rb_io_ctl) :need to use NUM2ULONG, not NUM2INT. * ext/Win32API/Win32API.c (Win32API_Call): need to use NUM2ULONG, not NUM2INT. Fri Oct 15 00:22:30 1999 Yukihiro Matsumoto * re.c (Init_Regexp): super class of the MatchingData, which was Data, to be Object. * eval.c (ruby_run): evaluate required libraries before load & compiling the script. * parse.y (lex_getline): retrieve a line from the stream, saving lines in the table in debug mode. * eval.c (call_trace_func): treat the case ruby_sourcefile is null. Thu Oct 14 02:00:10 1999 Yukihiro Matsumoto * parse.y (string): compile time string concatenation. Wed Oct 13 07:28:09 1999 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb: 1.0.2 * lib/net/session.rb: new method Session#set_pipe. * lib/net/session.rb, smtp.rb, pop.rb: add RD documentation. Wed Oct 13 02:17:05 1999 EGUCHI Osamu * array.c (rb_ary_plus): remove recursion. * array.c (rb_ary_sort_bang): detect modify attempt. Wed Oct 13 02:17:05 1999 Yukihiro Matsumoto * eval.c (block_pass): should copy block to prevent modifications. tag in the structure should be updated from latest prot_tag. * eval.c (proc_s_new): tag in struct BLOCK should not point into unused stack. * dir.c (dir_s_glob): iterate over generated matching filenames if the block is given to the method. * array.c (rb_ary_at): new methods; at, first, last. * hash.c (rb_hash_fetch): raises exception unless the default value is supplied. * hash.c (rb_hash_s_create): need not remove nil from value. * hash.c (rb_hash_aset): setting value to nil does not remove key anymore. Tue Oct 12 22:29:04 1999 Yukihiro Matsumoto * io.c (io_read): length may be 0 or negative. Tue Oct 12 13:26:27 1999 Jun-ichiro itojun Hagino * signal.c (posix_signal): RETSIGTYPE may be void. Tue Oct 12 03:28:03 1999 EGUCHI Osamu * array.c (rb_ary_delete_at): allows negative position. Mon Oct 11 17:42:25 1999 Nobuyoshi Nakada * parse.y (rb_intern): should generate distinct ID_ATTRSET symbols for the name with multiple `='s at the end. * Makefile.in (CPPFLAGS): separate cpp flags from CFLAGS. Mon Oct 11 07:27:05 1999 Yukihiro Matsumoto * eval.c (rb_eval): should not execute the `else' clause on the case the exceptions are handled by the `rescue' clause. * signal.c (Init_signal): ignore SIGPIPE by default. Wed Oct 6 17:13:19 1999 Nobuyoshi Nakada * ruby.c (addpath): rubylib_mangled_path() modified. Mon Oct 4 12:42:32 1999 Kazuhiko Izawa * pack.c (pack_unpack): % in printf format should be %%. Mon Oct 4 10:01:40 1999 Yukihiro Matsumoto * variable.c (rb_obj_instance_variables): should always return array for all object can have instance variables now. Mon Oct 4 00:08:34 1999 Yukihiro Matsumoto * pack.c (OFF16): need to adjust pointer address to pack/unpack on 64bit machines. Sun Oct 03 03:05:59 1999 WATANABE Hirofumi * time.c (time_arg): mktime y2k problem. Sun Sep 26 16:54:45 1999 WATANABE Hirofumi * parse.y (here_document): `\r' handling for here documents. Wed Sep 22 09:20:11 1999 Masahiro Tomita * ext/socket/socket.c: SOCKS5 support. Wed Sep 22 07:33:23 1999 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb: 1.0.1 * lib/net/pop.rb: APOP did not work. * lib/net/pop.rb: modify the way to make APOP challenge. Wed Sep 22 00:35:30 1999 Yukihiro Matsumoto * string.c (rb_str_include): should return boolean value. * regex.c (re_compile_fastmap): wrong comparison with mbc. * eval.c (specific_eval): default sourcefile name should be "(eval)" for module_eval etc. Wed Sep 22 00:06:07 1999 Katsuyuki Komatsu * win32/Makefile: update rules. * io.c (io_fread): should not assign in char, it maybe -1. Tue Sep 21 23:57:54 1999 Yukihiro Matsumoto * eval.c (call_trace_func): should not propagate retval in trace_func. Mon Sep 20 21:35:39 1999 Katsuyuki Komatsu * win32/win32.c (myselect): assume non socket files are always readable/writable. Mon Sep 20 01:08:02 1999 Yukihiro Matsumoto * io.c (io_fread): should not block other threads. * io.c (rb_io_synchronized): renamed from rb_io_unbuffered(); do not call setbuf(NULL) anymore. Sat Sep 18 13:45:43 1999 Yukihiro Matsumoto * stable version 1.4.2 released. Fri Sep 17 23:24:17 1999 Katsuyuki Komatsu * eval.c (rb_f_missing): dumped core if no argument given. Fri Sep 17 23:21:06 1999 Katsuyuki Komatsu * win32/win32.c (myselect): translate WSAEINTR, WSAENOTSOCK into UNIX errno constants. Fri Sep 17 00:52:27 1999 Yukihiro Matsumoto * parse.y (arg): assignable() may return 0. Thu Sep 16 20:46:23 1999 WATANABE Hirofumi * eval.c (rb_eval): was doubly evaluating the return expression. Thu Sep 16 18:40:08 1999 Yukihiro Matsumoto * stable version 1.4.1 released. Thu Sep 16 11:33:22 1999 WATANABE Hirofumi * string.c (rb_str_match): should return nil. Wed Sep 15 22:46:37 1999 Yukihiro Matsumoto * re.c (rb_reg_s_quote): should quote `-' too. Tue Sep 14 15:23:22 1999 Nobuyoshi Nakada * parse.y (yylex): no need to ignore `\r' here. * parse.y (nextc): strip `\r' from text. * parse.y (nextc): support `__END__\r\n' type terminator. Mon Sep 13 10:49:19 1999 WATANABE Hirofumi * eval.c (rb_eval): needless RTEST(ruby_verbose) removed. Mon Sep 13 09:10:11 1999 Minero Aoki * lib/net/session.rb, smtp.rb, pop.rb: 1.0.0 Wed Sep 8 11:37:38 1999 Tadayoshi Funaba * time.c (make_time_t): bit more strict comparison. Tue Sep 7 00:50:56 1999 Yukihiro Matsumoto * range.c (range_each): use rb_str_upto() for strings. * string.c (rb_str_upto): set upper limit by comparing curr <= end. * range.c (range_each): should check equality to handle magic increment. Mon Sep 6 22:43:33 1999 Yukihiro Matsumoto * eval.c (rb_eval): break/next/redo available within -n/-p loop. Fri Sep 3 11:14:31 1999 Yukihiro Matsumoto * compar.c (cmp_equal): should not raise exception; protect by rb_rescue(). Thu Sep 2 05:23:05 1999 WATANABE Hirofumi * file.c (rb_file_s_expand_path): use dirsep, instead of character literal '/'. * file.c (rb_file_s_expand_path): reduce multiple dirsep at the top. Wed Sep 1 00:28:27 1999 Yukihiro Matsumoto * eval.c (rb_call): call rb_undefined() if a method appears not to be exist explicitly from cache. * eval.c (rb_method_boundp): check method cache before calling rb_get_method_body(). * eval.c (rb_get_method_body): store method non-existence information in the cache. * random.c (rb_f_srand): use getpid(2) to generate seed. * regex.c (re_match): do not apply partial mbc match for charset_not. * regex.c (re_compile_pattern): put extended literal prefix (0xff) only before numeric literals, not before all >0x80 char. * regex.c (re_compile_pattern): put numeric literal in extended charset region, not normal charset bits. * regex.c (re_compile_fastmap): calculate fastmap for charset and charset_not to treat numeric literal (e.g. \246) specially. Fri Aug 28 17:32:55 1999 Yasuhiro Fukuma * eval.c (rb_eval): should set return value (nil) explicitly if a value is omitted for return statement. Sun Aug 26 20:26:40 2001 Koji Arai * ext/readline/readline.c: restore terminal mode even if readline() interrupted. * ext/readline/readline.c: returned string need to be tainted. * ext/readline/readline.c: fixed memory leak. * ext/readline/readline.c: allow negative index. * ext/readline/readline.c: added Readline::HISTORY.size same as Readline::HISTORY.length * ext/readline/readline.c: allow conditional parsing of the ~/.inputrc file by `$if Ruby'. * ext/readline/extconf.rb: check whether the libreadline has the variable `rl_completion_append_character' (this feature was implemented from GNU readline 2.1). Thu Aug 26 15:06:11 1999 Masaki Fukushima * gc.c (rb_gc): local variables may be placed beyond stack_end, so use an address from alloca(1) on non C_ALLOCA platforms. Thu Aug 26 01:24:17 1999 Yukihiro Matsumoto * sprintf.c (rb_f_sprintf): "%%" is legal, but "%3.14%" is not. Mon Aug 23 00:00:54 1999 Tsukada Takuya * regex.c (re_compile_fastmap): wrong macro caused memory leak. Sat Aug 21 11:30:51 1999 Yukihiro Matsumoto * eval.c (ADJ): should not adjust addresses to data on heap. Fri Aug 20 20:50:58 1999 Kenji Nagasawa * defines.h (PATH_SEP): path separator is ";" for OS/2. Thu Aug 19 10:50:43 1999 WATANABE Tetsuya * gc.c (rb_gc): add volatile to avoid GCC optimize bug(?). Wed Aug 18 23:48:10 1999 Yukihiro Matsumoto * due to disk trouble, some change records were lost. several modification made to eval.c, gc.c, io.c, pack.c, ext/extmk.rb.in, and lib/mkmf.rb. Fri Aug 13 15:41:39 1999 Yukihiro Matsumoto * stable version 1.4.0 released. Fri Aug 13 03:16:07 1999 Yukihiro Matsumoto * io.c (argf_forward): since $stdout may be non-IO, ARGF.file is not guaranteed to be IO. check and forwarding added to every ARGF method. * io.c (set_outfile): $stdout/$stderr may not be IO now. * io.c (set_stdin): $stdin may not be IO now. * range.c (rb_range_beg_len): round `end' to length as documented. * io.c (Init_IO): preserve original stdin/stdout/stderr. Thu Aug 12 13:44:33 1999 Yukihiro Matsumoto * eval.c (Init_load): require receives 1 argument. * eval.c (frame_dup): should clear tmp to avoid dangling references. Wed Aug 11 13:33:13 1999 Katsuyuki Komatsu * eval.c (rb_eval): no automatic aggregate initialization. * eval.c (module_setup): ditto. Wed Aug 11 18:18:41 1999 WATANABE Tetsuya * eval.c (yield_under_i): automatic aggregate initialization is an ANSI feature. Wed Aug 11 10:10:02 1999 Yukihiro Matsumoto * parse.y (yylex): parse `[].length==0' as `([].length)==0', not `([].length=)=0' * parse.y (yylex): parse `[].length!=0' as `([].length)!=0', not `([].length!)=0' * parse.y (peek): peek-in lexical buffer. Wed Aug 11 00:34:05 1999 Yukihiro Matsumoto * regex.c (re_match): bug on backward jump adjustment concerning stop_paren. Tue Aug 10 14:54:25 1999 Yukihiro Matsumoto * ext/nkf/nkf.c (rb_nkf_guess): binary detection was wrong. Tue Aug 10 00:07:36 1999 Yukihiro Matsumoto * io.c (rb_io_clone): should use CLONESETUP(). Mon Aug 9 23:57:07 1999 Yukihiro Matsumoto * ruby.h (CLONESETUP): should have copied generic instance variables too. Mon Aug 9 10:46:54 1999 Katsuyuki Komatsu * ext/socket/extconf.rb: add check for and . Sat Aug 7 13:19:06 1999 EGUCHI Osamu * numeric.c (flo_cmp): comparing NaN should not return value. raises FloatDomainError. Sat Aug 7 03:09:08 1999 Yukihiro Matsumoto * eval.c (blk_free): free copied frames too. * eval.c (frame_dup): should copy previous frames from stack to heap to preserve frame information. Fri Aug 6 15:01:07 1999 Yukihiro Matsumoto * version 1.3.7 - version 1.4 beta * ext/socket/socket.c (s_recv): UDPsocket#recvfrom now returns IPsocket#addr information. * array.c (rb_ary_subary): ary[-3,3] should not return nil. Thu Aug 5 10:58:01 1999 Yukihiro Matsumoto * eval.c (thread_mark): protect old ruby_frame from GC during it replaced by eval(). * eval.c (eval): do not modify frame.prev; binding should preserve information about calling() too. * eval.c (rb_yield_0): no arity check for mere yield; but only for Proc#call. Tue Aug 3 22:07:13 1999 Kazuhiro HIWADA * object.c (rb_mod_clone): should check if iv_tbl, m_tbl are initialized. Tue Aug 3 19:03:02 1999 Yukihiro Matsumoto * hash.c (rb_any_cmp): use rb_with_disable_interrupt() to ensure clearance of rb_prohibit_interrupt even on failure. * eval.c (rb_with_disable_interrupt): new function added. Sat Jul 31 23:23:44 1999 Yukihiro Matsumoto * eval.c (rb_thread_create_0): set THREAD_RAISED flag on thread termination by exception. * eval.c (rb_thread_join): `$!' may not be nil for the threads created in rescue clause. * eval.c (rb_thread_status): ditto. * eval.c (rb_thread_join): should re-raise exception for already dead threads too. Fri Jul 30 17:56:54 1999 GOTO Kentaro * object.c (rb_mod_ge): wrong comparison. Fri Jul 30 12:15:44 1999 Katsuyuki Komatsu * ext/tcltklib/extconf.rb: win32 support. * lib/mkmf.rb: use append_library(). * ext/extmk.rb.in: ditto. Fri Jul 30 02:11:48 1999 Yukihiro Matsumoto * array.c (rb_ary_delete): should return nil for deleting non existing item. * io.c (rb_io_close): call rb_sys_wait() on explicit close. * io.c (rb_io_fptr_close): do not call rb_sys_wait() on finalize. * eval.c (yield_under_i): cbase context should be maintained for Module#module_eval(). suggested by . Wed Jul 28 01:18:28 1999 WATANABE Hirofumi * Makefile.in: add -I$(hdrdir)/lib to install using ftools. * util.c: use HAVE_FCNTL_H, not HAVE_FCNTL Wed Jul 28 18:24:45 1999 Yukihiro Matsumoto * version 1.3.6 - version 1.4 alpha Tue Jul 27 09:38:08 1999 EGUCHI Osamu * eval.c (rb_eval): reduce recursive rb_eval() calls by NODE_BLOCKs. Tue Jul 27 01:20:40 1999 WATANABE Hirofumi * file.c (rb_file_s_expand_path): drive letter patch. Mon Jul 26 02:36:31 1999 Shugo Maeda * eval.c (rb_load): should clear ruby_nerr. * eval.c (rb_thread_join): oldbt should not be empty to unshift. Sun Jul 25 12:09:16 1999 Koji Arai * dir.c (push_braces): should treat nested braces. Fri Jul 23 02:49:49 1999 Yukihiro Matsumoto * hash.c (rb_hash_clear): dummy argument added; suggested by . thanks. Thu Jul 22 19:37:22 1999 Yukihiro Matsumoto * eval.c (rb_thread_join): get_backtrace() may return Qnil. typecheck added. Tue Jul 20 14:36:43 1999 WATANABE Hirofumi * range.c (range_each): do not treat String specially (for future override). Tue Jul 20 02:28:34 1999 Yukihiro Matsumoto * io.c (rb_gets): $_ should be nil, when get returns nil. * io.c (rb_f_gets): ditto. Mon Jul 19 17:13:09 1999 Yukihiro Matsumoto * regex.c (re_compile_fastmap): should continue fastmap compile for anychar_repeat, for it's repeat anyway. Mon Jul 26 13:33:45 1999 WATANABE Hirofumi * lib/jcode.rb: replaced by faster code. Mon Jul 19 01:57:28 1999 Yukihiro Matsumoto * lib/mkmf.rb: no longer use install program. * ext/extmk.rb.in: use miniruby to install programs. Sat Jul 17 00:06:21 1999 Yukihiro Matsumoto * ext/socket/socket.c (ipaddr): don't do reverse lookup if attribute do_not_reverse_lookup is set for socket classes. Experimental. Note this is a global attribute. Fri Jul 16 22:18:29 1999 Yukihiro Matsumoto * io.c (rb_io_eof): use feof() to check EOF already met. * io.c (read_all): should return nil at EOF. Fri Jul 16 13:39:42 1999 Wakou Aoyama * lib/telnet.rb: version 0.231. Fri Jul 16 10:58:22 1999 WATANABE Tetsuya * regex.c (re_match): debug print removed. Fri Jul 16 09:58:15 1999 Katsuyuki Komatsu * many files: clean up unused variables found by gcc -Wall. * lib/mkmf.rb: better cygwin support etc. * ext/extmk.rb.in: ditto. * instruby.rb: ditto. Fri Jul 16 01:37:50 1999 Koji Arai * string.c (rb_str_squeeze_bang): the type of local variable `c' should be int, not char. * string.c (rb_str_reverse): should always return copy. Thu Jul 15 23:25:57 1999 NAKAMURA Hiroshi * lib/debug.rb: better display & frame treatment. Thu Jul 15 21:16:41 1999 Yukihiro Matsumoto * array.c (rb_ary_each): returns self for normal termination; returns nil for break. * string.c: non bang methods (e.g. String#sub) should always return copy of the receiver. Thu Jul 15 21:09:15 1999 Masaki Fukushima * eval.c (find_file): do not add empty string to the path. * configure.in (with-search-path): should not add empty string if the option is not supplied. Thu Jul 15 17:49:08 1999 Ryo HAYASAKA * ext/tcltklib/tcltklib.c: move `#include "ruby.h"' forward. Thu Jul 15 16:54:16 1999 Yukihiro Matsumoto * version 1.3.5 - version 1.4 alpha Wed Jul 14 23:45:33 1999 Katsuyuki Komatsu * eval.c (ruby_init): initialize for the first time only. Tue Jul 13 00:15:19 1999 Yukihiro Matsumoto * hash.c (rb_hash_index): re-defined; method to retrieve a key from the value. * hash.c (Init_Hash): member? should be re-defined for Hash. Tue Jul 12 13:54:51 1999 EGUCHI Osamu * io.c (rb_file_sysopen): wrong number of argument. Mon Jul 12 11:52:35 1999 Yukihiro Matsumoto * eval.c (rb_f_missing): class name included in message. * eval.c (print_undef): better error message. Sun Jul 11 05:36:17 1999 NAKAMURA, Hiroshi * lib/debug.rb: patch to show proper position. Fri Jul 9 23:56:14 1999 WATANABE Hirofumi * dln.c (dln_find_1): path conv. moved to conv_to_posix_path. * dln.c (conv_to_posix_path): path conv. should be done. Fri Jul 9 10:26:47 1999 WATANABE Hirofumi * random.c (RANDOM_NUMBER): should place parentheses. Fri Jul 8 11:00:51 1999 Shugo Maeda * numeric.c (fix_div): division may be out of fixnum range. * bignum.c (bigdivmod): proper sign calculation to result. Wed Jul 7 18:27:41 1999 Yukihiro Matsumoto * st.c (st_delete_safe): was modifying wrong slot. Mon Jul 5 13:17:46 1999 Yukihiro Matsumoto * gc.c (rb_gc_call_finalizer_at_exit): close all files at exit. Fri Jul 2 18:00:21 1999 Minero Aoki * lib/Mail/README: Mail-0.3.0 added to the distribution. Fri Jul 2 01:45:32 1999 Yukihiro Matsumoto * regex.c (re_compile_fastmap): avoid allocation of register variables for each invocation of re_match(). Suggested by Zasukhin Ruslan . Thanks. Tue Jun 29 20:39:24 1999 Koji Arai * ext/tk/lib/tk.rb (TkVariable): bug fix; should value type check be added? * string.c (rb_str_each_line): a bug in paragraph mode. * ruby.c (load_file): shifted too much to skip #!. Tue Jun 29 06:50:21 1999 Wakou Aoyama * lib/CGI.rb: 0.30 - cleanup release, incompatible. * lib/telnet.rb: 0.22 - timeout added. Tue Jun 29 10:49:25 1999 SHIROYAMA Takayuki * configure.in: better Rhapsody support. * lib/mkmf.rb: Rhapsody/NEXTSTEP support. Tue Jun 29 01:42:13 1999 Yukihiro Matsumoto * ext/pty/pty.c (chld_changed): should use POSIX.1 style wait. Mon Jun 28 21:07:36 1999 KIMURA Koichi * ext/extmk.rb.nt: wrong result for have_library(). Mon Jun 28 15:24:05 1999 Yukihiro Matsumoto * missing/isinf.c: OSF/1 raises SIGFPE on one()/zero(). * regex.c (re_search): should search til EOS, for patterns may match beyond the end of range. Mon Jun 28 12:49:12 1999 Yukihiro Matsumoto * io.c (rb_f_select): should not accept Time objects as an argument for it is time interval. * process.c (rb_f_sleep): ditto. * file.c (test_s): should return nil for false condition. Mon Jun 28 12:23:52 1999 Katsuyuki Komatsu * bignum.c (rb_dbl2big): typo. * file.c (rb_f_test): ditto. * string.c (rb_str_crypt): wrong message. Sun Jun 27 19:50:11 1999 Tadayoshi Funaba * eval.c (rb_f_exit): should have treat signed integer status, not VALUE. * process.c (rb_f_exit_bang): should work like exit(). Sun Jun 27 16:21:32 1999 WATANABE Hirofumi * string.c (rb_str_rindex): wrong position to search. Sat Jun 26 04:05:30 1999 Takaaki Tateishi * configure.in (configure_args): --with-search-path to specify additional ruby search path. * ruby.c (ruby_prog_init): additional search path. Fri Jun 25 13:09:12 1999 Yukihiro Matsumoto * pack.c (pack_unpack): needed to initialize natint. * regex.c (re_compile_pattern): add start_paren to avoid too much finalization on maybe_finalize_jump. Fri Jun 25 13:07:20 1999 Koji Oda * missing/isinf.c: include "config.h" added. Fri Jun 25 07:25:05 1999 Katsuyuki Komatsu * lib/mkmf.rb: initialize $(topdir). * ext/extmk.rb.in (install_rb): install lib/*.rb properly. * configure.in (linux): specifies -rpath on --enable-shared. * configure.in (aix): ruby.imp must reside in $(topdir). Thu Jun 24 19:11:29 1999 Yoshida Masato * parse.y (rb_str_extend): multi-byte identifier in expression interpolation in strings. * parse.y (yylex): support multi-byte char identifiers. Thu Jun 24 15:27:13 1999 Yukihiro Matsumoto * parse.y (f_arg): check duplicate argument names. * gc.c (rb_gc_mark): marking wrong member for NODE_ARGS. * string.c (rb_str_rindex): POSITION specifies start point, not end point. Thu Jun 24 13:00:17 1999 Yukihiro Matsumoto * regex.c (print_mbc): wrong boundary. * pack.c (uv_to_utf8): raises ArgError for too big value. Thu Jun 24 11:02:51 1999 Yoshida Masato * pack.c (uv_to_utf8): mask needed. Wed Jun 23 21:03:56 1999 Tadayoshi Funaba * ruby.h (struct RFile): remove iv_tbl from struct. instance variables are handled as generic ivs. Wed Jun 23 22:06:26 1999 Tadayoshi Funaba * pack.c (utf8_to_uv): pack to 7 bytes sequence. * pack.c (uv_to_utf8): wrong boundary. * pack.c (pack_unpack): should treat as unsigned long. Wed Jun 23 15:10:11 1999 Inaba Hiroto * parse.y (parse_string): failed to parse nested braces. * parse.y (parse_regx): nested braces within #{} available. Wed Jun 23 11:18:38 1999 Yukihiro Matsumoto * regex.c (slow_search): wrong shift width for mbcs. * eval.c (rb_thread_save_context): should not clear th->locals. Wed Jun 23 02:06:14 1999 Yukihiro Matsumoto * parse.y (yylex): UMINUS binds too tight with digits. changed so that -2**2 => -4. * parse.y (close_paren): `do' for expr termination now works it used to be. Wed Jun 22 18:26:42 1999 Koji Arai * pack.c (pack_pack): should initialize local variable `j'. Wed Jun 22 15:24:59 1999 Koji Arai * parse.y (here_document): a bug for multiline heredoc. Tue Jun 22 15:06:36 1999 WATANABE Hirofumi * ext/socket/socket.c (ruby_socket): forgot to return fd explicitly. Tue Jun 22 13:34:12 1999 Yukihiro Matsumoto * rubyio.h (MakeOpenFile): should initialize member `iv_tbl'. Wed Jun 22 10:35:51 1999 Katsuyuki Komatsu * io.c (rb_io_gets_internal): getc(3) may not set errno on interrupt. Mon Jun 21 22:39:28 1999 Yukihiro Matsumoto * eval.c (call_required_libraries): ruby_sourceline should be cleared before loading libraries. * io.c (set_stdin): do not use reopen(), so that we don't need to dup original stdin before assigning $stdin. Mon Jun 21 18:04:27 1999 Ryo HAYASAKA * ext/dbm/dbm.c: include for solaris 2.6. Mon Jun 21 15:59:47 1999 Nobuyoshi Nakada * ext/socket/socket.c (ip_addrsetup): forgot to put `else'. Mon Jun 21 15:38:37 1999 Yukihiro Matsumoto * io.c (fptr_finalize): remove rb_syswait() invocation to avoid wait4(2) within GC. rb_syswait() moved to rb_io_fptr_close(). Mon Jun 21 12:05:59 1999 Tadayoshi Funaba * dir.c (dir_s_glob): remove MAXPATHLEN restriction. * ext/md5/md5init.c (md5_hexdigest): should have used "%02x". Sun Jun 20 19:50:38 1999 Minero Aoki * string.c (rb_str_each_line): should have checked string boundary. Sat Jun 19 22:24:12 1999 Kenji Nagasawa * OS/2 patch improved. Fri Jun 18 08:30:17 1999 Yukihiro Matsumoto * marshal.c (r_byte): add data length check. * ext/tcltklib/tcltklib.c (_timer_for_tcl): was doing busy-wait. Tue Jun 15 10:01:21 1999 Katsuyuki Komatsu * configure.in: remove trailing slash from interpreter embedded shared library path. * configure.in (INSTALL_DLLIB): install shared lib with 0555. * instruby.rb: changed mode for shared library into 0555. Fri Jun 11 23:27:00 1999 Tadayoshi Funaba * ext/etc/etc.c (etc_passwd): should return nil, not exception for call after last passwd entry. Fri Jun 11 15:21:21 1999 Yukihiro Matsumoto * gc.c (rb_gc_mark_locations): add safety margin 1. * eval.c (ruby_run): should protect toplevel node tree. * ext/etc/etc.c (etc_group): dumps core if there's no more group. Fri Jun 11 01:50:25 1999 Yukihiro Matsumoto * eval.c (ruby_run): Init_stack() was called too late; local variables happened to be higher (or lower) than stack_start. Thu Jun 10 16:41:48 1999 Yukihiro Matsumoto * io.c: do not call `initialize' for IO objects. So with Array, Hash, Range, and Time objects. * ext/curses/curses.c (curses_getch): made thread aware using rb_read_check(). * ext/curses/curses.c (window_getch): ditto. * ext/curses/curses.c (curses_getstr): made (partially) thread aware using rb_read_check(). * ext/curses/curses.c (window_getstr): ditto. * io.c (rb_read_check): new function to help making something (like extension libraries) thread aware. * eval.c (is_defined): `defined? super' should be true even for private superclass methods. Fri Jun 10 13:42:10 1999 Koji Arai * pack.c (pack_pack): template `Z' should be allowed. Wed Jun 9 13:26:38 1999 Yukihiro Matsumoto * eval.c (rb_thread_loading): modified to avoid nested race condition of require(). * ext/tcltklib/tcltklib.c (ip_invoke): queue invocation on non main threads. * ext/tcltklib/tcltklib.c (lib_mainloop): flush invocation queues periodically. * version.c (ruby_show_version): now print the message to stdout. * version.c (ruby_show_copyright): ditto. Tue Jun 8 00:00:34 1999 Yukihiro Matsumoto * pack.c (pack_unpack): append sentinel (NUL) to the string. * ext/md5/md5init.c (md5_hexdigest): new method to obtain printable hash string. * ext/md5/md5init.c (md5_update): should return self. * pack.c (pack_pack): undocumented template 'U' for UTF8. * pack.c (pack_unpack): ditto. * marshal.c (r_byte): should replace getc() with rb_getc(). * io.c (rb_getc): getc() replacement uses READ_DATA_PENDING() and rb_thread_wait_fd(). Mon Jun 7 23:23:38 1999 Yukihiro Matsumoto * object.c (rb_mod_clone): should call CLOSESETUP(). * eval.c (bind_clone): should call CLONESETUP() for new clone. Sat Jun 5 10:32:40 1999 Yukihiro Matsumoto * string.c (rb_str_oct): binary (e.g. 0b10111) support. * variable.c (rb_const_set): raise warning, not exception. * parse.y (yycompile): initialize parser internal variables. * parse.y (close_paren): set lex_state to EXPR_PAREN after closing parenthesis. * parse.y (yylex): returns kDO for `do' right after method_call. Thu Jun 3 11:05:30 1999 WATANABE Hirofumi * regex.c (read_backslash): should decode \b within class. Thu Jun 3 01:06:18 1999 Katsuyuki Komatsu * dln.c (dln_load): AIX improvement (aix_findmain removed). Wed Jun 2 00:41:31 1999 Yukihiro Matsumoto * pack.c (pack_unpack): new undocumented template Z which strips stuff after first null. * pack.c (pack_pack): should preserve specified length of the resulting string. Tue Jun 1 15:29:33 1999 Yukihiro Matsumoto * ext/socket/socket.c (ruby_socket): retry after GC, if socket(2) failed on EMFILE or ENFILE. * ext/socket/socket.c (sock_s_socketpair): ditto. * eval.c (module_setup): need to add PUSH_VAR/POP_VAR to clear dyna vars link list. * version.h (RUBY_RELEASE_CODE): integer macro constant for source version detection. Sun May 30 22:19:12 1999 Kenji Nagasawa * ext/socket/socket.c: emx/gcc 0.9d now fixes things about AF_UNIX. * process.c: OS/2 EMX kludge. * Makefile.in (strncasecmp.o): added dependency. Mon May 31 16:06:28 1999 Yukihiro Matsumoto * version 1.3.4 - preliminary release for 1.4 Mon May 31 15:57:41 1999 Yukihiro Matsumoto * io.c (rb_io_fptr_close): close on IO which main_thread is waiting cause serious exception, that vanishes the actual fd closing. Invocation of rb_thread_fd_close() is deferred a little. Sat May 29 18:27:13 1999 Koji Arai * regex.c (re_match): stack boundary check needed. Sat May 29 12:27:00 1999 Yukihiro Matsumoto * ext/tcltklib/tcltklib.c (ip_invoke): proper ref count management to avoid leak. I HATE REF COUNTING!! * eval.c (ruby_run): moved ruby_require_libraries() to handle `-r' from ruby_options() to avoid stack corruption for threads created in libraries. Sat May 29 02:22:12 1999 Yukihiro Matsumoto * eval.c (rb_yield_0): when `for' appeared in blocks, it introduced new scope for local variables. Fri May 28 17:16:49 1999 Yukihiro Matsumoto * string.c (rb_str_squeeze_bang): squeeze AND of the arguments. UNDOCUMENTED. * string.c (rb_str_count): new UNDOCUMENTED method. * string.c (rb_str_delete_bang): delete AND of the arg ranges. UNDOCUMENTED FEATURE for 1.3.x. * ext/socket/socket.c (setipaddr): re-wrote using ip_addrsetup(). * ext/socket/socket.c (ip_addrsetup): decode symbolic address . Thu May 27 12:27:42 1999 Yukihiro Matsumoto * string.c (tr_trans): should handle NUL (\0) within strings. Tue May 25 16:45:11 1999 Yukihiro Matsumoto * io.c (rb_f_syscall): syscall may return values other than zero on success. * regex.c (re_match): handle empty loop properly (hopefully). * regex.c (re_match): remove empty group check, because it does not help non-grouping parentheses (?:..). * regex.c (re_compile_fastmap): treating try_next, finalize_push wrong way. * regex.c: remove some obsolete functions such as group_match_null_string_p(). Mon May 24 14:47:54 1999 Yukihiro Matsumoto * regex.c (read_backslash): read backslash by regex. Sun May 23 19:44:58 1999 WATANABE Hirofumi * ext/pty/pty.c (getDevice): portability patch. Fri May 21 23:01:26 1999 Katsuyuki Komatsu * ext/socket/getaddrinfo.c (GET_AI): should set error code. Thu May 20 03:43:44 1999 Jun-ichiro itojun Hagino * ext/socket/socket.c: you should use sockaddr_storage to handle IPv6 addresses. * ext/socket/getaddrinfo.c (getaddrinfo): prevent retrieving AF_INET6 address if hints.ai_flags == AI_PASSIVE. Wed May 19 12:27:07 1999 Yukihiro Matsumoto * eval.c (exec_end_proc): should protect exceptions. * gc.c (run_final): ditto. * parse.y (f_rest_arg): allow just * for rest arg. * parse.y (mlhs_basic): allow * without formal argument. * regex.c (re_match): the variable `part' should be initialized. Tue May 18 15:25:45 1999 Yukihiro Matsumoto * regex.c (re_search): a bug in range adjustment. Tue May 18 11:35:59 1999 WATANABE Hirofumi * dln.c (conv_to_posix_path): path_len argument added. Mon May 17 12:26:31 1999 Yukihiro Matsumoto * numeric.c (fix_rev): should treat Fixnum as signed long. * eval.c (massign): add strict number check for yield (and call). * eval.c (proc_arity): new method to return number of arguments. * eval.c (method_arity): new method to return number of arguments. * parse.y (read_escape): char may be unsigned. * string.c (rb_str_succ): ditto. * string.c (tr_trans): ditto. * object.c (Init_Object): methods `&', `|', `^' are added to nil. * range.c (rb_range_beg_len): it should be OK for [0..-len-1]. * regex.c (re_search): search for byte literal within mbcs. * regex.c (is_in_list): parsh * regex.c (re_compile_fastmap): should have not alter the loop variable `j' if TRASLATE_P(). * regex.c (re_compile_pattern): escaped characters should be read by PATFETCH_RAW(c). Sat May 15 11:23:51 1999 Yukihiro Matsumoto * regex.c (re_match): endline2 (\Z) should not match at the point between a newline and end-of-line, like endline ($). * class.c (include_class_new): should initialize iv_tbl to share between module and iclass. Fri May 14 08:50:27 1999 Akira Endo * regex.c (re_compile_fastmap): it should be k != 0 to skip. Fri May 14 12:46:56 1999 Yukihiro Matsumoto * time.c (time_load): a bug in old marshal format support. * instruby.rb: make site_ruby directory. Fri May 14 10:18:02 1999 WATANABE Tetsuya * regex.c (re_match): a bug in inline `.*' etc. Fri May 14 09:58:46 1999 Minero Aoki * ruby.c (addpath): should have specified string length. Thu May 13 10:40:44 1999 Yukihiro Matsumoto * eval.c (rb_eval_string_wrap): new function. * regex.c (re_compile_pattern): POSIX line match should alter behavior for `^' and `$' to begbuf and endbuf2 respectively. * ext/pty/pty.c: un-ANSI-fy function arguments. Wed May 12 14:19:38 1999 Yukihiro Matsumoto * struct.c (iv_get): in case of inheritance of generated struct class, __member__ and __size__ should also be inherited. Thanks for Pros Yeboah . * io.c (rb_f_gets_internal): should check number of arguments before checking rb_rs == rb_default_rs. Thanks for Koji Arai . Tue May 11 08:29:28 1999 Yukihiro Matsumoto * regex.c (re_compile_pattern): .?, .+ did not work. Mon May 10 00:59:33 1999 Yukihiro Matsumoto * lib/jcode.rb: forgot to squeeze on reverse (complement) case. * string.c (tr_squeeze): should not set modify flag to be honest, if the string is not modified. * signal.c (Init_signal): SIGTERM should not be handled. * regex.c (re_match): seeking for longest match is now optional, which can be set using RE_OPTION_POSIXMATCH. This satisfies POSIX longest match as much as Emacs's posix-* functions, which are known to be incomplete. Sun May 9 13:04:01 1999 Katsuyuki Komatsu * ext/socket/socket.c (sock_s_getaddrinfo): conversion from Fixnums to C integers needed. Sun May 9 11:51:43 1999 Koji Arai * range.c (range_eqq): reverse condition. * range.c (range_s_new): default should be end inclusive. Sat May 8 03:27:51 1999 Yukihiro Matsumoto * ext/socket/socket.c (thread_connect): replace nasty rb_thread_fd_writable() with rb_thread_select(). Fri May 7 20:49:00 1999 Katsuyuki Komatsu * ext/socket/getaddrinfo.c (inet_pton): wrong parameter to inet_aton(). * ext/socket/addrinfo.h (__P): silly cut and paste typo. Fri May 7 17:03:57 1999 Yukihiro Matsumoto * dir.c (glob): removed GPL'ed glob.c completely. Fri May 7 08:17:19 1999 Yukihiro Matsumoto * ext/sdbm/extconf.rb: sdbm extension added to the distribution. Fri May 7 01:42:20 1999 Yukihiro Matsumoto * ext/socket/socket.c (tcp_s_gethostbyname): avoid using struct sockaddr_storage. Thu May 6 13:21:41 1999 Yukihiro Matsumoto * array.c (rb_ary_indexes): should not use rb_ary_concat(). Thu May 4 12:34:18 1999 Koji Arai * parse.y (parse_string): there should be newline escape by backslashes in strings. * parse.y (parse_qstring): ditto. Mon May 3 04:37:20 1999 Koji Arai * ext/tcltklib/extconf.rb: better search for libX11. * range.c (range_s_new): embarrassing =/== typo. * re.c (Init_Regexp): failed to set default kcode. Mon May 3 02:39:55 1999 WATANABE Tetsuya * ext/socket/socket.c (open_inet): typo (res and res0). Tue May 4 02:07:49 1999 Yukihiro Matsumoto * mkconfig.rb: leave undefined $(VARIABLE) unexpanded in the Config::CONFIG hash table. Mon May 3 09:37:22 1999 Yukihiro Matsumoto * regex.c (re_compile_pattern): expand exactn{n} at compile time. handles stop_paren specially. * regex.c (re_compile_pattern): expand x{n} at compile time. * regex.c (re_search): posix line match should be checked. * regex.c (re_search): a bug in anchor condition. Fri Apr 30 18:57:41 1999 Yukihiro Matsumoto * version 1.3.3 * string.c (rb_str_rindex): position should be END point, not START point. * re.c (rb_reg_search): pos means end point on reverse now. * array.c (rb_ary_s_create): should clear ary->ptr to avoid potential gc crash. Fri Apr 30 15:24:58 1999 Yukihiro Matsumoto * ext/socket/addrinfo.h: compatibility hack for ipv4. * ext/socket/socket.c: itojun's ipv6 patches applied. * ext/socket/extconf.rb: detect ipv6 features based on itojun's ipv6 patches. * ext/extmk.rb.in (enable_config): can handle --enable-xxx now. * lib/mkmf.rb (enable_config): ditto. Fri Apr 30 05:22:23 1999 Shugo Maeda * string.c (rb_str_aset): last index should not append. Thu Apr 29 18:55:31 1999 WATANABE Hirofumi * dln.c (conv_to_posix_path): remove const from args. * ruby.c (rubylib_mangle): remove Fatal(), the obsolete function. Tue Apr 27 14:11:45 1999 Yukihiro Matsumoto * parse.y (fname): lazy workaround for keywords did not work well. * ext/extmk.rb.in: `--with-xxx=yyy' argument configuration. * lib/mkmf.rb: ditto. * misc/ruby-mode.el: forgot to handle $`. * ext/extmk.rb.in: better AIX link support proposed by . Mon Apr 26 16:46:59 1999 Yukihiro Matsumoto * ext/extmk.rb.in: AIX shared library support modified. * ext/aix_mksym.rb: ditto. * configure.in: ditto. * sprintf.c (rb_f_sprintf): should allocate proper sized buffer for float numbers. Sat Apr 24 00:00:16 1999 Yukihiro Matsumoto * parse.y (operation): syntax like `a.[]=(1,2)' is allowed. Fri Apr 23 23:54:09 1999 Yukihiro Matsumoto * io.c (argf_binmode): binmode method added to ARGF. Fri Apr 23 13:55:22 1999 Yukihiro Matsumoto * string.c (rb_f_chomp): should assign the result to $_. or maybe sub/gsub/chop/chomp should NOT assign $_ altogether. Thu Apr 22 16:50:54 1999 Yukihiro Matsumoto * eval.c (rb_callcc): call scope_dup() for all scopes in the interpreter stack. Tue Apr 20 11:24:18 1999 Yukihiro Matsumoto * string.c (rb_str_dump): `#' should be escaped. Tue Apr 20 02:32:42 1999 Yukihiro Matsumoto * parse.y (parse_regx): option /p for posix match added. * re.c (rb_reg_desc): did not print options properly. * io.c (rb_file_s_open): initialize was called twice. Mon Apr 19 18:56:21 1999 Yukihiro Matsumoto * configure.in (DEFAULT_KCODE): can specify default code for $KCODE by --with-default-kcode=(euc|sjis|utf8|none). * regex.c (IS_A_LETTER): a byte sequence shorter than mbc should not match with \w etc. Mon Apr 19 13:49:11 1999 Yukihiro Matsumoto * eval.c (eval): should restore ruby_dyna_vars. Fri Apr 16 21:40:43 1999 Nobuyoshi Nakada * io.c (f_backquote): pipe_open may return nil. * io.c (f_open): rb_io_open may return nil. * io.c (io_s_foreach): ditto. * io.c (io_s_readlines): ditto. * io.c (io_defset): wrong message. Fri Apr 16 15:09:20 1999 Yukihiro Matsumoto * bignum.c (rb_str2inum): strtoul() returns long, not int. * eval.c (rb_load): size of VALUE and ID may be different. * util.c (mmprepare): int is too small to cast from pointers. * config.guess: avoid 'linux-gnu' for alpha-unknown-linux. Thu Apr 15 23:46:20 1999 WATANABE Hirofumi * ruby.c (rubylib_mangle): mangle path by RUBYLIB_PREFIX. Wed Apr 14 23:52:51 1999 SHIROYAMA Takayuki * node.h (NODE_LMASK): should be long to avoid overflow. Wed Apr 14 13:14:35 1999 Katsuyuki Komatsu * dln.c: AIX dynamic link. * ext/aix_ld.rb: ditto. Wed Apr 14 12:19:09 1999 Yukihiro Matsumoto * lib/thread.rb: Queue#{enq,deq} added. Tue Apr 13 17:43:56 1999 Yukihiro Matsumoto * hash.c (rb_hash_s_create): Hash::[] acts more like casting. Tue Apr 13 00:33:52 1999 Yukihiro Matsumoto * io.c (rb_io_stdio_set): warning for assignment to the variables $std{in,out,err}. Mon Apr 12 23:12:32 1999 Yukihiro Matsumoto * io.c (rb_io_reopen): check for reopening same IO. Fri Apr 9 17:45:11 1999 Yukihiro Matsumoto * parse.y (rb_compile_string): bug for nested eval(). * regex.c (re_match): should pop non-greedy stack items on failure, after best_regs are fixed. Thu Apr 8 17:30:40 1999 Yukihiro Matsumoto * pack.c (PACK_LENGTH_ADJUST): need to adjust for `*' length. Tue Apr 6 23:28:44 1999 Yukihiro Matsumoto * parse.y (void_check): add void context checks. Mon Apr 5 12:23:42 1999 Yukihiro Matsumoto * time.c (time_s_at): should copy gmt-mode. * eval.c (eval_node): preserve ruby_eval_tree. Fri Apr 2 14:00:34 1999 NAKAMURA, Hiroshi * lib/debug.rb: wrong command interpreting. Fri Apr 2 11:46:22 1999 Yukihiro Matsumoto * version 1.3.2 Fri Apr 2 10:40:04 1999 Yukihiro Matsumoto * io.c (rb_io_s_pipe): forgot to define IO::pipe. Thu Apr 1 14:40:46 1999 Yukihiro Matsumoto * eval.c (assign): modified for rhs change. * parse.y (stmt): unparenthesisized method calls can be right hand side expression of the assignment. Sat Mar 27 22:42:47 1999 Koji Arai * ext/nkf/nkf.c (rb_nkf_kconv): check size output_ctr before decrement. Thu Mar 25 09:11:03 1999 Yukihiro Matsumoto * time.c (time_s_at): preserve gmt-mode for result. * parse.y (rb_compile_string): do not use cur_mid, use compile_for_eval instead. * st.c (PTR_NOT_EQUAL): wrong logical condition. Wed Mar 24 13:06:43 1999 Yukihiro Matsumoto * parse.y (yycompile): should clear cur_mid after compilation. * io.c (next_argv): need to check type for ARGV.shift. * eval.c (blk_copy_prev): need to preserve outer scope as well as outer frames. * parse.y (rb_compile_string): return can appear within eval(). Tue Mar 23 10:15:07 1999 EGUCHI Osamu * configure.in: AC_C_CONST check added. Tue Mar 23 02:07:35 1999 Yukihiro Matsumoto * time.c (time_plus): preserve gmt-mode for result. Mon Mar 22 01:32:37 1999 Yukihiro Matsumoto * eval.c (rb_eval): adjust line numbers before expression interpolation within strings. * eval.c (rb_eval): defined? returns nil for false condition. * numeric.c (num_nonzero_p): returns nil for false condition. Sat Mar 20 13:07:43 1999 Keiju Ishitsuka * lib/weakref.rb: avoid leak for two weakrefs for one object. Fri Mar 19 11:26:45 1999 WATANABE Hirofumi * eval.c (ruby_run): needed to eval END{} on exit. * eval.c (rb_exit): ditto. Fri Mar 19 02:17:27 1999 Yukihiro Matsumoto * signal.c (Init_signal): handles terminating signals HUP, TERM, QUIT, PIPE, etc. Thu Mar 18 15:47:18 1999 Yukihiro Matsumoto * bignum.c (rb_big_and): bug in sign calculation. * bignum.c (rb_big_or): ditto. * io.c (rb_f_select): forgot to use to_io to retrieve IO, after calling select(2). Tue Mar 16 19:54:31 1999 WATANABE Hirofumi * ext/extmk.rb.in: static linking cause infinite make loop. Tue Mar 16 18:50:04 1999 Yoshida Masato * ext/socket/socket.c (tcp_s_gethostbyname): typo, not NUM2INT(), but INT2NUM(). * ext/socket/socket.c (mkhostent): ditto. Tue Mar 16 12:31:44 1999 Ryo HAYASAKA * file.c (utime_internal): suppress warning by const. * time.c (time_gmtime): ditto. Tue Mar 16 10:23:05 1999 Yukihiro Matsumoto * time.c (time_clone): Time object can be cloned. Tue Mar 16 03:13:10 1999 Koji Arai * ruby.c (load_file): argv[argc] should be NULL. Mon Mar 15 22:12:08 1999 Tadayoshi Funaba * sprintf.c (rb_f_sprintf): typo in arg_num check at exit. Mon Mar 15 16:42:22 1999 Yukihiro Matsumoto * array.c (rb_ary_dup): dup2 should copy class too. Mon Mar 15 15:12:53 1999 Yasuhiro Fukuma * lib/mkmf.rb: install program relative path check. Mon Mar 15 14:05:25 1999 Yukihiro Matsumoto * re.c (rb_reg_s_new): 2nd argument is now option. Regexp::EXTENDED can be specified. Fri Mar 12 10:47:49 1999 Yukihiro Matsumoto * string.c (rb_str_index): str.index("") should always match at offset point. * string.c (rb_str_upto): can specify end point exclusion. * string.c (rb_str_index): negative offset. * regex.c (re_match): begline should not match at the point between a newline and end-of-string. endline neither. * regex.c (re_compile_pattern): context_indep_anchors . * parse.y (parse_regx): need not to push backslashes before escaped characters. * eval.c (rb_thread_join): re-raises exception within target. Fri Mar 12 01:09:36 1999 Koji Arai * ext/readline/readline.c (readline_s_vi_editing_mode): wrong number of arguments. Fri Mar 12 02:12:50 1999 Yukihiro Matsumoto * pack.c (PACK_ITEM_ADJUST): "a".unpack("C3") => [97, nil, nil] Thu Mar 11 18:23:50 1999 WATANABE Tetsuya * ext/socket/socket.c (Init_socket): UDPsocket was omitted. Thu Mar 11 16:43:30 1999 Yukihiro Matsumoto * pack.c (PACK_LENGTH_ADJUST): push fixed number of items per template to result array. * pack.c (pack_unpack): I/N/C etc. push nil in the array for "". Tue Mar 9 00:19:21 1999 Yukihiro Matsumoto * hash.c (ruby_unsetenv): use ruby_setenv(name, 0). * hash.c (env_delete): ditto. * string.c (rb_str_upto): do not check `beg * string.c (rb_str_index): wrong end point calculation. Sat Mar 6 02:19:12 1999 Yukihiro Matsumoto * re.c (match_index): MatchingData#index(n) added. * array.c (rb_ary_subseq): ary[n..-1] returns an sub-array unless n is too small negative index. * re.c (rb_reg_match_method): Regexp#match(str) added. * array.c (rb_ary_indexes): understands ranges as indexes. * re.c (match_size): MatchingData#size added. Fri Mar 5 01:04:57 1999 Yukihiro Matsumoto * array.c (rb_ary_fill): modified for range. * array.c (rb_ary_aset): a[n..m] revisited. Thu Mar 4 14:23:29 1999 Yukihiro Matsumoto * string.c (rb_str_subseq): a[n..m] revisited. * parse.y (method_call): allow Const::method{}. * array.c (rb_ary_replace_method): should replace original array. Thu Mar 4 02:30:22 1999 Yukihiro Matsumoto * configure.in: remove --disable-thread, thread feature is no longer optional. Thu Mar 4 00:32:17 1999 Yasuhiro Fukuma * parse.y (read_escape): wrong arguments for scan_oct,scan_hex. Wed Mar 3 11:51:53 1999 Yukihiro Matsumoto * ext/socket/socket.c (Init_socket): rename class names as TCPsocket -> TCPSocket etc. Tue Mar 2 19:46:42 1999 WATANABE Hirofumi * configure.in (LDSHARED): use gcc -Wl,-G for solaris with gcc. Tue Mar 2 17:04:19 1999 Yukihiro Matsumoto * parse.y (yylex): backslashes do not concatenate comment lines anymore. Mon Mar 1 14:05:12 1999 Yukihiro Matsumoto * eval.c (rb_call0): adjust argv for optional arguments. super without arguments emit superclass method with the value from optional arguments. enabled as experiment. Sun Feb 28 14:04:07 1999 WATANABE Hirofumi * parse.y (nextc): backslash at the eof cause infinite loop Sun Feb 28 11:01:26 1999 Tadayoshi Funaba * time.c (make_time_t): month range check added. Sat Feb 27 02:36:05 1999 Yukihiro Matsumoto * re.c (Init_Regexp): add escape as alias of quote. * re.c (rb_reg_s_quote): char-code can be specified now. Fri Feb 26 18:45:36 1999 Yasuhiro Fukuma * eval.c (error_print): bug for error message with newlines. Fri Feb 26 12:00:04 1999 Yukihiro Matsumoto * time.c (make_time_t): future check modified to allow 1969-12-31 at certain timezone. * time.c (time_arg): year >= 1000 should be past. * version.c (Init_version): constant RELEASE_DATE added. Fri Feb 26 01:08:30 1999 Yukihiro Matsumoto * string.c (rb_str_substr): returns nil for out-of-range access. * array.c (rb_ary_subseq): returns nil for out-of-range access. * array.c (rb_ary_store): negative index message has changed. * string.c (rb_str_aset): reallocation needed. * string.c (rb_str_aset): allow char append to the string. Thu Feb 25 23:30:17 1999 Tadayoshi Funaba * time.c (time_load): tm_year should be packed in 17 bits, not 18. Thu Feb 25 12:50:25 1999 Yukihiro Matsumoto * missing/dup2.c: replaced by public domain version. * time.c (make_time_t): add `future check' in loops. * object.c (rb_num2dbl): forbid implicit conversion from nil, or strings. thus `Time.now + str' should raise error. * object.c (rb_Float): convert nil into 0.0. * object.c (rb_Integer): conversion method improved. Thu Feb 25 03:27:50 1999 Shugo Maeda * eval.c (rb_call): should handle T_ICLASS properly. Thu Feb 25 00:04:00 1999 Yukihiro Matsumoto * error.c (Init_Exception): global function Exception() removed. * variable.c (rb_class2name): returns "nil"/"true"/"false" for them. * time.c (time_dump): time marshaling format compressed size from 11 bytes to 8 bytes. thanx to tadf@kt.rim.or.jp. * eval.c (rb_obj_call_init): should specify arguments explicitly. Wed Feb 24 15:43:28 1999 Yukihiro Matsumoto * parse.y (yylex): comment concatenation requires preceding space before backslash at the end of line. * io.c (rb_f_pipe): global pipe is obsolete now. * object.c (Init_Object): remove true.to_i, false.to_i. Tue Feb 23 14:21:41 1999 Yukihiro Matsumoto * parse.y (yylex): warn if identifier! immediately followed by `='. Tue Feb 23 12:32:41 1999 WATANABE Hirofumi * eval.c (rb_load): tilde expansion moved to find_file. * eval.c (find_file): tilde expansion added. Tue Feb 23 10:50:20 1999 Yukihiro Matsumoto * eval.c (require_method): require can handle multiple fnames. * hash.c (rb_hash_foreach_iter): hash key may be nil. Mon Feb 22 17:44:02 1999 Yukihiro Matsumoto * regex.c (re_match): should not pop failure point on success for non-greedy matches. * io.c (Init_IO): remove global_functions getc, readchar, ungetc, seek, tell, rewind. Sat Feb 20 22:54:26 1999 Yukihiro Matsumoto * numeric.c (rb_num2long): no implicit conversion from boolean. Sat Feb 20 09:58:42 1999 EGUCHI Osamu * numeric.c (flo_to_s): portable Infinity and NaN support. Sat Feb 20 07:13:31 1999 WATANABE Tetsuya * io.c (rb_file_sysopen): forgot to initialize a local variable. Fri Feb 19 23:05:07 1999 Yukihiro Matsumoto * string.c (rb_str_subseq): range check changed. * marshal.c: increment MARSHAL_MINOR for Time format change. * time.c (time_old_load): support old marshal format. * time.c (time_load): changed for new format Y/M/D/h/m/s/usec. * time.c (time_dump): marshal dump format has changed. Fri Feb 19 00:25:57 1999 Yukihiro Matsumoto * time.c (time_arg): should reject "sep\0" and such. * time.c (time_plus): Time#+ should not receive Time object operand. * string.c (rb_str_substr): negative length raises exception now. * array.c (beg_len): if end == -1, it points end of the array. * array.c (rb_ary_subseq): negative length raises exception now. Thu Feb 18 20:57:04 1999 Tadayoshi Funaba * time.c (rb_strftime): strftime() may return 0 on success too. * time.c (time_strftime): `\0' within format string should not be omitted in the result. * time.c (rb_strftime): zero length format. * time.c (time_to_a): yday start with 1 now. * time.c (time_zone): support for long timezone name. * time.c (time_yday): yday start with 1 now. * time.c (time_minus): minus calculation was wrong. * time.c (time_minus): sec, usec should be at least `long', maybe they should be `time_t'. * time.c (time_plus): addition with float was wrong. * time.c (time_to_s): support for long timezone name. * time.c (time_gm_or_local): too far future check moved. * time.c (time_arg): treat 2 digit year as 69-99 => 1969-1999, 00-68 => 2000-2068 Thu Feb 18 03:56:47 1999 Yukihiro Matsumoto * missing/fnmatch.c: moved to missing directory. Wed Feb 17 16:22:26 1999 Yukihiro Matsumoto * struct.c (rb_struct_alloc): actual initialization now be done in `initialize'. Wed Feb 17 09:47:15 1999 okabe katsuyuki * regex.c (re_search): use mbclen() instead of ismbchar(). * re.c (rb_reg_s_quote): should handle mbchars properly. Wed Feb 17 01:25:26 1999 Yukihiro Matsumoto * parse.y (yylex): stop comment concatenation by backslash follows after >= 0x80 char. may cause problem with Latin chars. * eval.c (error_print): exception in rb_obj_as_string() caused SEGV. protect it by PUSH_TAG/POP_TAG. * error.c (exc_exception): `Exception#exception' should return self. Wed Feb 17 01:12:22 1999 Hirotaka Ichikawa * configure.in: BeOS patch. Tue Feb 16 14:25:00 1999 Yukihiro Matsumoto * regex.c (re_compile_pattern): should reallocate mbc space for character class unless current_mbctype is ASCII. Mon Feb 15 15:48:30 1999 WATANABE Hirofumi * configure.in: specify `-Wl,-E' only for GNU ld. Mon Feb 15 11:43:22 1999 GOTO Kentaro * array.c (rb_inspecting_p): should return Qfalse. Sun Feb 14 22:36:40 1999 EGUCHI Osamu * sprintf.c (rb_f_sprintf): `%G' was omitted. Sun Feb 14 12:47:48 1999 EGUCHI Osamu * numeric.c (Init_Numeric): allow divide by zero on FreeBSD. * numeric.c (Init_Numeric): FloatDomainError added. * configure.in (AC_REPLACE_FUNCS): add checks for functions isinf, isnan, and finite. Sat Feb 13 01:24:16 1999 Yukihiro Matsumoto * eval.c (rb_thread_create_0): should protect th->thread. Fri Feb 12 16:16:47 1999 Yasuhiro Fukuma * string.c (rb_str_inspect): wrong mbc position. Fri Feb 12 16:21:17 1999 Yukihiro Matsumoto * eval.c (rb_thread_fd_close): * io.c (rb_io_fptr_close): tell scheduler that fd is closed. * io.c (rb_io_reopen): ditto. * io.c (READ_CHECK): check if closed after thread context switch. * ext/socket/socket.c (bsock_close_read): do not check the return value from shutdown(2). * ext/socket/socket.c (bsock_close_write): ditto. * ext/socket/socket.c (sock_new): need to dup(fd) for close_read and close_write. * parse.y (here_document): handle newlines within #{}. * regex.h: should replace symbols for ruby. Fri Feb 12 00:46:28 1999 Shugo Maeda * marshal.c (r_object): should update the method name in message. * marshal.c (w_object): limit should be converted into Fixnum. Wed Feb 10 15:20:03 1999 Yukihiro Matsumoto * regex.c (re_match): empty pattern should not cause infinite pattern match loop. * regex.c (re_compile_pattern): RE_OPTIMIZE_ANCHOR for /.*/, not for /(.|\n)/. * numeric.c (fix_pow): `fixnum**nil' should raise TypeError. * bignum.c (rb_big_pow): need to normalize results. Wed Feb 10 01:42:41 1999 EGUCHI Osamu * numeric.c (fix_pow): `(5**1).type' should be Integer. Tue Feb 9 01:22:49 1999 Yukihiro Matsumoto * parse.y (yylex): do not ignore newlines in mbchars. * io.c (rb_file_s_open): mode can be specified by flags like open(2), e.g. File::open(path, File::CREAT|File::WRONLY). * io.c (rb_f_open): bit-wise mode flags for pipes * io.c (Init_IO): bit flags for open. Sat Feb 6 22:56:21 1999 Yukihiro Matsumoto * string.c (rb_str_sub_bang): should not overwrite match data by regexp match within the block. * string.c (rb_str_gsub_bang): ditto. Sat Feb 6 03:06:17 1999 Yukihiro Matsumoto * re.c (match_getter): accessing $~ without matching caused SEGV. Fri Feb 5 22:11:08 1999 EGUCHI Osamu * parse.y (yylex): binary literal support, like 0b01001. * parse.y (yylex): octal numbers can contain `_'s. * parse.y (yylex): warns if non-octal number follows immediately after octal literal. * parse.y (yylex): now need at least one digit after prefix such as 0x, or 0b. * bignum.c (rb_str2inum): recognize binary numbers like 0b0101. Fri Feb 5 03:26:56 1999 Yasuhiro Fukuma * ruby.c (proc_options): -e without program prints error. Fri Feb 5 00:01:50 1999 Yukihiro Matsumoto * parse.y (terms): needed to clear heredoc_end. * numeric.c (flo_div): allow float division by zero. Thu Feb 4 11:56:24 1999 Yukihiro Matsumoto * missing/strtod.c: for compatibility. * configure.in (strtod): add strtod compatible check. * numeric.c (rb_num2long): missing/vsnprintf.c does not support floating points. * numeric.c (flo_to_s): ditto. Wed Feb 3 23:02:12 1999 Yoshida Masato * regex.c (re_compile_pattern): use ismbchar() to get next char. * regex.c (re_search): wrong mbchar shift. * re.c (rb_reg_search): needed to reset $KCODE after match. * regex.c (re_compile_fastmap): mbchars should match with \w. Wed Feb 3 22:35:12 1999 EGUCHI Osamu * parse.y (yylex): too big float raise warning, not error. Tue Feb 2 23:41:42 1999 Yoshida Masato * regex.c (re_match): wrong boundary. * regex.c (IS_A_LETTER): re_mbctab[c] may not be 1 for mbc. * regex.c (re_search): mbchar support for shifting ranges. * regex.c (MBC2WC): wrong conversion. Wed Feb 3 15:03:16 1999 Yukihiro Matsumoto * parse.y (parse_regx): need to escape parens if terminators are not any kind of parenthesis. * parse.y (parse_qstring): ditto. * parse.y (parse_string): ditto. Tue Feb 2 17:11:26 1999 WATANABE Tetsuya * string.c (rb_str_gsub_bang): too small realloc condition. Mon Feb 1 10:01:17 1999 EGUCHI Osamu * parse.y (yylex): range check for the float literal. Sat Jan 30 18:34:16 1999 Yukihiro Matsumoto * ruby.c (usage): -h option to show brief command description. Sat Jan 30 08:45:16 1999 IKARASHI Akira * lib/cgi-lib.rb: cookie support added. Sat Jan 30 13:38:24 1999 Yukihiro Matsumoto * regex.c (re_compile_pattern): mbchars should match with \w within character class. Was matching with \W. * regex.c (re_match): \w should match with multi byte characters, not its first byte. Sat Jan 30 10:06:41 1999 Yoshida Masato * re.c (rb_reg_s_new): UTF-8 flag handle (/u, /U). * re.c (rb_kcode): $KCODE handle for UTF-8. Sat Jan 30 01:51:16 1999 Yukihiro Matsumoto * array.c (rb_ary_delete_if): RTEST() missing. * hash.c (delete_if_i): ditto. * enum.c (Init_Enumerable): select (=find_all), detect (=find) added as aliases. Fri Jan 29 21:32:19 1999 WATANABE Tetsuya * hash.c (rb_f_setenv): SEGV caused by small typo. Fri Jan 29 00:15:58 1999 Yukihiro Matsumoto * lib/parsedate.rb (parsedate): support date format like 23-Feb-93, which is required by HTTP/1.1. * variable.c (find_class_path): avoid calling rb_iv_set(). * eval.c (backtrace): do not need to modify $SAFE internally. * variable.c (classname): inline __classid__ access. * eval.c (THREAD_ALLOC): needed to initialize wrapper. * lib/ftools.rb (makedirs): allows slash at the end of the path. * numeric.c (rb_fix_induced_from): ensure result to be Fixnum. Thu Jan 28 17:31:43 1999 Yukihiro Matsumoto * numeric.c (flo_to_s): float format changed to "%16.10g". Thu Jan 28 02:13:11 1999 Yoshinori Toki * array.c (rb_ary_store): expand allocated buffer by 3/2. Wed Jan 27 17:50:02 1999 Kazuhiro HIWADA * bignum.c (dbl2big): raised error if double is too big to cast into long. check added. Wed Jan 27 03:16:18 1999 Yukihiro Matsumoto * variable.c (rb_mod_const_at): can't list constants of the untainted objects in safe mode. * class.c (method_list): can't list methods of untainted objects in safe mode. Tue Jan 26 02:40:41 1999 GOTO Kentaro * prec.c: Precision support for numbers. Thu Jan 21 19:08:14 1999 Yukihiro Matsumoto * eval.c (rb_f_raise): calls `exception' method, not `new'. * error.c (exc_exception): renamed from `new'. Wed Jan 20 03:39:48 1999 Yukihiro Matsumoto * parse.y (yycompile): rb_in_compile renamed to ruby_in_compile. * ruby.c (load_file): define DATA if __END__ appeared in script. Tue Jan 19 14:57:51 1999 Yukihiro Matsumoto * parse.y (here_document): need to protect lex_lastline. * parse.y (yylex): disable %//, %'', %``. Tue Jan 19 05:01:16 1999 Koji Arai * array.c (beg_len): round range value too much. Mon Jan 18 13:02:27 1999 Kuroda Jun * hash.c (env_keys): strchr() may return NULL. Mon Jan 18 17:51:47 1999 Yukihiro Matsumoto * instruby.rb (wdir): install libruby.a in archdir. * lib/ftools.rb (install): removes file before installing. Mon Jan 18 16:55:31 1999 MAEDA shugo * eval.c (rb_callcc): experimental continuation support. Sun Jan 17 19:45:37 1999 WATANABE Hirofumi * pack.c (pack_pack): nil packing caused SEGV. Sat Jan 16 13:18:03 1999 Yukihiro Matsumoto * string.c (rb_str_concat): character (fixnum) can be append to strings * array.c (rb_ary_unshift): unshift returns array. Sat Jan 16 01:39:19 1999 Yoshida Masato * string.c (rb_str_split_method): UTF-8 support. * regex.c: UTF-8 support. Thu Jan 14 00:42:55 1999 Yukihiro Matsumoto * string.c (rb_str_gsub_bang): forget to add offset for null match. * eval.c (rb_thread_local_aset): can't modify in tainted mode. * hash.c (env_each_key): avoid generating temporary array. Wed Jan 13 23:58:50 1999 Yukihiro Matsumoto * hash.c (rb_f_setenv): name and value can be tainted. Wed Jan 6 02:42:08 1999 Yukihiro Matsumoto * bignum.c (Init_Bignum): forgot to define Bignum#===. * gc.c (gc_sweep): if add_heap() is called during GC, objects on allocated heap page(s) are not marked, should not be recycled. * gc.c (gc_sweep): should refer latest freelist. * gc.c (id2ref): modified to support performance patch. * object.c (rb_obj_id): performance patch (no bignum for id). Tue Jan 5 01:56:18 1999 Yukihiro Matsumoto * config.guess: merge up-to-date from autoconf 2.12. * array.c (rb_ary_join): avoid calling rb_protect_inspect() till it is really needed. * object.c (rb_obj_inspect): show detailed information for the instance variables (infinite loop can avoid now). * struct.c (rb_struct_inspect): avoid infinite loop. Sun Jan 3 01:37:58 1999 Takao KAWAMURA * misc/ruby-mode.el (ruby-end-of-defun): moved too much. * misc/ruby-mode.el (ruby-mode-variables): set paragraph-separator for the mode. * misc/ruby-mode.el: proper font-lock for `def' and `nil' etc. Sat Jan 2 17:09:06 1999 Yukihiro Matsumoto * eval.c (rb_jump_tag): new api to invoke JUMP_TAG. tag values can obtained from rb_eval_string_protect()/rb_load_protect(). * eval.c (rb_rescue): now catches all exceptions but SystemExit. * eval.c (rb_eval_string_protect): eval string with protection. * eval.c (rb_load_protect): load file with protection. * io.c (rb_io_puts): avoid infinite loop for cyclic arrays. * eval.c (rb_thread_local_aref): thread local hash tables. * object.c (rb_equal): check exact equal before calling `=='. Thu Dec 31 22:28:53 1998 MAEDA shugo * eval.c (rb_f_require): feature names should be provided with DLEXT extension. * marshal.c (Init_marshal): need to provide `marshal.so'. Wed Dec 30 02:29:16 1998 Yukihiro Matsumoto * variable.c (classname): do not call rb_ivar_set(). * eval.c (ruby_run): finalizers were called too early. Fri Dec 25 12:19:30 1998 Fukuda Masaki * gc.c (rb_gc_mark): should not return on FL_EXIVAR. Fri Dec 25 11:56:51 1998 Yukihiro Matsumoto * gc.c (gc_mark): proper scanning for temporary region. * eval.c (TMP_ALLOC): protection for C_ALLOCA was broken. Thu Dec 24 18:26:04 1998 Yukihiro Matsumoto * development version 1.3 released. Thu Dec 24 00:17:00 1998 Yukihiro Matsumoto * eval.c (rb_load): top self should be set properly. * variable.c (classname): check __classpath__ if it is defined. * variable.c (classname): invalid warning at -v with static linked ruby interpreter. * eval.c (is_defined): modified for expr::Const support. * eval.c (rb_eval): invoke method expr::Const if expr is not class nor module. * parse.y (primary): enable expr::identifier as method invocation. Wed Dec 23 03:04:36 1998 Yukihiro Matsumoto * regex.c (re_match): avoid too many loop pops for (?:..). Tue Dec 22 18:01:08 1998 Yukihiro Matsumoto * experimental version 1.1d1 released. Mon Dec 21 01:33:03 1998 Yukihiro Matsumoto * eval.c (TMP_PROTECT): add volatile to ensure GC protection. * string.c (rb_str_gsub_bang): calculate buffer size properly. * parse.y (lex_get_str): needed to return Qnil at EOS. * eval.c (find_file): check policy modified, raise exception immediately for tainted load_path. * hash.c (rb_f_setenv): do not depend on setenv() nor putenv(). Thu Dec 17 06:29:23 1998 Yukihiro Matsumoto * ext/tk/tkutil.c (tk_s_new): use rb_obj_instance_eval(), instead of rb_yield_0(). * eval.c (rb_f_require): forgot to call find_file in some cases. * eval.c (rb_f_require): `require "feature.so"' to load dynamic libraries. old `require "feature.o"' is still OK. * eval.c (rb_eval): yield without value dumped core. Wed Dec 16 16:28:31 1998 Yukihiro Matsumoto * experimental version 1.1d0 (pre1.2) released. Wed Dec 16 10:43:34 1998 Yukihiro Matsumoto * regex.c (re_search): bound check before calling re_match(). Tue Dec 15 13:59:01 1998 Yukihiro Matsumoto * error.c (exc_to_s): returns class name for unset mesg. * error.c (exc_initialize): do not initialize @mesg by "". * parse.y (nextc): __END__ should handle CR+LF newlines. Wed Dec 9 13:37:12 1998 MAEDA shugo * pack.c (encodes): use buffering for B-encoding. * pack.c (pack_pack): Q-encoding by 'M'. Tue Dec 8 14:10:00 1998 Yukihiro Matsumoto * variable.c (generic_ivar_get): any object can have instance variables now. great improvement. * variable.c (rb_name_class): do not set __classpath__ by default, use __classid__ instead. Mon Dec 7 22:08:22 1998 Yukihiro Matsumoto * ruby.h (struct RFile): IO objects can have instance variables now. * parse.y (primary): allows `def obj::foo; .. end'. Mon Dec 7 18:24:50 1998 WATANABE Tetsuya * ruby.c (set_arg0): $0 support for HP-UX. Mon Dec 7 01:30:28 1998 WATANABE Hirofumi * dln.c (dln_strerror): better error messages on win32. Sat Dec 5 23:27:23 1998 Yukihiro Matsumoto * parse.y (here_document): indentable here-doc delimiter by `<<-'. Proposed by Clemens . Thanks. Thu Dec 3 16:50:17 1998 Yukihiro Matsumoto * ext/extmk.rb.in (realclean): trouble on install. Sun Nov 29 22:25:39 1998 Takaaki Tateishi * process.c (f_exec): check number of argument. Thu Nov 26 17:27:30 1998 Yukihiro Matsumoto * version 1.1c9 released. Wed Nov 25 13:07:12 1998 Yukihiro Matsumoto * string.c (rb_str_dup): do not copy additional data (STR_NO_ORIG). * parse.y (yycompile): reduce known memory leak (hard to remove). Wed Nov 25 03:41:21 1998 Yukihiro Matsumoto * st.c (st_init_table_with_size): round size up to prime number. Sat Nov 21 23:27:23 1998 Yukihiro Matsumoto * hash.c (rb_hash_aset): reduce copying key strings. * gc.c (looks_pointerp): declare as inline function if possible. * st.c (PTR_NOT_EQUAL): compare hash values first before calling comparing function. * st.c (ADD_DIRECT): save hash value in entries to reduce hash calculation. * string.c (rb_str_gsub_bang): avoid rb_scan_args() to speed-up. * string.c (rb_str_sub_bang): ditto. Sat Nov 21 18:44:06 1998 Masaki Fukushima * time.c (time_s_now): had memory leak. * ext/md5/md5init.c (md5_new): had memory leak. * ext/md5/md5init.c (md5_clone): ditto. Fri Nov 20 23:23:23 1998 Yukihiro Matsumoto * lib/delegate.rb: do not propagate hash and eql?. Thu Nov 19 01:40:52 1998 Yukihiro Matsumoto * sample/ruby-mode.el (ruby-expr-beg): failed to find reserved word boundary. * eval.c (rb_eval): avoid calling `concat' method. calls rb_ary_concat() directly for efficiency. * eval.c (rb_eval): actual rest arguments extended arrays too much. Wed Nov 18 14:30:24 1998 Yukihiro Matsumoto * class.c (rb_define_global_function): global functions now be module function of the Kernel. Wed Nov 18 10:48:09 1998 Yukihiro Matsumoto * io.c (read_all): SEGV on large files. Tue Nov 17 18:11:20 1998 Yukihiro Matsumoto * version 1.1c8 released. Tue Nov 17 16:58:47 1998 Yukihiro Matsumoto * parse.y (arg): assignment to attribute name start with capital should be allowed. * eval.c (thread_alloc): needed to mark terminated threads too. Tue Nov 17 12:33:48 1998 Motoyuki Kasahara * ext/extmk.rb.in (create_makefile): Set `libdir' to `@libdir@', Set `pkglibdir' to `$libdir/$(RUBY_INSTALL_NAME)'. Tue Nov 17 10:30:46 1998 Yukihiro Matsumoto * sprintf.c (f_sprintf): %l%%c -> %%l%c Tue Nov 17 01:08:50 1998 Yukihiro Matsumoto * parse.y (ret_args): distinguish `a' and `*a' for the arguments of yield and return. * eval.c (rb_eval): flip3 should work like sed. * eval.c (rb_eval): flip{2,3} now have independent state for each scope to work fine with thread. Mon Nov 16 23:26:29 1998 Yukihiro Matsumoto * parse.y (primary): exec else clause if no exception raised. Sun Nov 15 15:44:07 1998 Tadayoshi Funaba * ext/extmk.rb.in (install): bug in target. Sat Nov 14 11:02:05 1998 Motoyuki Kasahara * Makefile.in (install): Give the argument `$(DESTDIR)' to `instruby.rb'. * instruby.rb: Recognize ARG[0] as `destdir'. * instruby.rb: Give the argument `destdir' to `extmk.rb'. * ext/extmk.rb.in: Recognize ARG[1] as `$destdir'. * instruby.rb: Create the installation directories (bindir, libdir, archdir, pkglibdir, archdir, and mandir) under `destdir', and install all files under there. * ext/extmk.rb.in: Likewise. Sat Nov 14 10:56:55 1998 Motoyuki Kasahara * instruby.rb: Add the variable `pkglibdir'. * instruby.rb: Set the variable `libdir' to `$(libdir)', not `$(libdir)/$(ruby_install_name)'. `libruby.so' and `libruby.so.LIB' are installed at `libdir'. * instruby.rb: Set the variable `archdir' to `$(pkglibdir)/$(arch)'. Fri Nov 13 19:43:29 1998 KIMURA Koichi * missing/nt.c (SafeFree): wrong free offset. Thu Nov 12 20:11:53 1998 Koji Arai * sample/ruby-mode.el: wrong highlight. * parse.y (parse_regx): newline in regexp was ignored. Wed Nov 11 10:54:57 1998 Yukihiro Matsumoto * parse.y (here_document): <<'FOO' should not escape anything. * parse.y (here_document): bare << here-doc available, even though it's deprecated. * file.c (rb_file_s_readlink): return value should be tainted. * ext/etc/etc.c (setup_passwd): information (eg. GCOS name) should be tainted (modified at Perl Conference). Tue Nov 10 00:22:11 1998 EGUCHI Osamu * configure.in: elf support for FreeBSD 3.x Tue Nov 10 00:05:43 1998 Yukihiro Matsumoto * parse.y (yylex): here document available in eval. Mon Nov 9 17:55:19 1998 Yukihiro Matsumoto * version 1.1c7 released. Fri Nov 6 19:25:27 1998 Takao KAWAMURA * sample/ruby-mode.el: font-lock patch. Thu Nov 5 15:42:22 1998 Yukihiro Matsumoto * sample/README, lib/README: simple description for each file. Wed Nov 4 18:14:19 1998 Yukihiro Matsumoto * eval.c (assign): attribute assignment should be called as public. Tue Nov 3 23:36:39 1998 Yukihiro Matsumoto * string.c (rb_str_dump): dumps core for negative char value. * regex.c (re_compile_pattern): out of boundary access for empty regexp. Mon Nov 2 22:54:01 1998 Yukihiro Matsumoto * string.c (rb_str_aset): `str[str]' replaces first match. Mon Nov 2 18:24:33 1998 Yukihiro Matsumoto * eval.c (thread_create): was accessing modified status. Sun Nov 1 01:18:52 1998 EGUCHI Osamu * gc.c (xrealloc): size 0 needs round up to 1. Sat Oct 31 23:18:34 1998 Yukihiro Matsumoto * string.c (rb_str_split_method): negative LIMIT means number of split fields are unlimited, as in perl. * string.c (rb_str_split_method): if LIMIT is unspecified, trailing null fields are stripped. Sat Oct 31 04:16:14 1998 Inaba Hiroto * string.c (str_aref): regexp index SEGVed. Fri Oct 30 14:33:47 1998 Yukihiro Matsumoto * re.c (reg_match): returns nil for unmatch. * dir.c (dir_entries): new method. * eval.c (block_pass): do not push block, substitute it. Fri Oct 30 01:28:52 1998 Yukihiro Matsumoto * range.c (range_check): avoid <=> check for Fixnums. * array.c (rb_ary_aset): accept negative index. Wed Oct 28 22:00:54 1998 Yukihiro Matsumoto * regex.c (re_match): access out of boundary fixed. Wed Oct 28 11:37:42 1998 TAMITO * io.c (f_select): fd number comparison bug. Tue Oct 27 23:07:11 1998 Yukihiro Matsumoto * sample/ruby-mode.el (ruby-parse-region): forgot to support %w() style array literal. * eval.c (rb_eval): unused block raises warning. Mon Oct 26 09:37:53 1998 Yukihiro Matsumoto * eval.c (dvar_asgn_push): dvar pushed too many times if variable-in-block first appear in loops. Sun Oct 25 22:59:27 1998 Yukihiro Matsumoto * regex.c (set_list_bits): was using wrong offset. Thu Oct 22 00:07:11 1998 Yukihiro Matsumoto * eval.c (rb_obj_method): method retrieved from tainted object should be tainted too. * eval.c (method_call): safe_level should be restored during Method#call. Wed Oct 21 14:21:06 1998 Yukihiro Matsumoto * io.c (Init_IO): new constants IO::SEEK_{SET,CUR,END}. * io.c (rb_f_ungetc): ungetc pushes a char back into STDIN. Mon Oct 19 11:50:00 1998 Motoyuki Kasahara * ext/extmk.rb: Load '@top_srcdir@/lib/find.rb', not '../lib/find.rb'. * ext/extmk.rb: Distinguish between `top_srcdir' and `topdir'. * Makefile.in (CFLAGS): Add `-I.'. * Makefile.in (lex.c): Give `@srcdir@/keywords' to gperf, not `keywords'. * instruby.rb: Use `CONFIG["bindir"]', instead of `prefix + "/bin"'. * instruby.rb: Use `CONFIG["libdir"]', instead of `prefix + "/lib"'. * instruby.rb Use `CONFIG["mandir"]', instead of `prefix + "/man"'. * instruby.rb (wdir): Add the variable to preserve the current working directory. * instruby.rb: Chdir to wdir before install `config.h' and `rbconfig.rb'. Mon Oct 19 10:07:01 1998 EGUCHI Osamu * eval.c (rb_eval): reduce recursive calls to rb_eval(). Fri Oct 16 15:31:45 1998 Yukihiro Matsumoto * time.c (time_new_internal): timeval must be positive. Thu Oct 15 13:54:48 1998 Yukihiro Matsumoto * parse.y (arg): local variables can be accessed within right side expression in assignment, notably in blocks. Wed Oct 14 00:18:33 1998 Yukihiro Matsumoto * array.c (Init_Array): Array#=== is now for equal check, not inclusion check. * parse.y (when_args): `when a, *b' style new syntax for array expansion in `case'. Tue Oct 13 14:30:32 1998 Yukihiro Matsumoto * object.c (rb_obj_untaint): taint marks can be unset. * eval.c (rb_eval): taint propagation for embedded strings. Mon Oct 12 13:27:15 1998 Yukihiro Matsumoto * eval.c (rb_call0): check stack depth more frequently. Mon Oct 12 08:08:30 1998 Yukihiro Matsumoto * io.c (rb_p): can print even in secure mode. Sun Oct 11 22:50:13 1998 Yukihiro Matsumoto * variable.c (rb_const_set): taint check for modification. * variable.c (rb_ivar_set): taint check for modification. * string.c (rb_str_modify): taint check for modification. * hash.c (rb_hash_modify): taint check for modification. * array.c (rb_ary_modify): taint check for modification. * ruby.h (FL_TAINT): taint for all objects, not only strings. Fri Oct 9 17:01:14 1998 Yukihiro Matsumoto * io.c (read_all): read() returns "" at immediate EOF. * io.c (io_read): read(nil) read all until EOF. Thu Oct 8 13:32:13 1998 Yukihiro Matsumoto * time.c (time_dump): marshal can dump Time object now. * marshal.c (Init_marshal): rename marshal methods `_dump_to' to `_dump', `_load_from' to `_load'. * parse.y (rb_intern): "+=".intern generates proper symbol. Mon Oct 5 18:31:53 1998 Yukihiro Matsumoto * version 1.1c6 released. Fri Oct 2 14:22:33 1998 Yukihiro Matsumoto * regex.c (re_search): `/\s*(--)$/ =~ "- --"' did not match, because of wrong optimize condition. Mon Oct 1 01:55:16 1998 Yukihiro Matsumoto * parse.y (rb_intern): should not raise exceptions. * parse.y (yylex): symbol like `:foo?=' should not be allowed. * ext/extmk.rb.in: makes *.a for static link modules. Wed Sep 30 14:13:06 1998 Yukihiro Matsumoto * eval.c (rb_thread_start): supports making a subclass of the Thread class. Tue Sep 29 17:46:01 1998 Yukihiro Matsumoto * eval.c (rb_thread_join): join is now an instance method. Fri Sep 25 12:01:19 1998 Yukihiro Matsumoto * parse.y (yylex): `@foo!' should be an error. Thu Sep 24 14:55:06 1998 WATANABE Tetsuya * ext/etc/etc.c (Init_etc): wrong field definition. Thu Sep 17 17:09:05 1998 Yukihiro Matsumoto * io.c (io_reopen): was creating FILE* for wrong fd. Tue Sep 15 05:28:11 1998 Koji Arai * regex.c (re_compile_pattern): forgot to fixup for the pattern like (?=(A)|(B)). Tue Sep 15 01:06:08 1998 Yukihiro Matsumoto * io.c (rb_io_gets_internal): do not set $_ by default, only gets/readline set the variable. * eval.c (rb_f_load): load toplevel class is set to anonymous module if safe_level >= 5, to encapsulate modification. * eval.c (rb_f_load): set frame properly. * string.c (rb_str_each_line): do not set $_. Mon Sep 14 14:42:27 1998 Yukihiro Matsumoto * regex.c (re_match): beginning and end of the string, do not automatically match `\b'. * string.c (scan_once): consume at least on character. * regex.c (re_search): wrong behavior for negative range. Sat Sep 12 21:21:26 1998 Koji Arai * regex.c (re_search): range value should be maintained. Thu Sep 10 10:55:00 1998 Yukihiro Matsumoto * parse.y (backref_error): yyerror does not understand formats. Tue Sep 8 18:05:33 1998 Yukihiro Matsumoto * version 1.1c5 released. Tue Sep 8 10:03:39 1998 Yukihiro Matsumoto * string.c (str_each_line): wrong line splitting with newline at top of the string. * string.c: non bang methods return copied string. * eval.c (f_END): needed to initialize frame->argc; Fri Sep 4 11:27:40 1998 Yukihiro Matsumoto * bignum.c (bigadd): proper sign combination. * regex.c (re_search): wrong return value for \A. Thu Sep 3 14:08:14 1998 Yukihiro Matsumoto * version 1.1c4 released. Tue Sep 1 10:47:16 1998 Yukihiro Matsumoto * regex.c (slow_search): do not compare llen and blen. llen may be longer than blen, if little contains 0xff. * regex.c (mbctab_euc): set 0x8e as multibyte character. * string.c (str_inspect): mask character for octal output. Mon Aug 31 15:32:41 1998 Yukihiro Matsumoto * regex.c (re_search): use calculated offset if exactn is the first opcode in the compiled regexp. * regex.c (bm_search): use Boyer-Moore search for simple search. * regex.c (must_instr): wrong length check if pattern includes byte escape by 0xff. * regex.c (re_compile_pattern): need not to check current_mbctype. Sat Aug 29 16:31:40 1998 Yukihiro Matsumoto * eval.c (rb_check_safe_str): avoid calling rb_id2name() in normal cases to speed-up. * eval.c (thread_raise): do not save context of terminated thread. * regex.c (re_compile_pattern): mask \nnn over 256. Sat Aug 29 02:09:46 1998 Koji Arai * sprintf.c (f_sprintf): wrong buffer size check. Fri Aug 28 01:57:04 1998 Yukihiro Matsumoto * regex.c (re_compile_pattern): accepts (?ix-ix) and (?ix-ix:...). Fri Aug 28 12:25:33 1998 Hiroshi Igarashi * ruby.c (ruby_require_modules): load modules in appearing order. Fri Aug 28 01:57:04 1998 Yukihiro Matsumoto * regex.c (re_compile_pattern): accepts (?ix-ix) and (?ix-ix:...). Thu Aug 27 12:54:28 1998 Yukihiro Matsumoto * version 1.1c3 released. Wed Aug 26 14:40:56 1998 Yukihiro Matsumoto * eval.c (rb_eval): check whether ruby_class is properly set, before accessing it. * eval.c (rb_obj_instance_eval): ruby_class should be Qnil for special objects like Fixnums. * ext/tkutil/tkutil.c (Init_tkutil): removes calls to rb_yield_0(). used instance_eval() instead in the tk.rb. Wed Aug 26 11:47:00 1998 Yukihiro Matsumoto * regex.c (re_match): pop non-greedy stack elements on success. Wed Aug 26 09:25:35 1998 WATANABE Hirofumi * ruby.h: add #define environ for cygwin32. Tue Aug 25 08:57:41 1998 Yukihiro Matsumoto * array.c (rb_ary_sort_bang): temporarily freeze sorting array. Mon Aug 24 18:46:44 1998 WATANABE Hirofumi * dln.c (dln_find_1): path check was too strict. Mon Aug 24 15:28:11 1998 WATANABE Hirofumi * parse.y (f_arglist): opt_nl added after f_args. Fri Aug 21 01:06:01 1998 Yukihiro Matsumoto * ext/socket/socket.c: grand renaming on socket.c. * ext/socket/socket.c (inet_aton): supply inet_aton for those systems that do not have it. * ext/socket/socket.c (setipaddr): use inet_aton instead of inet_addr. * ext/socket/socket.c (tcp_s_gethostbyname): new method: works like Socket.gethostbyname but returning array contains ip-addrs as octet decimal string format like "127.0.0.1". * ext/socket/socket.c (mkhostent): return format changed to [host, aliases, type, ipaddr..] as documented. Wed Aug 19 00:31:09 1998 Yukihiro Matsumoto * io.c (io_ctl): forgot to place TRAP_END at right position. Fri Aug 14 11:01:47 1998 Yukihiro Matsumoto * eval.c (call_trace_func): save __FILE__, __LINE__ before executing trace_func, since trace function should not corrupt line number information. Thu Aug 13 15:09:02 1998 Yukihiro Matsumoto * array.c (ary_s_new): was marking unallocated region on GC. Tue Aug 11 11:57:35 1998 Yukihiro Matsumoto * version 1.1c2 released. Mon Aug 10 14:05:30 1998 Yukihiro Matsumoto * process.c (f_system): removed fflush(stdin). Fri Aug 7 17:44:44 1998 Yukihiro Matsumoto * error.c (err_snprintf): replace sprintf for fixed sized buffer, with snprintf to avoid buffer over-run. For systems which does dot provide snprintf, missing/snprintf.c added. Wed Aug 5 00:47:35 1998 Yukihiro Matsumoto * re.c (rb_reg_search): recycle match object. Mon Aug 3 09:17:55 1998 Yukihiro Matsumoto * string.c (rb_str_gsub_bang): do not allocate temporary string. * string.c (rb_str_sub_bang): use inline replace. Wed Jul 29 00:36:08 1998 Yukihiro Matsumoto * hash.c (hash_s_new): the default value can be specified. * hash.c (hash_default): method to set the default value. * hash.c (hash_aref): now returns the default value. Tue Jul 28 13:03:25 1998 Yukihiro Matsumoto * array.c (ary_s_new): argument to specify initial value is added. * array.c (ary_s_new): specifies size, not capacity. Mon Jul 27 12:39:34 1998 Yukihiro Matsumoto * string.c (str_replace): zero fill for expansion gap. * regex.c (mbctab_euc): set flags on for 0xA1-0xFE. suggested by . * string.c (str_inspect): consider current_mbctype. Sun Jul 26 15:37:11 1998 Tadayoshi Funaba * array.c (ary_s_new): Array.new(1<<30) dumps core. Fri Jul 24 13:40:19 1998 Yukihiro Matsumoto * version 1.1c1 released. Fri Jul 24 02:10:22 1998 Yukihiro Matsumoto * marshal.c (r_bytes2): allocated buffer size was too short. * marshal.c (w_object): saves all options, not only casefold flag. * re.c (reg_clone): now copies options properly. * re.c (reg_get_kcode): code number was wrong. Thu Jul 23 13:11:32 1998 Yukihiro Matsumoto * eval.c (rb_attr): argument should be symbol or string. Wed Jul 22 11:59:34 1998 Yukihiro Matsumoto * regex.c (calculate_must_string): wrong offset added. Wed Jul 22 11:59:59 1998 Yukihiro Matsumoto * st.c (rehash): still had a GC problem. fixed. Tue Jul 21 13:19:30 1998 Yukihiro Matsumoto * eval.c (gc_mark_threads): crashed on GC before thread allocation. * st.c (rehash): GC during rehash caused SEGV. Tue Jul 21 01:25:10 1998 Yukihiro Matsumoto * sprintf.c (f_sprintf): integer formatter totally re-written. * sprintf.c (remove_sign_bits): support uppercase hexadecimal. Sat Jul 18 00:14:13 1998 Yukihiro Matsumoto * sprintf.c (f_sprintf): proper sign position for %X and %O. Fri Jul 17 14:10:20 1998 Yukihiro Matsumoto * version 1.1c0 released. Fri Jul 17 08:01:49 1998 Tadayoshi Funaba * process.c (f_exec): Check_SafeStr() added. * process.c (f_system): Check_SafeStr() moved before fork(). Thu Jul 16 22:58:48 1998 Yukihiro Matsumoto * string.c (scan_once): substrings to the block should not be tainted. use reg_nth_match(), not str_substr(). * string.c (str_substr): needed to transfer taint. Thu Jul 16 16:15:57 1998 Yukihiro Matsumoto * gc.c (xmalloc): object allocation count added to GC trigger. * eval.c (thread_save_context): avoid marking uninitialized stack in thread_mark. GC may be triggered by REALLOC_N(). Wed Jul 15 15:11:57 1998 Yukihiro Matsumoto * experimental release 1.1b9_31. Wed Jul 15 15:05:27 1998 Yukihiro Matsumoto * eval.c (thread_create): exit() and abort() in threads now forwarded to main_thread. Tue Jul 14 14:03:47 1998 Yukihiro Matsumoto * variable.c (obj_instance_variables): list names that is not instance variables. * gc.c (GC_MALLOC_LIMIT): choose smaller limit value. Mon Jul 13 12:39:38 1998 Yukihiro Matsumoto * object.c (str2cstr): should not return NULL. Fri Jul 10 11:51:46 1998 Yukihiro Matsumoto * parse.y (gettable): needed to add dyna_in_block() check. Thu Jul 9 17:38:23 1998 Yukihiro Matsumoto * experimental release 1.1b9_30. Thu Jul 9 16:01:48 1998 Yukihiro Matsumoto * sprintf.c (fmt_setup): format specifier for long needed. * sprintf.c (f_sprintf): ditto. * numeric.c (fix2str): ditto. * eval.c (thread_create): no more ITIMER_REAL. * eval.c (thread_create): thread finalization needed before aborting thread if thread_abort is set. Wed Jul 8 18:17:33 1998 Yukihiro Matsumoto * bignum.c (big_pow): abandon power by bignum (too big). Tue Jul 7 13:58:43 1998 Yukihiro Matsumoto * eval.c (rb_catch): add C level catch/throw feature. Mon Jul 6 15:18:09 1998 Yukihiro Matsumoto * parse.y (arg): proper return values for `||=' and `&&='. Fri Jul 3 16:05:11 1998 Yukihiro Matsumoto * experimental release 1.1b9_29. Fri Jul 3 11:20:46 1998 Yukihiro Matsumoto * marshal.c (r_byte): byte should not extend sign bit. * numeric.c (fix_mul): use FIX2LONG() instead of FIX2INT() for 64bit architectures. * marshal.c (r_bytes): remove weird casting between pointer and int. * process.c (proc_setsid): new method Process#setsid(). Thu Jul 2 12:49:21 1998 Yukihiro Matsumoto * marshal.c (w_object): remove `write_bignum' label for 64bit architectures. * marshal.c (r_bytes): needs int, not long. Wed Jul 1 14:21:06 1998 Yukihiro Matsumoto * numeric.c (flo_plus): should not allow addition with strings. Wed Jul 1 13:09:01 1998 Keiju ISHITSUKA * numeric.c (num_uminus): wrong coerce direction. Tue Jun 30 10:13:44 1998 Yukihiro Matsumoto * io.c (f_p): accepts arbitrary number of arguments. * eval.c (rb_yield_0): there's some case that iterator_p() returns true even if the_block was not set. check added. Tue Jun 30 01:05:20 1998 Yukihiro Matsumoto * eval.c (BEGIN_CALLARGS): adjust the_block before evaluating the receiver's value and the arguments. Fri Jun 26 18:02:50 1998 Yukihiro Matsumoto * experimental release 1.1b9_28. Fri Jun 26 11:01:26 1998 WATANABE Hirofumi * string.c (str_aset_method): needed to convert to string. Thu Jun 25 02:05:50 1998 Yukihiro Matsumoto * regex.c (re_search): optimize for `.*' at beginning of the pattern. * regex.c (re_search): optimize for character class repeat at beginning of the pattern. * regex.c (re_compile_pattern): detect optimization potential for the compiled patterns. Thu Jun 25 00:02:26 1998 WATANABE Hirofumi * re.c (reg_s_new): flag value was wrong. Wed Jun 24 23:45:06 1998 Yukihiro Matsumoto * regex.c (re_search): wrong anchor handling for reverse search. Wed Jun 24 02:18:57 1998 Yukihiro Matsumoto * parse.y (mlhs): `((a,b)),c = [[1,2]],3' assigns a=1,b=2,c=3. Tue Jun 23 11:46:16 1998 Yukihiro Matsumoto * parse.y (yylex): `&&=' and `||=' added. Sat Jun 20 02:53:50 1998 Yukihiro Matsumoto * parse.y (assignable): nesting local variables should have higher priority than normal local variables for assignment too. Fri Jun 19 18:28:19 1998 Yukihiro Matsumoto * experimental release 1.1b9_27. Fri Jun 19 14:34:49 1998 Yukihiro Matsumoto * eval.c (assign): support hack for nested multiple assignment. * parse.y (mlhs): nested multiple assignment. * eval.c (rb_eval): in-block variables now honors static scope. * configure.in: RSHIFT check moved to configure. Thu Jun 18 16:46:04 1998 Yukihiro Matsumoto * experimental release 1.1b9_26. Thu Jun 18 13:37:19 1998 Yukihiro Matsumoto * file.c (file_s_ftype): uses lstat(2) instead of stat(2). * dir.c (dir_s_glob): there can be buffer overrun, check added. * eval.c (f_binding): handles in-block variables declared after binding's generation. * numeric.c (flo_floor): floor, ceil, round added to Float. Wed Jun 17 11:20:00 1998 Yukihiro Matsumoto * parse.y (gettable): nesting local variables should have higher priority than normal local variables. Tue Jun 16 12:30:46 1998 Yukihiro Matsumoto * bignum.c (str2inum): handles `+ddd'. * struct.c (make_struct): name parameter can be nil for unnamed structures. Mon Jun 15 16:30:10 1998 Yukihiro Matsumoto * object.c (class_s_inherited): prohibiting to make subclass of class Class. * object.c (module_s_new): support for making subclass of Module. * parse.y (yycompile): clear eval_tree before compiling. Fri Jun 12 17:58:18 1998 Yukihiro Matsumoto * eval.c (eval): write back the_dyna_var into the block. Thu Jun 11 18:19:18 1998 Yukihiro Matsumoto * experimental release 1.1b9_25. * eval.c (dvar_add_compiling): register dyna_var at compile time. * regex.c (re_compile_pattern): RE_DUP_MAX iteration is too big. Wed Jun 10 15:12:04 1998 Yukihiro Matsumoto * io.c (io_eof): do not block other threads. * signal.c (trap): reserve SIGALRM for thread. * eval.c (thread_create): use ITIMER_REAL also to avoid system call blocking. * io.c (f_syscall): add TRAP_BEG, TRAP_END around system calls. * io.c (io_ctl): add TRAP_BEG, TRAP_END around system calls. * enum.c (enum_collect): did not collect false values. * array.c (ary_new2): forgot to initialize capa field. Tue Jun 9 18:36:15 1998 WATANABE Hirofumi * string.c (str_split_method): split dumped core for "\xff". Tue Jun 9 16:22:12 1998 Yukihiro Matsumoto * experimental release 1.1b9_24. Tue Jun 9 16:04:07 1998 WATANABE Hirofumi * ext/kconv/kconv.c (kconv_guess): more precise decision for EUC, using jless algorithm (3 sequential EUC hiragana characters). Tue Jun 9 15:12:44 1998 Yukihiro Matsumoto * ext/kconv/kconv.c (kconv_guess): wrong guess for EUC as SJIS in some cases (0xe0 - 0xef). * gc.c (xmalloc): insert size check for big (negative in signed) allocation size. Tue Jun 9 02:54:51 1998 Yukihiro Matsumoto * lib/parsedate.rb: wday moved to the last in the return values. Mon Jun 8 10:40:16 1998 Yukihiro Matsumoto * string.c (str_split_method): split dumped core for "\0". Sat Jun 6 22:50:52 1998 Yukihiro Matsumoto * regex.c (calculate_must_string): wrong condition for {start,stop}_nowidth. * regex.c (re_match): various features imported from GNU regex.c 0.12, such as nested grouping, avoiding infinite loop with empty match, etc. * regex.c (register_info_type): now use union. * regex.c (re_search): more precise anchor(^) check. Wed Jun 3 18:07:54 1998 Yukihiro Matsumoto * re.c (reg_raise): check rb_in_compile, not rb_in_eval. Mon Jun 1 05:26:06 1998 WATANABE Tetsuya * string.c (trnext): casting to signed char* needed. Tue Jun 2 16:00:12 1998 Yukihiro Matsumoto * ext/socket/socket.c (udp_addrsetup): error check enhanced. * ext/socket/socket.c (sock_s_getservbyaname): use strtoul(), if possible. Sat May 30 07:10:02 1998 Yukihiro Matsumoto * re.c (reg_prepare_re): no more needless regular expression recompile on casefold conditions. Thu May 28 18:02:55 1998 Yukihiro Matsumoto * object.c (nil_plus): no more `+' method for nil. Wed May 27 17:33:46 1998 Yukihiro Matsumoto * hash.c (hash_fetch): new method. * regex.c (re_search): check whether translate table is set. Tue May 26 11:39:50 1998 Yukihiro Matsumoto * experimental release 1.1b9_23. * parse.y (yylex): no UPLUS/UMINUS for 1st argument if parenthesises are omitted. Tue May 26 01:09:55 1998 Yukihiro Matsumoto * regex.c (re_compile_pattern): (?XI) for turns off the corresponding option. Mon May 25 12:38:56 1998 Yukihiro Matsumoto * regex.c (re_compile_pattern): inline i option (?i). * regex.c (re_compile_pattern): inline x option (?x). * regex.c (re_compile_pattern): x option for regexp. * dir.c (dir_s_open): returns block's evaluated value. * io.c (f_open): returns block's evaluated value. * ext/curses/curses.c (curses_addstr): nil argument caused SEGV. Fri May 22 11:52:45 1998 Yukihiro Matsumoto * regex.c (re_compile_pattern): push mark on (?:), so that laststart check for {a,b} can be done. Thu May 21 17:31:16 1998 Yukihiro Matsumoto * regex.c (re_match): wrong match (too non-greedy) for `{a,b}?'. * io.c (io_lineno): new method IO#lineno, IO#lineno=. Wed May 20 06:04:43 1998 MAEDA shugo * BeOS patch. Wed May 20 16:32:19 1998 Yukihiro Matsumoto * bignum.c (BIGDN): use RSHIFT(), instead of mere `>>'. Tue May 19 16:36:26 1998 Yukihiro Matsumoto * experimental release 1.1b9_22. Tue May 19 16:31:57 1998 Yukihiro Matsumoto * parse.y (assignable): specification changed for in-block variable definition. * eval.c (dyna_var_asgn): error in in-block variables' compile time definition. * parse.y (str_extend): wrong nesting detection. Tue May 19 09:47:55 1998 WATANABE Hirofumi * numeric.c (num2int): re-defined (extensions may use this). Mon May 18 16:40:50 1998 MAEDA shugo * error.c (get_syserr): BeOS support. * configure.in: modified for BeOS. * string.c (str_dump): do not call isascii(). * sprintf.c (remove_sign_bits): forgot to initialize end pointer. * glob.c: #include added. Mon May 18 14:52:21 1998 Yukihiro Matsumoto * experimental release 1.1b9_21. Mon May 18 03:27:57 1998 MAEDA shugo * file.c (file_s_expand_path): optional second argument `default_directory' added. Sat May 16 22:06:52 1998 WATANABE Hirofumi * error.c (RAISE_ERROR): wrong error message Fri May 15 14:43:25 1998 Yukihiro Matsumoto * experimental release 1.1b9_20. Thu May 14 14:44:21 1998 WATANABE Hirofumi * sun4 cc patches for intern.h and regex.h. Thu May 14 14:03:16 1998 Yukihiro Matsumoto * random.c (RANDOM_MAX): guessing proper maximum value for random numbers. * random.c (f_rand): use drand48 if possible. Wed May 13 19:05:20 1998 MAEDA shugo * BeOS patches for io.c, error.c and config.guess. Wed May 13 14:56:23 1998 Yukihiro Matsumoto * experimental release 1.1b9_19. * most of the Mac and BeOS patches merged, except path separators. * error.c (err_append): generated SyntaxError was String. * ruby.h: xxx2INT, xxx2UINT checks values as int, not long. * ruby.h: remove typedef's. INT, UINT, UCHAR, USHORT. Tue May 12 17:38:00 1998 Yukihiro Matsumoto * experimental release 1.1b9_18. Tue May 12 11:38:08 1998 Yukihiro Matsumoto * error.c (syserr_errno): returns errno of the SystemCallError. * error.c (rb_sys_fail): saves errno in the Exception. * error.c (set_syserr): no need to protect syserr_list. * error.c (rb_sys_fail): no more bufsize limit. * error.c (set_syserr): integer value of errno can be accessed by Errno::EXXX::Errno. Sun May 10 03:10:33 1998 WATANABE Tetsuya * io.c (io_tell etc.): moved from File class to IO class. Fri May 8 12:26:37 1998 Yukihiro Matsumoto * pack.c (pack_unpack): should be unsigned int (was signed int). Thu May 7 16:34:10 1998 Yukihiro Matsumoto * pack.c (pack_pack): `V', `N' uses newly created NUM2UINT(). * ruby.h (NUM2UINT): new macro. * bignum.c (big2uint): try to convert bignum into UINT. * re.c (reg_match): needed to return false for match with nil. * gc.c (obj_free): wrong condition to free string. Wed May 6 21:08:08 1998 WATANABE Hirofumi * ruby.c (ruby_process_options): modified for DJGPP. Wed May 6 15:48:03 1998 Yukihiro Matsumoto * experimental release 1.1b9_17. Wed May 6 01:37:39 1998 Yukihiro Matsumoto * eval.c: remove global variable `errat'. * eval.c (rb_longjmp): embed error position information in the exception object. Sat May 2 12:20:02 1998 Yukihiro Matsumoto * re.c (reg_search): supports reverse search. * string.c (str_index_method): does update $~ etc. * eval.c (f_load): needed to clear the_dyna_vars. * eval.c (dyna_var_asgn): do not push dyna_var, which is id == 0. * error.c (Init_Exception): NotImplementError is no longer StandardError, which is not handled by default rescue. Fri May 1 00:35:51 1998 Yukihiro Matsumoto * ruby.c (proc_options): `-d' turns on verbose flag too. * error.c (exception): last argument may be the superclass of the defining exception(s). * io.c (Init_IO): EOFError is now subclass of the IOError. * io.c (Init_IO): forgot to define IOError. * error.c (Init_Exception): old Exception class renamed to StandardError. Exception now replaces old GlobalExit. * error.c (Init_Exception): Exception is now the root of the Global Exits. There's no longer GlobalExit class. * util.c (ruby_mktemp): check TMP, TMPDIR first. Thu Apr 30 01:08:35 1998 Yukihiro Matsumoto * lib/tk.rb: call 'unknown', if proc not defined. * eval.c (handle_rescue): default rescue handles `Exceptional' not only the instance of the `Exception's. * eval.c (f_raise): exception can be any object. * time.c (time_gm_or_local): call time_gmtime or time_localtime. * eval.c (f_raise): raises TypeError if the class which is not a subclass of String is specified (checked in exc_new()). * error.c (exc_new): need to check whether invalid class (not a subclass of String) is specified. Wed Apr 29 21:05:44 1998 WATANABE Hirofumi * ruby.c (proc_options): option '-e' via tempfile. Tue Apr 28 15:27:58 1998 Yukihiro Matsumoto * experimental release 1.1b9_16. Tue Apr 28 00:07:38 1998 Yukihiro Matsumoto * eval.c (obj_is_proc): type check predicate. * eval.c (obj_is_block): ditto. Mon Apr 27 16:59:17 1998 Yukihiro Matsumoto * ext/gtk/gtk.c (Init_gtk): use timeout, not idle to avoid consuming CPU too much. * lib/tk.rb: use tcltklib#_invoke instead of `_eval'. Mon Apr 27 16:59:17 1998 Yukihiro Matsumoto * array.c (ary_sort): use dup, not clone. Mon Apr 27 13:46:27 1998 Tadahiro Maebashi * ext/tcltklib/tcltklib.c (ip_invoke): invoke tcl command directly. need not worry about escaping tcl characters. Mon Apr 27 12:04:43 1998 Yukihiro Matsumoto * random.c (f_rand): do not call srand() implicitly. Fri Apr 24 14:35:45 1998 Yukihiro Matsumoto * experimental release 1.1b9_15. * parse.y (assignable): dyna_var_asgn actually defines nested local variables in outer context. * random.c (f_rand): call srand(), if it has not called yet. * random.c (f_srand): use tv_usec as the default seed. * eval.c (rb_eval): values of nested local variables should be independent. * eval.c (rb_yield_0): local variables wrong nested conditions. Wed Apr 22 23:27:17 1998 Yukihiro Matsumoto * io.c (select_get_io): get IO object by `to_io'. * io.c (io_to_io): method to retrieve IO object, from delegating object for example. Wed Apr 22 16:52:37 1998 Yukihiro Matsumoto * experimental release 1.1b9_14. * string.c (str_modify): check for embedded pointer reference. * gc.c (obj_free): ditto. * pack.c (pack_pack): p/P template to embed pointers. Wed Apr 22 00:07:10 1998 Tadayoshi Funaba * array.c (ary_rindex): embarrassing typo. Tue Apr 21 12:31:48 1998 Yukihiro Matsumoto * experimental release 1.1b9_13. * configure.in (RUBY_LIB): supports --program-{prefix,suffix}. * array.c (ary_rindex): new method. * io.c (io_binmode): should return self. Tue Apr 21 08:23:04 1998 Tadayoshi Funaba * parse.y (here_document): calling parse_string with wrong arguments. * struct.c (struct_aset): problem member assignment with name. Mon Apr 20 14:47:49 1998 Yukihiro Matsumoto * experimental release 1.1b9_12. * time.c (time_arg): args may be string (support for reduced implicit type conversion). * lib/base64.rb: changed to use pack/unpack with `m' template. Mon Apr 20 06:23:20 1998 Yukihiro Matsumoto * variable.c (mod_remove_const): new method. Sat Apr 18 03:53:27 1998 Yukihiro Matsumoto * hash.c (hash_each_with_index): removed. use Enumerable's each_with_index instead. * class.c (rb_include_module): check for super modules, since module's included modules may be changed. Fri Apr 17 21:50:47 1998 WATANABE Hirofumi * marshal.c (r_long): r_byte() may return signed byte. Fri Apr 17 11:58:30 1998 NAGAI Hidetoshi * ext/tcltklib/tcltklib.c (lib_mainloop): thread and interrupt check. Fri Apr 17 11:06:30 1998 Yukihiro Matsumoto * eval.c (find_file): try to fopen() to check whether file exists. * ruby.c (load_file): ditto. * struct.c (struct_aset): struct member can be set by member name. Fri Apr 17 00:47:19 1998 WATANABE Hirofumi * ext/extmk.rb.in: added m68k-human support * file.c (LOCK_SH): defines moved. * array.c (ary_flatten_bang): simplified loop. Thu Apr 16 16:52:01 1998 Yukihiro Matsumoto * experimental release 1.1b9_11. * lib/tk.rb: thread support (experimental - maybe slow). * eval.c (rb_longjmp): trace event on exception in raising context, just before raising exception. * struct.c (struct_s_members): forgot to check singletons. * struct.c (struct_aref): members can be accessed by names too. * array.c (ary_flatten): new method. * eval.c (rb_longjmp): prints exception information with `-d'. * object.c (any_to_s): remove class name restriction. Thu Apr 16 01:38:02 1998 Yukihiro Matsumoto * file.c (thread_flock): do not block other threads. * eval.c (thread_trap_eval): signals are now delivered to the current thread again. In case that the current thread is dead, signals are forwarded to the main thread. * string.c (str_new4): need not to duplicate frozen strings. Wed Apr 15 08:33:47 1998 Tadayoshi Funaba * struct.c (struct_inspect): remove restriction for struct names. Wed Apr 15 02:55:02 1998 Kazuya 'Sharl' Masuda * x68 patches to config.sub, ext/extmk.rb.in Wed Apr 15 01:22:56 1998 Yukihiro Matsumoto * string.c (str_dup_frozen): do not duplicate frozen strings. * parse.y (yylex): allow nested parenthesises. * io.c (obj_displayln): prints newline after `display'ing the receiver. * io.c (io_puts): avoid generating "\n" each time. use RS_default instead. * io.c (f_p): ditto. Tue Apr 14 22:18:17 1998 Tadayoshi Funaba * struct.c (struct_aref): should not subtract negative index. Tue Apr 14 11:34:50 1998 Yukihiro Matsumoto * experimental release 1.1b9_10. * parse.y: token names prefixed by `t'. * struct.c (struct_s_def): supports subclassing of Struct. * io.c (io_s_new): supports subclassing of IO. Mon Apr 13 11:07:39 1998 Yukihiro Matsumoto * eval.c (f_binding): need to restore method name. * eval.c (rb_call0): raises SystemStackError, not Fatal. * io.c (obj_display): same as `print self'. * io.c (f_p): can now be called in the method form. * re.c (reg_regsub): needed to be mbchar aware. Mon Apr 13 13:18:32 1998 Yukihiro Matsumoto * eval.c (thread_trap_eval): all signals delivered to main_thread. Mon Apr 13 12:47:03 1998 TAKAHASHI Masayoshi * re.c (kcode_set_option): did not set SJIS on SJIS condition. Sun Apr 12 22:14:07 1998 Kazunori NISHI * array.c (ary_uniq_bang): should be `==', not `='. embarrassing. Sat Apr 11 02:13:30 1998 Yukihiro Matsumoto * array.c (ary_subseq): SEGVed for `[][1,1]'. Fri Apr 10 21:29:06 1998 Tadayoshi Funaba * array.c (ary_subseq): add check for beg larger than array length. Wed Apr 8 17:24:11 1998 MAEDA shugo * dir.c (dir_s_open): can be called with block (like IO#open). * dir.c (dir_s_chdir): print directory path on error. * dir.c (dir_s_chroot): ditto * dir.c (Init_Dir): needed to override `new'. Thu Apr 9 18:24:58 1998 Yukihiro Matsumoto * experimental release 1.1b9_09. * string.c (str_cmp): do not depend on sentinel at the end of the strings. * string.c (str_chomp_bang): forgot to set the sentinel. Wed Apr 8 00:59:13 1998 Yukihiro Matsumoto * bignum.c (big2int): converted int may be too big to fit in signed int. * parse.y (arg): `foo += 1' should not cause an error. * variable.c (rb_const_defined): returned false even if the constant is defined at the top level. * eval.c (f_local_variables): dyna_var->id may be null. should have checked before calling str_new2(). Tue Apr 7 01:15:15 1998 Kaneko Naoshi * re.c (reg_regsub): need to check string boundary. Tue Apr 7 19:19:12 1998 Yukihiro Matsumoto * string.c (str_cmp): returns either 1, 0, -1. * array.c (ary_cmp): should check array length, too Tue Apr 7 18:50:16 1998 Yukihiro Matsumoto * experimental release 1.1b9_08. Tue Apr 7 18:31:27 1998 WATANABE Hirofumi * instruby.rb (mandir): dll installation for cygwin32 Tue Apr 7 01:16:45 1998 Yukihiro Matsumoto * config.sub (maybe_os): TOWNS support? * config.guess: too strict check for libc versions on linuxes. * experimental release 1.1b9_07. * array.c (ary_cmp): compare each element using `<=>'. * hash.c (hash_each_with_index): yields [value, key] pair. * class.c (class_protected_instance_methods): list protected method names. * class.c (ins_methods_i): exclude protected methods. * eval.c (PUSH_BLOCK): dynamic variables can be accessed from eval() with bindings. Mon Apr 6 14:49:06 1998 Yukihiro Matsumoto * eval.c (thread_yield): must return evaluated value. Fri Apr 3 13:07:29 1998 Yukihiro Matsumoto * eval.c (thread_schedule): context switch bypassed on wrong conditions. * variable.c (rb_name_class): set classname by id before String class is initialized (1.0 behavior restored). Fri Apr 3 11:25:45 1998 Yukihiro Matsumoto * numeric.c (num2int): no implicit conversion from string. * numeric.c (num2int): check whether `to_i' returns an Integer. * numeric.c (num_zero_p): new method. * numeric.c (num_nonzero_p): new method. returns the receiver if it's not zero. * eval.c (obj_instance_eval): the_class should be the object's singleton class. * error.c (exc_s_new): message is converted into a string. Thu Apr 2 18:31:46 1998 Yukihiro Matsumoto * eval.c (obj_call_init): every object call `initialize'. Wed Apr 1 08:51:53 1998 Tadayoshi Funaba * parse.y (stmt): UNTIL_MOD should be for stmt, not only for expr. Wed Apr 1 01:20:31 1998 Yukihiro Matsumoto * object.c (true_and): boolean operators &, | and ^. Tue Mar 31 13:23:58 1998 Yukihiro Matsumoto * array.c (ary_compact_bang): returns nil, if it does not modify the array like String's bang methods. * array.c (ary_uniq_bang): new method to remove duplicate items. * eval.c (bind_s_new): new method. * numeric.c (num2int): raise exception if Fixnums too big to convert into `int' in case that sizeof(int) < sizeof(INT). * string.c (str_center): SEGV on negative width. * eval.c (eval): forgot to set sourcefile. Mon Mar 30 11:12:29 1998 Yukihiro Matsumoto * file.c (f_test): raises exception for unknown command. * eval.c (Init_eval): `class_eval': alias to the module_eval. Mon Mar 30 18:50:42 1998 Tadayoshi Funaba * string.c (str_capitalize_bang): did not check string modification. * string.c (str_delete_bang): wrong conversion. * string.c (str_intern): typo in error message. Mon Mar 30 01:44:13 1998 Yukihiro Matsumoto * eval.c (obj_instance_eval): accepts block as evaluation body. No compilation needed each time. * eval.c (mod_module_eval): ditto * file.c (file_s_umask): umask did not return old values, if no argument given. Sun Mar 29 00:54:23 1998 Yukihiro Matsumoto * eval.c (f_throw): nil returned always. Sat Mar 28 20:40:12 1998 Yukihiro Matsumoto * experimental release 1.1b9_06. Sat Mar 28 16:07:11 1998 WATANABE Hirofumi * io.c (io_closed): should not cause exception for closed IO. * string.c (str_tr): returned nil for success. Sat Mar 28 00:47:19 1998 Yukihiro Matsumoto * eval.c (f_local_variables): new method to return an array of local variable names. * variable.c (obj_instance_variables): now returns an array of variable names, as described in the reference. * eval.c (rb_attr): honors default method visibility of the current scope. Fri Mar 27 13:49:27 1998 Yukihiro Matsumoto * experimental release 1.1b9_05. * ruby.c (ruby_prog_init): `site_ruby' added to load_path. * ruby.c (ruby_prog_init): load-path order changed. Paths in the RUBYLIB environment variable comes first in non-tainted mode. Thu Mar 26 11:51:09 1998 Yukihiro Matsumoto * eval.c (rb_call): new feature: `protected' methods. * string.c (str_dump): new method. * eval.c (block_pass): block argument can be nil, which means no block is supplied for the method. Wed Mar 25 21:20:13 1998 Tadayoshi Funaba * string.c (str_reverse_bang): string copied to wrong place. Wed Mar 25 08:12:07 1998 Yukihiro Matsumoto * numeric.c (flo_modulo): caused SEGV if left operand is not a float value. * eval.c (f_eval): optional third and fourth argument to specify file-name and line-number. * eval.c (eval): file-name and line-number set properly. * parse.y (assign_in_cond): literal assignment is now warning, not compile error. * error.c (Warn): Warn() always print message, OTOH Waring() prints when verbose flag is set. Tue Mar 24 12:50:06 1998 Yukihiro Matsumoto * ruby.c (ruby_prog_init): `.' should come last in the load-path. * eval.c (Init_eval): `__send__', alias for `send'. Mon Mar 23 12:44:12 1998 Yukihiro Matsumoto * string.c (str_chomp_bang): now takes `rs' as an argument. * eval.c (thread_free): main_thread should not be freed. Fri Mar 20 16:40:34 1998 Yukihiro Matsumoto * string.c (str_chomp_bang): chomp! (and other ! methods) returns nil if it does not modify the string. * string.c (str_sub_iter_s): should check last pattern since it may be matched to null. Thu Mar 19 13:48:55 1998 Yukihiro Matsumoto * experimental release 1.1b9_04. * parse.y (yylex): `10e0.9' should cause syntax error. Wed Mar 18 17:46:31 1998 Yukihiro Matsumoto * ruby.c (load_file): new file object constant DATA. Only available for the script from the file. * regex.c (re_match): forwarding failure point popped too much. Tue Mar 17 18:23:06 1998 Yukihiro Matsumoto * math.c (math_frexp): newly added. * math.c (math_ldexp): ditto. * bignum.c (bigdivmod): calculates modulo. * numeric.c (fix_remainder): returns reminder, formerly introduced as modulo. * numeric.c (fix_modulo): calculates proper `modulo'. * bignum.c (bigdivmod): wrong sign for reminder. Mon Mar 16 17:07:28 1998 Yukihiro Matsumoto * experimental release 1.1b9_03. Mon Mar 16 16:33:53 1998 WATANABE Hirofumi * io.c (pipe_finalize): needed to add pipe_finalize to pipes on cygwin32. Mon Mar 16 14:11:06 1998 Yukihiro Matsumoto * class.c (ins_methods_i): needed to consider NOEX_UNDEF. Mon Mar 16 13:23:53 1998 WATANABE Hirofumi * io.c (io_check_closed): check for `fptr->f2 == NULL'. * io.c (io_fptr_close): ditto. Mon Mar 16 11:49:25 1998 Yukihiro Matsumoto * io.c (pipe_atexit): free()ing referencing pipe_list. * range.c (range_length): returns zero, if the first is greater than the last. * signal.c (trap_restore_mask): restore signal mask before raising exceptions and throws. Fri Mar 13 13:49:24 1998 Yukihiro Matsumoto * experimental release 1.1b9_02. * object.c (mod_clone): need to dups constants and instance variables. * eval.c (rb_eval): forgot to initialize body for NODE_DEFS. * eval.c (rb_eval): retrieve self from calling frame, since self changes sometimes. * env.h (FRAME): need to save self in the calling frame. * io.c (f_gets_method): rs should be initialized by RS. Thu Mar 12 15:33:57 1998 Yukihiro Matsumoto * experimental release 1.1b9_01. * range.c (range_s_new): check values by `first <= last'. * parse.y (lastline_set): fixed offset for $_ and $~ in the local variable space. Wed Mar 11 02:14:17 1998 Yukihiro Matsumoto * io.c (io_gets): handle normal case specially for speed. * eval.c (rb_disable_super): function to disable superclass's method explicitly. * eval.c (rb_eval): inherits previous method definition's NOEX_UNDEF-ness, if exists. * class.c (rb_define_method): disables superclass's overriding method by default. Wed Mar 11 01:40:48 1998 MAEDA shugo * numeric.c (flo_gt,etc.): do not depend on `<=>', to handle NaN. Tue Mar 10 00:03:24 1998 Yukihiro Matsumoto * ruby.c (load_file): understands multiple options in #! line. * regex.c (re_compile_pattern): support for [:alpha:] etc. Mon Mar 9 16:53:51 1998 Yukihiro Matsumoto * io.h (GetOpenFile): embed io_check_closed in GetOpenFile. * sprintf.c (f_sprintf): zero padding failed for negative integers. * sprintf.c (remove_sign_bits): failed to remove some bits. Sat Mar 7 21:51:46 1998 MAEDA shugo * class.c (ins_methods_i): body may be NULL for some case. Fri Mar 6 17:23:07 1998 Yukihiro Matsumoto * regex.c (mbcinit): table driven mbchar detection. * object.c (obj_alloc): check for allocating instance for the primitive classes (mostly perfect). * ext/curses/curses.c (curses_finalize): restore original state at interpreter termination. * ext/curses/curses.c (curses_addstr): forgot to check argument type (caused SEGV). now uses STR2CSTR() macro. Thu Mar 5 13:47:39 1998 Yukihiro Matsumoto * eval.c (block_pass): accepts method object as block args. * eval.c (f_missing): use any_to_s() for stringify. Wed Mar 4 01:39:52 1998 Yukihiro Matsumoto * parse.y (block_arg): new syntax - block argument in the calling arglist. * eval.c (rb_call): no module search. simplified a lot. * eval.c (rb_eval): block arg support. * parse.y (f_block_arg): new syntax - block argument in the formal arglist. Tue Mar 3 14:20:15 1998 Yukihiro Matsumoto * eval.c (obj_method): returns bound method object. * eval.c (rb_call): argument check for empty methods. * ruby.h (NUM2CHR): new macro, originally from curses module. Tue Mar 3 13:03:35 1998 MAEDA shugo * io.c (io_putc): new method. Tue Mar 3 11:21:28 1998 Yukihiro Matsumoto * string.c (str_inspect): more strict charcode detection. * eval.c (thread_stop): stopping only thread raises ThreadError exception. Tue Mar 3 08:04:56 1998 Tadayoshi Funaba * struct.c (struct_alloc): incomplete struct initialization made GC to access unallocated addresses. Mon Mar 2 16:28:27 1998 Yukihiro Matsumoto * eval.c (thread_stop_method): remove Thread#stop. Fri Feb 27 18:16:26 1998 Yukihiro Matsumoto * version 1.1b9 released. Fri Feb 27 09:36:35 1998 Yukihiro Matsumoto * hash.c (hash_delete_nil): needed to compare value to nil, since nil is the valid key for hashes. * hash.c (hash_foreach_iter): rehashing causes IndexError. * hash.c (hash_foreach_iter): rehash check by pointer comparison. Thu Feb 26 17:22:13 1998 Yukihiro Matsumoto * parse.y (fname): convert reswords into symbols. * parse.y (reswords): reserved words are now embedded in the syntax (sigh). * parse.y: now reserved words can be method names safely. Wed Feb 25 15:50:07 1998 Yukihiro Matsumoto * eval.c (mod_module_eval): clear the_scope's PRIVATE flag before calling eval(). * gc.c (gc_call_finalizer_at_exit): run finalizers before any data object being freed. * eval.c (rb_eval): needed to keep prot_tag->retval before evaluating the ensure clause. Tue Feb 24 11:16:32 1998 Yukihiro Matsumoto * parse.y (yylex): reserved words can be appear as method names at right after 'def' and `.'(dot), like foo.next. * eval.c (return_check): checks for return out of thread (formerly done in return_value). * eval.c (POP_TAG): copy retval to outer level. * eval.c (return_value): just set retval, no check, no unwinding. * parse.y (nextc): line continuation by backslash at end of line. * regex.c (re_compile_pattern): forgot to clear pending_exact on closing parentheses. * parse.y (assignable): should not assign dyna_var to true, if it is already defined. Mon Feb 23 14:35:03 1998 Yukihiro Matsumoto * object.c (obj_is_kind_of): no longer accepts true/false/nil. * object.c ({true,false,nil}_to_i): can be converted into integers. Mon Feb 23 12:11:51 1998 Yukihiro Matsumoto * re.c (reg_s_quote): needed to be mbchar aware. * eval.c (proc_s_new): wrong iter mark. Sat Feb 21 22:59:30 1998 MAEDA shugo * io.c (f_syscall): no argument check. Fri Feb 20 10:17:51 1998 Yukihiro Matsumoto * version 1.1b8 released. * ext/kconv/kconv.c (kconv_kconv): default output code now be determined according to the value of $KCODE. * re.c (rb_get_kcode): can retrieve $KCODE from C code. * parse.y (stmt): if/unless modifiers returns nil, if condition is not established. Thu Feb 19 11:06:47 1998 Yukihiro Matsumoto * ext/kconv/kconv.c (kconv_kconv): charcode can be specified by code name (JIS, SJIS, EUC like value of $KCODE). * regex.c (re_compile_pattern): forgot to fixup_jump for (?:..). * regex.c (re_compile_pattern): needed to clear pending_exact on non-registering grouping (?:...). Wed Feb 18 19:54:21 1998 Yukihiro Matsumoto * parse.y (here_document): needed to set lex_state to EXPR_END. Wed Feb 18 18:45:10 1998 WATANABE Hirofumi * patches for cygwin32 applied. Wed Feb 18 00:41:31 1998 Yukihiro Matsumoto * string.c (str_sub_s): needed to be mbchar aware to increment one character. * regex.c (re_match): \Z matches newline just before the end of the string. Tue Feb 17 00:04:32 1998 Yukihiro Matsumoto * time.c (time_arg): Time.gm and Time.local now understands Time#to_a format. * string.c (str_sub_s): replace happened twice for null pattern. * regex.c (re_search): null pattern should not match after newline at the end of string. * time.c (time_isdst): now returns boolean value. * error.c (rb_check_type): treat special constants in messages. * parse.y (yylex): new form `::Const' to see toplevel constants. * parse.y (cond): SEGV on `if ()'. * gc.c (obj_free): some data needed explicit free(). Mon Feb 16 23:55:40 1998 Yukihiro Matsumoto * eval.c (blk_free): release duplicated block informations. * eval.c (blk_copy_prev): duplicate outer block information into the heap, when proc/binding created. Mon Feb 16 14:38:25 1998 Yukihiro Matsumoto * time.c (time_mon): now 1 for January and so on. * time.c (time_year): year in 19xx (no + 1900 needed anymore). Mon Feb 16 13:28:33 1998 Yukihiro Matsumoto * regex.c (re_compile_pattern): need to fetch mbchar's second byte without translation. Mon Feb 16 12:29:27 1998 MAEDA shugo * eval.c (f_pass_block): pass iterator block to other method. Fri Feb 13 08:16:11 1998 Yukihiro Matsumoto * parse.y (parse_regx): handle \s before read_escape(). * parse.y (read_escape): `\s' in strings as space. Tue Feb 10 17:29:08 1998 Yukihiro Matsumoto * version 1.1b7 released. * string.c (str_aset): string insertion by `str[n] = str2'. * string.c (str_oct): does recognize `0x'. * sprintf.c (f_sprintf): use base 10 for conversion from string to integer. Mon Feb 9 14:51:56 1998 Yukihiro Matsumoto * numeric.c (do_coerce): proper error message. * string.c (str_sum): bug - masked by wrong value. (sigh..) Sat Feb 7 15:11:14 1998 Yukihiro Matsumoto * string.c (str_empty): new method Fri Feb 6 01:42:15 1998 Yukihiro Matsumoto * time.c (time_asctime): use asctime(3), not strftime(3). Thu Feb 5 18:58:46 1998 Yukihiro Matsumoto * io.c (io_fptr_close): do not free path on close(). * array.c (ary_filter): new method. * enum.c (enum_each_with_index): new method. Thu Feb 5 14:10:35 1998 Yukihiro Matsumoto * parse.y (primary): singleton class def can be appeared inside method bodies. * hash.c (hash_replace): replace content. * string.c (str_replace_method): replace content. * array.c (ary_replace_method): replace elements. * string.c (str_succ_bang): String#succ! Thu Feb 5 18:20:30 1998 WATANABE Hirofumi * string.c (str_upcase_bang): multi byte character support. Wed Feb 4 13:55:26 1998 Yukihiro Matsumoto * array.c (ary_reverse): SEGV on empty array reverse. Tue Feb 3 12:24:07 1998 Yukihiro Matsumoto * re.c (match_to_a): non matching element should be nil. * ruby.c (ruby_load_script): load script after all initialization. * bignum.c (str2inum): need to interpret prefix `0' of `0x'. Tue Feb 3 10:00:18 1998 WATANABE Hirofumi * numeric.c (fix_rshift): use `sizeof(INT)*8' instead of 32. Mon Feb 2 14:09:24 1998 Yukihiro Matsumoto * ruby.c (set_arg0): grab environment region too. Thu Jan 29 18:36:25 1998 WATANABE Hirofumi * process.c (rb_proc_exec): check `sh' to be exist. Thu Jan 29 18:18:19 1998 Yukihiro Matsumoto * io.c (io_stdio_set): assignment to $stdin or $stdout does reopen() as well as $stderr. Thu Jan 29 14:18:40 1998 Yukihiro Matsumoto * class.c (mod_ancestors): should not include singleton classes. * object.c (obj_type): should not return internal class. * io.c (io_reopen): unwillingly closes stdio streams. Thu Jan 29 11:50:35 1998 Toshihiko SHIMOKAWA * ext/socket/socket.c (udp_addrsetup): forgot to use htons(). Tue Jan 27 23:15:24 1998 Yukihiro Matsumoto * keywords: __FILE__, __LINE__ are available again. Fri Jan 23 14:19:28 1998 Yukihiro Matsumoto * version 1.1b6 released. * object.c (mod_to_s): need to duplicate classpath. * error.c (exc_inspect): need to duplicate classpath. Thu Jan 22 00:37:47 1998 Yukihiro Matsumoto * ruby.h (STR2CSTR): new macro to retrieve char*. * class.c (rb_define_method): `initialize' should always be private, even if it defined by C extensions. * eval.c (rb_eval): `initialize' should always be private. Thu Jan 22 16:21:08 1998 Yukihiro Matsumoto * eval.c (rb_eval): some singleton class def cause SEGV. * eval.c (TMP_ALLOC): replace ALLOCA_N, where thread context switch may happen. Wed Jan 21 01:43:42 1998 Yukihiro Matsumoto * eval.c (PUSH_FRAME): do not use ALLOCA_N(). crash on some platforms that use missing/alloca.c. * regex.c (re_compile_pattern): too many pops for non register subexpr. * parse.y (yylex): open parentheses after identifiers are argument list, even if whitespaces have seen. Tue Jan 20 15:19:59 1998 Yukihiro Matsumoto * parse.y (terms): quoted word list by %w(a b c). * ext/tcltklib/extconf.rb: more accurate check for tcl/tk libs. * file.c (rb_stat): most of the FileTest methods (and function `test') accept File objects as the argument. Tue Jan 19 18:19:24 1998 WATANABE Hirofumi * ext/extmk.rb.in (install): there should be no newline after install: * re.c (MIN): renamed from min(). there's a local variable named min in the file, so that some cpp will raise an error. Mon Jan 19 16:30:05 1998 Yukihiro Matsumoto * version 1.1b5 released. * process.c (rb_syswait): no exception raised. Fri Jan 16 00:43:43 1998 Yukihiro Matsumoto * ruby.h (CLONESETUP): copies its singleton classes too. * class.c (singleton_class_attached): saves binded object in the singleton classes. * eval.c (rb_eval): calls singleton_method_added even in the singleton class clauses. Fri Jan 15 23:22:43 1998 WATANABE Hirofumi * ruby.c (proc_options): -S does not recognize PATH. Thu Jan 15 02:03:12 1998 Yukihiro Matsumoto * eval.c (rb_clear_cache_by_id): clear only affected cache entries. Wed Jan 14 02:14:48 1998 Yukihiro Matsumoto * ext/socket/socket.c: new UDP/IP socket classes. Tue Jan 13 10:00:18 1998 Yukihiro Matsumoto * string.c (str_cmp): ignorecase($=) works wrong. Fri Jan 9 13:19:55 1998 Yukihiro Matsumoto * version 1.1b4 released. * eval.c (f_missing): class name omitted from the error message. * error.c (exc_inspect): description changed. * string.c (Init_String): GlobalExit's superclass did not filled, since GlobalExit created earlier than String. Thu Jan 8 12:10:09 1998 Yukihiro Matsumoto * parse.y (aryset): expr in the brackets can be null. Wed Jan 7 21:13:56 1998 Yukihiro Matsumoto * io.c (io_reopen): keep stderr unclosed. * io.c (io_errset): keep stderr unclosed. Tue Jan 6 00:27:43 1998 Yukihiro Matsumoto * parse.y: syntax modified for `while expr do .. end' etc. * process.c (f_exec,f_system): can supply arbitrary name for the new process. Mon Jan 5 16:59:13 1998 WATANABE Hirofumi * file.c (file_s_basename): removes any extension by ".*". Sun Jan 4 19:36:22 1998 WATANABE Hirofumi * parse.y (yylex): needed to update lex_p (reading point). Sat Jan 3 19:14:14 1998 WATANABE Hirofumi * class.c,object.c: duplicate defines mKernel and cFinxnum. Fri Jan 2 20:38:59 1998 Yukihiro Matsumoto * ext/curses/curses.c (NUM2CHAR): uses the first character for string arguments. * array.c (ary_fill): did not extend array for ranges. * array.c (beg_len): did not return end pos bigger than size. Fri Jan 2 02:09:16 1998 WATANABE Hirofumi * dir.c (dir_s_chdir): bug in nil check. * array.c (ary_fill): bug in nil check. Tue Dec 30 11:46:23 1997 Yukihiro Matsumoto * hash.c (env_path_tainted): checks directories in PATH environment variable are not world writable. * ruby.c (load_file): invoke specified interpreter if the #! line does not contain the word `ruby'. Fri Dec 26 03:26:41 1997 Yukihiro Matsumoto * string.c (uscore_get): type information included in the error message. * variable.c (f_untrace_var): does not free trace-data within trace procedure. Thu Dec 25 02:50:29 1997 Yukihiro Matsumoto * version 1.1b3 released. * ruby.h: inlining some functions on gcc 2.x Tue Dec 23 02:47:33 1997 Yukihiro Matsumoto * eval.c (rb_eval): public/private information kept in the current scope, to remove undesired state from the class/module. * time.c (time_strftime): remove hidden limit of 100 bytes of result string, using malloc'ed buffer. * hash.c (hash_update): merges the contents of another hash, overriding existing keys. * regex.c (must_instr): totally re-written. * io.c (read_all): try to allocate proper sized buffer using fstat(2) for speedup. Sat Dec 20 00:27:28 1997 Yukihiro Matsumoto * regex.c (must_instr): need to skip 2 bytes for mbchars. Fri Dec 19 01:18:29 1997 Yukihiro Matsumoto * version 1.1b2 released. * eval.c (check_errat): check and convert (if necessary) traceback information before assigning to the variable $@. * eval.c (f_raise): optional third argument to specify traceback information. * io.c (f_open): prevent infinite recursive call. Thu Dec 18 19:33:47 1997 Yukihiro Matsumoto * string.c (str_rindex): now accepts regexp as index. Thu Dec 18 18:42:50 1997 WATANABE Hirofumi * ext/socket/extconf.rb: modified to detect win32 socket lib. Thu Dec 18 00:25:03 1997 Yukihiro Matsumoto * re.c (reg_equal): checks for source and casefold and kcode matching. * marshal.c: became built-in module. * ext/marshal/marshal.c (r_object): displays struct name for non-compatible struct. * string.c (str_index_method): now searches character (fixnum) in the string. * string.c (str_include): redefine `include?'. * regex.c (re_match): start_nowidth saves current stack position to stop_nowidth. * regex.c (re_compile_pattern): add space to stop_nowidth to save runtime stack position. Tue Dec 16 14:57:43 1997 Yukihiro Matsumoto * string.c (scan_once): wrong exception for regexp that match with null string (use substr instead of subseq). Sat Dec 13 00:13:32 1997 Yukihiro Matsumoto * parse.y (expr): remove bare assocs from expr rule. * rbconfig.rb: renamed from config.rb (it was too generic name). Fri Dec 12 00:50:25 1997 Yukihiro Matsumoto * parse.y (expr): warns if BEGIN or END appear in the method bodies. * string.c (str_match): calls y =~ x if y is neither String nor Regexp so that eregex.rb works. * eval.c (f_at_exit): to register end proc. * class.c (rb_define_module_function): define 'function' method for the Module, not private method. * class.c (rb_define_function): function to define `function' method. * eval.c (rb_eval): inherit visibility from superclass's method except when it is set to `function' * eval.c (rb_eval): new visibility status `function'. * parse.y (yycompile): do not clear eval_tree. thus enable multiple command line script by option `-e'. * eval.c (rb_eval): END execute just once. * parse.y (expr): BEGIN/END built in the syntax. Thu Dec 11 13:14:35 1997 Yukihiro Matsumoto * object.c (mod_le): Module (or Class) comparison. * eval.c (rb_remove_method): raises NameError if named method does not exist. * ext/curses/curses.c: remove CHECK macro for BSD curses. Thu Dec 11 12:44:01 1997 WATANABE Hirofumi * pack.c: sun4 cc patch Wed Dec 10 15:21:36 1997 Yukihiro Matsumoto * ext/marshal/marshal.c (marshal_load): can supply evolution proc object as optional second argument. * re.c (reg_source): get source string of the regular expression. Tue Dec 9 10:05:17 1997 Yukihiro Matsumoto * version 1.1b1 released. * parse.y (tokadd): token buffer overrun. * ruby.c (ruby_prog_init): forgot to protect rb_argv0 from gc. * eval.c (ruby_run): call finalizers at process termination. * gc.c (gc_call_finalizer_at_exit): call free proc for every Data Wrapper, and finalizer for specified objects at termination. * version.c (show_version): version format changed. * regex.c (re_match): wrong match with non-greedy if they appear more than once in regular expressions. * sample/ruby-mode.el (ruby-expr-beg): forgot to handle modifiers. Mon Dec 8 19:00:15 1997 Yukihiro Matsumoto * io.c (io_puts): just put a newline if no argument given. * ext/tcltklib/tcltklib.c (lib_mainloop): thread-aware tk handle when $tk_thread_safe is set. * ext/tcltklib/tcltklib.c (lib_mainloop): use Tcl_DoOneEvent() instead of Tk_MainLoop(). Mon Dec 6 07:11:16 1997 MAEDA shugo * io.c (io_puts): core dumped without any argument. Fri Dec 5 18:17:17 1997 Yukihiro Matsumoto * eval.c (mod_remove_method): remove (not undef) a method from the class/module. * variable.c (obj_remove_instance_variable): method to remove instance variables. Thu Dec 4 13:50:29 1997 Yukihiro Matsumoto * version 1.1b0 released. * string.c (str_aref): called str_index for regexp. Mon Dec 1 15:24:41 1997 Yukihiro Matsumoto * compar.c (cmp_between): wrong comparison made. Wed Nov 26 18:18:05 1997 Yukihiro Matsumoto * lib/mkmf.rb: generate Makefile for extension modules out of ruby source tree. use like `ruby -r mkmf extconf.rb'. * numeric.c (fix2str): enlarge buffer to prevent overflow on some machines. * parse.y (here_document): wrong line number generated after here-doc. Fri Nov 21 13:17:12 1997 Yukihiro Matsumoto * parse.y (yylex): skip multibyte characters in comments. Wed Nov 19 17:19:20 1997 Yukihiro Matsumoto * object.c (nil_to_a): nil.to_a => []. * parse.y (call_args): wrong node generation. Tue Nov 18 10:13:08 1997 Yukihiro Matsumoto * array.c (Init_Array): Array#=== works as Array#include? * regex.c (re_compile_pattern): insert initialize code for jump_n, before entering loops. * re.c (reg_search): does not save registers unless $& etc appear in the script. Mon Nov 17 13:01:43 1997 Yukihiro Matsumoto * eval.c (is_defined): add defined? check for receivers and arguments for calls. * re.c (reg_search): cache last match object. * re.c (match_aref): $[0] etc. are available. Sat Nov 15 00:11:36 1997 WATANABE Hirofumi * io.c (io_s_popen): "rb" detection Fri Nov 14 18:28:40 1997 Yukihiro Matsumoto * string.c (scan_once): returns whole match if the pattern does not contain any parentheses. Thu Nov 13 14:39:06 1997 Yukihiro Matsumoto * string.c (str_sub): returns copy of the receiver string, even if any substitution occurred. * regex.c (re_compile_pattern): no-width match by (?=..), (?!..). Wed Nov 12 13:44:47 1997 Yukihiro Matsumoto * time.c: remove coerce from Time class. * regex.c (re_match): non-greedy match by ??, *? +?, {n,m}?. Mon Nov 10 11:24:51 1997 Yukihiro Matsumoto * regex.c (re_compile_pattern): non-registering parens (?:..). * regex.c (re_compile_pattern): new meta character \< (wordbeg) and \> (wordend). * regex.c (re_compile_pattern): embedded comment for regular expression by (?#...). Fri Nov 7 16:58:24 1997 Yukihiro Matsumoto * regex.c (re_compile_pattern): perl5 regxp \A and \Z available. * regex.c (re_compile_pattern): can expand compile stack dynamically. * regex.c (PUSH_FAILURE_POINT): wrong compare condition. Wed Nov 2 16:00:00 1997 WATANABE Hirofumi * string.c (str_sub_s): "".sub! "", "" => "\000" Fri Oct 31 15:52:10 1997 Yukihiro Matsumoto * parse.y (assoc): keyword assoc like {fg->"black"}. Thu Oct 30 17:33:38 1997 Yukihiro Matsumoto * io.c (io_println): print with newline, which is not affected by the values of $/ and $\. Thu Oct 30 16:54:01 1997 WATANABE Hirofumi * string.c (str_chop_bang): "".chop caused SEGV. * string.c (str_chomp_bang): method to chop out last newline. Mon Oct 27 13:49:13 1997 Yukihiro Matsumoto * ext/extmk.rb.in: library may have pathname contains `.' * eval.c (rb_rescue): should not protect SystemError. Fri Oct 24 10:58:53 1997 Yukihiro Matsumoto * io.c (io_s_with_open_stream): ensures to close stream. Thu Oct 23 11:17:44 1997 Yukihiro Matsumoto * io.c (io_errset): value of $stderr can be changed (to any IO object). * io.c (next_argv): $< can be anything that responds to `write'. * file.c (file_s_with_open_file): ensures to close file. * error.c (exception): create error under the current class/module. * range.c (range_eqq): fixnum check for last needed too. Wed Oct 22 12:52:30 1997 Yukihiro Matsumoto * ext/socket/socket.c: Socket::Constants added. * file.c: File::Constants added for inclusion. * array.c (ary_join): call ary_join() recursively for the 1st array element. Mon Oct 20 12:18:29 1997 WATANABE Hirofumi * ruby.c (load_file): wrong condition for #! check with -x. * file.c (file_s_dirname): did return "" for "/a". Fri Oct 17 14:29:09 1997 Yukihiro Matsumoto * ruby.c: now works on alpha-linux. * bignum.c (bigadd): some undefined side effect order assumed. Wed Oct 15 17:49:24 1997 Yukihiro Matsumoto * intern.h: function prototypes added. Mon Oct 13 16:54:18 1997 Yukihiro Matsumoto * class.c (rb_define_class_id): call superclass's `inherited' method when making subclasses. * parse.y (nextc): clear lex_lastline at the end of file. * object.c (Init_Object): need to undef Class#append_features. * eval.c (rb_eval): no warning on extending classes or modules. Thu Oct 9 11:17:50 1997 Yukihiro Matsumoto * eval.c (error_print): the exception name follows after the error message. * eval.c (compile_error): error message slightly changed. * parse.y (nextc): script parsing will be terminated by __END__ at beginning of line. * eval.c (compile_error): `__END__' is no longer a keyword. * parse.y (nextc): protect lastline read from script stream. Tue Oct 7 14:06:06 1997 Yukihiro Matsumoto * version 1.1 alpha9 released. * eval.c (mod_append_features): renamed from extend_class. * eval.c (rb_eval): defining method calls `method_added'. * eval.c (ruby_options): exception while processing options must terminate the interpreter. * error.c (Init_Exception): wrong method configuration. `new' should have been a singleton method. Mon Oct 6 18:55:38 1997 Yukihiro Matsumoto * ext/kconv/kconv.c (kconv_guess): code to guess character code from string. Mon Oct 6 18:38:17 1997 WATANABE Hirofumi * pack.c: now encode/decode base64 by `m' template. Fri Oct 3 10:51:10 1997 Yukihiro Matsumoto * MANIFEST: needed to include lex.c in the distribution. * eval.c (ruby_options): f_require() called too early. * eval.c (rb_provide): module extensions should always be `.o'. Thu Oct 2 11:38:31 1997 Yukihiro Matsumoto * version 1.1 alpha8 released. * ext/marshal/marshal.c (r_object): remove temporal regist for structs. (caused problem if structs form cycles.) * parse.y (match_gen): static binding for match(=~) calls with regexp literals. Wed Oct 1 15:26:55 1997 Yukihiro Matsumoto * eval.c: protect retval in struct tag from GC for C_ALLOCA. * eval.c: no more pointer value from setjmp/longjmp. Wed Oct 1 14:01:49 1997 WATANABE Hirofumi * ext/marshal/marshal.c (w_byte): argument must be char. Wed Oct 1 10:30:22 1997 Yukihiro Matsumoto * variable.c (mod_const_at): global constants now belongs to the class Object. * object.c (Init_Object): new global constant NIL. * ext/marshal/marshal.c (marshal_dump): try to set binmode. * ext/marshal/marshal.c (r_object): forgot to re-regist structs in the object table. * eval.c (ruby_options): call Init_ext() before any require() calls by `-r'. Fri Sep 30 14:29:22 1997 WATANABE Hirofumi * ext/marshal/marshal.c (w_object): marshal dumped core. Tue Sep 30 10:27:39 1997 Yukihiro Matsumoto * sample/test.rb: bignum test suits added. * eval.c (rb_eval): new pseudo variable `true' and `false'. * parse.y: new keywords `true' and `false' added. Mon Sep 29 13:37:58 1997 Yukihiro Matsumoto * ruby.c (forbid_setid): forbid some options in suid mode. * ruby.h (NUM2DBL): new macro to convert into doubles. Mon Sep 27 09:53:48 1997 EGUCHI Osamu * bignum.c: modified for speeding. Fri Sep 26 18:27:59 1997 WATANABE Hirofumi * sample/from.rb: some extensions. Mon Sep 29 13:15:56 1997 Yukihiro Matsumoto * parse.y (lhs): no more syntax error on `obj.CONSTANT = value'. Fri Sep 26 14:41:46 1997 Yukihiro Matsumoto * eval.c (ruby_run): deferred calling Init_ext() just before eval_node. Fri Sep 26 13:27:24 1997 WATANABE Hirofumi * io.c (io_isatty): forgot to return TRUE value. Fri Sep 25 11:10:58 1997 EGUCHI Osamu * eval.c: use _setjmp/_longjmp instead of setjmp/longjmp on some platforms. Wed Sep 24 17:43:13 1997 Yukihiro Matsumoto * string.c (Init_String): String#taint and String#taint? added. * class.c (mod_ancestors): ancestors include the class itself. Wed Sep 24 00:57:00 1997 Katsuyuki Okabe * X68000 patch. Tue Sep 23 20:42:30 1997 EGUCHI Osamu * parse.y (node_newnode): SEGV on null node setup. Mon Sep 22 11:22:46 1997 Yukihiro Matsumoto * ruby.c (ruby_prog_init): wrong safe condition check. Sun Sep 21 14:46:02 1997 MAEDA shugo * error.c (exc_inspect): garbage added to classpath. Fri Sep 19 11:49:23 1997 Yukihiro Matsumoto * parse.y (newtok): forgot to adjust buffer size when shrinking the token buffer. * enum.c (enum_find): rb_eval_cmd() does not return value. * io.c (pipe_open): close fds on pipe exec. fcntl(fd, F_SETFD, 1) no longer used. Tue Sep 16 17:54:25 1997 Yukihiro Matsumoto * file.c (f_test): problem if wrong command specified. * ruby.c (ruby_prog_init): close stdaux and stdprn for MSDOS. * ruby.c (ruby_prog_init): should not add path from environment variable, if ruby is running under setuid. * process.c (init_ids): check suid check for setuid/seteuid etc. Mon Sep 15 00:42:04 1997 WATANABE Hirofumi * regex.c (re_compile_pattern): \w{3} and \W{3} did not work. Thu Sep 11 10:31:48 1997 Yukihiro Matsumoto * version 1.1 alpha7 released. * ext/socket/socket.c (sock_new): no setbuf() for NT. * io.c (rb_fopen,rb_fdopen): set close-on-exec for every fd. Wed Sep 10 15:55:31 1997 Yukihiro Matsumoto * ext/marshal/marshal.c (r_bytes0): extra big length check. Tue Sep 9 16:27:14 1997 Yukihiro Matsumoto * io.c (pipe_fptr_atexit): clean up popen()'ed fptr. * error.c (set_syserr): some system has error code that is bigger than sys_nerr. grrr. Mon Sep 8 18:33:33 1997 Yukihiro Matsumoto * io.c (io_s_new): dereferenced nil for optional mode. Fri Sep 5 10:26:03 1997 Yukihiro Matsumoto * class.c (class_instance_methods): do not include methods which are changed to private in subclasses. Thu Sep 4 12:38:53 1997 Yukihiro Matsumoto * variable.c (f_global_variables): list name of the global variables. * object.c (obj_id): returns unique integer. Wed Sep 3 14:05:16 1997 Yukihiro Matsumoto * version 1.1 alpha6 released. * eval.c (mod_s_constants): context sensitive constant list. * variable.c (mod_constants): no more `all' option. * variable.c (mod_const_of): the values for autoload classes are their name strings. * class.c (class_instance_methods): no special treatment for singleton classes. * object.c (obj_singleton_methods): returns list of singleton method names. * parse.y (yylex): no here document after `class' keyword. * eval.c (f_load): expand path if fname begins with `~'. Tue Sep 2 13:19:48 1997 Yukihiro Matsumoto * class.c (ins_methods_i): do not list undef'ed methods. Mon Sep 1 13:42:48 1997 Yukihiro Matsumoto * version 1.1 alpha5 released. * object.c (mod_attr_reader): create methods to define attribute reader/write/accessor. * class.c (rb_define_attr): always defines accessors. * eval.c (rb_call): alias occurred in the module body caused SEGV. * parse.y: did not generate here document strings properly. Mon Sep 1 11:43:57 1997 WATANABE Hirofumi * parse.y (yylex): heredoc dropped an extra character. Fri Aug 29 11:10:21 1997 Yukihiro Matsumoto * class.c (class_instance_methods): same method names should not appear more than once. * parse.y (yylex): spaces can follow =begin/=end. * variable.c (find_class_path): look for class_tbl also for unnamed fundamental classes, such as Object, String, etc. * variable.c (rb_name_class): can't name class before String class is initialized. * inits.c (rb_call_inits): unrecognized dependency from GC to Array. * variable.c (find_class_path): could not find class if Object's iv_tbl is NULL. Thu Aug 28 13:12:05 1997 Yukihiro Matsumoto * version 1.1 alpha4 released. * variable.c (mod_constants): wrong condition for singleton class. * parse.y (yylex): revised `=begin' skip code. * parse.y (here_document): forgot to free(eos). * parse.y (yylex): spaces after `<<' prohibited for here documents to avoid confusing with operator `<<'. * eval.c (is_defined): separated from rb_eval(). Wed Aug 27 11:32:42 1997 Yukihiro Matsumoto * version 1.1 alpha3 released. * variable.c (mod_name): returns name of the class/module. * parse.y (here_document): finally here document available now. * variable.c (fc_i): some classes/modules does not have iv_tbl. * variable.c (find_class_path): avoid infinite loop. Tue Aug 26 13:43:47 1997 Yukihiro Matsumoto * eval.c (rb_eval): undef'ing non-existing method will raise NameError exception. * object.c (class_s_new): needed to create metaclass too. * eval.c (error_print): no class name print for anonymous class. * eval.c (rb_longjmp): proper exception raised if raise() called without arguments, with $! or $@ set. * object.c (Init_Object): superclass()'s method argument setting was wrong again. * class.c (mod_ancestors): list superclasses and included modules in priority order. Mon Aug 25 11:53:11 1997 Yukihiro Matsumoto * version 1.1 alpha2 released. * sample/ruby-mode.el (ruby-parse-region): auto-indent now supports "\\" in the strings. * struct.c (struct_getmember): new API to get member value from C language side. Sat Aug 23 21:39:05 1997 Yukihiro Matsumoto * parse.y (assignable): remove unnecessary local variable initialize by nil. Fri Aug 22 14:26:40 1997 Yukihiro Matsumoto * eval.c (error_print): modified exception print format. Thu Aug 21 16:10:58 1997 Yukihiro Matsumoto * sample/ruby-mode.el (ruby-calculate-indent): wrong indent level calculated with keyword operators. Thu Aug 21 11:36:58 1997 WATANABE Hirofumi * parse.y (arg): ary[0] += 1 cause SEGV Wed Aug 20 17:28:50 1997 Yukihiro Matsumoto * ruby.c (ruby_process_options): require() all modules after processing all options * process.c (rb_proc_exec): more security checks added. * process.c (rb_proc_exec): insecure path on exec. * hash.c (f_getenv): PATH modification security check. Tue Aug 19 00:15:38 1997 Yukihiro Matsumoto * version 1.1 alpha1 released. * eval.c (mod_eval): work as normal eval() if second binding argument given. * eval.c (rb_call): did not raise ArgumentError if too many arguments more than optional arguments (without rest arg). * eval.c (rb_eval): did not work well for op_asgn2 (attribute self assignment). * eval.c (Init_Thread): returns main thread. Mon Aug 18 09:25:56 1997 Yukihiro Matsumoto * object.c (inspect_i): did not display T_DATA instance variables. * parse.y: provides more accurate line number information. * eval.c (thread_value): include value's backtrace information in the variable `$@'. * eval.c (f_abort): print backtrace and exit. Sat Aug 16 00:17:44 1997 Yukihiro Matsumoto * eval.c (class_new_instance): do not make instance from virtual classes. * object.c (class_s_new): do not make subclass of singleton class. Fri Aug 15 15:49:46 1997 Yukihiro Matsumoto * eval.c (call_trace_func): block context switch in the trace function. * eval.c (rb_eval): clear method cache at class extension. * object.c (obj_type): returns object's class even if it defines singleton methods. Fri Aug 15 19:40:43 1997 WATANABE Hirofumi * ext/socket/socket.c (Init_socket): small typo caused SEGV. Wed Aug 13 17:51:46 1997 Yukihiro Matsumoto * version 1.1 alpha0 released.