~ chicken-core (chicken-5) 5c70f58b6c562c5449d8b1709da663af36fe1445


commit 5c70f58b6c562c5449d8b1709da663af36fe1445
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Aug 31 11:44:50 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Aug 31 11:44:50 2011 +0200

    show correct extension-id when complaining about a missing extension

diff --git a/compiler.scm b/compiler.scm
index 91dc28ab..a68b01fa 100644
--- a/compiler.scm
+++ b/compiler.scm
@@ -600,7 +600,8 @@
 			      (if (null? ids)
 				  '(##core#undefined)
 				  (let ((id (car ids)))
-				    (let-values (((exp f) (##sys#do-the-right-thing id #t imp?)))
+				    (let-values (((exp f realid)
+						  (##sys#do-the-right-thing id #t imp?)))
 				      (unless (or f 
 						  (and (symbol? id)
 						       (or (feature? id)
@@ -609,7 +610,7 @@
 							     id 'require-extension)
 							    #f)) ) ) 
 					(warning 
-					 (sprintf "extension `~A' is currently not installed" id)))
+					 (sprintf "extension `~A' is currently not installed" realid)))
 				      `(##core#begin ,exp ,(loop (cdr ids))) ) ) ) )
 			    e se dest ldest h) ) )
 
diff --git a/eval.scm b/eval.scm
index 35a45f8f..5aec2ce2 100644
--- a/eval.scm
+++ b/eval.scm
@@ -686,7 +686,7 @@
 			     (let loop ([ids (##sys#strip-syntax (cadr x))])
 			       (if (null? ids)
 				   '(##core#undefined)
-				   (let-values (((exp _) 
+				   (let-values (((exp f real-id) 
 						 (##sys#do-the-right-thing (car ids) #f imp?)))
 				     `(##core#begin ,exp ,(loop (cdr ids))) ) ) )
 			     e #f tf cntr se) ) ]
@@ -1262,7 +1262,7 @@
 		   (if comp?
 		       (memq id builtin-features/compiled)
 		       (##sys#feature? id) ) )
-	       (values (impform '(##core#undefined) impid #t) #t) )
+	       (values (impform '(##core#undefined) impid #t) #t id) )
 	      ((memq id ##sys#core-library-modules)
 	       (values
 		(impform
@@ -1270,7 +1270,7 @@
 		     `(##core#declare (uses ,id))
 		     `(##sys#load-library ',id #f) )
 		 impid #f)
-		#t) )
+		#t id) )
 	      ((memq id ##sys#core-syntax-modules)
 	       (values
 		(impform
@@ -1278,7 +1278,7 @@
 		     `(##core#declare (uses ,id))
 		     `(##sys#load-library ',id #f) )
 		 impid #t)
-		#t) )
+		#t id) )
 	      ((memq id ##sys#explicit-library-modules)
 	       (let* ((info (##sys#extension-information id 'require-extension))
 		      (nr (assq 'import-only info))
@@ -1293,7 +1293,7 @@
 			      `(##sys#load-library ',id #f) )
 			  '(##core#undefined))
 		      impid #f))
-		  #t) ) )
+		  #t id) ) )
 	      (else
 	       (let ((info (##sys#extension-information id 'require-extension)))
 		 (cond (info
@@ -1314,14 +1314,14 @@
 						(cond (rr (cdr rr))
 						      (else (list id)) ) ) ) ) ) ) )
 			    impid #f)
-			   #t) ) )
+			   #t id) ) )
 		       (else
 			(add-req id #f)
 			(values
 			 (impform
 			  `(##sys#require ',id) 
 			  impid #f)
-			 #f)))))))
+			 #f id)))))))
       (cond ((and (pair? id) (symbol? (car id)))
 	     (case (car id)
 	       ((srfi)
@@ -1334,7 +1334,7 @@
 				       (set! f (or f f2))
 				       exp)))
 				 (cdr id)))))
-		  (values exp f)))
+		  (values exp f id)))	;XXX `id' not fully correct
 	       ((rename except only prefix)
 		(let follow ((id2 id))
 		  (if (and (pair? id2) (pair? (cdr id2)))
Trap