diff options
author | Andy Wingo <wingo@pobox.com> | 2012-06-22 13:18:02 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2012-06-22 13:18:02 +0200 |
commit | 0dd7c5407599b65a1a3da4b9bd8feccc715b51f7 (patch) | |
tree | 7e54c75087c5ea3f876bcb54cc49c70ec87ae0b5 /module/oop/goops | |
parent | 747747ee06ac64c224b91e8f64f810a1159c1675 (diff) | |
parent | 2874f66017b7bfae256e85af84689d00ecc418ab (diff) | |
download | guile-0dd7c5407599b65a1a3da4b9bd8feccc715b51f7.tar.gz |
Merge remote-tracking branch 'origin/stable-2.0'
Conflicts:
libguile/deprecated.c
libguile/ports.c
libguile/ports.h
libguile/strports.c
test-suite/tests/cse.test
Diffstat (limited to 'module/oop/goops')
-rw-r--r-- | module/oop/goops/dispatch.scm | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/module/oop/goops/dispatch.scm b/module/oop/goops/dispatch.scm index b12ab15fa..de5359f3c 100644 --- a/module/oop/goops/dispatch.scm +++ b/module/oop/goops/dispatch.scm @@ -25,6 +25,7 @@ #:use-module (oop goops) #:use-module (oop goops util) #:use-module (oop goops compile) + #:use-module (system base target) #:export (memoize-method!) #:no-backtrace) @@ -178,11 +179,15 @@ '()) (acons gf gf-sym '())))) (define (comp exp vals) - (let ((p ((@ (system base compile) compile) exp - #:env *dispatch-module* - #:opts '(#:partial-eval? #f #:cse? #f)))) - (apply p vals))) - + ;; When cross-compiling Guile itself, the native Guile must generate + ;; code for the host. + (with-target %host-type + (lambda () + (let ((p ((@ (system base compile) compile) exp + #:env *dispatch-module* + #:opts '(#:partial-eval? #f #:cse? #f)))) + (apply p vals))))) + ;; kick it. (scan)) |