use FASL for caching #221

Merged
mbutterick merged 3 commits from dev-fasl into master 5 years ago

@ -8,9 +8,9 @@
racket/path racket/path
racket/list racket/list
racket/match racket/match
racket/serialize
sugar/coerce sugar/coerce
sugar/test sugar/test
racket/fasl
compiler/cm) compiler/cm)
(provide (all-defined-out)) (provide (all-defined-out))
@ -109,7 +109,9 @@
(define dest-file (build-path cache-dir (format "~a.rktd" dest-path-filename))) (define dest-file (build-path cache-dir (format "~a.rktd" dest-path-filename)))
(define (generate-dest-file) (define (generate-dest-file)
(message-debug (format "cache miss for ~a" dest-file)) (message-debug (format "cache miss for ~a" dest-file))
(write-to-file (serialize (path-hash-thunk)) dest-file #:exists 'replace)) (with-output-to-file dest-file
(λ () (s-exp->fasl (path-hash-thunk) (current-output-port)))
#:exists 'replace))
;; `cache-file` looks for a file in private-cache-dir previously cached with key ;; `cache-file` looks for a file in private-cache-dir previously cached with key
;; (which in this case carries modification dates and POLLEN env). ;; (which in this case carries modification dates and POLLEN env).
@ -132,4 +134,5 @@
[(or "cache attempt failed: could not acquire exclusive lock" [(or "cache attempt failed: could not acquire exclusive lock"
"cache attempt failed: could not acquire shared lock") (void)] "cache attempt failed: could not acquire shared lock") (void)]
[_ (log-pollen-error str)]))) [_ (log-pollen-error str)])))
(deserialize (file->value dest-file))) (with-input-from-file dest-file
(λ () (fasl->s-exp (current-input-port)))))

@ -1 +1 @@
1586184205 1586206283

Loading…
Cancel
Save