diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-01-18 06:09:05 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-01-18 06:09:05 +0000 |
commit | e5ed1780afa9a5f29da7c63ca2b7d9c66f6936aa (patch) | |
tree | 02bb807e93fa0b9e53167165439d507c432b199b | |
parent | dde62bcd2efbb3825d982326896ab774e73e4218 (diff) |
2000-01-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | array.c | 5 | ||||
-rw-r--r-- | misc/ruby-mode.el | 3 | ||||
-rw-r--r-- | object.c | 16 | ||||
-rw-r--r-- | sample/test.rb | 11 | ||||
-rw-r--r-- | struct.c | 34 | ||||
-rw-r--r-- | version.h | 4 |
7 files changed, 26 insertions, 51 deletions
@@ -1,3 +1,7 @@ +Tue Jan 18 12:24:28 2000 Yukihiro Matsumoto <matz@netlab.co.jp> + + * struct.c (Init_Struct): remove Struct's own hash and eql?. + Sat Jan 15 22:21:08 2000 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp> * eval.c (search_method): argument klass may be 0. @@ -1301,11 +1301,12 @@ rb_ary_hash(ary) VALUE ary; { long i; - int h; + int n, h; h = RARRAY(ary)->len; for (i=0; i<RARRAY(ary)->len; i++) { - int n = rb_hash(RARRAY(ary)->ptr[i]); + h = (h<<1) | (h<0 ? 1 : 0); + n = rb_hash(RARRAY(ary)->ptr[i]); h ^= NUM2LONG(n); } return INT2FIX(h); diff --git a/misc/ruby-mode.el b/misc/ruby-mode.el index 1b7effc459..8f144cbd4c 100644 --- a/misc/ruby-mode.el +++ b/misc/ruby-mode.el @@ -179,7 +179,8 @@ The variable ruby-indent-level controls the amount of indentation. (back-to-indentation) (setq top (current-column)) (skip-chars-backward " \t") - (if (>= shift top) (setq shift (- shift top))) + (if (>= shift top) (setq shift (- shift top)) + (setq shift 0)) (if (and (bolp) (= x top)) (move-to-column (+ x shift)) @@ -59,17 +59,10 @@ rb_obj_equal(obj1, obj2) } static VALUE -rb_any_to_a(obj) - VALUE obj; -{ - return rb_ary_new3(1, obj); -} - -static VALUE rb_obj_hash(obj) VALUE obj; { - return (long)obj|FIXNUM_FLAG; + return ((long)obj)|FIXNUM_FLAG; } VALUE @@ -121,6 +114,13 @@ rb_obj_dup(obj) return rb_funcall(obj, rb_intern("clone"), 0, 0); } +static VALUE +rb_any_to_a(obj) + VALUE obj; +{ + return rb_ary_new3(1, obj); +} + VALUE rb_any_to_s(obj) VALUE obj; diff --git a/sample/test.rb b/sample/test.rb index e23c39f5e7..53783d145e 100644 --- a/sample/test.rb +++ b/sample/test.rb @@ -343,7 +343,7 @@ ok(($x * 5).join(":") == '1:1:1:1:1') ok(($x * 1).join(":") == '1') ok(($x * 0).join(":") == '') -*$x = 1..7 +*$x = (1..7).to_a ok($x.size == 7) ok($x == [1, 2, 3, 4, 5, 6, 7]) @@ -716,8 +716,11 @@ ok(a == 1 && b == 2 && c == 3 && d == 4) *a = 1, 2, 3 ok(a == [1, 2, 3]) -*a = 1..3 # array conversion -ok(a == [1, 2, 3]) +*a = 4 +ok(a == [4]) + +*a = nil +ok(a == []) check "call" def aaa(a, b=100, *rest) @@ -1042,7 +1045,7 @@ test = struct_test.new(1, 2) ok(test.foo == 1 && test.bar == 2) ok(test[0] == 1 && test[1] == 2) -a, b = test +a, b = test.to_a ok(a == 1 && b == 2) test[0] = 22 @@ -524,38 +524,6 @@ rb_struct_equal(s, s2) } static VALUE -rb_struct_eql(s, s2) - VALUE s, s2; -{ - long i; - - if (TYPE(s2) != T_STRUCT) return Qfalse; - if (CLASS_OF(s) != CLASS_OF(s2)) return Qfalse; - if (RSTRUCT(s)->len != RSTRUCT(s2)->len) { - rb_bug("inconsistent struct"); /* should never happen */ - } - - for (i=0; i<RSTRUCT(s)->len; i++) { - if (!rb_eql(RSTRUCT(s)->ptr[i], RSTRUCT(s2)->ptr[i])) return Qfalse; - } - return Qtrue; -} - -static VALUE -rb_struct_hash(s) - VALUE s; -{ - long i; - int h; - - h = CLASS_OF(s); - for (i=0; i<RSTRUCT(s)->len; i++) { - h ^= rb_hash(RSTRUCT(s)->ptr[i]); - } - return INT2FIX(h); -} - -static VALUE rb_struct_size(s) VALUE s; { @@ -574,8 +542,6 @@ Init_Struct() rb_define_method(rb_cStruct, "clone", rb_struct_clone, 0); rb_define_method(rb_cStruct, "==", rb_struct_equal, 1); - rb_define_method(rb_cStruct, "eql?", rb_struct_eql, 1); - rb_define_method(rb_cStruct, "hash", rb_struct_hash, 0); rb_define_method(rb_cStruct, "to_s", rb_struct_to_s, 0); rb_define_method(rb_cStruct, "inspect", rb_struct_inspect, 0); @@ -1,4 +1,4 @@ #define RUBY_VERSION "1.5.2" -#define RUBY_RELEASE_DATE "2000-01-17" +#define RUBY_RELEASE_DATE "2000-01-18" #define RUBY_VERSION_CODE 152 -#define RUBY_RELEASE_CODE 20000117 +#define RUBY_RELEASE_CODE 20000118 |