// can be false, it's compiled on the server anyway sbool transpileForServer_compile = true; static long transpileForServer_localTime; sbool transpileForServer_forceJavacOnServer = true; static void transpileForServer(S progID) { S javax = loadSnippet(progID); print("Source: " + l(javax)); long time = sysNow(); time "Transpile" { transpileRaw_silent = false; S java; try { java = transpileRaw(javax); } catch e { // (line 980,col 1) int line = parseIntOpt(jextract("(line ,", str(e))); if (line != 0) { L lines = lines(loadProgramTextFile("error.java")); for (int i = line-1; i <= line+1; i++) print("[line " + i + "] " + get(lines, i-1)); } throw rethrow(e); } print("Transpiled: " + l(java)); } new L libs; java = findTranslators2(java, libs); print("Libs: " + joinWithComma(libs)); S dehlibs = join(" ", libs); if (transpileForServer_compile) { File bytecode = javaCompile_overInternalBot(java, dehlibs); print("Bytecode: " + f2s(assertNotNull(bytecode))); } transpileForServer_localTime = sysNow()-time; // Compiled OK, let's upload S result = postPageWithCredentials("http://tinybrain.de:8080/tb/upload-transpilation", id := psI(progID), transpilation := java, libs := dehlibs, computer := computerID()); Matcher m = regexp("URL=/(dexcompile\\.php.*?)'", result); if (!m.find()) fail("Server said: " + result); S url = "http://tinybrain.de:8080/" + m.group(1); if (transpileForServer_forceJavacOnServer) url += "&javac=1"; result = loadPage(url); if (!result.contains("SUCCESS")) fail("Server said: " + result); print("Transpiled & uploaded " + fsI(progID) + "!"); }