[Gd-chatter] r11176 - in trunk/fundev/sources/dfmc: back-end-protocol browser-support namespace

hannes at gwydiondylan.org hannes at gwydiondylan.org
Tue Feb 13 03:17:04 CET 2007


Author: hannes
Date: Tue Feb 13 03:17:02 2007
New Revision: 11176

Modified:
   trunk/fundev/sources/dfmc/back-end-protocol/back-end.dylan
   trunk/fundev/sources/dfmc/back-end-protocol/library.dylan
   trunk/fundev/sources/dfmc/browser-support/browser-support-library.dylan
   trunk/fundev/sources/dfmc/browser-support/debug-info-api.dylan
   trunk/fundev/sources/dfmc/namespace/interactive-namespace.dylan
Log:
Bug: fd
fixes to get playground working.

This change was done by rayiner, http://www.opendylan.org/~rayiner/interactive-fix.diff
the latest win32-built also contained these changes

Modified: trunk/fundev/sources/dfmc/back-end-protocol/back-end.dylan
==============================================================================
--- trunk/fundev/sources/dfmc/back-end-protocol/back-end.dylan	(original)
+++ trunk/fundev/sources/dfmc/back-end-protocol/back-end.dylan	Tue Feb 13 03:17:02 2007
@@ -55,10 +55,11 @@
          end, $back-end-registry)
 end;
 
-define sideways method current-back-end () => (back-end)
-  let name = current-back-end-name();
+define function find-back-end-object (name :: <symbol>,
+                                      architecture :: <symbol>,
+                                      os :: <symbol>) => (back-end)
   if (name ~== *cached-back-end-name*)
-    let entries = find-back-end(name, current-processor-name(), current-os-name());
+    let entries = find-back-end(name, architecture, os);
     if (~ empty?(entries))
       *cached-back-end* := make(back-end-class(first(entries)));
       *cached-back-end-name* := name;
@@ -68,3 +69,12 @@
   end;
   *cached-back-end*
 end;
+
+define sideways method current-back-end () => (back-end)
+  if (current-library-description())
+    let name = current-back-end-name();
+    let arch = current-processor-name();
+    let os = current-os-name();
+    find-back-end-object(name, arch, os)
+  end;
+end;

Modified: trunk/fundev/sources/dfmc/back-end-protocol/library.dylan
==============================================================================
--- trunk/fundev/sources/dfmc/back-end-protocol/library.dylan	(original)
+++ trunk/fundev/sources/dfmc/back-end-protocol/library.dylan	Tue Feb 13 03:17:02 2007
@@ -30,6 +30,8 @@
     raw-mangle,
 
     register-back-end,
-    find-back-end;
+    find-back-end,
+    find-back-end-object;
 end module;
 
+

Modified: trunk/fundev/sources/dfmc/browser-support/browser-support-library.dylan
==============================================================================
--- trunk/fundev/sources/dfmc/browser-support/browser-support-library.dylan	(original)
+++ trunk/fundev/sources/dfmc/browser-support/browser-support-library.dylan	Tue Feb 13 03:17:02 2007
@@ -17,6 +17,7 @@
   use dfmc-management;
   use dfmc-namespace;
   use dfmc-back-end;
+  use dfmc-back-end-protocol;
 
   use dfmc-linker;
   use dfmc-c-ffi;
@@ -45,6 +46,7 @@
   use dfmc-management, export: all;
   use dfmc-linker, export: all;
   use dfmc-back-end, export: all;
+  use dfmc-back-end-protocol, export: all;
 end module;
 
 define macro interface-module-definer
@@ -334,6 +336,7 @@
   use dfmc-derived-information;
   use dfmc-interactive-execution;
   use dfmc-browser-back-end;
+  use dfmc-back-end-protocol;
   // Use prefix to avoid conflicts with interface names.
   use browser-used-modules, prefix: "dfmc-";
 end module;

Modified: trunk/fundev/sources/dfmc/browser-support/debug-info-api.dylan
==============================================================================
--- trunk/fundev/sources/dfmc/browser-support/debug-info-api.dylan	(original)
+++ trunk/fundev/sources/dfmc/browser-support/debug-info-api.dylan	Tue Feb 13 03:17:02 2007
@@ -12,9 +12,11 @@
 
 define function context-back-end 
     (context :: dfmc-<library-description>)
-    => (back-end :: dfmc-<back-end>)
-  ignore(context);
-  dfmc-current-back-end();  // Is this safe ???
+    => (back-end)
+  let name = dfmc-library-description-compiler-back-end-name(context);
+  let os = dfmc-library-description-os-name(context);
+  let arch = dfmc-library-description-processor-name(context);
+  find-back-end-object(name, arch, os)
 end function;
 
 
@@ -378,3 +380,4 @@
   context.compilation-context-dylan-component-name;
 end function;
 
+

Modified: trunk/fundev/sources/dfmc/namespace/interactive-namespace.dylan
==============================================================================
--- trunk/fundev/sources/dfmc/namespace/interactive-namespace.dylan	(original)
+++ trunk/fundev/sources/dfmc/namespace/interactive-namespace.dylan	Tue Feb 13 03:17:02 2007
@@ -38,6 +38,8 @@
   inherited slot compiled-to-definitions? = #t;
   constant slot interactive-library-target,
     required-init-keyword: target:;
+  constant slot interactive-library-compiler-back-end-name :: <symbol>,
+    required-init-keyword: back-end:;
   constant slot interactive-library-os-name :: <symbol>,
     required-init-keyword: os:;
   constant slot interactive-library-processor-name :: <symbol>,
@@ -69,6 +71,11 @@
   0
 end method;
 
+define method library-description-compiler-back-end-name
+    (ild :: <interactive-library-description>) => (name :: <symbol>)
+  ild.interactive-library-compiler-back-end-name
+end method;
+
 define method library-description-os-name
     (ild :: <interactive-library-description>) => (name :: <symbol>)
   ild.interactive-library-os-name
@@ -696,6 +703,7 @@
 		 used-libraries: used-libraries-for-target(ld, target),
 		 target: target,
 		 // TODO: these should come from the target, or at least match it
+		 back-end: ld.library-description-compiler-back-end-name, 
 		 os: ld.library-description-os-name,
 		 processor: ld.library-description-processor-name,
 		 major-version: ld.library-description-major-version,



More information about the chatter mailing list