Commit graph

9854 commits

Author SHA1 Message Date
knu
4e7c81084e * ext/sha1/sha1-ruby.c (sha1_hexdigest): fix buffer overflow. The
buffer for a SHA-1 hexdigest needs to be 41 bytes in length.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-24 20:41:51 +00:00
knu
d6e985ad0b * ext/sha1/sha1-ruby.c (md5i_new): separate initialize() from
new().

* ext/md5/md5init.c (sha1_new): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-24 16:00:54 +00:00
knu
dcd6223c64 * ext/dbm/extconf.rb: fix support for *BSD and set $CFLAGS
properly.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-24 15:55:40 +00:00
matz
0fb0d42369 * eval.c (rb_yield_0): need argument adjustment for C defined
blocks too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-24 06:10:36 +00:00
matz
2287c526be * eval.c (rb_yield_0): need argument adjustment for C defined
blocks too.

* ext/dbm/extconf.rb: header search added. [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-24 05:28:15 +00:00
knu
4a14c9ceb9 * ext/extmk.rb.in (xsystem): backout the previous fix which was
bogus.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-17 20:37:25 +00:00
knu
0eea0bf571 * lib/mkmf.rb (xsystem): make a temporary fix to get $(...) macros
properly expanded on a command execution.

* ext/extmk.rb.in (xsystem): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-17 20:23:08 +00:00
knu
98e79eccdf * ext/sha1/sha1-ruby.c (sha1_new): get rid of an unneeded
rb_obj_call_init() call.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-17 16:13:34 +00:00
knu
7a140a3cb0 * ext/sha1/sha1.txt, ext/sha1/sha1.txt.jp: fix typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-17 16:05:49 +00:00
knu
ddb81a78f3 Add .cvsignore to let CVS ignore Makefile which is automatically
generated.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-17 07:13:18 +00:00
eban
929f31409e * ext/sha1/MANIFEST: Added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-17 05:28:39 +00:00
knu
43f76f99b7 * ext/md5/md5.txt.jp, ext/sha1/sha1.txt.jp: s/SuperClass/Superclass/.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-16 22:28:40 +00:00
knu
23423d7d03 * 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-16 22:25:02 +00:00
knu
a57dc21ef0 * 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-16 22:19:30 +00:00
knu
ca841613cd * ext/sha1/extconf.rb, ext/sha1/sha1.c: use WORDS_BIGENDIAN to
detect the platform's endian.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-16 22:14:01 +00:00
knu
5348fd7d4a Initial revision
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-16 22:07:28 +00:00
knu
4202ff1a9f * ext/md5/md5.txt: make wording fixes, and mention the newly added
method: "<<".

* ext/md5/md5.txt.jp: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-16 21:34:18 +00:00
matz
f84f4aa6b3 * array.c (rb_ary_and): should not push frozen key string.
* array.c (rb_ary_or): ditto.

* 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.

* signal.c: SIGINFO added.

* eval.c (rb_ensure): should not SEGV when prot_tag is NULL.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-16 09:05:54 +00:00
matz
cc043890f8 * bignum.c (bigdivrem): access boundary bug.
* 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.

* eval.c (rb_yield_0): preserve and restore ruby_cref as well.

* eval.c (is_defined): core dumped during instance_eval for
  special constants.

* eval.c (rb_eval): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-11 05:24:59 +00:00
eban
581f7b863b * ext/dbm/extconf.rb: fix for FreeBSD and GDBM.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-07 10:56:01 +00:00
matz
13cbec33c1 * 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-07 09:26:29 +00:00
eban
e9d89f20a9 rb_eGDBMFatalErrors -> rb_eGDBMFatalError
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-06 16:37:38 +00:00
matz
1d3d27b42d forgot some checkins.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-06 15:06:00 +00:00
matz
fd06a2a7fb * eval.c (block_pass): should not downgrade safe level.
* ext/dbm/extconf.rb: allow specifying dbm-type explicitly.

* ext/dbm/extconf.rb: avoid gdbm if possible, because it leaks
  memory, whereas gdbm.so doesn't.  potential incompatibility.

* string.c (rb_str_insert): new method.

* parse.y (yylex): lex_state after RESCUE_MOD should be EXPR_BEG.

* array.c (rb_ary_insert): new method.

* array.c (rb_ary_update): new utility function.

* io.c (set_outfile): should check if closed before assignment.

* eval.c (rb_eval): should preserve value of ruby_errinfo.

* eval.c (rb_thread_schedule): infinite sleep should not cause
  dead lock.

* array.c (rb_ary_flatten_bang): proper recursive detection.

* eval.c (yield_under): need not to prohibit at safe level 4.

* pack.c (pack_pack): p/P packs nil into NULL.

* pack.c (pack_unpack): p/P unpacks NULL into nil.

* pack.c (pack_pack): size check for P template.

* ruby.c (set_arg0): wrong predicate when new $0 value is bigger
  than original space.

* gc.c (id2ref): should use NUM2ULONG()

* object.c (rb_mod_const_get): check whether name is a class
  variable name.

* object.c (rb_mod_const_set): ditto.

* object.c (rb_mod_const_defined): ditto.

* marshal.c (w_float): precision changed to "%.16g"

* eval.c (rb_call0): wrong retry behavior.

* numeric.c (fix_aref): a bug on long>int architecture.

* eval.c (rb_eval_string_wrap): should restore ruby_wrapper.

* regex.c (re_compile_pattern): char class at either edge of range
  should be invalid.

* eval.c (handle_rescue): use === to compare exception match.

* error.c (syserr_eqq): comparison between SytemCallErrors should
  based on their error numbers.

* eval.c (safe_getter): should use INT2NUM().

* bignum.c (rb_big2long): 2**31 cannot fit in 31 bit long.

* regex.c (calculate_must_string): wrong length calculation.

* eval.c (rb_thread_start_0): fixed memory leak.

* parse.y (none): should clear cmdarg_stack too.

* io.c (rb_fopen): use setvbuf() to avoid recursive malloc() on
  some platforms.

* file.c (rb_stat_dev): device functions should honor stat field
  types (except long long such as dev_t).

* eval.c (rb_mod_nesting): should not push nil for nesting array.

* eval.c (rb_mod_s_constants): should not search array by
  rb_mod_const_at() for nil (happens for singleton class).

* class.c (rb_singleton_class_attached): should modify iv_tbl by
  itself, no longer use rb_iv_set() to avoid freeze check error.

* variable.c (rb_const_get): error message "uninitialized constant
  Foo at Bar::Baz" instead of "uninitialized constantBar::Baz::Foo".

* eval.c (rb_mod_included): new hook called from rb_mod_include().

* io.c (opt_i_set): should strdup() inplace_edit string.

* eval.c (exec_under): need to push cref too.

* eval.c (rb_f_missing): raise NameError for "undefined local
  variable or method".

* error.c (Init_Exception): new exception NoMethodError.
  NameError moved under ScriptError again.

* eval.c (rb_f_missing): use NoMethodError instead of NameError.

* file.c (Init_File): should redifine "new" class method.

* eval.c (PUSH_CREF): sharing cref node was problematic.  maintain
  runtime cref list instead.

* eval.c (rb_eval): copy defn node before registering.

* eval.c (rb_load): clear ruby_cref before loading.

* variable.c (rb_const_get): no recursion to show full class path
  for modules.

* eval.c (rb_set_safe_level): should set safe level in curr_thread
  as well.

* eval.c (safe_setter): ditto.

* object.c (rb_obj_is_instance_of): nil belongs to false, not true.

* time.c (make_time_t): proper (I hope) daylight saving time
  handling for both US and Europe.  I HATE DST!

* eval.c (rb_thread_wait_for): non blocked signal interrupt should
  stop the interval.

* eval.c (proc_eq): class check aded.

* eval.c (proc_eq): typo fixed ("return" was ommitted).

* error.c (Init_Exception): move NameError under StandardError.

* class.c (rb_mod_clone): should copy method bodies too.

* bignum.c (bigdivrem): should trim trailing zero bdigits of
  remainder, even if dd == 0.

* file.c (check3rdbyte): safe string check moved here.

* time.c (make_time_t): remove HAVE_TM_ZONE code since it
  sometimes reports wrong time.

* time.c (make_time_t): remove unnecessary range check for
  platforms where negative time_t is available.

* process.c (proc_waitall): should push Process::Status instead of
  Finuxm status.

* process.c (waitall_each): should add all entries in pid_tbl.
  these changes are inspired by Koji Arai.  Thanks.

* process.c (proc_wait): should not iterate if pid_tbl is 0.

* process.c (proc_waitall): ditto.

* numeric.c (flodivmod): a bug in no fmod case.

* process.c (pst_wifsignaled): should apply WIFSIGNALED for status
  (int), not st (VALUE).

* io.c (Init_IO): value of $/ and $\ are no longer restricted to
  strings.  type checks are done on demand.

* class.c (rb_include_module): module inclusion should be check
  taints.

* ruby.h (STR2CSTR): replace to StringType() and StringTypePtr().

* ruby.h (rb_str2cstr): ditto.

* eval.c (rb_load): should not copy topleve local variables.  It
  cause variable/method ambiguity.  Thanks to L. Peter Deutsch.

* class.c (rb_include_module): freeze check at first.

* eval.c (rb_attr): sprintf() and rb_intern() moved into
  conditional body.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-05-02 04:22:21 +00:00
knu
4dfc822aec * 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].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-04-24 06:21:58 +00:00
eban
e2de605439 * ext/extmk.rb.in (create_makefile): create def file only if
it does not yet exist.
* lib/mkmf.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-04-03 01:16:14 +00:00
knu
65579c6b31 * ext/extmk.rb.in, lib/mkmf.rb: add C++ rules in addition to C
rules for the mswin32 platforms.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-28 14:47:44 +00:00
knu
03f06165b8 * ext/extmk.rb.in, lib/mkmf.rb: move C++ rules to the right place.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-28 10:35:40 +00:00
matz
b60a365763 * eval.c (rb_mod_define_method): should have clear method cache.
* eval.c (rb_mod_define_method): should have raised exception for
  type error.

