Closed tcrayford closed 12 years ago
I'm kind of inclined to leave things as-is. Option b is not very attractive. The whole point of the snap package is to integrate things, and Heist is one of the things we're integrating. I fully support your desire to use reloading functionality without using Heist, but your argument hinges on use of the absolute bleeding-edge blaze-html version. Historically I think we've kept up with new releases of major dependencies pretty well. The reality is that this choice between dll hell and not being on the absolute bleeding edge of development is a fact of life given the fast pace of today's Haskell ecosystem. So that reason alone isn't really sufficient for me to move the reloading functionality. In fact, the latest version of Heist already supports the newer version of blaze-html, so you could just build from source.
That being said, I discussed this with Carl (the guy in charge of the reloading code) and he was not completely opposed to the idea. I'm not opposed to the principle either. So if Carl doesn't get around to it, then I'll accept any pull requests for this that meet our quality standards.
Ok, Carl got this working and pushed to github today. It's in the 0.9 branch. We also have two new standalone packages called snap-loader-dynamic and snap-loader-static. Neither of them are required by the snap package and snap-loader-static does not depend on snap either. snap-loader-dynamic is only required if you build the default project template with -fdevelopment. This ended up being a really positive change because it eliminates the need to build snap with -fhint for those who want reloading. These changes will be available on hackage in the 0.9 release of Snap.
awesome. Thanks a bunch you guys :)
Currently, if I want to use the reloading functionality, I have to depend on the
snap
package, which depends on heist. This means I have to use an old version ofblaze-html
(yay, dll hell), if I want reloading (which all sites really want to use).There are two options (as I see it) here:
a) move the reloading functionality outside of the
snap
package, so users can depend on it without depending on heistb) stop the toplevel
snap
package depending on heistI think the first is easier, and should be relatively easy to do.