Overview
Comment: | Added gendeps.scm |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.65-real-new-runs-view |
Files: | files | file ages | folders |
SHA1: |
70d50dde628e76659393f1063b446e3f |
User & Date: | mrwellan on 2021-02-22 15:56:54 |
Other Links: | branch diff | manifest | tags |
Context
2021-02-22
| ||
23:33 | Got crude data on run-tests-matrix check-in: d6715426e7 user: matt tags: v1.65-real-new-runs-view | |
17:33 | Rework the deps. check-in: 653a2890a7 user: mrwellan tags: v1.65-real-new-runs-view-wip (unpublished) | |
15:56 | Added gendeps.scm check-in: 70d50dde62 user: mrwellan tags: v1.65-real-new-runs-view | |
00:01 | More function shuffling check-in: b705777b20 user: matt tags: v1.65-real-new-runs-view | |
Changes
Name change from codescanlib.scm to utils/codescanlib.scm.
︙ | ︙ |
Added utils/gendeps.scm version [420bfe8c32].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | ;; (require-library iup canvas-draw) ;; It'd be better to use codescan.... (module gendeps * (import scheme chicken.base chicken.string chicken.process-context chicken.file chicken.io chicken.port scheme ;;extras regex regex-case matchable srfi-69 ) (define (portprint p . args) (with-output-to-port p (lambda () (apply print args)))) (define (compunit targfname files) (let* ((unitdata (make-hash-table)) (moduledata (make-hash-table)) (filesdata (make-hash-table)) (unitdec (regexp "^\\(declare\\s+\\(unit\\s+([^\\s]+)\\)\\)")) (unituse (regexp "^\\(declare\\s+\\(uses\\s+([^\\s]+)\\)\\)")) (moduledec (regexp "^\\(module\\s+([\\s]+)")) (importuse (regexp "^\\(import\\s+(.*)\\)")) ;; captures string of imports (one line) (dotport (open-output-file (conc targfname ".dot"))) (incport (open-output-file (conc targfname ".inc"))) ) (portprint dotport "digraph usedeps {") (for-each (lambda (fname) (let* ((sname (string-substitute "\\.scm$" "" fname))) (print "Processing "fname" with core name of "sname) (hash-table-set! filesdata sname fname) ;; record the existance of the src file (with-input-from-file fname (lambda () (let loop ((inl (read-line))) (if (not (eof-object? inl)) (begin (regex-case inl (unitdec (_ unitname) (if (equal? sname unitname) ;; good if same (if (not (hash-table-exists? unitdata unitname)) (hash-table-set! unitdata unitname (make-hash-table))))) (unituse (_ usingname) (portprint dotport "\""sname"\" -> \""usingname"\"") (portprint incport sname".scm : "usingname".scm")) ;; (moduledec (_ modname) (print "Module: " modname)) ;; (importuse (_ importname) (print "Imports: " importname)) (else #f)) (loop (read-line))))))))) files) (portprint dotport "}") (close-output-port dotport) (close-output-port incport))) ;; seen is hash of seen functions (define usage "Usage: gendeps targfile files... ") (define (main) (match (command-line-arguments) (("help")(print usage)) ((targfile . files) (compunit targfile files)) (else (print "ERROR: Arguments not recognised.") (print usage)))) ) (import ;; (only iup show main-loop) gendeps) (main) |
Name change from trackback.scm to utils/trackback.scm.
︙ | ︙ |