* ruby.h: changed "extern INLINE" to "static inline".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-27 07:10:58 +00:00
eban
4beca99d16 * ext/md5/md5init.c (md5i_new): remove rb_scan_args().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-26 09:27:18 +00:00
matz
de51a663b4 * eval.c: remove TMP_PROTECT_END to prevent C_ALLOCA crash.
* file.c (rb_file_flock): do not trap EINTR.

* missing/flock.c (flock): returns the value from lockf(2)
  directly.

* eval.c (ev_const_defined): should ignore toplevel cbase (Object).

* eval.c (ev_const_get): ditto.

* 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.

* pack.c (pack_unpack): string from P/p should be tainted.

* ext/curses/curses.c: curses on Mac OS X public beta does not
  have _maxx etc.

* marshal.c (w_object): should truncate trailing zero short for
  bignums.

* object.c (sym_intern): new method.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-26 08:57:16 +00:00
eban
c8e0e1114a * ext/Win32API/Win32API.c: remove Init_win32api().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-26 05:11:18 +00:00
eban
9c33e4e6b4 * ext/Win32API/extconf.rb: add -fno-omit-frame-pointer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-22 13:23:36 +00:00
matz
9910feef4f * gc.c (id2ref): sometimes confused symbol and reference.
* 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.

* object.c (sym_inspect): did allocate extra byte space.

