[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 05/58: compile: Load language modules upfront.

From: Andy Wingo
Subject: [Guile-commits] 05/58: compile: Load language modules upfront.
Date: Tue, 7 Aug 2018 06:58:29 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit c91e9e9220aca3d1d3245a742fcadf3e0d8f472c
Author: Ludovic Court├Ęs <address@hidden>
Date:   Fri Dec 22 16:57:54 2017 +0100

    compile: Load language modules upfront.
    Fixes a bug whereby "guild compile --target=arm-linux-gnueabihf
    --from=elisp ... language/elisp/boot.el" would fail with an exception
    from 'load-thunk-from-memory' while trying to load (language elisp spec)
    from the guile-being-compiled instead of using that of the
    The problem did not manifest with --from=scheme because (language scheme
    spec) happened to be already loaded before we had changed %load-path.
    * module/scripts/compile.scm (compile): Add calls to 'lookup-language'.
 module/scripts/compile.scm | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/module/scripts/compile.scm b/module/scripts/compile.scm
index 26c79f1..5aa58d3 100644
--- a/module/scripts/compile.scm
+++ b/module/scripts/compile.scm
@@ -1,6 +1,6 @@
 ;;; Compile --- Command-line Guile Scheme compiler  -*- coding: iso-8859-1 -*-
-;; Copyright 2005, 2008-2011, 2013, 2014, 2015, 2018 Free Software Foundation, 
+;; Copyright 2005,2008-2011,2013-2015,2017-2018 Free Software Foundation, Inc.
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public License
@@ -29,6 +29,7 @@
 ;;; Code:
 (define-module (scripts compile)
+  #:use-module ((system base language) #:select (lookup-language))
   #:use-module ((system base compile) #:select (compile-file))
   #:use-module (system base target)
   #:use-module (system base message)
@@ -212,6 +213,13 @@ Report bugs to <~A>.~%"
           (exit 0)))
+    ;; Load FROM and TO before we have changed the load path.  That way, when
+    ;; cross-compiling Guile itself, we can be sure we're loading our own
+    ;; language modules and not those of the Guile being compiled, which may
+    ;; have incompatible .go files.
+    (lookup-language from)
+    (lookup-language to)
     (set! %load-path (append load-path %load-path))
     (set! %load-should-auto-compile #f)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]