The software-evolution-library Reference Manual

This is the software-evolution-library Reference Manual, version 0.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:51:25 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 software-evolution-library

programmatic modification and evaluation of extant software

Author

Eric Schulte and GrammaTech

License

GPL V3

Long Description

A common interface abstracts over multiple
types of software objects including abstract syntax trees parsed from source code, LLVM IR, compiled assembler, and linked ELF binaries. Mutation and evaluation methods are implemented on top of this interface supporting Search Based Software Engineering (SBSE) techniques.

Version

0.0.0

Defsystem Dependency

asdf-package-system (system).

Dependency

software-evolution-library/software-evolution-library (system).

Source

software-evolution-library.asd.


2.2 software-evolution-library/software-evolution-library

Author

Eric Schulte and GrammaTech

License

GPL V3

Dependencies
Source

software-evolution-library.asd.


2.3 software-evolution-library/utility/git

Author

Eric Schulte and GrammaTech

License

GPL V3

Dependency

gt/full (system).

Source

software-evolution-library.asd.


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.2 software-evolution-library/software-evolution-library/file-type.lisp

Source

software-evolution-library.asd.

Parent Component

software-evolution-library/software-evolution-library (system).

Packages

software-evolution-library/software-evolution-library.

Public Interface
Internals

3.1.3 software-evolution-library/utility/git/file-type.lisp

Source

software-evolution-library.asd.

Parent Component

software-evolution-library/utility/git (system).

Packages

software-evolution-library/utility/git.

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 software-evolution-library/utility/git

Source

file-type.lisp.

Nickname

sel/utility/git

Use List

gt/full.

Used By List

software-evolution-library/software-evolution-library.

Public Interface
Internals

4.2 software-evolution-library/software-evolution-library

Source

file-type.lisp.

Nicknames
  • sel
  • software-evolution-library
Use List
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Constants

Constant: +software-evolution-library-major-version+

Current major version of the SOFTWARE-EVOLUTION-LIBRARY (without git hash).

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.


5.1.2 Special variables

Special Variable: *cross-chance*

Fraction of new individuals generated using crossover rather than mutation.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *crossover-stats*

Variable to hold crossover statistics.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *elitism*

Number of individuals to automatically promote to next population. Range: 0..(- (length *population*) 1)
When evolving super-mutants, or calling generational-evolve,
*ELITISM* specifies the number of individuals which are automatically promoted prior to typical generational replacement or eviction
process. The selected individuals will be the ones with the
best fitness.
When using super-mutants, the *ELITISM* value will reduce the number of new individuals created in each generation by the value of *ELITISM* (since this number will automatically be promoted).

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *fitness-evals*

Track the total number of fitness evaluations.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *fitness-predicate*

Function to compare two fitness values to select which is preferred.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *fitness-scalar-fn*

Function to convert fitness to a numeric value

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *generations*

Holds the running generation count.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *max-population-size*

Maximum allowable population size.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *mcmc-fodder*

Holds the genome elements which may be used by ‘mcmc-step’. Should be initialized to a list of the unique possible genome elements.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *mut-rate*

Chance to mutate a new individual.
* If <1, new individuals will be mutated once with change *MUT-RATE*. * If =1, then every new individual will be mutated exactly once.
* If >1, then new individuals will be mutated from 1 to *MUT-RATE* times.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *mutation-improvements*

List of recent mutation improvements cons’d with *fitness-evals*.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *mutation-stats*

Variable to hold mutation statistics.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *population*

Holds the variant programs to be evolved.
This variable may be read to inspect a running search process, or written to as part of a running search process.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *running*

True when a search process is running, set to nil to stop evolution.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *start-time*

Holds the start time of evolutionary processes.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *target-fitness-p*

Predicate indicating whether an individual has reached the target fitness.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *tie-breaker-predicate*

Function to compare two tie breaker values to select which is preferred.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *tournament-eviction-size*

Number of individuals to participate in eviction tournaments.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *tournament-selector*

Function used to select winners of a tournament. Returns a list of winners.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *tournament-size*

Number of individuals to participate in tournament selection.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *tournament-tie-breaker*

Function used to break ties in a tournament. Returns a single winner.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *worst-fitness*

Default worst fitness TODO.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: *worst-fitness-p*

Predicate indicating whether an individual has the worst possible fitness.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: +software-evolution-library-branch+

Current branch of the SOFTWARE-EVOLUTION-LIBRARY.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: +software-evolution-library-dir+

Path to directory holding SOFTWARE-EVOLUTION-LIBRARY.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Special Variable: +software-evolution-library-version+

Current version of the SOFTWARE-EVOLUTION-LIBRARY.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.


5.1.3 Macros

Macro: compose-mutations (class-name mutations &rest options)

Define a new mutation named CLASS-NAME composing MUTATIONS. MUTATIONS is a list of the names of mutation classes.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Macro: define-mutation (class-name superclasses slots &rest options)

Like ‘defclass’ but inherits TARGETER slot-options from MUTATION. Also, ensures MUTATION is a member of superclasses

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Macro: define-software (name direct-superclasses direct-slots &rest options)

Define a new ‘software’ class NAME including a deep ‘copy’ method. Arguments NAME DIRECT-SUPERCLASSES and OPTIONS are passed through to ‘defclass’ unmodified. Additional optional :COPIER property on each slot in DIRECT-SLOTS may be one of the following:

* :NONE this slot is not copied and will be nil in the new object * :DIRECT this slot is copied by direct reference to the slot value skipping the accessor
* otherwise if the value of :COPIER is nil (default) then the slot is copied through its accessor, otherwise the value is assumed to be a function (e.g., ‘copy-tree’) which is used to copy the slot.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Macro: evolve (test &rest rest &key super-mutant-count &allow-other-keys)

Evolves ‘*population*’ using ‘new-individual’ and TEST.

* SUPER-MUTANT-COUNT evaluate this number of mutants at once in a combined genome.

