Update of /var/lib/cvs/src/d2c/compiler/convert
In directory cantor:/tmp/cvs-serv31486/convert
Modified Files:
Tag: GD_2_5
defclass.dylan defconstvar.dylan defdclass.dylan deffunc.dylan
deflibmod.dylan defmacro.dylan
Log Message:
Elimination of *current-module* and *current-library* throughout
the compiler (except for main, where it doesn't hurt).
Index: defclass.dylan
===================================================================
RCS file: /var/lib/cvs/src/d2c/compiler/convert/defclass.dylan,v
retrieving revision 1.46.2.3
retrieving revision 1.46.2.4
diff -u -d -r1.46.2.3 -r1.46.2.4
--- defclass.dylan 3 Feb 2004 05:35:56 -0000 1.46.2.3
+++ defclass.dylan 4 Feb 2004 07:13:26 -0000 1.46.2.4
@@ -366,7 +366,10 @@
// accessors.
define method process-top-level-form (form :: <define-class-parse>) => ();
- let name = form.defclass-name.token-symbol;
+ let token = form.defclass-name;
+ let name = token.token-symbol;
+ let module = token.token-module;
+ let library = module.module-home;
let (class-functional?-frag, class-sealed?-frag, class-primary?-frag,
class-abstract?-frag)
= extract-properties(form.defclass-options, #"functional", #"sealed",
@@ -402,9 +405,9 @@
let defn = make(<local-class-definition>,
name: make(<basic-name>,
symbol: name,
- module: *Current-Module*),
+ module: module),
source-location: form.source-location,
- library: *Current-Library*,
+ library: library,
supers: form.defclass-superclass-exprs,
functional: class-functional?,
sealed: class-sealed?,
@@ -419,17 +422,17 @@
// Implicity define the accessor generics.
if (slot.slot-defn-sizer-defn)
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-getter-name, 2, #f, #f);
+ (library, slot.slot-defn-getter-name, 2, #f, #f);
if (slot.slot-defn-setter-name)
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-setter-name, 3, #f, #f);
+ (library, slot.slot-defn-setter-name, 3, #f, #f);
end;
else
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-getter-name, 1, #f, #f);
+ (library, slot.slot-defn-getter-name, 1, #f, #f);
if (slot.slot-defn-setter-name)
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-setter-name, 2, #f, #f);
+ (library, slot.slot-defn-setter-name, 2, #f, #f);
end;
end;
end;
@@ -561,15 +564,16 @@
"Can't supply both an init-keyword: and a required-init-keyword:.");
end;
+ let module = slot.slot-parse-name.token-module;
let getter-name = make(<basic-name>, symbol: getter,
- module: *Current-Module*);
+ module: module);
let setter-name = setter & make(<basic-name>, symbol: setter,
- module: *Current-Module*);
+ module: module);
let size-defn
= if (sizer)
let sizer-name
- = make(<basic-name>, symbol: sizer, module: *Current-Module*);
+ = make(<basic-name>, symbol: sizer, module: module);
unless (allocation == #"instance")
compiler-fatal-error-location
@@ -708,12 +712,13 @@
end if;
end;
+ let module = slot.inherited-slot-parse-name.token-module;
add!(overrides,
make(<override-defn>,
getter-name:
make(<basic-name>,
symbol: slot.inherited-slot-parse-name.token-symbol,
- module: *Current-Module*),
+ module: module),
init-value: init-value,
init-function: init-function));
end method process-slot;
Index: defconstvar.dylan
===================================================================
RCS file: /var/lib/cvs/src/d2c/compiler/convert/defconstvar.dylan,v
retrieving revision 1.10.4.1
retrieving revision 1.10.4.2
diff -u -d -r1.10.4.1 -r1.10.4.2
--- defconstvar.dylan 3 Feb 2004 05:35:57 -0000 1.10.4.1
+++ defconstvar.dylan 4 Feb 2004 07:13:27 -0000 1.10.4.2
@@ -248,9 +248,9 @@
let defn = make(defn-class,
name: make(<basic-name>,
symbol: name.token-symbol,
- module: *Current-Module*),
+ module: name.token-module),
source-location: source,
- library: *Current-Library*);
+ library: name.token-module.module-home);
note-variable-definition(defn);
defn;
end;
@@ -288,9 +288,9 @@
let defn = make(defn-class,
name: make(<basic-name>,
symbol: name.token-symbol,
- module: *Current-Module*),
+ module: name.token-module),
source-location: source,
- library: *Current-Library*,
+ library: name.token-module.module-home,
inline-type: inline-type | #"default-inline",
movable: movable?,
flushable: flushable? | movable?);
Index: defdclass.dylan
===================================================================
RCS file: /var/lib/cvs/src/d2c/compiler/convert/defdclass.dylan,v
retrieving revision 1.8.4.1
retrieving revision 1.8.4.2
diff -u -d -r1.8.4.1 -r1.8.4.2
--- defdclass.dylan 3 Feb 2004 05:35:57 -0000 1.8.4.1
+++ defdclass.dylan 4 Feb 2004 07:13:27 -0000 1.8.4.2
@@ -141,6 +141,8 @@
(form :: <define-designator-class-parse>)
=> ();
let name = form.defclass-name.token-symbol;
+ let module = form.defclass-name.token-module;
+ let library = module.module-home;
let (class-functional?-frag, class-sealed?-frag, class-primary?-frag,
class-abstract?-frag,
c-name-frag, referenced-type-frag, pack-frag, c-rep-frag,
@@ -217,8 +219,8 @@
let defn = make(<local-designator-class-definition>,
name: make(<basic-name>,
symbol: name,
- module: *Current-Module*),
- library: *Current-Library*,
+ module: module),
+ library: library,
supers: form.defclass-superclass-exprs,
functional: class-functional?,
sealed: class-sealed?,
@@ -246,17 +248,17 @@
// Implicitly define the accessor generics.
if (slot.slot-defn-sizer-defn)
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-getter-name, 2, #f, #f);
+ (library, slot.slot-defn-getter-name, 2, #f, #f);
if (slot.slot-defn-setter-name)
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-setter-name, 3, #f, #f);
+ (library, slot.slot-defn-setter-name, 3, #f, #f);
end;
else
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-getter-name, 1, #f, #f);
+ (library, slot.slot-defn-getter-name, 1, #f, #f);
if (slot.slot-defn-setter-name)
implicitly-define-generic
- (*Current-Library*, slot.slot-defn-setter-name, 2, #f, #f);
+ (library, slot.slot-defn-setter-name, 2, #f, #f);
end;
end;
end;
Index: deffunc.dylan
===================================================================
RCS file: /var/lib/cvs/src/d2c/compiler/convert/deffunc.dylan,v
retrieving revision 1.10.4.1
retrieving revision 1.10.4.2
diff -u -d -r1.10.4.1 -r1.10.4.2
--- deffunc.dylan 3 Feb 2004 05:35:57 -0000 1.10.4.1
+++ deffunc.dylan 4 Feb 2004 07:13:27 -0000 1.10.4.2
@@ -146,6 +146,7 @@
method-expr.method-ref-method;
end for;
method-parse.method-name := extract-name(name-frag);
+ let module = method-parse.method-name.token-module;
if (*implicitly-define-next-method*)
let params = method-parse.method-parameters;
unless (params.paramlist-next)
@@ -153,7 +154,7 @@
:= make(<identifier-token>,
kind: $raw-ordinary-word-token,
symbol: #"next-method",
- module: *current-module*);
+ module: module);
end unless;
end if;
generate-fragment
@@ -304,6 +305,7 @@
define method process-top-level-form (form :: <define-generic-parse>) => ();
let name = form.defgeneric-name.token-symbol;
+ let module = form.defgeneric-name.token-module;
let (sealed-frag, movable-frag, flushable-frag)
= extract-properties(form.defgeneric-options,
#"sealed", #"movable", #"flushable");
@@ -313,9 +315,9 @@
let defn = make(<generic-definition>,
name: make(<basic-name>,
symbol: name,
- module: *Current-Module*),
+ module: module),
source-location: form.source-location,
- library: *Current-Library*,
+ library: module.module-home,
sealed: sealed?,
movable: movable?,
flushable: flushable? | movable?);
@@ -354,25 +356,28 @@
define method process-top-level-form
(form :: <define-sealed-domain-parse>) => ();
+ let module = form.sealed-domain-name.token-module;
add!(*Top-Level-Forms*,
make(<define-sealed-domain-tlf>,
name: make(<basic-name>,
symbol: form.sealed-domain-name.token-symbol,
- module: *Current-Module*),
+ module: module),
type-exprs: form.sealed-domain-type-exprs,
source-location: form.source-location,
- library: *Current-Library*));
+ library: module.module-home));
end;
define method process-top-level-form (form :: <define-method-parse>) => ();
let parse = form.defmethod-method;
let name = parse.method-name.token-symbol;
+ let module = parse.method-name.token-module;
+ let library = module.module-home;
let (sealed?-frag, inline-type-frag, movable?-frag, flushable?-frag)
= extract-properties(form.defmethod-options,
#"sealed", #"inline-type", #"movable", #"flushable");
- let base-name = make(<basic-name>, symbol: name, module: *Current-Module*);
+ let base-name = make(<basic-name>, symbol: name, module: module);
let params = parse.method-parameters;
- implicitly-define-generic(*Current-Library*, base-name,
+ implicitly-define-generic(library, base-name,
params.varlist-fixed.size,
params.varlist-rest & ~params.paramlist-keys,
params.paramlist-keys & #t);
@@ -383,7 +388,7 @@
let flushable? = flushable?-frag & extract-boolean(flushable?-frag);
let tlf = make(<real-define-method-tlf>,
base-name: base-name,
- library: *Current-Library*,
+ library: library,
source-location: form.source-location,
sealed: sealed?,
inline-type: inline-type | #"default-inline",
Index: deflibmod.dylan
===================================================================
RCS file: /var/lib/cvs/src/d2c/compiler/convert/deflibmod.dylan,v
retrieving revision 1.3.4.2
retrieving revision 1.3.4.3
diff -u -d -r1.3.4.2 -r1.3.4.3
--- deflibmod.dylan 3 Feb 2004 05:35:57 -0000 1.3.4.2
+++ deflibmod.dylan 4 Feb 2004 07:13:27 -0000 1.3.4.3
@@ -114,8 +114,9 @@
define method process-top-level-form (form :: <define-module-tlf>) => ();
let name = form.define-module-name;
+ let library = name.token-module.module-home;
note-context(form);
- note-module-definition(*Current-Library*, name, form.define-module-uses,
+ note-module-definition(library, name, form.define-module-uses,
form.define-module-exports,
form.define-module-creates);
end-of-context();
@@ -123,7 +124,7 @@
// This call to find-module can't fail because note-module-definition
// creates the module.
form.define-module-module
- := find-module(*Current-Library*, name.token-symbol);
+ := find-module(library, name.token-symbol);
add!(*Top-Level-Forms*, form);
end;
@@ -166,7 +167,8 @@
= load-object-dispatch(state);
assert-end-object(state);
note-module-definition
- (*Current-Library*, name, uses, exports, creates);
+ (name.token-module.module-home,
+ name, uses, exports, creates);
name.token-symbol;
end);
Index: defmacro.dylan
===================================================================
RCS file: /var/lib/cvs/src/d2c/compiler/convert/defmacro.dylan,v
retrieving revision 1.4.4.2
retrieving revision 1.4.4.3
diff -u -d -r1.4.4.2 -r1.4.4.3
--- defmacro.dylan 3 Feb 2004 05:35:57 -0000 1.4.4.2
+++ defmacro.dylan 4 Feb 2004 07:13:27 -0000 1.4.4.3
@@ -74,8 +74,10 @@
//
define method process-top-level-form (defmacro :: <define-macro-parse>)
=> ();
- let defn = make(<macro-definition>, module: *Current-Module*,
- library: *Current-Library*, defmacro: defmacro);
+ let module = defmacro.defmacro-name.token-module;
+ let library = module.module-home;
+ let defn = make(<macro-definition>, module: module,
+ library: library, defmacro: defmacro);
note-variable-definition(defn);
add!(*Top-Level-Forms*, make(<define-macro-tlf>,
defn: defn,
_______________________________________________
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
http://www.gwydiondylan.org/mailman/listinfo/gd-chatter
|