X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftop%2FSCLCompilerConfiguration.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftop%2FSCLCompilerConfiguration.java;h=5f45852e36c4e269df060017d72e153fc1204780;hp=1331530dda6dfe5249fda811387f850d8022e6c4;hb=0861b325fcbbfa8c5985f1e11cfc39154a3808d1;hpb=edb5c89575392565d23dbfc7083617c981048c1e diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/SCLCompilerConfiguration.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/SCLCompilerConfiguration.java index 1331530dd..5f45852e3 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/SCLCompilerConfiguration.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/SCLCompilerConfiguration.java @@ -3,39 +3,44 @@ package org.simantics.scl.compiler.top; public interface SCLCompilerConfiguration { - public static final boolean DEBUG = false; - public static final boolean ENABLE_TIMING = false; + static final String KEY_PREFIX = "org.simantics.scl.compiler."; - public static final boolean SHOW_SSA_BEFORE_OPTIMIZATION = false; - public static final boolean SHOW_SSA_BEFORE_LAMBDA_LIFTING = false; - public static final boolean SHOW_FINAL_SSA = false; - public static final boolean SHOW_COMPILED_BYTECODE = false; - public static final boolean SHOW_DECOMPILED_BYTECODE = false; + public static final boolean DEBUG = parseBoolean("debug", false); + public static final boolean ENABLE_TIMING = parseBoolean("enableTiming", false); - public static final boolean SHOW_EXPRESSION_BEFORE_EVALUATION = false; - public static final boolean SHOW_INTERPRETED_EXPRESSION = false; + public static final boolean SHOW_SSA_BEFORE_OPTIMIZATION = parseBoolean("showSsaBeforeOptimization", false); + public static final boolean SHOW_SSA_BEFORE_LAMBDA_LIFTING = parseBoolean("showSsaBeforeLambdaLifting", false); + public static final boolean SHOW_FINAL_SSA = parseBoolean("showFinalSsa", false); + public static final boolean SHOW_COMPILED_BYTECODE = parseBoolean("showCompiledBytecode", false); + public static final boolean SHOW_DECOMPILED_BYTECODE = parseBoolean("showDecompiledBytecode", false); - public static final boolean SHOW_COMPILED_RULES = false; + public static final boolean SHOW_EXPRESSION_BEFORE_EVALUATION = parseBoolean("showExpressionBeforeEvaluation", false); + public static final boolean SHOW_INTERPRETED_EXPRESSION = parseBoolean("showInterpretedExpression", false); - public static final boolean VALIDATE_AFTER_OPTIMIZATIONS = false; - public static final boolean TRACE_CONSTRAINT_SOLVER = false; - public static final boolean PRINT_OPTIMIZATION_TRANSFORMATIONS = false; + public static final boolean SHOW_COMPILED_RULES = parseBoolean("showCompiledRules", false); - public static final boolean NULL_CHECK_THREAD_LOCAL_VARIABLES = false; + public static final boolean VALIDATE_AFTER_OPTIMIZATIONS = parseBoolean("validateAfterOptimizations", false); + public static final boolean TRACE_CONSTRAINT_SOLVER = parseBoolean("traceConstraintSolver", false); + public static final boolean PRINT_OPTIMIZATION_TRANSFORMATIONS = parseBoolean("printOptimizationTransformations", false); - public static final boolean TRACE_METHOD_CREATION = false; + public static final boolean NULL_CHECK_THREAD_LOCAL_VARIABLES = parseBoolean("nullCheckThreadLocalVariables", false); - public static final boolean TRACE_MODULE_UPDATE = false; + public static final boolean TRACE_METHOD_CREATION = parseBoolean("traceMethodCreation", false); + + public static final boolean TRACE_MODULE_UPDATE = parseBoolean("traceModuleUpdate", false); // Flags related to too long method sizes - public static final boolean TRACE_MAX_METHOD_SIZE = false; - public static final boolean EVERY_RULE_ENFORCEMENT_IN_SEPARATE_METHOD = true; - public static final boolean EVERY_DATALOG_STRATUM_IN_SEPARATE_METHOD = true; + public static final boolean TRACE_MAX_METHOD_SIZE = parseBoolean("traceMaxMethodSize", false); + public static final boolean EVERY_RULE_ENFORCEMENT_IN_SEPARATE_METHOD = parseBoolean("everyRuleEnforcementInSeparateMethod", true); + public static final boolean EVERY_DATALOG_STRATUM_IN_SEPARATE_METHOD = parseBoolean("everyDatalogStratumInSeparateMethod", true); - public static final boolean ALLOW_OVERLOADING = true; + public static final boolean ALLOW_OVERLOADING = parseBoolean("allowOverloading", true); public static boolean debugFilter(String name) { return true; } - + + static boolean parseBoolean(String property, boolean defaultValue) { + return defaultValue || Boolean.parseBoolean(System.getProperty(KEY_PREFIX + property)); + } }