Other keyword arguments are used as defined in the ‘-search’ function.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Macro: ignore-phenome-errors (&rest body)

Handle errors in ‘phenome’ execution by returning nil as the first value from the ‘phenome’ method.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Macro: mcmc (original test &rest rest &key accept-fn &allow-other-keys)

MCMC search from ORIGINAL using ‘mcmc-step’ and TEST.
If keyword argument ACCEPT-FN is given it is used to determine when a newly found candidate replaces the current candidate. If ACCEPT-FN is not supplied MCMC defaults to using Metropolis Hastings.

Other keyword arguments are used as defined in the ‘-search’ function.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Macro: sequence-mutations (class-name mut-a mut-b &rest options)

Define a new mutation named CLASS-NAME sequencing MUT-A and MUT-B.
MUT-A and MUT-B are instances of mutations. Instead of collecting
targets for A and then targets for B and then applying A and B as done
by ‘compose-mutations’, ‘sequence-mutations’ first targets and applies A and then targets and applied B.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.


5.1.4 Ordinary functions

Function: analyze-mutation (obj mutation-info test)

Default function to collect statistics from an applied mutation.

This function will calculate the improvements to the fitness of SOFTWARE as the result of crossover and mutation using ‘evaluate’ and TEST. Each crossover and mutation will be paired with one of the following tags; :dead, :same, :worse, or :better. Calculated stats will be added to the *crossover-stats* and *mutation-stats* variables for analysis.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: classify (new &rest old)

Classify the fitness of NEW as :BETTER, :WORSE, :SAME, or :DEAD when compared to OLD. NEW and OLD must have fitness populated.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: crossed (&optional a b)

Generate a new individual from *POPULATION* using crossover.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: default-random-winner (group &key predicate)

Choose a random winner from GROUP.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: default-select-best (group &key predicate)

Return the members of GROUP with most PREDICATE fitness. Default selection function for ‘tournament’.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: elapsed-time ()
Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: evict ()
Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: fitness-better-p (fitness-a fitness-b)

Check if FITNESS-A is strictly better than FITNESS-B.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: fitness-equal-p (fitness-a fitness-b)

Return true if FITNESS-A and FITNESS-B are equal

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: fitness-scalar (fitness)
Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: generational-evolve (reproduce evaluate-pop select &key every-pre-fn every-post-fn analyze-mutation-fn test period period-fn max-generations max-evals max-time filter)

Evolves ‘*population*’ using REPRODUCE EVALUATE-POP and SELECT.

Required arguments are as follows:
REPRODUCE ———– create new individuals from the current population EVALUATE-POP ——– evaluate-pop the entire population
SELECT ————– select best individuals from the population
Keyword arguments are as follows:
MAX-GENERATIONS —– stop after this many generations
MAX-EVALS ———– stop after this many fitness evaluations
MAX-TIME ———— stop after this many seconds
PERIOD ————– interval of generations evaluations to run PERIOD-FN PERIOD-FN ———– function to run every PERIOD generations EVERY-PRE-FN ——– function to run on each new individual before evaluation EVERY-POST-FN ——- function to run on each new individual after evaluation ANALYZE-MUTATION-FN - function to call to analyze mutation results
TEST —————- fitness test function for mutation statistics
FILTER ————– remove individuals for which FILTER returns false

Note that REPRODUCE should handle any errors that occur from failed mutations. This differs from how evolve works.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: git-url-p (url)

Return nil if URL does not look like a URL to a git valid remote.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Function: incorporate (software)

Incorporate SOFTWARE into POPULATION, keeping POPULATION size constant.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: interpreted-phenome (obj bin)

Create a phenotype of the interpreted software OBJ.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: make-git (local-directory &key remote ssh-key clone-args)

Make a git object in LOCAL-DIRECTORY.
If REMOTE is specified clone from REMOTE into LOCAL-DIRECTORY. If LOCAL-DIRECTORY exists it should be part of or under a git repository. If LOCAL-DIRECTORY does not exist it will be created and a fresh git repository will be initialized therein. A username and password may be specified as part of the REMOTE URL. E.g. as ’https://USERNAME:PASSWORD@github.com/path/to/repo.git’.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Function: mutant (&optional new)

Generate a new mutant from a *POPULATION*.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: new-individual (&optional a b)

Generate a new individual from *POPULATION*.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: simple-evaluate (test new-children)

Evaluate NEW-CHILDREN using TEST assigning each a fitness.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: simple-reproduce (population)

Reproduce using every individual in POPULATION.
Return a list of the resulting children and as optional extra value a list of the mutations applied to produce those children.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: simple-select (population max-size)
Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: summarize-mutation-stats ()

DOCFIXME
* RESULTS DOCFIXME

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: tournament (&key predicate tie-breaker-predicate size)

Select an individual from *POPULATION* with a tournament.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: worst-numeric-fitness ()
Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: worst-numeric-fitness-p (obj)
Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.


5.1.5 Generic functions

Generic Function: apply-all-mutations (software mutation)

Apply MUTATION to every target in SOFTWARE.
Returns the resulting software objects. Returns a list of the applied mutations as an optional second value.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: apply-all-mutations ((obj software) (mut mutation))
Generic Function: apply-mutation (software mutation)

Apply MUTATION to SOFTWARE, return the resulting software object.
Mutation application may destructively modify the software object, or it may return a new instance with the mutation applied, and leave the original untouched. Any client which calls apply-mutation should ensure that the result returned by apply-mutation is captured, and should not make assumptions about the state of the original.

