Get the latest tech news
Destructive Updates – A Stitch in Time
Icicle is a high-level streaming query language, which gives new capabilities to its users, allowing them to combine and fuse hundreds of rich, individual, queries into a combined plan for safe and efficient execution. At the heart of the language is our Core intermediate language, which we’ve spoken about optimising in an earlier post.
If these transitive dependency sets are disjoint, it means there’s no possible way that the array could be looked at after this write, making it safe to mutate it in place. In our case, we have a whole-program compiler and optimiser, so we can get a very good view of the reference graph; if we however were working with smaller functions, we would need to keep track of what we don’t know. It was only when I remembered Phil Freeman’s Tardis Monad water problem solution that I managed to solidify my ideas and really nail down the algorithm.
Or read this on Hacker News