From 4e560cffd6266c08cb856d1b2c25f796522bcc9e Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 29 Aug 2000 02:52:41 +0000 Subject: matz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 ++++++++- ToDo | 7 +------ eval.c | 15 +-------------- ext/extmk.rb.in | 7 ++++++- gc.c | 1 - lib/mkmf.rb | 14 ++++++++++---- node.h | 2 -- parse.y | 12 +++--------- version.h | 4 ++-- 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 + + * 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. @@ -9,7 +15,8 @@ Mon Aug 28 18:43:54 2000 Yukihiro Matsumoto * 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 . Fri Aug 25 15:24:39 2000 Yukihiro Matsumoto 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 -- cgit v1.2.3