diff --git a/il-structs.rkt b/il-structs.rkt index 0f1eb0f..242ed22 100644 --- a/il-structs.rkt +++ b/il-structs.rkt @@ -395,7 +395,8 @@ ;; Installs a module record into the machine -(define-struct: InstallModuleEntry! ([name : ModuleName] +(define-struct: InstallModuleEntry! ([name : Symbol] + [path : ModuleName] [entry-point : Symbol]) #:transparent) diff --git a/js-assembler/assemble-perform-statement.rkt b/js-assembler/assemble-perform-statement.rkt index 5183d03..b707de9 100644 --- a/js-assembler/assemble-perform-statement.rkt +++ b/js-assembler/assemble-perform-statement.rkt @@ -127,5 +127,6 @@ [(InstallModuleEntry!? op) (format "MACHINE.modules[~s]=new RUNTIME.ModuleRecord(~s, ~a);" - (symbol->string (ModuleName-name (InstallModuleEntry!-name op))) + (symbol->string (ModuleName-name (InstallModuleEntry!-path op))) + (symbol->string (InstallModuleEntry!-name op)) (assemble-label (make-Label (InstallModuleEntry!-entry-point op))))])) diff --git a/simulator/simulator-structs.rkt b/simulator/simulator-structs.rkt index e9cd0b7..1312322 100644 --- a/simulator/simulator-structs.rkt +++ b/simulator/simulator-structs.rkt @@ -62,7 +62,8 @@ #:mutable) -(define-struct: module-record ([name : ModuleName] +(define-struct: module-record ([name : Symbol] + [self-path : Symbol] [label : Symbol] [invoked? : Boolean] [exports : (HashTable Symbol PrimitiveValue)]) diff --git a/simulator/simulator.rkt b/simulator/simulator.rkt index 0913686..5ea727f 100644 --- a/simulator/simulator.rkt +++ b/simulator/simulator.rkt @@ -412,8 +412,10 @@ [(InstallModuleEntry!? op) (hash-set! (machine-modules m) - (ModuleName-name (InstallModuleEntry!-name op)) + (ModuleName-name (InstallModuleEntry!-path op)) (make-module-record (InstallModuleEntry!-name op) + (ModuleName-name + (InstallModuleEntry!-path op)) (InstallModuleEntry!-entry-point op) #f (make-hash)))