Admin/mira.py
changeset 50599 e129fcc720c1
parent 50598 b4d62535f5cd
child 50600 48c0c3bc40dd
equal deleted inserted replaced
50598:b4d62535f5cd 50599:e129fcc720c1
    14 from mira import schedule, misc
    14 from mira import schedule, misc
    15 from mira.environment import scheduler
    15 from mira.environment import scheduler
    16 from mira import repositories
    16 from mira import repositories
    17 
    17 
    18 # build and evaluation tools
    18 # build and evaluation tools
       
    19 
       
    20 DEFAULT_TIMEOUT = 2 * 60 * 60
       
    21 SMLNJ_TIMEOUT = 72 * 60 * 60
    19 
    22 
    20 def prepare_isabelle_repository(loc_isabelle, loc_dependency_heaps, more_settings=''):
    23 def prepare_isabelle_repository(loc_isabelle, loc_dependency_heaps, more_settings=''):
    21 
    24 
    22     # patch settings
    25     # patch settings
    23     extra_settings = '''
    26     extra_settings = '''
    89         'image_size': extract_image_size(isabelle_home) }
    92         'image_size': extract_image_size(isabelle_home) }
    90 
    93 
    91 
    94 
    92 def isabelle_build(env, case, paths, dep_paths, playground, *cmdargs, **kwargs):
    95 def isabelle_build(env, case, paths, dep_paths, playground, *cmdargs, **kwargs):
    93 
    96 
    94     more_settings=kwargs.get('more_settings', '')
    97     more_settings = kwargs.get('more_settings', '')
    95     keep_results=kwargs.get('keep_results', True)
    98     keep_results = kwargs.get('keep_results', True)
       
    99     timeout = kwargs.get('timeout', DEFAULT_TIMEOUT)
    96 
   100 
    97     isabelle_home = paths[0]
   101     isabelle_home = paths[0]
    98 
   102 
    99     # copy over build results from dependencies
   103     # copy over build results from dependencies
   100     heap_dir = path.join(isabelle_home, 'heaps')
   104     heap_dir = path.join(isabelle_home, 'heaps')
   116 '''
   120 '''
   117 
   121 
   118     prepare_isabelle_repository(isabelle_home, None, more_settings=more_settings)
   122     prepare_isabelle_repository(isabelle_home, None, more_settings=more_settings)
   119     os.chdir(isabelle_home)
   123     os.chdir(isabelle_home)
   120 
   124 
       
   125     args = (['-o', 'timeout=%s' % timeout] if timeout is not None else []) + cmdargs
       
   126 
   121     # invoke build tool
   127     # invoke build tool
   122     (return_code, log) = env.run_process('%s/bin/isabelle' % isabelle_home, 'build', '-s', '-v', *cmdargs)
   128     (return_code, log) = env.run_process('%s/bin/isabelle' % isabelle_home, 'build', '-s', '-v', *args)
   123 
   129 
   124     # collect report
   130     # collect report
   125     return (return_code == 0, extract_isabelle_run_summary(log),
   131     return (return_code == 0, extract_isabelle_run_summary(log),
   126       extract_report_data(isabelle_home, log), {'log': log}, heap_dir if keep_results else None)
   132       extract_report_data(isabelle_home, log), {'log': log}, heap_dir if keep_results else None)
   127 
   133 
   324 '''
   330 '''
   325 
   331 
   326 @configuration(repos = [Isabelle], deps = [(Pure, [0])])
   332 @configuration(repos = [Isabelle], deps = [(Pure, [0])])
   327 def SML_HOL(*args):
   333 def SML_HOL(*args):
   328     """HOL image built with SML/NJ"""
   334     """HOL image built with SML/NJ"""
   329     return isabelle_build(*(args + ("-b", "HOL")), more_settings=smlnj_settings)
   335     return isabelle_build(*(args + ("-b", "HOL")), more_settings=smlnj_settings, timeout=SMLNJ_TIMEOUT)
   330 
   336 
   331 @configuration(repos = [Isabelle], deps = [])
   337 @configuration(repos = [Isabelle], deps = [])
   332 def SML_makeall(*args):
   338 def SML_makeall(*args):
   333     """SML/NJ build of all possible sessions"""
   339     """SML/NJ build of all possible sessions"""
   334     return isabelle_build(*(args + ("-j", "3", "-a")), more_settings=smlnj_settings)
   340     return isabelle_build(*(args + ("-j", "3", "-a")), more_settings=smlnj_settings, timeout=SMLNJ_TIMEOUT)
   335 
   341 
   336 
   342