~ 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