diff options
Diffstat (limited to 'vet.scm')
-rw-r--r-- | vet.scm | 92 |
1 files changed, 49 insertions, 43 deletions
@@ -26,36 +26,35 @@ (define r4rs-symbols '(* + - -> / < <= = => > >= ... abs acos and angle append apply asin - assoc assq assv atan begin boolean? caaaar caaadr caaar caadar caaddr - caadr caar cadaar cadadr cadar caddar cadddr caddr cadr + assoc assq assv atan begin boolean? caaaar caaadr caaar caadar + caaddr caadr caar cadaar cadadr cadar caddar cadddr caddr cadr call-with-current-continuation call-with-input-file - call-with-output-file car case cdaaar cdaadr cdaar cdadar cdaddr cdadr - cdar cddaar cddadr cddar cdddar cddddr cdddr cddr cdr ceiling - char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? - char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? - char-ready? char-upcase char-upper-case? char-whitespace? char<=? - char<? char=? char>=? char>? char? close-input-port - close-output-port complex? cond cons cos current-input-port - current-output-port define denominator display do else eof-object? - eq? equal? eqv? even? exact->inexact exact? exp expt floor - for-each force gcd if imag-part implementation-vicinity in-vicinity - inexact->exact inexact? input-port? integer->char integer? lambda - lcm length let let* letrec library-vicinity list list->string - list->vector list-ref list-tail list? load log magnitude make-polar - make-rectangular make-string make-vector make-vicinity map max member - memq memv min modulo negative? newline not null? number->string - number? numerator odd? open-input-file open-output-file or - output-port? pair? peek-char positive? procedure? quasiquote - quotient rational? rationalize read read-char real-part real? - remainder reverse round set! set-car! set-cdr! sin sqrt string - string->list string->number string->symbol string-append string-ci<=? - string-ci<? string-ci=? string-ci>=? string-ci>? string-copy - string-fill! string-length string-ref string-set! string<=? - string<? string=? string>=? string>? string? sub-vicinity - substring symbol->string symbol? tan transcript-off transcript-on - truncate unquote unquote-splicing user-vicinity vector vector->list - vector-fill! vector-length vector-ref vector-set! vector? - with-input-from-file with-output-to-file write write-char zero? )) + call-with-output-file car case cdaaar cdaadr cdaar cdadar cdaddr + cdadr cdar cddaar cddadr cddar cdddar cddddr cdddr cddr cdr + ceiling char->integer char-alphabetic? char-ci<=? char-ci<? + char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? + char-numeric? char-ready? char-upcase char-upper-case? + char-whitespace? char<=? char<? char=? char>=? char>? char? + close-input-port close-output-port complex? cond cons cos + current-input-port current-output-port define display do else + eof-object? eq? equal? eqv? even? exact->inexact exact? exp expt + floor for-each gcd if imag-part implementation-vicinity + in-vicinity inexact->exact inexact? input-port? integer->char + integer? lambda lcm length let let* letrec library-vicinity list + list-ref list->string list->vector list? load log magnitude + make-polar make-rectangular make-string make-vector + make-vicinity map max member memq memv min modulo negative? + newline not null? number->string number? odd? open-input-file + open-output-file or output-port? pair? peek-char positive? + procedure? quasiquote quotient rational? read read-char + real-part real? remainder reverse round set! set-car! set-cdr! + sin sqrt string string->list string->number string->symbol + string-append string-ci<=? string-ci<? string-ci=? string-ci>=? + string-ci>? string-length string-ref string-set! string<=? + string<? string=? string>=? string>? string? sub-vicinity + substring symbol->string symbol? tan truncate unquote + unquote-splicing user-vicinity vector vector->list vector-length + vector-ref vector-set! vector? write write-char zero? )) (define (path<-entry entry) (define (findit path) @@ -130,10 +129,10 @@ (set! cur (+ 1 objl cur)))))) lst))) -;;@body +;;@args file1 @dots{} ;;Using the procedures in the @code{top-refs} and @code{manifest} -;;modules, @0 analyzes each SLIB module, reporting about any -;;procedure or macro defined whether it is: +;;modules, @0 analyzes each SLIB module and @1, @dots{}, reporting +;;about any procedure or macro defined whether it is: ;; ;;@table @asis ;; @@ -159,7 +158,10 @@ ;;never-executed branches, transitive require assumptions, spelling ;;errors, undocumented procedures, missing procedures, and cyclic ;;dependencies in SLIB. -(define (vet-slib) +;; +;;The optional arguments @1, @dots{} provide a simple way to vet +;;prospective SLIB modules. +(define (vet-slib . files) (define infos (exports<-info-index (in-vicinity (library-vicinity) "slib.info") 1 2)) (define r4rs+slib #f) @@ -203,16 +205,20 @@ (show missings 'missing) ))))) (set! r4rs+slib (union r4rs-symbols slib-exports)) - (for-each (lambda (entry) - (set! export-alist - (cons (cons (car entry) - (feature->exports (car entry) slib:catalog)) - export-alist))) - slib:catalog) - (for-each (lambda (entry) - (define path (path<-entry entry)) - (and path (dopath path))) - slib:catalog) + (let ((catalog + (append (map (lambda (file) (cons (string->symbol file) file)) + files) + slib:catalog))) + (for-each (lambda (entry) + (set! export-alist + (cons (cons (car entry) + (feature->exports (car entry) slib:catalog)) + export-alist))) + catalog) + (for-each (lambda (entry) + (define path (path<-entry entry)) + (and path (dopath path))) + catalog)) (write '("SLIB")) (show (set-difference infos (union r4rs+slib all-exports)) 'documented-unexports)) |