[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/01: compile: Load language modules upfront.
From: |
Ludovic Courtès |
Subject: |
[Guile-commits] 01/01: compile: Load language modules upfront. |
Date: |
Fri, 22 Dec 2017 11:01:34 -0500 (EST) |
civodul pushed a commit to branch stable-2.2
in repository guile.
commit 988aa29238fca862c7e2cb55f15762a69b4c16ce
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
guile-for-build.
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 939fb25..b4d6b31 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 Free Software Foundation, Inc.
+;; Copyright 2005, 2008-2011, 2013, 2014, 2015, 2017 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)
@@ -228,6 +229,13 @@ Report bugs to <~A>.~%"
%guile-bug-report-address)
(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)