summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-08-29 02:52:41 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-08-29 02:52:41 +0000
commit4e560cffd6266c08cb856d1b2c25f796522bcc9e (patch)
tree9737f5abbaf206fb2b24a83e9823a08c33b1eff7
parentbba6ae31371449a685f23bdd93f0f9a931e5eccd (diff)
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--ToDo7
-rw-r--r--eval.c15
-rw-r--r--ext/extmk.rb.in7
-rw-r--r--gc.c1
-rw-r--r--lib/mkmf.rb14
-rw-r--r--node.h2
-rw-r--r--parse.y12
-rw-r--r--version.h4
9 files changed, 31 insertions, 40 deletions
diff --git a/ChangeLog b/ChangeLog
index 72e8647349..5275273d61 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Aug 29 02:02:14 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * 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 <matz@ruby-lang.org>
* eval.c (is_defined): now handles class variables.
@@ -9,7 +15,8 @@ Mon Aug 28 18:43:54 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
* parse.y (gettable): ditto.
* regex.c (PUSH_FAILURE_COUNT): push/pop interval count on failure
- stack.
+ stack. this fix is inspired by the Emacs21 patch from Stefan
+ Monnier <monnier@cs.yale.edu>.
Fri Aug 25 15:24:39 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
diff --git a/ToDo b/ToDo
index 4a7ab395ae..e56903820f 100644
--- a/ToDo
+++ b/ToDo
@@ -90,6 +90,7 @@ Standard Libraries
* Ruby module -- Ruby::Version, Ruby::Interpreter
* introduce Boolean class; super of TrueClass, FalseClass
* Process::waitall [ruby-talk:4557]
+* synchronized method - synchronized{...}, synchronized :foo, :bar
Extension Libraries
@@ -114,9 +115,3 @@ Misc
- publish Ruby books
* publish Ruby books in English
-
-Things To Do Before 1.6
-
-* fix spec. for the following:
-
- * mkmf.rb - create_makefile("net/socket")
diff --git a/eval.c b/eval.c
index 8acf184d90..c3bdd7b43a 100644
--- a/eval.c
+++ b/eval.c
@@ -1719,7 +1719,6 @@ is_defined(self, node, buf)
case NODE_GASGN:
case NODE_CDECL:
case NODE_CVDECL:
- case NODE_CVASGN:
case NODE_CVASGN2:
case NODE_CVASGN3:
return "assignment";
@@ -2583,14 +2582,6 @@ rb_eval(self, n)
rb_const_set(ruby_class, node->nd_vid, result);
break;
- case NODE_CVASGN:
- if (NIL_P(ruby_cbase)) {
- rb_raise(rb_eTypeError, "no class/module to define class variable");
- }
- result = rb_eval(self, node->nd_value);
- rb_cvar_set(ruby_cbase, node->nd_vid, result);
- break;
-
case NODE_CVASGN2:
result = rb_eval(self, node->nd_value);
rb_cvar_set(CLASS_OF(self), node->nd_vid, result);
@@ -3620,10 +3611,6 @@ assign(self, lhs, val, check)
rb_cvar_declare(ruby_cbase, lhs->nd_vid, val);
break;
- case NODE_CVASGN:
- rb_cvar_set(ruby_cbase, lhs->nd_vid, val);
- break;
-
case NODE_CVASGN2:
rb_cvar_set(CLASS_OF(self), lhs->nd_vid, val);
break;
@@ -5058,7 +5045,7 @@ rb_f_require(obj, fname)
volatile int safe = ruby_safe_level;
Check_SafeStr(fname);
- if (rb_thread_loading(RSTRING(fname)->ptr)) return Qfalse;
+ if (rb_provided(RSTRING(fname)->ptr)) return Qfalse;
ext = strrchr(RSTRING(fname)->ptr, '.');
if (ext) {
diff --git a/ext/extmk.rb.in b/ext/extmk.rb.in
index c8e55e0edb..59536c4944 100644
--- a/ext/extmk.rb.in
+++ b/ext/extmk.rb.in
@@ -337,7 +337,12 @@ end
def create_makefile(target)
$target = target
-
+ if target.rindex(%r!/!)
+ target = $'
+ target_prefix = "/"+$`
+ else
+ target_prefix = ""
+ end
rm_f "conftest*"
if "@DLEXT@" == $OBJEXT
libs = $libs.split
diff --git a/gc.c b/gc.c
index 4acb9d1689..9681a9717e 100644
--- a/gc.c
+++ b/gc.c
@@ -483,7 +483,6 @@ rb_gc_mark(ptr)
case NODE_IASGN:
case NODE_CDECL:
case NODE_CVDECL:
- case NODE_CVASGN:
case NODE_CVASGN2:
case NODE_CVASGN3:
case NODE_MODULE:
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 63e89c2bec..47abd321bf 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -341,6 +341,12 @@ def create_makefile(target)
print "creating Makefile\n"
rm_f "conftest*"
STDOUT.flush
+ if target.rindex(%r!/!)
+ target = $'
+ target_prefix = "/"+$`
+ else
+ target_prefix = ""
+ end
if CONFIG["DLEXT"] == $OBJEXT
libs = $libs.split
for lib in libs
@@ -402,10 +408,10 @@ RUBY_SO_NAME = #{CONFIG["RUBY_SO_NAME"]}
DESTDIR =
prefix = $(DESTDIR)#{CONFIG["prefix"]}
exec_prefix = $(DESTDIR)#{CONFIG["exec_prefix"]}
-libdir = $(DESTDIR)#{$libdir}
-archdir = $(DESTDIR)#{$archdir}
-sitelibdir = $(DESTDIR)#{$sitelibdir}
-sitearchdir = $(DESTDIR)#{$sitearchdir}
+libdir = $(DESTDIR)#{$libdir}#{target_prefix}
+archdir = $(DESTDIR)#{$archdir}#{target_prefix}
+sitelibdir = $(DESTDIR)#{$sitelibdir}#{target_prefix}
+sitearchdir = $(DESTDIR)#{$sitearchdir}#{target_prefix}
#### End of system configuration section. ####
diff --git a/node.h b/node.h
index def7a1b9a0..b29355dbe2 100644
--- a/node.h
+++ b/node.h
@@ -49,7 +49,6 @@ enum node_type {
NODE_GASGN,
NODE_IASGN,
NODE_CDECL,
- NODE_CVASGN,
NODE_CVASGN2,
NODE_CVASGN3,
NODE_CVDECL,
@@ -270,7 +269,6 @@ typedef struct RNode {
#define NEW_DASGN_CURR(v,val) rb_node_newnode(NODE_DASGN_CURR,v,val,0);
#define NEW_IASGN(v,val) rb_node_newnode(NODE_IASGN,v,val,0)
#define NEW_CDECL(v,val) rb_node_newnode(NODE_CDECL,v,val,0)
-#define NEW_CVASGN(v,val) rb_node_newnode(NODE_CVASGN,v,val,0)
#define NEW_CVASGN2(v,val) rb_node_newnode(NODE_CVASGN2,v,val,0)
#define NEW_CVASGN3(v,val) rb_node_newnode(NODE_CVASGN3,v,val,0)
#define NEW_CVDECL(v,val) rb_node_newnode(NODE_CVDECL,v,val,0)
diff --git a/parse.y b/parse.y
index 4c5bce9fe4..9b246be7e1 100644
--- a/parse.y
+++ b/parse.y
@@ -3945,9 +3945,8 @@ gettable(id)
}
else if (is_class_id(id)) {
if (in_single) return NEW_CVAR3(id);
- if (class_nest ==0 && cur_mid)
- return NEW_CVAR2(id);
- else return NEW_CVAR(id);
+ if (cur_mid) return NEW_CVAR2(id);
+ return NEW_CVAR(id);
}
rb_bug("invalid id for gettable");
return 0;
@@ -4005,11 +4004,7 @@ assignable(id, val)
}
else if (is_class_id(id)) {
if (in_single) return NEW_CVASGN3(id, val);
- if (cur_mid) {
- if (class_nest == 0)
- return NEW_CVASGN2(id, val);
- return NEW_CVASGN(id, val);
- }
+ if (cur_mid) return NEW_CVASGN2(id, val);
return NEW_CVDECL(id, val);
}
else {
@@ -4098,7 +4093,6 @@ node_assign(lhs, rhs)
case NODE_DASGN_CURR:
case NODE_MASGN:
case NODE_CDECL:
- case NODE_CVASGN:
case NODE_CVDECL:
lhs->nd_value = rhs;
break;
diff --git a/version.h b/version.h
index c30d1566ff..4008e6b938 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
#define RUBY_VERSION "1.6.0"
-#define RUBY_RELEASE_DATE "2000-08-28"
+#define RUBY_RELEASE_DATE "2000-08-29"
#define RUBY_VERSION_CODE 160
-#define RUBY_RELEASE_CODE 20000828
+#define RUBY_RELEASE_CODE 20000829