!7 p { S progID = #1009961; checkProgram(progID); } svoid checkProgram(S progID) { S newMD5 = getServerTranspilationMD5(progID); if (!isMD5(newMD5)) { print("No server transpilation"); ret; } print("Server MD5 for " + progID + ": " + newMD5); S localMD5 = md5(DiskSnippetCache_get(psI(progID))); print("Local MD5: " + localMD5); L l = talkToVMsRunningProgram(progID); for (DialogIO io : l) pcall { try { S s = io.ask("get injections"); O injection = first((L) safeUnstructure(s)); S md5 = getString(injection, 'srcMD5); print("Running MD5: " + md5); if (neq(md5, newMD5)) { print("Restarting!"); io.ask("restart"); } } finally { io.close(); }} }