':param other_project: The second project to diff'

def __init__(self, other_project, enable_advanced_backward_slicing=False, cfg_a=None, cfg_b=None):

    l.debug("Computing    cfg's")
    back_traversal = (not enable_advanced_backward_slicing)
    if (cfg_a is None):
        self.cfg_a = self.project.analyses.CFGAccurate(context_sensitivity_level=1, keep_state=True, enable_symbolic_back_traversal=back_traversal, enable_advanced_backward_slicing=enable_advanced_backward_slicing)
        self.cfg_b = other_project.analyses.CFGAccurate(context_sensitivity_level=1, keep_state=True, enable_symbolic_back_traversal=back_traversal, enable_advanced_backward_slicing=enable_advanced_backward_slicing)
    else:
        self.cfg_a = cfg_a
        self.cfg_b = cfg_b
    l.debug("Done    computing    cfg's")
    self._p2 = other_project
    self._attributes_a = dict()
    self._attributes_a = dict()
    self._function_diffs = dict()
    self.function_matches = set()
    self._unmatched_functions_from_a = set()
    self._unmatched_functions_from_b = set()
    self._compute_diff()
