'Merge this SimMemory with the other SimMemory'

def merge(self, others, merge_conditions, common_ancestor=None):

    changed_bytes = self._changes_to_merge(others)
    l.info('Merging    %d    bytes', len(changed_bytes))
    l.info('...    %s    has    changed    bytes    %s', self.id, changed_bytes)
    self.read_strategies = self._merge_strategies(self.read_strategies, *[o.read_strategies for o in others])
    self.write_strategies = self._merge_strategies(self.write_strategies, *[o.write_strategies for o in others])
    merged_bytes = self._merge(others, changed_bytes, merge_conditions=merge_conditions)
    return (len(merged_bytes) > 0)
