You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi! I'm in the process of rewriting my compiler's driver to use Rock, and the experience is fantastic for now. :)
I had implemented a caching system that would hash the file (or its AST) in combination with the build flags, and get the final generated code directly from a store location.
Some context: I intend to make my compiler a daemon and have the CLI tool to be a lightweight client, like nocc where the daemon dies 15 seconds after the last client process has died. So I can't really keep all that stuff in memory, since two builds of the same project in a 16 seconds interval would have to rebuild the in-memory cache.
Do you think this method can be integrated in Rock's cache system? Or would it be easier to dump the cache of Rock on disk and reload it when starting the daemon process?
The text was updated successfully, but these errors were encountered:
I have yet to try caching results to disk yet, so it's uncharted territory as far as I know, and may involve some manual labor. I did have some code that would allow dumping Rock's cache to disk in Sixty for a while, but removed it since I wasn't ready to use it yet.
Anyway, it seems possible to dump the cache to disk (using an encoding of your choice) and reloading it at daemon startup. Trace verification should take care of reusing what is safe to reuse. So this seems worth trying as a first attempt.
Hi! I'm in the process of rewriting my compiler's driver to use Rock, and the experience is fantastic for now. :)
I had implemented a caching system that would hash the file (or its AST) in combination with the build flags, and get the final generated code directly from a store location.
Some context: I intend to make my compiler a daemon and have the CLI tool to be a lightweight client, like nocc where the daemon dies 15 seconds after the last client process has died. So I can't really keep all that stuff in memory, since two builds of the same project in a 16 seconds interval would have to rebuild the in-memory cache.
Do you think this method can be integrated in Rock's cache system? Or would it be easier to dump the cache of Rock on disk and reload it when starting the daemon process?
The text was updated successfully, but these errors were encountered: