Next: Inherited Indentation indentation
, Previous: Ancestor tracking with ancestral
, Up: Software Objects [Contents][Index]
light
/range
/diff
light
Software MixinA refinement of the ‘simple’ software representation, using a simplified genome data structure which require fewer cons cells but does not allow tagging of lines of code with information.
range
Software MixinAn software object which uses even less memory than the ‘light’ or ‘simple’ software object, but adds some complexity to many genome manipulation methods. Genomes are stored as references to ranges in the original reference genome. This representation does not permit wholly new genome elements, only re-orderings of existing genome elements.
diff
Software MixinClasses which inherit from diff will replace their genome structure with a diff which instead of holding a copy of the entire genome only holds a difference against a reference version of the genome. For example, the following will transparently save a single reference version of the genome and each individual in the population of ‘arm’ objects will only hold a pointer to this single reference, and it’s own diff against this single reference.
(defclass arm (software-evolution-library:diff elf-arm) ((results :initarg :results :accessor results :initform nil)))
After some initial experimentation, it does seem that mutations are now noticeably slower, because the differencing operations are not cheap.