Note this is quite clunky because I couldn't find a better way to bind a dynamically determined variable in Arc. Set only takes a symbol as a first argument.
Well the real nice part would be PG himself using git and doing diffs against other repos to see what's festering in the community.
Right now the forum seems to be the only what of contributing patches to arc and this seems ripe for having things lost. (And who wants to bring up the same patch twice if it went unnoticed the first time).
Well, taking arcn.tar and merging it isn't that hard - I did it for arc1 and will probably continue to do so. It would just be nice if we could have more granular official patches.
Do you mean to (re)define a global "yield" function on each call to defgen? In Arc, an internal def doesn't work like an internal Scheme define... it always sets the global top-level variable named as its first argument, it doesn't create a local binding as an fn or let would. (I couldn't tell if that's what you wanted to do or not).
Nice! If you don't want to wait five seconds after saving your file, you could stick a call to your reload-check (without the sleep or the loop) in srv.arc at the point a request comes in:
(def handle-request (s (o life threadlife*))
(if (len< (pull dead srvthreads*) threadlimit*)
(let (i o ip) (socket-accept s)
+ (atomic (reload-check ...))
(++ requests*)
though of course you wouldn't want to do this on a server that had a lot of requests coming in, since it would do the check on every request.
I found in practice that 5 seconds we fast enough, I would save the file, switch to browser and refresh and it would be there. Of course 5 seconds is the worst case - 2.5 seconds would be the average.
Rather bizarrely, on my Linux system at least, make-directory is creating directories with the sticky bit set... and I didn't see anywhere in the MzScheme's manual a way to set the umask. Perhaps someone else will have better luck.
If this can be fixed, the make-directory* function in the MzScheme file.ss library will usefully create intervening directories, like mkdir -p does.
Hmm, Language::MzScheme isn't compiling against MzScheme v352. The documentation says it works with MzScheme v200 or greater, so I suspect it might not have made the transition to the v300 series.