Experiment: GenerateBlameReport

Different experiments to generate blame reports.

Module: BlameReportExperiment

Implements the basic blame report experiment.

The experiment analyses a project with VaRA’s blame analysis and generates a BlameReport.

class varats.experiments.vara.blame_report_experiment.BlameReportGeneration(project)[source]

Bases: benchbuild.utils.actions.Step

Analyse a project with VaRA and generate a BlameReport.

NAME: ClassVar[str] = 'BlameReportGeneration'
DESCRIPTION: ClassVar[str] = 'Analyses the bitcode with -vara-BR of VaRA.'
RESULT_FOLDER_TEMPLATE = '{result_dir}/{project_dir}'
analyze()[source]

This step performs the actual analysis with the correct command line flags.

Flags used:
  • -vara-BR: to run a commit flow report

  • -yaml-report-outfile=<path>: specify the path to store the results

Return type

StepResult

class varats.experiments.vara.blame_report_experiment.BlameReportExperiment(name=NOTHING, projects=NOTHING, id=NOTHING, schema=NOTHING, container=NOTHING)[source]

Bases: varats.experiment.experiment_util.VersionExperiment

Generates a commit flow report (CFR) of the project(s) specified in the call.

NAME: tp.ClassVar[str] = 'GenerateBlameReport'
REPORT_TYPE

alias of varats.data.reports.blame_report.BlameReport

REQUIREMENTS: List[benchbuild.utils.requirements.Requirement] = [SlurmMem(mem_req=268435456000)]
actions_for_project(project)[source]

Returns the specified steps to run the project(s) specified in the call in a fixed order.

Parameters

project (Project) – to analyze

Return type

List[Step]


Module: BlameExperiment

Implements the base blame experiment, making it easier to create different blame experiments that have a similar experiment setup.

varats.experiments.vara.blame_experiment.setup_basic_blame_experiment(experiment, project, report_type, result_folder_template)[source]

Setup the project for a blame experiment.

  • run time extensions

  • compile time extensions

  • prepare compiler

  • configure C/CXX flags

Return type

None

varats.experiments.vara.blame_experiment.generate_basic_blame_experiment_actions(project, bc_file_extensions=None, extraction_error_handler=None)[source]

Generate the basic actions for a blame experiment.

  • handle caching of BC files

  • compile project, if needed

Parameters
  • project (Project) – reference to the BB project

  • bc_file_extensions (Optional[List[BCFileExtensions]]) – list of bitcode file extensions (e.g. opt, no opt)

  • extraction_error_handler (Optional[PEErrorHandler]) – handler to manage errors during the extraction process

Return type

List[Step]