sO dm_evalJava_veryQuickJava; static O dm_evalJava_withModule(S expression, O... args) { O m = dm_current_generic(); // dm_current_mandatory_generic(); S code = evalJava_prep(expression) + [[ static new InheritableThreadLocal dm_currentModule_value; sO dm_current_mandatory_generic_value; sO dm_current_mandatory_generic() { ret dm_current_mandatory_generic_value; } sO dm_current_generic() { ret dm_current_mandatory_generic(); } ]]; O obj; ifdef dm_evalJava_withModule_debug printVars_str("dm_evalJava_withModule: ", +dm_evalJava_veryQuickJava); endifdef if (dm_evalJava_veryQuickJava != null) obj = callF(dm_evalJava_veryQuickJava, code); else obj = veryQuickJava(code); setOpt(obj, programID := programID()); makeDependent(obj); setOpt(obj, creator_class := newWeakReference(dm_os())); dm_pointSubmoduleToMe(obj, m); ret evalJava_myProgramID_main_2(obj, args); }