当前位置: 首页>>代码示例>>Python>>正文


Python FORA.initializeRuntime方法代码示例

本文整理汇总了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
开发者ID:vishnur,项目名称:ufora,代码行数:79,代码来源:Runtime.py


注:本文中的ufora.native.FORA.initializeRuntime方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。