diff options
Diffstat (limited to 'manifest.txi')
-rw-r--r-- | manifest.txi | 145 |
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 |