~ chicken-core (chicken-5) 518dbf433ceb8b29a4b5aeddc7d6b19cee0ba15a


commit 518dbf433ceb8b29a4b5aeddc7d6b19cee0ba15a
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Nov 13 16:13:54 2009 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sun Nov 22 11:13:26 2009 +0100

    added import-only extension property
    
    Signed-off-by: felix <felix@call-with-current-continuation.org>

diff --git a/eval.scm b/eval.scm
index 8e9dba95..d849db32 100644
--- a/eval.scm
+++ b/eval.scm
@@ -1262,13 +1262,14 @@
 	       (let ((info (##sys#extension-information id 'require-extension)))
 		 (cond (info
 			(let ((s (assq 'syntax info))
+			      (nr (assq 'import-only info))
 			      (rr (assq 'require-at-runtime info)) )
 			  (when s (add-req id #t))
 			  (values 
 			   (impform
 			    `(##core#begin
 			       ,@(if s `((##core#require-for-syntax ',id)) '())
-			       ,@(if (and (not rr) s)
+			       ,@(if (or nr (and (not rr) s))
 				     '()
 				     `((##sys#require
 					,@(map (lambda (id) `',id)
diff --git a/manual/Extensions b/manual/Extensions
index fd361f3f..e9103538 100644
--- a/manual/Extensions
+++ b/manual/Extensions
@@ -112,6 +112,13 @@ as a file containing macros to be loaded at compile/macro-expansion time.
 Specifies extensions that should be loaded (via {{require}}) at runtime. This is mostly
 useful for syntax extensions that need additional support code at runtime.
 
+===== import-only
+
+  [extension property] (import-only)
+
+Specifies that this extension only provides a expansion-time code in an import library and
+does not require code to be loaded at runtime.
+
 ===== version
 
  [extension property] (version STRING)
Trap