workaround

dev-stylish
Matthew Butterick 6 years ago
parent 9ff3eabb03
commit 894ace3dba

@ -47,10 +47,11 @@
(define ram-cache-record (hash-ref! ram-cache key get-cache-record))
(hash-ref ram-cache-record subkey)]
[else
(parameterize ([current-namespace (make-base-namespace)])
(define outer-ns (namespace-anchor->namespace cache-module-ns))
(define new-ns (make-base-namespace))
(namespace-attach-module outer-ns 'pollen/setup new-ns)
(parameterize ([current-namespace new-ns])
;; brings in currently instantiated params (unlike namespace-require)
(define outer-ns (namespace-anchor->namespace cache-module-ns))
(namespace-attach-module outer-ns 'pollen/setup)
(dynamic-require path subkey))]))))
(define+provide (cached-require path-string subkey)

@ -59,11 +59,12 @@
;; the benefit of not reloading doc when you just need metas.
;; new namespace forces `dynamic-require` to re-instantiate `path`
;; otherwise it gets cached in current namespace.
(parameterize ([current-namespace (make-base-namespace)]
;; brings in currently instantiated params (unlike namespace-require)
(define outer-ns (namespace-anchor->namespace cache-utils-module-ns))
(define new-ns (make-base-namespace))
(namespace-attach-module outer-ns 'pollen/setup new-ns)
(parameterize ([current-namespace new-ns]
[current-directory (dirname path)])
;; brings in currently instantiated params (unlike namespace-require)
(define outer-ns (namespace-anchor->namespace cache-utils-module-ns))
(namespace-attach-module outer-ns 'pollen/setup)
(define doc-missing-thunk (λ () ""))
(define metas-missing-thunk (λ () (hasheq)))
(list doc-key (dynamic-require path doc-key doc-missing-thunk)

@ -147,7 +147,7 @@
(define template-path (or maybe-template-path (get-template-for source-path output-path)))
;; output-path and template-path may not have an extension, so check them in order with fallback
(message (format "rendering /~a"
(message (format "rendering /~a"
(find-relative-path (current-project-root) source-path)))
(match-define-values ((cons render-result _) _ real _)
(parameterize ([current-poly-target (->symbol (or (get-ext output-path)
@ -175,11 +175,12 @@
(local-require scribble/core scribble/manual (prefix-in scribble- scribble/render))
(define source-dir (dirname source-path))
;; make fresh namespace for scribble rendering (avoids dep/zo caching)
(parameterize ([current-namespace (make-base-namespace)]
(define outer-ns (namespace-anchor->namespace render-module-ns))
(define new-ns (make-base-namespace))
(namespace-attach-module outer-ns 'scribble/core new-ns)
(namespace-attach-module outer-ns 'scribble/manual new-ns)
(parameterize ([current-namespace new-ns]
[current-directory (->complete-path source-dir)])
(define outer-ns (namespace-anchor->namespace render-module-ns))
(namespace-attach-module outer-ns 'scribble/core)
(namespace-attach-module outer-ns 'scribble/manual)
;; scribble/lp files have their doc export in a 'doc submodule, so check both locations
(match (cond
[(dynamic-require source-path 'doc (λ () #false))]

Loading…
Cancel
Save