Example: (let ((mutated-software (apply-mutation (copy software) mutation))) ...

Define an :around method on this function to record mutations.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: apply-mutation :before ((obj software) (mut mutation))
Generic Function: apply-mutations (software mutation n)

Apply MUTATION to the first N targets in SOFTWARE.
Returns the resulting software objects. Returns a list of the applied mutations as an optional second value.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: apply-mutations ((obj software) (mut mutation) n)
Generic Function: apply-path (software key path)

Apply the execution trace PATH behind KEY in SOFTWARE.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: apply-picked-mutations (software mutation n)

Apply MUTATION to N randomly selected targets in SOFTWARE.
Returns the resulting software objects. Returns a list of the applied mutations as an optional second value.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: apply-picked-mutations ((obj software) (mut mutation) n)
Generic Function: at-targets (mutation targets &key object &allow-other-keys)

Return a copy of MUTATION with ‘targets’ set to TARGETS.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: at-targets ((mut mutation) targets &key object)
Generic Function: build-op (mutation software)

Build operation on SOFTWARE from a MUTATION.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: create-super (variant &optional rest-variants)

Create a super-mutant populated with VARIANT . REST-VARIANTS

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: crossover (software-a software-b)

Crossover two software objects.
Define an :around method on this function to record crossovers.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: crossover :around ((software-a software) (software-b software))
Generic Function: current-git-branch (repository)

Return the current git branch by directly reading git data on disk.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Methods
Method: current-git-branch ((dir list))
Method: current-git-branch ((dir string))
Method: current-git-branch ((dir pathname))
Method: current-git-branch ((git git))
Generic Function: current-git-commit (repository)

Return the current git commit by directly reading git data on disk.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Methods
Method: current-git-commit ((dir list))
Method: current-git-commit ((dir string))
Method: current-git-commit ((dir pathname))
Method: current-git-commit ((git git))
Generic Function: current-git-status (directory)

Return the git status of DIRECTORY as a list of lists of (status file). Return nil if there are no modified, untracked, or deleted files.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Methods
Method: current-git-status ((dir list))
Method: current-git-status ((dir string))
Method: current-git-status ((dir pathname))
Method: current-git-status ((git git))
Generic Function: evaluate (function software &rest extra-keys &key &allow-other-keys)

Evaluate the software returning a numerical fitness.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: evaluate ((test function) (obj software) &rest extra-keys &key &allow-other-keys)
Method: evaluate ((test symbol) (obj software) &rest extra-keys &key &allow-other-keys)
Generic Reader: fitness (object)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: fitness ((software software))

automatically generated reader method

Source

file-type.lisp.

Target Slot

fitness.

Generic Writer: (setf fitness) (object)
Package

software-evolution-library/software-evolution-library.

Methods
Writer Method: (setf fitness) ((software software))

automatically generated writer method

Source

file-type.lisp.

Target Slot

fitness.

Generic Function: fitness-extra-data (software)

Hold extra data returned by the fitness function.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: fitness-extra-data ((obj software))
Generic Function: (setf fitness-extra-data) (software)

Pass extra data (optionally) returned by the fitness function to the software object.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: (setf fitness-extra-data) ((obj software))
Generic Function: from-file (software file)

Initialize SOFTWARE with contents of FILE.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: from-file ((class symbol) file)
Generic Function: from-string (software string)

Initialize SOFTWARE with contents of STRING.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: from-string ((class symbol) string)
Generic Function: genome (software)

The software genotype or “code”, exposed as a simplified data structure. For example an AST genome, e.g., of a ‘cil’ or ‘lisp’ software object my have a tree structure while the genome of an ‘asm’ or ‘llvm’ software object will be a vector.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: genome-string (software &optional stream)

Return a string of the ‘genome’ of SOFTWARE.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Reader: get-targets (object)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: get-targets ((mutation mutation))

A calculated target set.

Source

file-type.lisp.

Target Slot

targets.

Generic Reader: git-dir (object)
Package

software-evolution-library/utility/git.

Methods
Reader Method: git-dir ((git git))

automatically generated reader method

Source

file-type.lisp.

Target Slot

git-dir.

Generic Writer: (setf git-dir) (object)
Package

software-evolution-library/utility/git.

Methods
Writer Method: (setf git-dir) ((git git))

automatically generated writer method

Source

file-type.lisp.

Target Slot

git-dir.

Generic Function: log-message (object &key &allow-other-keys)

Generate a log message for OBJECT.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: log-message (object &key &allow-other-keys)
Generic Function: log-new-individuals (variant mutation-info &key)
Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: log-new-individuals (variant mutation-info &key)
Generic Function: mcmc-step (software)

Change software in a way amenable to MCMC.
Specifically every step should be reversible, and the resulting walk should be ergodic.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: mutate (software)

Mutate the software. May throw a ‘mutate’ error.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: mutation-key (software mutation)

Key used to organize mutations in *mutation-stats*.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: mutation-key ((obj software) (mutation mutation))
Method: mutation-key ((obj software) mutation)

DOCFIXME
* OBJ DOCFIXME * MUTATION DOCFIXME

Generic Reader: object (object)
Generic Writer: (setf object) (object)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: object ((mutation mutation))
Writer Method: (setf object) ((mutation mutation))

The software object to be mutated.

Source

file-type.lisp.

Target Slot

object.

Generic Function: one-point-crossover (software-a software-b)

Crossover at a single point.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: phenome (software &key bin)

Phenotype of the software.
This method will link, compile or serialize the software object as necessary returning an executable version of the software suitable for testing and evaluation. Returns multiple values holding in order; (1) the binary path to which the executable was compiled, (2) the errno, or a numeric indication of success, of the compilation process, (3) STDERR of the compilation process, or a string holding error output relevant to phenome generation, (4) STDOUT of the compilation process, or a string holding non-error output relevant to phenome generation, (5) the source file name used during compilation.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: phenome ((software interpreted-phenome) &key bin)
Generic Function: phenome-p (software)

Return non-nil if SOFTWARE has a phenotype.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: phenome-p ((obj software))
Generic Function: pick (software key &optional func)

Pick an element of GENOME based on KEY of each element.
KEY is passed to ‘proportional-pick’ to return an index. Optional argument FUNC processes the index to return a result.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: pick ((sw software) key &optional func)
Generic Function: pick-bad (software)

Pick a ’bad’ index into a software object. Used to target mutation.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: pick-bad ((software software))
Generic Function: pick-bad-bad (software &key &allow-other-keys)

Pick two ’bad’ indexes into a software object. Used to target mutation.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: pick-bad-bad ((software software) &key)
Generic Function: pick-bad-good (software &key &allow-other-keys)

Pick a ’bad’ and a ’good’ indexes into a software object. Used to target mutation.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: pick-bad-good ((software software) &key)
Generic Function: pick-bad-only (software &key &allow-other-keys)

Pick a single ’bad’ index into a software object. Used to target mutation.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: pick-bad-only ((software software) &key)
Generic Function: pick-good (software)

Pick a ’good’ index into a software object. Used to target mutation.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: pick-good ((software software))
Generic Function: pick-mutation-type (software)

Select a type of mutation to apply to SOFTWARE.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: picker (x)

Reader for the PICKER slot of mutation objects

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: run (git command &rest arguments)

Run the git command COMMAND in the git repository GIT.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Methods
Method: run ((git git) (command string) &rest arguments)
Generic Reader: ssh-key (object)
Package

software-evolution-library/utility/git.

Methods
Reader Method: ssh-key ((git git))

automatically generated reader method

Source

file-type.lisp.

Target Slot

ssh-key.

Generic Writer: (setf ssh-key) (object)
Package

software-evolution-library/utility/git.

Methods
Writer Method: (setf ssh-key) ((git git))

automatically generated writer method

Source

file-type.lisp.

Target Slot

ssh-key.

Generic Function: targeter (x)

Reader for the TARGETER slot of mutation objects

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Function: targets (mutation)

Return all possible targets of MUTATION.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: targets ((mut mutation))
Generic Reader: text (condition)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: text ((condition no-mutation-targets))
Source

file-type.lisp.

Target Slot

text.

Reader Method: text ((condition mutate))
Source

file-type.lisp.

Target Slot

text.

Reader Method: text ((condition phenome))
Source

file-type.lisp.

Target Slot

text.

Generic Function: to-file (software file)

Write SOFTWARE to FILE.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Methods
Method: to-file :before ((software software) file)
Method: to-file ((software software) file)
Generic Function: two-point-crossover (software-a software-b)

Crossover between two points.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Reader: work-tree (object)
Package

software-evolution-library/utility/git.

Methods
Reader Method: work-tree ((git git))

automatically generated reader method

Source

file-type.lisp.

Target Slot

work-tree.

Generic Writer: (setf work-tree) (object)
Package

software-evolution-library/utility/git.

Methods
Writer Method: (setf work-tree) ((git git))

automatically generated writer method

Source

file-type.lisp.

Target Slot

work-tree.


5.1.6 Standalone methods

Method: copy ((obj software) &key fitness)
Package

functional-trees.

Source

file-type.lisp.

Method: initialize-instance :after ((git git) &key)
Source

file-type.lisp.

Method: print-object ((mut mutation) stream)
Source

file-type.lisp.

Method: size ((software software))

Return the size of the ‘genome’ of SOFTWARE.

Package

fset.

Source

file-type.lisp.


5.1.7 Conditions

Condition: git-error
Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Direct superclasses

error.

Direct methods

description.

Direct slots
Slot: description
Initform

(quote nil)

Initargs

:description

Readers

description.

Writers

This slot is read-only.

Condition: mutate

Mutation errors are thrown when a mutation fails. These may often be safely ignored. A common restart is ‘ignore-failed-mutation’.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Direct superclasses

error.

Direct subclasses

no-mutation-targets.

Direct methods
Direct slots
Slot: text
Initform

(quote nil)

Initargs

:text

Readers

text.

Writers

This slot is read-only.

Slot: obj
Initform

(quote nil)

Initargs

:obj

Readers

obj.

Writers

This slot is read-only.

Slot: operation
Initform

(quote nil)

Initargs

:operation

Readers

operation.

Writers

This slot is read-only.

Condition: no-mutation-targets

This is a particularly benign form of mutation error. A common restart is ‘ignore-failed-mutation’.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Direct superclasses

mutate.

Direct methods
Direct slots
Slot: text
Initform

(quote nil)

Initargs

:text

Readers

text.

Writers

This slot is read-only.

Slot: obj
Initform

(quote nil)

Initargs

:obj

Readers

obj.

Writers

This slot is read-only.

Slot: operation
Initform

(quote nil)

Initargs

:operation

Readers

operation.

Writers

This slot is read-only.

Condition: phenome

DOCFIXME

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: text
Initform

(quote nil)

Initargs

:text

Readers

text.

Writers

This slot is read-only.

Slot: obj
Initform

(quote nil)

Initargs

:obj

Readers

obj.

Writers

This slot is read-only.

Slot: loc
Initform

(quote nil)

Initargs

:loc

Readers

loc.

Writers

This slot is read-only.


5.1.8 Classes

Class: git

An object to represent a git repository.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Direct methods
Direct slots
Slot: git-dir
Type

(or null pathname)

Initargs

:git-dir

Readers

git-dir.

Writers

(setf git-dir).

Slot: work-tree
Type

(or null pathname)

Initargs

:work-tree

Readers

work-tree.

Writers

(setf work-tree).

Slot: ssh-key
Type

(or null string)

Initargs

:ssh-key

Readers

ssh-key.

Writers

(setf ssh-key).

Class: interpreted-phenome

Mixin for an interpreted phenome.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Direct methods

phenome.

Class: mutation

The base class of all software mutations.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Direct superclasses

oid-object.

Direct methods
Direct slots
Slot: object

The software object to be mutated.

Type

(or software-evolution-library/software-evolution-library:software null)

Initargs

:object

Readers

object.

Writers

(setf object).

Slot: targets

A calculated target set.

Initargs

:targets

Readers

get-targets.

Writers

This slot is read-only.

Class: oid-object

Attaches a unique oid (object identifier) to each instance.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Direct subclasses
Direct methods

oid.

Direct slots
Slot: oid
Initform

(software-evolution-library/software-evolution-library::generate-oid)

Readers

oid.

Writers

This slot is read-only.

Class: software

Base class for all software objects.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Direct superclasses

oid-object.

Direct methods
Direct slots
Slot: fitness
Initargs

:fitness

Readers

fitness.

Writers

(setf fitness).


5.2 Internals


5.2.1 Special variables

Special Variable: *max-saved-mutation-improvements*

Maximum number of mutation improvements to hold on to.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.


5.2.2 Macros

Macro: define-direct-git-command (data (arg) &body body)

Define a git command which reads directly from the file system. These commands don’t actually have to invoke git commands directly.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.


5.2.3 Ordinary functions

Function: -search (evaluate-fn reproduce actions &key max-evals max-time period period-fn every-pre-fn every-post-fn filter analyze-mutation-fn)

Perform a search loop with early termination.

Required arguments are as follows:
EVALUATE-FN ——— Test function used to ‘evaluate’ every VARIANT. REPRODUCE ———– Function to call on every iteration to get the variants and mutation info as values from the current population. ACTIONS ————- Actions to be performed in the core search loop after the new individuals have been bound.
Keyword arguments are as follows:
MAX-EVALS ———– Maximum number of evaluations to perform.
MAX-TIME ———— Maximum time to run.
PERIOD ————– Period (in evals) at which to call PERIOD-FN. PERIOD-FN ———– Function to call every Period evals.
EVERY-PRE-FN ——– Function to call before every evaluation. EVERY-POST-FN ——- Function to call after every evaluation.
FILTER ————– Function to filter variants from BODY. ANALYZE-MUTATION-FN - Function to call to analyze mutation results

The following global variables are implicitly updated by this function
and should be dynamically bound to perform multiple different
simultaneous searches, ‘*running*’, ‘*start-time*’, ‘*fitness-evals*’.
The global variable ‘*target-fitness-p*’ implicitly defines a stopping criteria for this search.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: add-elite-individuals (elite-individuals)

Add ELITE-INDIVIDUALS to the population.
NEW-POPULATION can be used if *POPULATION* doesn’t contain the current value.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: call-period-fn (period-fn period current-evals evals-delta)

Call the period-fn if needed. This is based on the updated CURRENT-EVALS and the EVALS-DELTA that was used to update it.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: continue-evolutionary-loop-p (&key max-time max-evals max-generations)

Return T if all of the common conditions are met for continuing the evolutionary loop:

- *running* is t.
- Maximum number of evaluations has not been reached.
- Maximum time has not been reached.
- Maximum generations has not been reached.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: create-and-populate-super (variant-list)

Create and populate a super-mutant with supplied list of variants.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: deinitialize-evolutionary-loop ()

Deinitialize common special variables used by the evolutionary loop.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: generate-oid ()

Create a fresh, unique oid (object id) in range [1 ...]

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: git-from-directory (directory)

Return first parent directory of DIRECTORY that is a git repository. Return a second value which is the base git repository, the GIT_WORK_TREE. Raise an error if no such parent exists.

Package

software-evolution-library/utility/git.

Source

file-type.lisp.

Function: initialize-evolutionary-loop ()

Initialize common special variables used by the evolutionary loop and assert their validity.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: new-individuals (count)

Generate COUNT new individuals from *POPULATION*.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: remove-elite-individuals ()

Remove *ELITISM* individuals from population and return them.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Function: validate-evolution-parameters ()

Validate special variables that are used during the evolutionary loop.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.


5.2.4 Generic functions

Generic Function: apply-config (software config-file)

Parse CONFIG-FILE and use to configure SOFTWARE.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Reader: description (condition)
Package

software-evolution-library/utility/git.

Methods
Reader Method: description ((condition git-error))
Source

file-type.lisp.

Target Slot

description.

Generic Function: expression (software what)

Return WHAT in SOFTWARE as a lisp expression.

Package

software-evolution-library/software-evolution-library.

Source

file-type.lisp.

Generic Reader: loc (condition)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: loc ((condition phenome))
Source

file-type.lisp.

Target Slot

loc.

Generic Reader: obj (condition)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: obj ((condition no-mutation-targets))
Source

file-type.lisp.

Target Slot

obj.

Reader Method: obj ((condition mutate))
Source

file-type.lisp.

Target Slot

obj.

Reader Method: obj ((condition phenome))
Source

file-type.lisp.

Target Slot

obj.

Generic Reader: oid (object)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: oid ((oid-object oid-object))

automatically generated reader method

Source

file-type.lisp.

Target Slot

oid.

Generic Reader: operation (condition)
Package

software-evolution-library/software-evolution-library.

Methods
Reader Method: operation ((condition no-mutation-targets))
Source

file-type.lisp.

Target Slot

operation.

Reader Method: operation ((condition mutate))
Source

file-type.lisp.

Target Slot

operation.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (   -  
A   B   C   D   E   F   G   I   L   M   N   O   P   R   S   T   V   W  
Index Entry  Section

(
(setf fitness): Public generic functions
(setf fitness): Public generic functions
(setf fitness-extra-data): Public generic functions
(setf fitness-extra-data): Public generic functions
(setf git-dir): Public generic functions
(setf git-dir): Public generic functions
(setf object): Public generic functions
(setf object): Public generic functions
(setf ssh-key): Public generic functions
(setf ssh-key): Public generic functions
(setf work-tree): Public generic functions
(setf work-tree): Public generic functions

-
-search: Private ordinary functions

A
add-elite-individuals: Private ordinary functions
analyze-mutation: Public ordinary functions
apply-all-mutations: Public generic functions
apply-all-mutations: Public generic functions
apply-config: Private generic functions
apply-mutation: Public generic functions
apply-mutation: Public generic functions
apply-mutations: Public generic functions
apply-mutations: Public generic functions
apply-path: Public generic functions
apply-picked-mutations: Public generic functions
apply-picked-mutations: Public generic functions
at-targets: Public generic functions
at-targets: Public generic functions

B
build-op: Public generic functions

C
call-period-fn: Private ordinary functions
classify: Public ordinary functions
compose-mutations: Public macros
continue-evolutionary-loop-p: Private ordinary functions
copy: Public standalone methods
create-and-populate-super: Private ordinary functions
create-super: Public generic functions
crossed: Public ordinary functions
crossover: Public generic functions
crossover: Public generic functions
current-git-branch: Public generic functions
current-git-branch: Public generic functions
current-git-branch: Public generic functions
current-git-branch: Public generic functions
current-git-branch: Public generic functions
current-git-commit: Public generic functions
current-git-commit: Public generic functions
current-git-commit: Public generic functions
current-git-commit: Public generic functions
current-git-commit: Public generic functions
current-git-status: Public generic functions
current-git-status: Public generic functions
current-git-status: Public generic functions
current-git-status: Public generic functions
current-git-status: Public generic functions

D
default-random-winner: Public ordinary functions
default-select-best: Public ordinary functions
define-direct-git-command: Private macros
define-mutation: Public macros
define-software: Public macros
deinitialize-evolutionary-loop: Private ordinary functions
description: Private generic functions
description: Private generic functions

E
elapsed-time: Public ordinary functions
evaluate: Public generic functions
evaluate: Public generic functions
evaluate: Public generic functions
evict: Public ordinary functions
evolve: Public macros
expression: Private generic functions

F
fitness: Public generic functions
fitness: Public generic functions
fitness-better-p: Public ordinary functions
fitness-equal-p: Public ordinary functions
fitness-extra-data: Public generic functions
fitness-extra-data: Public generic functions
fitness-scalar: Public ordinary functions
from-file: Public generic functions
from-file: Public generic functions
from-string: Public generic functions
from-string: Public generic functions
Function, -search: Private ordinary functions
Function, add-elite-individuals: Private ordinary functions
Function, analyze-mutation: Public ordinary functions
Function, call-period-fn: Private ordinary functions
Function, classify: Public ordinary functions
Function, continue-evolutionary-loop-p: Private ordinary functions
Function, create-and-populate-super: Private ordinary functions
Function, crossed: Public ordinary functions
Function, default-random-winner: Public ordinary functions
Function, default-select-best: Public ordinary functions
Function, deinitialize-evolutionary-loop: Private ordinary functions
Function, elapsed-time: Public ordinary functions
Function, evict: Public ordinary functions
Function, fitness-better-p: Public ordinary functions
Function, fitness-equal-p: Public ordinary functions
Function, fitness-scalar: Public ordinary functions
Function, generate-oid: Private ordinary functions
Function, generational-evolve: Public ordinary functions
Function, git-from-directory: Private ordinary functions
Function, git-url-p: Public ordinary functions
Function, incorporate: Public ordinary functions
Function, initialize-evolutionary-loop: Private ordinary functions
Function, interpreted-phenome: Public ordinary functions
Function, make-git: Public ordinary functions
Function, mutant: Public ordinary functions
Function, new-individual: Public ordinary functions
Function, new-individuals: Private ordinary functions
Function, remove-elite-individuals: Private ordinary functions
Function, simple-evaluate: Public ordinary functions
Function, simple-reproduce: Public ordinary functions
Function, simple-select: Public ordinary functions
Function, summarize-mutation-stats: Public ordinary functions
Function, tournament: Public ordinary functions
Function, validate-evolution-parameters: Private ordinary functions
Function, worst-numeric-fitness: Public ordinary functions
Function, worst-numeric-fitness-p: Public ordinary functions

G
generate-oid: Private ordinary functions
generational-evolve: Public ordinary functions
Generic Function, (setf fitness): Public generic functions
Generic Function, (setf fitness-extra-data): Public generic functions
Generic Function, (setf git-dir): Public generic functions
Generic Function, (setf object): Public generic functions
Generic Function, (setf ssh-key): Public generic functions
Generic Function, (setf work-tree): Public generic functions
Generic Function, apply-all-mutations: Public generic functions
Generic Function, apply-config: Private generic functions
Generic Function, apply-mutation: Public generic functions
Generic Function, apply-mutations: Public generic functions
Generic Function, apply-path: Public generic functions
Generic Function, apply-picked-mutations: Public generic functions
Generic Function, at-targets: Public generic functions
Generic Function, build-op: Public generic functions
Generic Function, create-super: Public generic functions
Generic Function, crossover: Public generic functions
Generic Function, current-git-branch: Public generic functions
Generic Function, current-git-commit: Public generic functions
Generic Function, current-git-status: Public generic functions
Generic Function, description: Private generic functions
Generic Function, evaluate: Public generic functions
Generic Function, expression: Private generic functions
Generic Function, fitness: Public generic functions
Generic Function, fitness-extra-data: Public generic functions
Generic Function, from-file: Public generic functions
Generic Function, from-string: Public generic functions
Generic Function, genome: Public generic functions
Generic Function, genome-string: Public generic functions
Generic Function, get-targets: Public generic functions
Generic Function, git-dir: Public generic functions
Generic Function, loc: Private generic functions
Generic Function, log-message: Public generic functions
Generic Function, log-new-individuals: Public generic functions
Generic Function, mcmc-step: Public generic functions
Generic Function, mutate: Public generic functions
Generic Function, mutation-key: Public generic functions
Generic Function, obj: Private generic functions
Generic Function, object: Public generic functions
Generic Function, oid: Private generic functions
Generic Function, one-point-crossover: Public generic functions
Generic Function, operation: Private generic functions
Generic Function, phenome: Public generic functions
Generic Function, phenome-p: Public generic functions
Generic Function, pick: Public generic functions
Generic Function, pick-bad: Public generic functions
Generic Function, pick-bad-bad: Public generic functions
Generic Function, pick-bad-good: Public generic functions
Generic Function, pick-bad-only: Public generic functions
Generic Function, pick-good: Public generic functions
Generic Function, pick-mutation-type: Public generic functions
Generic Function, picker: Public generic functions
Generic Function, run: Public generic functions
Generic Function, ssh-key: Public generic functions
Generic Function, targeter: Public generic functions
Generic Function, targets: Public generic functions
Generic Function, text: Public generic functions
Generic Function, to-file: Public generic functions
Generic Function, two-point-crossover: Public generic functions
Generic Function, work-tree: Public generic functions
genome: Public generic functions
genome-string: Public generic functions
get-targets: Public generic functions
get-targets: Public generic functions
git-dir: Public generic functions
git-dir: Public generic functions
git-from-directory: Private ordinary functions
git-url-p: Public ordinary functions

I
ignore-phenome-errors: Public macros
incorporate: Public ordinary functions
initialize-evolutionary-loop: Private ordinary functions
initialize-instance: Public standalone methods
interpreted-phenome: Public ordinary functions

L
loc: Private generic functions
loc: Private generic functions
log-message: Public generic functions
log-message: Public generic functions
log-new-individuals: Public generic functions
log-new-individuals: Public generic functions

M
Macro, compose-mutations: Public macros
Macro, define-direct-git-command: Private macros
Macro, define-mutation: Public macros
Macro, define-software: Public macros
Macro, evolve: Public macros
Macro, ignore-phenome-errors: Public macros
Macro, mcmc: Public macros
Macro, sequence-mutations: Public macros
make-git: Public ordinary functions
mcmc: Public macros
mcmc-step: Public generic functions
Method, (setf fitness): Public generic functions
Method, (setf fitness-extra-data): Public generic functions
Method, (setf git-dir): Public generic functions
Method, (setf object): Public generic functions
Method, (setf ssh-key): Public generic functions
Method, (setf work-tree): Public generic functions
Method, apply-all-mutations: Public generic functions
Method, apply-mutation: Public generic functions
Method, apply-mutations: Public generic functions
Method, apply-picked-mutations: Public generic functions
Method, at-targets: Public generic functions
Method, copy: Public standalone methods
Method, crossover: Public generic functions
Method, current-git-branch: Public generic functions
Method, current-git-branch: Public generic functions
Method, current-git-branch: Public generic functions
Method, current-git-branch: Public generic functions
Method, current-git-commit: Public generic functions
Method, current-git-commit: Public generic functions
Method, current-git-commit: Public generic functions
Method, current-git-commit: Public generic functions
Method, current-git-status: Public generic functions
Method, current-git-status: Public generic functions
Method, current-git-status: Public generic functions
Method, current-git-status: Public generic functions
Method, description: Private generic functions
Method, evaluate: Public generic functions
Method, evaluate: Public generic functions
Method, fitness: Public generic functions
Method, fitness-extra-data: Public generic functions
Method, from-file: Public generic functions
Method, from-string: Public generic functions
Method, get-targets: Public generic functions
Method, git-dir: Public generic functions
Method, initialize-instance: Public standalone methods
Method, loc: Private generic functions
Method, log-message: Public generic functions
Method, log-new-individuals: Public generic functions
Method, mutation-key: Public generic functions
Method, mutation-key: Public generic functions
Method, obj: Private generic functions
Method, obj: Private generic functions
Method, obj: Private generic functions
Method, object: Public generic functions
Method, oid: Private generic functions
Method, operation: Private generic functions
Method, operation: Private generic functions
Method, phenome: Public generic functions
Method, phenome-p: Public generic functions
Method, pick: Public generic functions
Method, pick-bad: Public generic functions
Method, pick-bad-bad: Public generic functions
Method, pick-bad-good: Public generic functions
Method, pick-bad-only: Public generic functions
Method, pick-good: Public generic functions
Method, print-object: Public standalone methods
Method, run: Public generic functions
Method, size: Public standalone methods
Method, ssh-key: Public generic functions
Method, targets: Public generic functions
Method, text: Public generic functions
Method, text: Public generic functions
Method, text: Public generic functions
Method, to-file: Public generic functions
Method, to-file: Public generic functions
Method, work-tree: Public generic functions
mutant: Public ordinary functions
mutate: Public generic functions
mutation-key: Public generic functions
mutation-key: Public generic functions
mutation-key: Public generic functions

N
new-individual: Public ordinary functions
new-individuals: Private ordinary functions

O
obj: Private generic functions
obj: Private generic functions
obj: Private generic functions
obj: Private generic functions
object: Public generic functions
object: Public generic functions
oid: Private generic functions
oid: Private generic functions
one-point-crossover: Public generic functions
operation: Private generic functions
operation: Private generic functions
operation: Private generic functions

P
phenome: Public generic functions
phenome: Public generic functions
phenome-p: Public generic functions
phenome-p: Public generic functions
pick: Public generic functions
pick: Public generic functions
pick-bad: Public generic functions
pick-bad: Public generic functions
pick-bad-bad: Public generic functions
pick-bad-bad: Public generic functions
pick-bad-good: Public generic functions
pick-bad-good: Public generic functions
pick-bad-only: Public generic functions
pick-bad-only: Public generic functions
pick-good: Public generic functions
pick-good: Public generic functions
pick-mutation-type: Public generic functions
picker: Public generic functions
print-object: Public standalone methods

R
remove-elite-individuals: Private ordinary functions
run: Public generic functions
run: Public generic functions

S
sequence-mutations: Public macros
simple-evaluate: Public ordinary functions
simple-reproduce: Public ordinary functions
simple-select: Public ordinary functions
size: Public standalone methods
ssh-key: Public generic functions
ssh-key: Public generic functions
summarize-mutation-stats: Public ordinary functions

T
targeter: Public generic functions
targets: Public generic functions
targets: Public generic functions
text: Public generic functions
text: Public generic functions
text: Public generic functions
text: Public generic functions
to-file: Public generic functions
to-file: Public generic functions
to-file: Public generic functions
tournament: Public ordinary functions
two-point-crossover: Public generic functions

V
validate-evolution-parameters: Private ordinary functions

W
work-tree: Public generic functions
work-tree: Public generic functions
worst-numeric-fitness: Public ordinary functions
worst-numeric-fitness-p: Public ordinary functions


A.3 Variables

Jump to:   *   +  
C   D   F   G   L   O   S   T   W  
Index Entry  Section

*
*cross-chance*: Public special variables
*crossover-stats*: Public special variables
*elitism*: Public special variables
*fitness-evals*: Public special variables
*fitness-predicate*: Public special variables
*fitness-scalar-fn*: Public special variables
*generations*: Public special variables
*max-population-size*: Public special variables
*max-saved-mutation-improvements*: Private special variables
*mcmc-fodder*: Public special variables
*mut-rate*: Public special variables
*mutation-improvements*: Public special variables
*mutation-stats*: Public special variables
*population*: Public special variables
*running*: Public special variables
*start-time*: Public special variables
*target-fitness-p*: Public special variables
*tie-breaker-predicate*: Public special variables
*tournament-eviction-size*: Public special variables
*tournament-selector*: Public special variables
*tournament-size*: Public special variables
*tournament-tie-breaker*: Public special variables
*worst-fitness*: Public special variables
*worst-fitness-p*: Public special variables

+
+software-evolution-library-branch+: Public special variables
+software-evolution-library-dir+: Public special variables
+software-evolution-library-major-version+: Public constants
+software-evolution-library-version+: Public special variables

C
Constant, +software-evolution-library-major-version+: Public constants

D
description: Public conditions

F
fitness: Public classes

G
git-dir: Public classes

L
loc: Public conditions

O
obj: Public conditions
obj: Public conditions
obj: Public conditions
object: Public classes
oid: Public classes
operation: Public conditions
operation: Public conditions

S
Slot, description: Public conditions
Slot, fitness: Public classes
Slot, git-dir: Public classes
Slot, loc: Public conditions
Slot, obj: Public conditions
Slot, obj: Public conditions
Slot, obj: Public conditions
Slot, object: Public classes
Slot, oid: Public classes
Slot, operation: Public conditions
Slot, operation: Public conditions
Slot, ssh-key: Public classes
Slot, targets: Public classes
Slot, text: Public conditions
Slot, text: Public conditions
Slot, text: Public conditions
Slot, work-tree: Public classes
Special Variable, *cross-chance*: Public special variables
Special Variable, *crossover-stats*: Public special variables
Special Variable, *elitism*: Public special variables
Special Variable, *fitness-evals*: Public special variables
Special Variable, *fitness-predicate*: Public special variables
Special Variable, *fitness-scalar-fn*: Public special variables
Special Variable, *generations*: Public special variables
Special Variable, *max-population-size*: Public special variables
Special Variable, *max-saved-mutation-improvements*: Private special variables
Special Variable, *mcmc-fodder*: Public special variables
Special Variable, *mut-rate*: Public special variables
Special Variable, *mutation-improvements*: Public special variables
Special Variable, *mutation-stats*: Public special variables
Special Variable, *population*: Public special variables
Special Variable, *running*: Public special variables
Special Variable, *start-time*: Public special variables
Special Variable, *target-fitness-p*: Public special variables
Special Variable, *tie-breaker-predicate*: Public special variables
Special Variable, *tournament-eviction-size*: Public special variables
Special Variable, *tournament-selector*: Public special variables
Special Variable, *tournament-size*: Public special variables
Special Variable, *tournament-tie-breaker*: Public special variables
Special Variable, *worst-fitness*: Public special variables
Special Variable, *worst-fitness-p*: Public special variables
Special Variable, +software-evolution-library-branch+: Public special variables
Special Variable, +software-evolution-library-dir+: Public special variables
Special Variable, +software-evolution-library-version+: Public special variables
ssh-key: Public classes

T
targets: Public classes
text: Public conditions
text: Public conditions
text: Public conditions

W
work-tree: Public classes


A.4 Data types

Jump to:   C   F   G   I   M   N   O   P   S  
Index Entry  Section

C
Class, git: Public classes
Class, interpreted-phenome: Public classes
Class, mutation: Public classes
Class, oid-object: Public classes
Class, software: Public classes
Condition, git-error: Public conditions
Condition, mutate: Public conditions
Condition, no-mutation-targets: Public conditions
Condition, phenome: Public conditions

F
File, file-type.lisp: The software-evolution-library/software-evolution-library/file-type․lisp file
File, file-type.lisp: The software-evolution-library/utility/git/file-type․lisp file
File, software-evolution-library.asd: The software-evolution-library/software-evolution-library․asd file
file-type.lisp: The software-evolution-library/software-evolution-library/file-type․lisp file
file-type.lisp: The software-evolution-library/utility/git/file-type․lisp file

G
git: Public classes
git-error: Public conditions

I
interpreted-phenome: Public classes

M
mutate: Public conditions
mutation: Public classes

N
no-mutation-targets: Public conditions

O
oid-object: Public classes

P
Package, software-evolution-library/software-evolution-library: The software-evolution-library/software-evolution-library package
Package, software-evolution-library/utility/git: The software-evolution-library/utility/git package
phenome: Public conditions

S
software: Public classes
software-evolution-library: The software-evolution-library system
software-evolution-library.asd: The software-evolution-library/software-evolution-library․asd file
software-evolution-library/software-evolution-library: The software-evolution-library/software-evolution-library system
software-evolution-library/software-evolution-library: The software-evolution-library/software-evolution-library package
software-evolution-library/utility/git: The software-evolution-library/utility/git system
software-evolution-library/utility/git: The software-evolution-library/utility/git package
System, software-evolution-library: The software-evolution-library system
System, software-evolution-library/software-evolution-library: The software-evolution-library/software-evolution-library system
System, software-evolution-library/utility/git: The software-evolution-library/utility/git system