scope veryQuickJava. static bool veryQuickJava_silent = true; static bool veryQuickJava_useCompilerBot = true; // we always use it now static new ThreadLocal veryQuickJava_transpiled; static O veryQuickJava3_cacheFunction; // func(S, LS) -> Class static new ThreadLocal> #onJavaSource; // mainJava is a complete program, but without the !752/!759 at the top // returns link to main class static Class veryQuickJava3(S mainJava) { ret veryQuickJava3(mainJava, emptyList()); } static Class veryQuickJava3(S mainJava, L libs) { Class c = cast callF(veryQuickJava3_cacheFunction, mainJava, libs); ifdef veryQuickJava3_debug printVars_str("veryQuickJava3: ", +c); endifdef if (c != null) ret c; transpileRaw_silent = veryQuickJava_silent; S src = transpileRaw(mainJava); // transpiled, with lib references if (empty(src)) { printWithIndent("JAVAX> ", mainJava); fail("Transpiler returned empty result"); } if (veryQuickJava_transpiled! != null) veryQuickJava_transpiled.set(src); callF(onJavaSource!, src); ifdef veryQuickJava3_debug print("veryQuickJava3: veryQuickJava_transpiled=" + shorten_nullOnNull(veryQuickJava_transpiled!)); endifdef ret veryQuickJava_finish(src, libs); }