slot-ref, slot-set! et al bypass "using-class" variants
[bpt/guile.git] / module / ice-9 / eval-string.scm
index 27448d7..7899809 100644 (file)
@@ -1,6 +1,6 @@
 ;;; Evaluating code from users
 
-;;; Copyright (C) 2011 Free Software Foundation, Inc.
+;;; Copyright (C) 2011, 2013 Free Software Foundation, Inc.
 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -22,6 +22,7 @@
   #:use-module (system base compile)
   #:use-module (system base language)
   #:use-module (system vm program)
+  #:use-module (system vm loader)
   #:replace (eval-string))
 
 (define (ensure-language x)
@@ -30,7 +31,7 @@
       (lookup-language x)))
 
 (define* (read-and-eval port #:key (lang (current-language)))
-  (with-fluids ((*current-language* (ensure-language lang)))
+  (parameterize ((current-language (ensure-language lang)))
     (define (read)
       ((language-reader (current-language)) port (current-module)))
     (define (eval exp)
@@ -84,5 +85,6 @@
               (set-port-column! port line))
 
           (if (or compile? (not (language-evaluator lang)))
-              ((make-program (read-and-compile port #:from lang #:to 'objcode)))
+              ((load-thunk-from-memory
+                (read-and-compile port #:from lang #:to 'bytecode)))
               (read-and-eval port #:lang lang))))))))