From 5dbc840626b2c34b5a070261da7ff181c731810e Mon Sep 17 00:00:00 2001
From: Nikodemus Siivola <nikodemus@random-state.net>
Date: Tue, 5 May 2009 10:41:26 +0300
Subject: [PATCH] OPERATE binds *PACKAGE* and *READTABLE*

OPERATE is sufficiently like LOAD and COMPILE-FILE that it makes
  sense for it to guard against malformed operations which might
  change current package or readtable. (Like eg. CFFI-GROVEL file used
  to do until recently.)
---
 asdf.lisp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/asdf.lisp b/asdf.lisp
index 82370011..aa1066b3 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1028,7 +1028,9 @@ method.")
 
 (defun operate (operation-class system &rest args &key (verbose t) version
                 &allow-other-keys)
-  (let* ((op (apply #'make-instance operation-class
+  (let* ((*package* *package*)
+         (*readtable* *readtable*)
+         (op (apply #'make-instance operation-class
                     :original-initargs args
                     args))
          (*verbose-out* (if verbose *standard-output* (make-broadcast-stream)))
-- 
GitLab