summaryrefslogtreecommitdiffstats
path: root/mkpltcat.scm
diff options
context:
space:
mode:
authorThomas Bushnell, BSG <tb@debian.org>2008-02-04 20:29:13 -0500
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:41 -0800
commit71dab84adaa579f9386dd8ee09006d3cac625723 (patch)
tree8022514642d25edffdb4bdd130020674b0efd844 /mkpltcat.scm
parent897451458bd8eec628c7bbfaccba0dd069830f0f (diff)
parent4684239efa63dc1b2c1cbe37ef7d3062029f5532 (diff)
downloadslib-77dc1eb872cc62e517c7d19b7b65767bad80f2ef.tar.gz
slib-77dc1eb872cc62e517c7d19b7b65767bad80f2ef.zip
Import Debian changes 3b1-1debian/3b1-1
slib (3b1-1) unstable; urgency=low * New upstream release. * guile.init (library-vicinity): Repeat change from 3a4-2. * slib.texi (Library Catalogs): Repeat change from 3a3-3. * slib.sh: Repeat change from 3a5-3. * slib.1: Repeat change from 3a5-4. * Makefile: Repeat change from 3a2-1.
Diffstat (limited to 'mkpltcat.scm')
-rw-r--r--mkpltcat.scm54
1 files changed, 54 insertions, 0 deletions
diff --git a/mkpltcat.scm b/mkpltcat.scm
new file mode 100644
index 0000000..80d4414
--- /dev/null
+++ b/mkpltcat.scm
@@ -0,0 +1,54 @@
+;;;; "mkimpcat.scm" Build mzscheme-specific catalog for SLIB.
+;;; This code is in the public domain.
+;;; Author: Aubrey Jaffer.
+
+(let ((catname "implcat"))
+ (define ivcatname (in-vicinity (implementation-vicinity) catname))
+ (if (file-exists? ivcatname) (delete-file ivcatname))
+ (call-with-output-file ivcatname
+ (lambda (op)
+ (define (display* . args)
+ (for-each (lambda (arg) (display arg op)) args)
+ (newline op))
+ (define (add-alias from to)
+ (display " " op)
+ (write (cons from to) op)
+ (newline op))
+ (define (add-srfi feature)
+ (let ((str (symbol->string feature)))
+ (define len (string-length str))
+ (cond ((not (and (> len 5)
+ (string-ci= "srfi-" (substring str 0 5))))
+ (error 'add-srfi 'bad 'srfi 'name feature)))))
+
+ (display* ";\"" catname "\" Implementation-specific SLIB catalog for "
+ (scheme-implementation-type) (scheme-implementation-version)
+ ". -*-scheme-*-")
+ (display* ";")
+ (display* "; DO NOT EDIT THIS FILE")
+ (display* "; it is automagically generated by \""
+ (current-load-relative-directory)
+ "mkimpcat.scm"
+ "\"")
+ (display*)
+
+ ;;; Output association lists to file "implcat"
+ (display* "(")
+ (do ((kdx 0 (+ 1 kdx)))
+ ((>= kdx 150))
+ (let ((kstr (number->string kdx)))
+ (cond ((file-exists?
+ (build-path (collection-path "srfi")
+ (string-append kstr ".ss")))
+ (display " " op)
+ (write `(,(string->symbol (string-append "srfi-" kstr))
+ compiled
+ (lib ,(string-append kstr ".ss") "srfi"))
+ op)
+ (newline op)))))
+
+ (if (string>? (version) "370")
+ (add-alias 'array 'srfi-63))
+ (add-alias 'logical 'srfi-60)
+ (display* ")")
+ )))