summaryrefslogtreecommitdiffstats
path: root/manifest.txi
diff options
context:
space:
mode:
Diffstat (limited to 'manifest.txi')
-rw-r--r--manifest.txi145
1 files changed, 145 insertions, 0 deletions
diff --git a/manifest.txi b/manifest.txi
new file mode 100644
index 0000000..e9fe3ee
--- /dev/null
+++ b/manifest.txi
@@ -0,0 +1,145 @@
+@code{(require 'manifest)}
+@ftindex manifest
+
+@noindent
+In some of these examples, @var{slib:catalog} is the SLIB part of
+the catalog; it is free of compiled and implementation-specific
+entries. It would be defined by:
+
+@example
+(define slib:catalog (cdr (member (assq 'null *catalog*) *catalog*)))
+@end example
+
+
+@defun file->requires file provided? catalog
+
+Returns a list of the features @code{require}d by @var{file} assuming the
+predicate @var{provided?} and association-list @var{catalog}.
+@end defun
+@example
+(define (provided+? . features)
+ (lambda (feature)
+ (or (memq feature features) (provided? feature))))
+
+(file->requires "obj2str.scm" (provided+? 'compiling) '())
+ @result{} (string-port generic-write)
+
+(file->requires "obj2str.scm" provided? '())
+ @result{} (string-port)
+@end example
+
+
+@defun feature->requires feature provided? catalog
+
+Returns a list of the features @code{require}d by @var{feature} assuming the
+predicate @var{provided?} and association-list @var{catalog}.
+@end defun
+@example
+(feature->requires 'batch (provided+? 'compiling) *catalog*)
+ @result{} (tree line-i/o databases parameters string-port
+ pretty-print common-list-functions posix-time)
+
+(feature->requires 'batch provided? *catalog*)
+ @result{} (tree line-i/o databases parameters string-port
+ pretty-print common-list-functions)
+
+(feature->requires 'batch provided? '((batch . "batch")))
+ @result{} (tree line-i/o databases parameters string-port
+ pretty-print common-list-functions)
+@end example
+
+
+@defun file->loads file
+
+Returns a list of strings naming existing files loaded (load
+slib:load slib:load-source macro:load defmacro:load syncase:load
+synclo:load macwork:load) by @var{file} or any of the files it loads.
+@end defun
+@example
+(file->loads (in-vicinity (library-vicinity) "scainit.scm"))
+ @result{} ("/usr/local/lib/slib/scaexpp.scm"
+ "/usr/local/lib/slib/scaglob.scm"
+ "/usr/local/lib/slib/scaoutp.scm")
+@end example
+
+
+@defun load->path exp
+
+Given a @code{(load '<expr>)}, where <expr> is a string or vicinity
+stuff), @code{(load->path <expr>)} figures a path to the file.
+@code{load->path} returns that path if it names an existing file; otherwise #f.
+@end defun
+@example
+(load->path '(in-vicinity (library-vicinity) "mklibcat"))
+ @result{} "/usr/local/lib/slib/mklibcat.scm"
+@end example
+
+
+@defun file->definitions file
+
+Returns a list of the identifier symbols defined by SLIB (or
+SLIB-style) file @var{file}.
+@end defun
+@example
+(file->definitions "random.scm")
+ @result{} (*random-state* make-random-state
+ seed->random-state copy-random-state random
+ random:chunk)
+@end example
+
+
+@defun file->exports file
+
+Returns a list of the identifier symbols exported (advertised) by
+SLIB (or SLIB-style) file @var{file}.
+@end defun
+@example
+(file->exports "random.scm")
+ @result{} (make-random-state seed->random-state
+ copy-random-state random)
+
+(file->exports "randinex.scm")
+ @result{} (random:solid-sphere! random:hollow-sphere!
+ random:normal-vector! random:normal
+ random:exp random:uniform)
+@end example
+
+
+@defun feature->export-alist feature catalog
+
+Returns a list of lists; each sublist holding the name of the file
+implementing @var{feature}, and the identifier symbols exported (advertised) by
+SLIB (or SLIB-style) feature @var{feature}, in @var{catalog}.
+@end defun
+
+@defun feature->exports feature catalog
+
+Returns a list of all exports of @var{feature}.
+@end defun
+@noindent
+In the case of @code{aggregate} features, more than one file may
+have export lists to report:
+
+@example
+(feature->export-alist 'r5rs slib:catalog))
+ @result{} (("/usr/local/lib/slib/values.scm"
+ call-with-values values)
+ ("/usr/local/lib/slib/mbe.scm"
+ define-syntax macro:expand
+ macro:load macro:eval)
+ ("/usr/local/lib/slib/eval.scm"
+ eval scheme-report-environment
+ null-environment interaction-environment))
+
+(feature->export-alist 'stdio *catalog*)
+ @result{} (("/usr/local/lib/slib/scanf.scm"
+ fscanf sscanf scanf scanf-read-list)
+ ("/usr/local/lib/slib/printf.scm"
+ sprintf printf fprintf)
+ ("/usr/local/lib/slib/stdio.scm"
+ stderr stdout stdin))
+
+(feature->exports 'stdio slib:catalog)
+ @result{} (fscanf sscanf scanf scanf-read-list
+ sprintf printf fprintf stderr stdout stdin)
+@end example