Reload when hash of file has changed; stop using a naive counter

This commit is contained in:
Tony Garnock-Jones 2016-12-07 10:10:36 +13:00
parent f13fc9cad3
commit c7db9f2543
1 changed files with 5 additions and 7 deletions

View File

@ -13,6 +13,7 @@
(define-logger syndicate/reload) (define-logger syndicate/reload)
(require file/sha1)
(require (for-syntax racket/base)) (require (for-syntax racket/base))
(require racket/rerequire) (require racket/rerequire)
@ -65,11 +66,8 @@
(begin (log-syndicate/reload-error "Could not process module-path ~v" module-path) (begin (log-syndicate/reload-error "Could not process module-path ~v" module-path)
#f))) #f)))
(define counter (define (file->sha1 p)
(let ((count 0)) (call-with-input-file p sha1))
(lambda (_pathstr)
(begin0 count
(set! count (+ count 1))))))
(define (reloader-mixin** module-path pathstr) (define (reloader-mixin** module-path pathstr)
(field [reloading? #f]) (field [reloading? #f])
@ -92,8 +90,8 @@
'activate!))) 'activate!)))
(reloading? #f))))) (reloading? #f)))))
(field [previous-version #f]) (field [previous-version 'unknown])
(define/query-value latest-version 'unknown (file-content pathstr counter $p) p) (define/query-value latest-version 'unknown (file-content pathstr file->sha1 $p) p)
(begin/dataflow (begin/dataflow
(when (and (not (eq? (latest-version) 'unknown)) (when (and (not (eq? (latest-version) 'unknown))
(not (equal? (latest-version) (previous-version)))) (not (equal? (latest-version) (previous-version))))