It seems to still be caching, even with your code snippet, or even if 
explicitly disabling the cache in each individual racket file. Also, 
browser cache is off.

*./pollen.rkt ->*

(module setup racket/base
(provide (all-defined-out))
(define poly-targets '(html))
(define compile-cache-active #f)
(define render-cache-active #f))


*./body/pollen.rkt ->*

(module setup racket/base
(require (submod "../pollen.rkt" setup))
(provide (all-from-out (submod "../pollen.rkt" setup))))



*./body/hexagrams/pollen.rkt ->*

(module setup racket/base
(require (submod "../pollen.rkt" setup))
(provide (all-from-out (submod "../pollen.rkt" setup))))

This is the current state of my code ^, but as I mentioned, even if I 
explicitly add 
(define compile-cache-active #f) (define render-cache-active #f)
to *each* setup function individual, I still encounter cached variables, 
and the only way to invalidate the cache is to remove it entirely and 
restart the server.

Thanks!
Brendan

On Friday, March 22, 2019 at 3:21:24 PM UTC-5, Matthew Butterick wrote:
>
>
> On Mar 22, 2019, at 11:03 AM, Brendan Stromberger <brendanst...@gmail.com 
> <javascript:>> wrote:
>
>
>    - It is unclear to me if I need to repeat this declaration in each 
>    subsequent pollen.rkt in each subdirectory. Whether I do or not, seems to 
>    have no effect on this problem, or anything else.
>
>
> Yes, if you have multiple "pollen.rkt" files in your project, you need to 
> take care to connect them in whatever way is sensible. 
>
> By default, Pollen searches up the directory tree for the first 
> "pollen.rkt" it can find, and then applies that to the file. The effect is 
> that the "pollen.rkt" in a certain directory automatically applies to the 
> files to every subdirectory. However, once another "pollen.rkt" is put in a 
> subdirectory, it supersedes the one in the parent directory. Of course, if 
> you want to reuse the bindings of the parent "pollen.rkt", that's easy to 
> do with `require` and `provide`:
>
> #lang racket/base
> (require "../pollen.rkt") ;; parent pollen.rkt
> (provide (all-from-out "../pollen.rkt")) ;; or some subset of bindings
>
> (module setup racket/base
>   (require (submod "../pollen.rkt" setup))
>   (provide (all-from-out (submod "../pollen.rkt" setup))))
>
>
> Notice that the bindings from the `setup` submodule are propagated via 
> another `setup` submodule. Here's code that won't trigger an error, but it 
> won't work as expected:
>
> #lang racket/base
> (require "../pollen.rkt") ;; parent pollen.rkt
> (provide (all-from-out "../pollen.rkt")) ;; or some subset of bindings
> (require (submod "../pollen.rkt" setup))
> (provide (all-from-out (submod "../pollen.rkt" setup)))
>
> In this case, the `setup` bindings are moved into the main body of 
> "pollen.rkt". Pollen doesn't look for them there, and hence won't find them.
>
>
> The problem is, when I may *any* changes to these functions, I have to 
> halt my Pollen server, reset the cache, and restart the server for any 
> changes to appear. I experience frequent caching problems across the board 
> (despite disabling Pollen cache), but they are heisenbug-esque. This is the 
> only case that is reproducible for me on a consistent basis.
>
>
> Keep in mind that you also need to disable browser caching (Pollen has no 
> control over this). If you don't, then you may still see cached results 
> (because the browser isn't making a new request of the project server). For 
> instance in Chrome, the developer menu has a "Disable cache" button:
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Pollen" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pollenpub+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to