Commit graph

7291 commits

Author SHA1 Message Date
nobu
749dea9e7c * parse.y (block_append): eliminate unused literal nodes.
* parse.y (literal_concat): refined literal concatination.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2876 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-20 14:03:45 +00:00
eban
dd8e5a9d31 2002-09-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-17 09:41:36 +00:00
nobu
a28c0eecbb 2002-09-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-13 11:57:59 +00:00
knu
e78e79e10f 2002-09-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-11 15:45:43 +00:00
nobu
c0d0125bc7 2002-09-11
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-11 01:25:52 +00:00
nobu
fe06b5a0e9 2002-09-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-10 14:38:27 +00:00
eban
58d69379c1 2002-09-08
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-08 11:08:48 +00:00
eban
9d64fd035a 2002-09-07
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-07 13:50:27 +00:00
eban
3edb155cd1 2002-09-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-06 05:20:53 +00:00
nobu
5a53593f81 2002-09-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-05 04:17:31 +00:00
matz
64901cd69b * class.c (rb_make_metaclass): obj.meta.super.meta should be equal
to obj.meta.meta.super (ruby-bugs-ja:PR#324).

* parse.y (yylex): the warning message "invalid
  character syntax" was never issued.

* marshal.c (r_bytes): do not use alloca (ruby-bugs:PR#382).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-04 06:37:39 +00:00
matz
6f484e4930 * variable.c (rb_copy_generic_ivar): remove old generic instance
variable table if it existes.

	* class.c (rb_make_metaclass): metaclass of a metaclass is a
	  metaclass itself.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-03 05:20:14 +00:00
eban
d92e76de64 2002-09-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-09-02 08:09:13 +00:00
nobu
7dd7d17091 2002-08-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-30 10:48:06 +00:00
eban
3bf972993f * io.c (read_all): should use off_t instead of long.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-29 04:38:37 +00:00
matz
1a44a463af * string.c (rb_str_delete_bang): should check if str->ptr is 0.
* string.c (rb_str_squeeze_bang): ditto.

* string.c (rb_str_count): ditto.

* string.c (rb_str_lstrip_bang): ditto.

* string.c (rb_str_rstrip_bang): ditto.

* string.c (rb_str_intern): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-28 06:01:58 +00:00
matz
c45908e41f * file.c (rb_find_file): $LOAD_PATH must not be empty.
* file.c (rb_find_file_ext): ditto.

* range.c (range_eq): class check should be based on range.class,
  instead of Range to work with Range.dup.

* range.c (range_eql): ditto.

* class.c (rb_mod_dup): need to preserve metaclass and flags.

* object.c (rb_cstr_to_dbl): had a buffer overrun.

* marshal.c (w_class): integrate singleton check into a funciton
  to follow DRY principle.

* marshal.c (w_uclass): should check singleton method.

* object.c (rb_obj_dup): dmark and dfree functions must be match
  for T_DATA type.

* object.c (rb_obj_dup): class of the duped object must be match
  to the class of the original.

* re.c (rb_reg_quote): do not escape \t, \f, \r, \n, for they are
  not regular expression metacharacters.

* time.c (time_s_alloc): use time_free instead of free (null check,
  also serves for type mark).

* time.c (time_s_at): check dfree function too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-27 08:31:08 +00:00
nobu
87c2982847 2002-08-24
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-24 14:17:45 +00:00
eban
cb8f50c4b5 2002-08-23
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-23 09:10:04 +00:00
eban
022d1f123c 2002-08-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-21 08:32:09 +00:00
eban
514aa4d976 2002-08-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-20 10:47:49 +00:00
nobu
3b2209d410 2002-08-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-19 00:38:51 +00:00
nobu
800452957d 2002-08-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-15 22:59:10 +00:00
nobu
92ca6c7773 * eval.c (ruby_current_node) : added to set sourceline on demand.
* eval.c (error_pos, error_print, rb_longjmp, assign): set source
  file/line.

* eval.c (rb_eval): store current node instead of file/line, and
  preserve it at return.

* eval.c (module_setup): ditto.

* eval.c (struct thread): store node instead of file/line.

* eval.c (rb_thread_raise): ditto.

* intern.h (ruby_current_node): added.

* intern.h (ruby_set_current_source): added.

* parse.y (stmt, arg): not fix position of assignment.

* parse.y (node_assign): ditto.

* parse.y (yycompile): clear current node.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-15 11:49:40 +00:00
matz
cf5d04f663 * hash.c (rb_hash_replace): should copy ifnone.
* hash.c (rb_hash_dup): should preserve HASH_PROC_DEFAULT and
  HASH_DELETED flags.

* hash.c (rb_hash_shift): shift from empty hash should not return
  its default proc.

* hash.c (rb_hash_default_proc): new method. [new]

* array.c (rb_ary_aref): no need for Bignum check.

* array.c (rb_ary_aset): explicit Bignum check removd.

* numeric.c (fix_aref): normalize bignum before bit-op.

* bignum.c (rb_big_rand): max may be Bignum zero.

* bignum.c (rb_cstr_to_inum): should normalize bignums, to avoid
  returning fixable bignum value.

* bignum.c (rb_uint2big): there should be no zero sized bignum.

* ext/extmk.rb.in: extmake() that works properly for both tkutil
  (tk/tkutil.so) and digest/sha1.

* hash.c (rb_hash_equal): should check HASH_PROC_DEFAULT too.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-13 09:21:18 +00:00
matz
1f99d95729 * bignum.c (rb_big_cmp): use dbl2big() for Floats, instead of
big2dbl().

* bignum.c (Init_Bignum): rb_big_zero_p() removed.  There may be
  Bignum zero.

* eval.c (rb_call0): new argument added for original method name.
  preserve original method name in frame->orig_func.

* eval.c (is_defined): use frame->orig_func, not last_func.

* eval.c (rb_eval): ditto.

* eval.c (method_call): supply data->oid also to rb_call0().

* object.c (rb_class_allocate_instance): call rb_obj_alloc() when
  called from alias, thus invoke original "allocate".

* eval.c (remove_method): removing allocate from classes should
  cause NameError.

* hash.c (rb_hash_equal): should check default values.

* ext/socket/socket.c (s_recvfrom): update RSTRING len.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-12 07:39:12 +00:00
nobu
91d884b86e * eval.c (rb_eval): set line number from all nodes.
* eval.c (proc_to_s): show source file/line if available.

* marshal.c (r_object): register TYPE_BIGNUM regardless real type.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-11 00:36:38 +00:00
usa
fc2a1ad79f * string.c (rb_str_rindex): must return -1 if unmatched.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-06 06:20:43 +00:00
nobu
a38b04836e 2002-08-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-08-01 14:00:00 +00:00
matz
2b98e10419 * eval.c (rb_undef): undef should be done for klass, not ruby_class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-31 05:18:43 +00:00
nobu
c67865a2b7 2002-07-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-30 11:01:52 +00:00
eban
ff954d7e17 2002-07-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-29 06:50:26 +00:00
nobu
1d132e648d 2002-07-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-26 03:31:58 +00:00
nobu
5c1ef150d2 2002-07-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-13 11:31:42 +00:00
nobu
bc8d214f76 2002-07-11
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-11 15:10:43 +00:00
nobu
93602810e9 2002-07-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-05 10:31:47 +00:00
nobu
d8fdb2bfde 2002-07-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-07-02 10:45:14 +00:00
eban
39e205994c * configure.in (seekdir, telldir): add ac_cv_func_telldir=yes,
ac_cv_func_seekdir=yes for MinGW.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-30 09:07:54 +00:00
usa
2f2143a2be * io.c (pipe_finalize, pipe_popen): two-way pipe support for win32.
* win32/win32.c (ChildRecord, FindFreeChildSlot): ditto.

* win32/win32.c, win32/win32.h (pipe_exec): new function for two-way
  pipe support for win32.

* win32/win32.c, win32/win32.h (FindPipedChildSlot, rb_w32_popen,
  rb_w32_pclose): removed functions for two-way pipe support for win32.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-28 18:26:01 +00:00
usa
cd6cffa7b6 * pack.c (pack_unpack): change names of local variables because their
names are overlapped.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-28 14:53:03 +00:00
nobu
0fdfc0bbef * parse.y (words, qwords): word list literal rules.
* parse.y (parse_string): ditto.

* parse.y (yylex): %W: word list literal with interpolation. [new]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-26 08:01:00 +00:00
nobu
6037d1cf3d 2002-06-25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-25 09:59:03 +00:00
nobu
33061b45b4 * eval.c (rb_eval): NODE_EVSTR is no longer used.
* eval.c (eval): not enforce to make assigned variables dynamic.

* parse.y (string): split rules to strings/xstring/regexp to allow
  arbitrary statements inside string interpolation.

* parse.y (here_document): splitted into three phases.

* parse.y (literall_append, literal_concat): added.
  append/concatinate string literals.

* sample/test.rb (valid_syntax): adjust line number for BEGIN.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-24 07:20:42 +00:00
eban
8d8af5225d * configure.in (__NO_ISOCEXT): add for mingw-runtime 2.0-2.
* configure.in (__MSVCRT__): removed because it is defined
  in the GCC specs.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-20 10:25:11 +00:00
eban
fa1f7befa9 * ext/extmk.rb, lib/mkmf.rb (xsystem): open the log file if xsystem is called.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-19 05:54:24 +00:00
nobu
12c00312aa * parse.y (yylex): should pushback proper char after '<<'.
* parse.y (range_op, cond0, cond): get rid of doubled warnings.

* parse.y (value_expr): reduce recursion level.

* parse.y (logop): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-18 03:53:23 +00:00
nobu
7ed607e902 2002-06-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-17 02:00:56 +00:00
knu
3a6168af5b 2002-06-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-15 10:25:08 +00:00
nobu
9e1473541d 2002-06-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-14 06:48:32 +00:00
eban
561c59bf64 2002-06-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-06-13 06:44:00 +00:00