* marshal.c (shortlen): shortlen should return number of bytes
  written.

* eval.c (ev_const_defined): need not to check if cbase->nd_class
  is rb_cObject.

* eval.c (ev_const_get): ditto.

* time.c (time_zone): return "UTC" for UTC time objects.

* eval.c (THREAD_ALLOC): flags should be initialized.

* signal.c (rb_f_kill): should use FIX2INT, not FIX2UINT.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-21 03:41:45 +00:00
eban
a84d087d3c * win32/win32.c (win32_stat): UNC support.
* dir.c (extract_path): fix "./*" problem.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-20 14:50:43 +00:00
matz
df2d69b49a * eval.c (proc_call): should not modify ruby_block->frame.iter
based on ruby_frame->iter altered by PUSH_ITER().

* eval.c (rb_thread_fd_close): should save current context before
  raising exception.

* io.c (set_stdin): preserve original stdin.

* io.c (set_outfile): preserve original stdout/stderr.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-26 05:29:06 +00:00
eban
99ee3b0038 * ext/curses/extconf.rb: add dir_config.
quote> * missing/flock.c: use fcntl(2) instead of lockf(2).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-18 08:18:47 +00:00
matz
e1c29a3f13 * 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-16 07:53:21 +00:00
matz
011ed67616 * process.c (proc_waitall): new method based on a patch from Brian
Fundakowski Feldman <green@green.dyndns.org>.

* process.c (last_status_set): objectify $? value (Process::Status).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-15 06:01:00 +00:00
matz
8e5c3b23f2 * dir.c (dir_s_glob): supprt 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-14 05:52:06 +00:00
matz
fa3eb5373e gdbm typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-13 06:05:14 +00:00
matz
8be410f065 * io.c (rb_io_ctl): do not call ioctl/fcntl for f2, if f and f2
have same fileno.

* 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-13 05:09:11 +00:00
matz
ed520cf6e9 * parse.y (parse_quotedwords): %w should allow parenthesis escape.
* 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.

* error.c (Init_Exception): make Interrupt a subclass of
  SignalException.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-02-08 09:19:27 +00:00
matz
0b3092922d * 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-01-18 08:43:14 +00:00
knu
cf4d89f23b Add .cvsignore's.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-01-09 17:11:36 +00:00
matz
87beea4496 * enum.c (enum_inject): new method.
* gc.c (rb_gc_call_finalizer_at_exit): clear klass member of
  terminating object.

* eval.c (rb_call): raise exception for terminated object.

* bignum.c (bigdivrem): t2 might be too big for signed long; do
  not use rb_int2big(), but rb_uint2big().

* error.c (rb_load_fail): new func to report LoadError.

* ruby.c (load_file): use rb_load_fail.

* 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.

* re.c (reg_s_last_match): Regexp::last_match(nth) returns nth
  substring of the match  (alternative for $& and $<digit>).

* eval.c (rb_mod_define_method): wrong comparison for blocks.

* gc.c (id2ref): should handle Symbol too.

* gc.c (id2ref): should print original ptr value

* 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.

* gc.c (mem_error): prohibit recursive mem_error().
  (ruby-bugs-ja:PR#36)

* 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-01-09 07:26:21 +00:00
matz
2cafd39ed2 thread_critical bug reported by Dave - matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-12-29 02:46:12 +00:00
matz
08ec02b92b changes from personal modifies -- matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-12-28 05:00:47 +00:00
matz
ceec42bf8c matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-12-27 05:59:03 +00:00
matz
0e47c138c9 matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2000-12-22 03:22:25 +00:00