~ chicken-core (chicken-5) e5c59af14c2c01b2c7d51944d67e6e7099a47407


commit e5c59af14c2c01b2c7d51944d67e6e7099a47407
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Nov 13 16:19:24 2009 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Nov 13 16:19:24 2009 +0100

    standard-extension should use keyword args

diff --git a/manual/Extensions b/manual/Extensions
index 34b4336b..e9103538 100644
--- a/manual/Extensions
+++ b/manual/Extensions
@@ -160,7 +160,7 @@ files in {{FILELIST}} to executable (for installing shell-scripts).
 
 ==== standard-extension
 
- [procedure] (standard-extension ID VERSION [STATIC])
+ [procedure] (standard-extension ID VERSION #!key static info)
 
 A convenience procedure that combines the compilation and installation of 
 a simple single-file extension. This is roughly equivalent to:
@@ -173,7 +173,8 @@ a simple single-file extension. This is roughly equivalent to:
    'ID
    '("ID.o" "ID.so" "ID.import.so")
    '((version 1.0)
-     (static "ID.o")))   ; STATIC ...
+     ... `INFO' ...
+     (static "ID.o")))   ; if `static' is given and true
 
 
 ==== run
diff --git a/setup-api.scm b/setup-api.scm
index bd156720..9ca75c5d 100644
--- a/setup-api.scm
+++ b/setup-api.scm
@@ -494,7 +494,7 @@
 
 ;;; Convenience function
 
-(define (standard-extension name version #!optional (static #t))
+(define (standard-extension name version #!key (static #t) (info '()))
   (let* ((sname (->string name))
 	 (fname (make-pathname #f sname "scm"))
 	 (iname (make-pathname #f sname "import.scm")))
@@ -508,6 +508,7 @@
 	   (pathname-replace-extension iname "so")
 	   (make-pathname #f sname "setup"))
      `((version ,version)
+       ,@info
        ,@(if static `((static ,(make-pathname #f fname "o"))) '())))))
 
 
Trap