RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 09-Jul-2017 18:59:19 Branch: rpm-5_4 Handle: 2017070916591900 Modified files: (Branch: rpm-5_4) rpm/js rpmjs45.cpp Log: - rpmjs45: haul out a load of trash. Summary: Revision Changes Path 1.1.2.8 +57 -194 rpm/js/rpmjs45.cpp ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/js/rpmjs45.cpp ============================================================================ $ cvs diff -u -r1.1.2.7 -r1.1.2.8 rpmjs45.cpp --- rpm/js/rpmjs45.cpp 9 Jul 2017 16:11:12 -0000 1.1.2.7 +++ rpm/js/rpmjs45.cpp 9 Jul 2017 16:59:19 -0000 1.1.2.8 @@ -31,26 +31,15 @@ /*==============================================================*/ static bool -rpmSetRuntimeOptions(JSRuntime* rt, const OptionParser& op) +rpmSetRuntimeOptions(JSRuntime* rt, const rpmjss jss) { -#ifdef DYING - enableBaseline = !op.getBoolOption("no-baseline"); -assert(enableBaseline == ((jss->xf & XF_BASELINE) != 0)); - enableIon = !op.getBoolOption("no-ion"); -assert(enableIon == ((jss->xf & XF_ION) != 0)); - enableAsmJS = !op.getBoolOption("no-asmjs"); -assert(enableAsmJS == ((jss->xf & XF_ASMJS) != 0)); - enableNativeRegExp = !op.getBoolOption("no-native-regexp"); -assert(enableNativeRegExp == ((jss->xf & XF_NATIVE_REGEXP) != 0)); - enableUnboxedArrays = op.getBoolOption("unboxed-arrays"); -assert(enableUnboxedArrays == ((jss->xf & XF_UNBOXED_ARRAYS) != 0)); -#else + const char * str; + enableBaseline = ((jss->xf & XF_BASELINE) != 0); enableIon = ((jss->xf & XF_ION) != 0); enableAsmJS = ((jss->xf & XF_ASMJS) != 0); enableNativeRegExp = ((jss->xf & XF_NATIVE_REGEXP) != 0); enableUnboxedArrays = ((jss->xf & XF_UNBOXED_ARRAYS) != 0); -#endif JS::RuntimeOptionsRef(rt).setBaseline(enableBaseline) .setIon(enableIon) @@ -58,17 +47,11 @@ .setNativeRegExp(enableNativeRegExp) .setUnboxedArrays(enableUnboxedArrays); -#ifdef DYING -assert(op.getBoolOption("no-unboxed-objects") == ((jss->xf & XF_UNBOXED_OBJECTS) == 0)); - if (op.getBoolOption("no-unboxed-objects")) - jit::JitOptions.disableUnboxedObjects = true; -#else if (!(jss->xf & XF_UNBOXED_OBJECTS)) jit::JitOptions.disableUnboxedObjects = true; -#endif - if (const char* str = op.getStringOption("ion-scalar-replacement")) { -assert(!strcmp(str, jss->ion_scalar_replacement)); + str = jss->ion_scalar_replacement; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableScalarReplacement = false; else if (strcmp(str, "off") == 0) @@ -77,8 +60,8 @@ return OptionFailure("ion-scalar-replacement", str); } - if (const char* str = op.getStringOption("ion-shared-stubs")) { -assert(!strcmp(str, jss->ion_shared_stubs)); + str = jss->ion_shared_stubs; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableSharedStubs = false; else if (strcmp(str, "off") == 0) @@ -87,8 +70,8 @@ return OptionFailure("ion-shared-stubs", str); } - if (const char* str = op.getStringOption("ion-gvn")) { -assert(!strcmp(str, jss->ion_gvn)); + str = jss->ion_gvn; + if (str) { if (strcmp(str, "off") == 0) { jit::JitOptions.disableGvn = true; } else if (strcmp(str, "on") != 0 && @@ -101,8 +84,8 @@ } } - if (const char* str = op.getStringOption("ion-licm")) { -assert(!strcmp(str, jss->ion_licm)); + str = jss->ion_licm; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableLicm = false; else if (strcmp(str, "off") == 0) @@ -111,8 +94,8 @@ return OptionFailure("ion-licm", str); } - if (const char* str = op.getStringOption("ion-edgecase-analysis")) { -assert(!strcmp(str, jss->ion_edgecase_analysis)); + str = jss->ion_edgecase_analysis; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableEdgeCaseAnalysis = false; else if (strcmp(str, "off") == 0) @@ -121,8 +104,8 @@ return OptionFailure("ion-edgecase-analysis", str); } - if (const char* str = op.getStringOption("ion-pgo")) { -assert(!strcmp(str, jss->ion_pgo)); + str = jss->ion_pgo; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disablePgo = false; else if (strcmp(str, "off") == 0) @@ -131,8 +114,8 @@ return OptionFailure("ion-pgo", str); } - if (const char* str = op.getStringOption("ion-range-analysis")) { -assert(!strcmp(str, jss->ion_range_analysis)); + str = jss->ion_range_analysis; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableRangeAnalysis = false; else if (strcmp(str, "off") == 0) @@ -141,8 +124,8 @@ return OptionFailure("ion-range-analysis", str); } - if (const char *str = op.getStringOption("ion-sincos")) { -assert(!strcmp(str, jss->ion_sincos)); + str = jss->ion_sincos; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableSincos = false; else if (strcmp(str, "off") == 0) @@ -151,8 +134,8 @@ return OptionFailure("ion-sincos", str); } - if (const char* str = op.getStringOption("ion-sink")) { -assert(!strcmp(str, jss->ion_sink)); + str = jss->ion_sink; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableSink = false; else if (strcmp(str, "off") == 0) @@ -161,8 +144,8 @@ return OptionFailure("ion-sink", str); } - if (const char* str = op.getStringOption("ion-loop-unrolling")) { -assert(!strcmp(str, jss->ion_loop_unrolling)); + str = jss->ion_loop_unrolling; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableLoopUnrolling = false; else if (strcmp(str, "off") == 0) @@ -171,8 +154,8 @@ return OptionFailure("ion-loop-unrolling", str); } - if (const char* str = op.getStringOption("ion-instruction-reordering")) { -assert(!strcmp(str, jss->ion_instruction_reordering)); + str = jss->ion_instruction_reordering; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableInstructionReordering = false; else if (strcmp(str, "off") == 0) @@ -181,26 +164,14 @@ return OptionFailure("ion-instruction-reordering", str); } -#ifdef DYING -assert(op.getBoolOption("ion-check-range-analysis") == ((jss->ionf & ION_CHECK_RANGE_ANALYSIS) != 0)); - if (op.getBoolOption("ion-check-range-analysis")) - jit::JitOptions.checkRangeAnalysis = true; -#else if (jss->ionf & ION_CHECK_RANGE_ANALYSIS) jit::JitOptions.checkRangeAnalysis = true; -#endif -#ifdef DYING -assert(op.getBoolOption("ion-extra-checks") == ((jss->ionf & ION_EXTRA_CHECKS) != 0)); - if (op.getBoolOption("ion-extra-checks")) - jit::JitOptions.runExtraChecks = true; -#else if (jss->ionf & ION_EXTRA_CHECKS) jit::JitOptions.runExtraChecks = true; -#endif - if (const char* str = op.getStringOption("ion-inlining")) { -assert(!strcmp(str, jss->ion_inlining)); + str = jss->ion_inlining; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.disableInlining = false; else if (strcmp(str, "off") == 0) @@ -209,8 +180,8 @@ return OptionFailure("ion-inlining", str); } - if (const char* str = op.getStringOption("ion-osr")) { -assert(!strcmp(str, jss->ion_osr)); + str = jss->ion_osr; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.osr = true; else if (strcmp(str, "off") == 0) @@ -219,8 +190,8 @@ return OptionFailure("ion-osr", str); } - if (const char* str = op.getStringOption("ion-limit-script-size")) { -assert(!strcmp(str, jss->ion_limit_script_size)); + str = jss->ion_limit_script_size; + if (str) { if (strcmp(str, "on") == 0) jit::JitOptions.limitScriptSize = true; else if (strcmp(str, "off") == 0) @@ -229,56 +200,30 @@ return OptionFailure("ion-limit-script-size", str); } -#ifdef DYING - int32_t warmUpThreshold = op.getIntOption("ion-warmup-threshold"); -assert(warmUpThreshold == jss->ion_warmup_threshold); - if (warmUpThreshold >= 0) - jit::JitOptions.setCompilerWarmUpThreshold(warmUpThreshold); -#else int32_t warmUpThreshold = jss->ion_warmup_threshold; if (warmUpThreshold >= 0) jit::JitOptions.setCompilerWarmUpThreshold(warmUpThreshold); -#endif -#ifdef DYING - warmUpThreshold = op.getIntOption("baseline-warmup-threshold"); - assert(warmUpThreshold == jss->baseline_warmup_threshold); - if (warmUpThreshold >= 0) - jit::JitOptions.baselineWarmUpThreshold = warmUpThreshold; -#else warmUpThreshold = jss->baseline_warmup_threshold; if (warmUpThreshold >= 0) jit::JitOptions.baselineWarmUpThreshold = warmUpThreshold; -#endif -#ifdef DYING -assert(op.getBoolOption("baseline-eager") == ((jss->xf & XF_BASELINE_EAGER) != 0)); - if (op.getBoolOption("baseline-eager")) - jit::JitOptions.baselineWarmUpThreshold = 0; -#else if (jss->xf & XF_BASELINE_EAGER) jit::JitOptions.baselineWarmUpThreshold = 0; -#endif - if (const char* str = op.getStringOption("ion-regalloc")) { -assert(!strcmp(str, jss->ion_regalloc)); + str = jss->ion_regalloc; + if (str) { jit::JitOptions.forcedRegisterAllocator = jit::LookupRegisterAllocator(str); if (!jit::JitOptions.forcedRegisterAllocator.isSome()) return OptionFailure("ion-regalloc", str); } -#ifdef DYING -assert(op.getBoolOption("ion-eager") == ((jss->ionf & ION_EAGER) != 0)); - if (op.getBoolOption("ion-eager")) - jit::JitOptions.setEagerCompilation(); -#else if (jss->ionf & ION_EAGER) jit::JitOptions.setEagerCompilation(); -#endif offthreadCompilation = true; - if (const char* str = op.getStringOption("ion-offthread-compile")) { -assert(!strcmp(str, jss->ion_offthread_compile)); + str = jss->ion_offthread_compile; + if (str) { if (strcmp(str, "off") == 0) offthreadCompilation = false; else if (strcmp(str, "on") != 0) @@ -286,13 +231,6 @@ } rt->setOffthreadIonCompilationEnabled(offthreadCompilation); -#ifdef DYING - if (op.getStringOption("ion-parallel-compile")) { - fprintf(stderr, "--ion-parallel-compile is deprecated. Please use --ion-offthread-compile instead.\n"); - return false; - } -#endif - #if defined(JS_CODEGEN_ARM) /* XXX FIXME */ if (const char* str = op.getStringOption("arm-hwcap")) jit::ParseARMHwCapFlags(str); @@ -322,31 +260,16 @@ jit::Simulator::StopSimAt = stopAt; #endif -#ifdef DYING - reportWarnings = op.getBoolOption('w'); -assert(reportWarnings == ((jss->xf & XF_WARNINGS) != 0)); - compileOnly = op.getBoolOption('c'); -assert(compileOnly == ((jss->xf & XF_COMPILE_ONLY) != 0)); - printTiming = op.getBoolOption('b'); -assert(printTiming == ((jss->xf & XF_PRINT_TIMING) != 0)); - enableCodeCoverage = op.getBoolOption("code-coverage"); -assert(enableCodeCoverage == ((jss->xf & XF_CODE_COVERAGE) != 0)); - enableDisassemblyDumps = op.getBoolOption('D'); -assert(enableDisassemblyDumps == ((jss->xf & XF_DUMP_BYTECODE) != 0)); -#else reportWarnings = ((jss->xf & XF_WARNINGS) != 0); compileOnly = ((jss->xf & XF_COMPILE_ONLY) != 0); printTiming = ((jss->xf & XF_PRINT_TIMING) != 0); enableCodeCoverage = ((jss->xf & XF_CODE_COVERAGE) != 0); enableDisassemblyDumps = ((jss->xf & XF_DUMP_BYTECODE) != 0); -#endif rt->profilingScripts = enableCodeCoverage || enableDisassemblyDumps; - jsCacheDir = op.getStringOption("js-cache"); + jsCacheDir = jss->cachedir; if (jsCacheDir) { -assert(!strcmp(jsCacheDir, jss->cachedir)); -assert(op.getBoolOption("no-js-cache-per-process") == ((jss->xf & XF_CACHE_PER_PROCESS) == 0)); - if (!op.getBoolOption("no-js-cache-per-process")) + if (jss->xf & XF_CACHE_PER_PROCESS) jsCacheDir = JS_smprintf("%s/%u", jsCacheDir, (unsigned)getpid()); else jsCacheDir = JS_strdup(rt, jsCacheDir); @@ -354,13 +277,11 @@ } #ifdef DEBUG - dumpEntrainedVariables = op.getBoolOption("dump-entrained-variables"); -assert(op.getBoolOption("dump-entrained-variables") == ((jss->xf & XF_DUMP_ENTRAINED_VARIABLES) != 0)); + dumpEntrainedVariables = ((jss->xf & XF_DUMP_ENTRAINED_VARIABLES) != 0); #endif #ifdef JS_GC_ZEAL - const char* zealStr = op.getStringOption("gc-zeal"); -assert(!strcmp(zealStr, jss->gc_zeal)); + const char* zealStr = jss->gc_zeal; gZealStr[0] = 0; if (zealStr) { if (!rt->gc.parseAndSetZeal(zealStr)) @@ -378,15 +299,24 @@ { JSI_t I = (JSI_t) jss->I; + if (enableDisassemblyDumps) + js::DumpCompartmentPCCounts(I->cx); + + if (jss->xf & XF_CACHE_PER_PROCESS) { + if (jsCacheAsmJSPath) { + unlink(jsCacheAsmJSPath); + JS_free(I->cx, const_cast<char*>(jsCacheAsmJSPath)); + } + if (jsCacheDir) { + rmdir(jsCacheDir); + JS_free(I->cx, const_cast<char*>(jsCacheDir)); + } + } + JS::SetLargeAllocationFailureCallback(I->rt, nullptr, nullptr); -#ifdef DYING - if (I->cx) - JS_DestroyContext(I->cx); -#else if (I->cx) DestroyContext(I->cx, true); -#endif I->cx = NULL; KillWatchdog(I->rt); @@ -411,7 +341,7 @@ free(I); } -static void * mozInit(rpmjss jss, const OptionParser& op) +static void * mozInit(rpmjss jss) { JSI_t I = NULL; uint32_t flags = jss->flags; @@ -460,7 +390,7 @@ JS_SetErrorReporter(rt, my_ErrorReporter); JS::SetOutOfMemoryCallback(rt, my_OOMCallback, nullptr); - ok = rpmSetRuntimeOptions(rt, op); + ok = rpmSetRuntimeOptions(rt, jss); assert(ok); sr->interruptFunc.init(rt, NullValue()); @@ -468,7 +398,7 @@ JS_SetGCParameter(rt, JSGC_MAX_BYTES, 0xffffffff); - size_t availMem = op.getIntOption("available-memory"); + size_t availMem = jss->available_memory; if (availMem > 0) { JS_SetGCParametersBasedOnAvailableMemory(rt, availMem); assert(jss->available_memory == availMem); @@ -491,11 +421,7 @@ ok = InitWatchdog(rt); assert(ok); -#ifdef DYING - JSContext * cx = JS_NewContext(rt, _stackChunkSize); -#else JSContext * cx = NewContext(rt); -#endif assert(cx); I->cx = cx; #ifdef DYING @@ -513,20 +439,11 @@ // as is done for the browser, except in more-deterministic builds or when // disabled by command line options. #ifndef JS_MORE_DETERMINISTIC -#ifdef DYING - if (!op.getBoolOption("no-incremental-gc")) { -assert(jss->xf & XF_INCREMENTAL_GC); - JS_SetGCParameter(rt, JSGC_DYNAMIC_HEAP_GROWTH, 1); - JS_SetGCParameter(rt, JSGC_DYNAMIC_MARK_SLICE, 1); - JS_SetGCParameter(rt, JSGC_SLICE_TIME_BUDGET, 10); - } -#else if (jss->xf & XF_INCREMENTAL_GC) { JS_SetGCParameter(rt, JSGC_DYNAMIC_HEAP_GROWTH, 1); JS_SetGCParameter(rt, JSGC_DYNAMIC_MARK_SLICE, 1); JS_SetGCParameter(rt, JSGC_SLICE_TIME_BUDGET, 10); } -#endif /* DYING */ #endif js::SetPreserveWrapperCallback(rt, DummyPreserveWrapperCallback); @@ -544,22 +461,6 @@ #ifdef FIXME int result = ProcessArgs(cx, op); - -#ifdef FIXME - if (enableDisassemblyDumps) - js::DumpCompartmentPCCounts(cx); -#endif - - if (!op->getBoolOption("no-js-cache-per-process")) { - if (jsCacheAsmJSPath) { - unlink(jsCacheAsmJSPath); - JS_free(cx, const_cast<char*>(jsCacheAsmJSPath)); - } - if (jsCacheDir) { - rmdir(jsCacheDir); - JS_free(cx, const_cast<char*>(jsCacheDir)); - } - } #endif /* FIXME */ } @@ -625,10 +526,8 @@ return 0; } -#ifdef NOTYET static struct JSIO_s _mozjs45 = { mozFini, mozInit, mozRun }; JSIO_t mozjs45 = &_mozjs45; -#endif #include <rpmio.h> #include <argv.h> @@ -798,12 +697,6 @@ N_("Compile scripts off thread (default: on)"), NULL }, #endif -#ifdef DYING - { "ion-parallel-compile", '\0', POPT_BIT_SET|POPT_ARGFLAG_TOGGLE, - &_jss.ionf, ION_PARALLEL_COMPILE, - N_("Parallel compilation (deprecated: use --ion-offthread-compile)"), NULL }, -#endif - POPT_TABLEEND }; struct poptOption rpmjssOptionsTable[] = { @@ -1218,34 +1111,11 @@ #endif #ifdef JS_CODEGEN_X86 -#ifdef DYING -assert(op.getBoolOption("no-fpu") == ((jss->xf & XF_FPU) == 0)); - if (op.getBoolOption("no-fpu")) - js::jit::CPUInfo::SetFloatingPointDisabled(); -#else if (!(jss->xf & XF_FPU)) js::jit::CPUInfo::SetFloatingPointDisabled(); -#endif /* DYING */ #endif #if defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64) -#ifdef DYING -assert(op.getBoolOption("no-sse3") == ((jss->xf & XF_SSE3) == 0)); - if (op.getBoolOption("no-sse3")) { - js::jit::CPUInfo::SetSSE3Disabled(); - PropagateFlagToNestedShells("--no-sse3"); - } -assert(op.getBoolOption("no-sse4") == ((jss->xf & XF_SSE4) == 0)); - if (op.getBoolOption("no-sse4")) { - js::jit::CPUInfo::SetSSE4Disabled(); - PropagateFlagToNestedShells("--no-sse4"); - } -assert(op.getBoolOption("enable-avx") == ((jss->xf & XF_AVX) != 0)); - if (op.getBoolOption("enable-avx")) { - js::jit::CPUInfo::SetAVXEnabled(); - PropagateFlagToNestedShells("--enable-avx"); - } -#else if (!(jss->xf & XF_SSE3)) { js::jit::CPUInfo::SetSSE3Disabled(); PropagateFlagToNestedShells("--no-sse3"); @@ -1258,19 +1128,12 @@ js::jit::CPUInfo::SetAVXEnabled(); PropagateFlagToNestedShells("--enable-avx"); } -#endif /* DYING */ #endif -#ifdef DYING -assert(op.getBoolOption("no-threads") == ((jss->xf & XF_THREADS) == 0)); - if (op.getBoolOption("no-threads")) - js::DisableExtraThreads(); -#else if (!(jss->xf && XF_THREADS)) js::DisableExtraThreads(); -#endif - JSI_t I = (JSI_t) mozInit(jss, op); + JSI_t I = (JSI_t) mozInit(jss); jss->I = I; const char * _fn = "rpmjss.inp"; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org