// returns (jar, transpiled src) static Pair compileSnippetThroughServer(S progID) { S transpiledSrc = getServerTranspiled2(progID); S md5 = md5(transpiledSrc + "\n" + progID); File jar = CompilerBot.getJarFile(md5); if (jar == null || jar.length() <= 22) { byte[] jarData = null; bool dontLoad = false; ifndef NoResourceLoader IResourceLoader rl = vm_getResourceLoader(); if (rl != null) { set dontLoad; File jar2 = rl.getSnippetJar(progID, transpiledSrc); if (jar2 != null) ret pair(jar2, transpiledSrc); } if (!dontLoad) pcall { jarData = loadBinaryPage(jarBotURL() + psI(progID) + "?md5=" + md5(transpiledSrc)); } if (!isJAR(jarData)) { if (jarData != null) { print(bytesToHex(takeFirstOfByteArray(8, jarData))); print("fallback to CompilerBot: " + fromUtf8(takeFirstOfByteArray(80, jarData))); } ret CompilerBot.compileSnippet2(progID); } saveBinaryFile(jar, jarData); } ret pair(jar, transpiledSrc); }