Hello list, I've been playing with Racket. I'm impressed, especially with the documentation (both its content and its presentation), the contract system, and its performance. I have been investigating writing a build pack for Heroku to attempt deploying Racket projects with ease.
A blocker, though, where I've hit a bit of a documentation gap is how to idiomatically itemize and download dependencies for a Racket program so that the program can exist at run-time without calling PlaneT whenever an application backend starts and hits a locally unfulfilled 'require'. The goal is that a program written, say, three years ago should be able to run the same way it did when it was written, so it's really useful to freeze all the dependencies into the file system somehow and preserve it. To prevent all the ills that can occur if a chunk of software starts up needing an old library as well as the accidental hammering of PLT servers it may also be a good idea to have a mechanism to *disable* network-sourcing of code at run-time. raco distribute seems pretty close and useful for other reasons, but upon my naive inspection, it seems to not save the planet cache required for the program (I guess dynamic-require makes that impossible to do soundly in a complete way). Maybe I'm wrong? This question is probably pretty similar to: "If I wanted to develop non-network connection desktop application X, how do I make sure that I have *everything* the user needs in my distributable". Cheers, and thanks for so many years of excellent work. -- fdr _________________________ Racket Developers list: http://lists.racket-lang.org/dev