本文整理汇总了Python中ufora.native.FORA.initializeRuntime方法的典型用法代码示例。如果您正苦于以下问题:Python FORA.initializeRuntime方法的具体用法?Python FORA.initializeRuntime怎么用?Python FORA.initializeRuntime使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ufora.native.FORA
的用法示例。
在下文中一共展示了FORA.initializeRuntime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: initialize
# 需要导入模块: from ufora.native import FORA [as 别名]
# 或者: from ufora.native.FORA import initializeRuntime [as 别名]
def initialize(setupObjectToUse = None):
if setupObjectToUse is None:
configObjectToUse = Setup.config()
else:
configObjectToUse = setupObjectToUse.config
with _mainRuntimeLock:
if _mainRuntime[0] is not None:
return
#configure the main runtime compiler
cfg = FORANative.RuntimeConfig()
try:
cfg.traceDefinitions = False
cfg.traceArguments = False
cfg.tracePaths = False
cfg.useInlineMemoryManagement = True
cfg.duplicateNativeEntrypoints = False
cfg.validateVariablesDefinedBeforeUseInFlatCode = True
cfg.inlineComplexity = 50
cfg.dynamicInlinerSleepTimeMilliseconds = 50
cfg.mediumPriorityCodeComplexityThreshold = 50
cfg.useLLVMOptimization = True
cfg.kickIntoInterpreterOnInline = True
cfg.applyRefcountOptimization = True
cfg.extraDebugChecksDuringCompilation = False
cfg.generateMachineCodeVectorAxioms = True
cfg.sharedObjectLibraryPath = ufora.native.__file__
cfg.compilerThreadCount = configObjectToUse.foraCompilerThreads
cfg.compilerDefinitionDumpDir = configObjectToUse.compilerDefinitionDumpDir
cfg.instructionDefinitionDumpDir = configObjectToUse.instructionDefinitionDumpDir
cfg.dynamicInlineCallThreshold = 1000
cfg.dynamicInlineCallThresholdSecondary = 500
cfg.maxDynamicInlineComplexity = 5000
cfg.useDynamicInlining = True
if cfg.compilerDefinitionDumpDir != "":
logging.info("dumping CFGs to %s", cfg.compilerDefinitionDumpDir)
try:
os.system("rm " + cfg.compilerDefinitionDumpDir + " -rf")
except:
pass
try:
os.makedirs(cfg.compilerDefinitionDumpDir)
except:
pass
axioms = open(os.path.join(_curDir,"../Axioms","axioms.fora"), "r").read()
_mainRuntime[0] = FORANative.initializeRuntime(
axioms,
cfg,
)
if configObjectToUse.interpreterTraceDumpFile != "":
logging.info("Logging traces to %s", configObjectToUse.interpreterTraceDumpFile)
_mainRuntime[0].getInterpreterTraceHandler().logTracesToFile(
configObjectToUse.interpreterTraceDumpFile
)
if configObjectToUse.wantsPythonGilLoopChecker:
ManagedThread.ManagedThread(
target = FORANative.checkPythonGilLoop,
args = (configObjectToUse.pythonGilLoopInterrupts,)
).start()
except:
import traceback
traceback.print_exc()
raise