The evol Reference Manual

This is the evol Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:22:29 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 evol

evol - entrenched virtues of lisp / love reversed. Multi-purpose build system.

Author

Alexander Kahl <>

License

GPLv3+

Version

0.0.1

Dependencies
  • external-program (system).
  • cl-fad (system).
  • cl-ppcre (system).
  • alexandria (system).
  • unix-options (system).
  • bordeaux-threads (system).
  • patron (system).
Source

evol.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 evol/src

Source

evol.asd.

Parent Component

evol (system).

Child Components

4 Files

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


4.1 Lisp


4.1.1 evol/evol.asd

Source

evol.asd.

Parent Component

evol (system).

ASDF Systems

evol.

Packages

evol-system.


4.1.2 evol/src/package.lisp

Source

evol.asd.

Parent Component

src (module).

Packages

evol.


4.1.3 evol/src/util.lisp

Dependency

package.lisp (file).

Source

evol.asd.

Parent Component

src (module).

Internals

4.1.4 evol/src/path.lisp

Dependency

package.lisp (file).

Source

evol.asd.

Parent Component

src (module).

Public Interface

4.1.5 evol/src/environment.lisp

Dependency

package.lisp (file).

Source

evol.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.6 evol/src/dependency.lisp

Dependency

package.lisp (file).

Source

evol.asd.

Parent Component

src (module).

Internals

4.1.7 evol/src/ring-buffer.lisp

Dependency

package.lisp (file).

Source

evol.asd.

Parent Component

src (module).

Internals

4.1.8 evol/src/heredoc.lisp

Dependencies
Source

evol.asd.

Parent Component

src (module).

Internals

4.1.9 evol/src/shell.lisp

Dependencies
Source

evol.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.10 evol/src/evolvable.lisp

Dependencies
Source

evol.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.11 evol/src/common-lisp.lisp

Dependencies
Source

evol.asd.

Parent Component

src (module).

Internals

4.1.12 evol/src/breeder.lisp

Dependencies
Source

evol.asd.

Parent Component

src (module).

Internals

4.1.13 evol/src/toplevel.lisp

Dependencies
Source

evol.asd.

Parent Component

src (module).

Public Interface

repl (function).

Internals

5 Packages

Packages are listed by definition order.


5.1 evol

Source

package.lisp.

Nickname

love

Use List
  • alexandria.
  • cl-fad.
  • common-lisp.
  • external-program.
Public Interface
Internals

5.2 evol-system

Source

evol.asd.

Use List
  • asdf/interface.
  • common-lisp.

6 Definitions

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


6.1 Public Interface


6.1.1 Special variables

Special Variable: *environment*
Package

evol.

Source

environment.lisp.


6.1.2 Macros

Macro: defenv (var val &optional environment)

defenv var val &optional environment => val

Store val for key var in hash environment.

Package

evol.

Source

environment.lisp.


6.1.3 Ordinary functions

Function: default-sourcefn (target modifier)

default-sourcefn target modifier => string

Default source computing function that does nothing but ignoring all arguments and always returns an empty string.

Package

evol.

Source

shell.lisp.

Function: getenv (var &key env expanded default)

getenv var &key env expanded default => mixed

Return object stored for key var from hash :env and :expand the object for external command use if desired.

Package

evol.

Source

environment.lisp.

Function: pathname-change-suffix (suffix pathspec)

pathname-change-suffix suffix pathspec => string

Change suffix of path name string pathspec; adds suffix if none present yet.

Package

evol.

Source

path.lisp.

Function: pathname-suffix-p (suffix pathspec)

pathname-suffix-p suffix pathspec => boolean

Predicate whether pathspec has file name suffix.

Package

evol.

Source

path.lisp.

Function: repl ()

repl => quit

Top-level function used for the standalone executable created through bootstrapping evol.
Heads-up: Quits CL after execution.

Package

evol.

Source

toplevel.lisp.

Function: run-command (cmd &key verbose fatal)

run-command cmd &key verbose fatal => (integer string string)

Run command line list CMD (blocking), returning VALUES of exit status of invocation and strings of stdout and stderr output. If FATAL is non-nil and exit status is not 0, signal COMMAND-FAILURE instead.
Side-effect: Print CMD prior to invocation and command output if VERBOSE is non-nil.

Package

evol.

Source

shell.lisp.


6.1.4 Standalone methods

Method: initialize-instance :after ((hive hive) &rest initargs &key &allow-other-keys)

initialize-instance :after hive &rest initargs &key &allow-other-keys => void

Create an EVOLVABLE :OF type for each :SPAWN with all key arguments proxied but :NAME, :OF:, :SPAWN and have the HIVE itself auto-depend on them.

Source

evolvable.lisp.

Method: initialize-instance :after ((evol evolvable) &rest initargs)

initialize-instance :after evol &rest initargs => evol

Also register evolvable in the evol *environment*

Source

evolvable.lisp.

Reader Method: of ((hive hive))

The subtype of evolvable to harbor

Package

keyword.

Source

evolvable.lisp.

Target Slot

of.

Method: print-object ((evol evolvable) stream)

print-object evolvable stream => nil

Printing evolvable-derived objects must simply return their names.

Source

evolvable.lisp.

Method: print-object ((condition command-failure) stream)
Source

shell.lisp.

Reader Method: spawn ((hive hive))

Source of spawn evolvables; can be a function or a list

Package

keyword.

Source

evolvable.lisp.

Target Slot

spawn.


6.2 Internals


6.2.1 Special variables

Special Variable: *default-evolution*
Package

evol.

Source

toplevel.lisp.

Special Variable: *options*
Package

evol.

Source

toplevel.lisp.


6.2.2 Macros

Macro: default (name)

default name => mixed

Top-level syntactic sugar macro to set the default evolvable to name.

Package

evol.

Source

toplevel.lisp.

Macro: devolution (name (&body dependencies) &rest args &key type &allow-other-keys)

devolution name &rest args &key type &allow-other-keys => object

Top-level syntactic sugar macro to create evolvables. Name will be the environmental hash key, :TYPE must be a valid class name and all other keys will be proxied to MAKE-INSTANCE.

Package

evol.

Source

toplevel.lisp.

Macro: eval-reverse-cons ((&body body1) (&body body2))

eval-reverse-cons (&body body1) (&body body2) => cons

Evaluate BODY2 and BODY1 in this order and return result cons [BODY1|BODY2].

Package

evol.

Source

breeder.lisp.

Macro: getf-option (option keyword)

getf-option option keyword => result

GETF for options.

Package

evol.

Source

toplevel.lisp.

Macro: resolve-cond (name nodes seen (&body prologue) &body epilogue)

resolve-cond name nodes seen (&body prologue) &body epilogue => context

Insert COND clauses between PROLOGUE clauses and EPILOGUE final clause that check for erroneous conditions between the NAME of a node, the list of all NODES and nodes SEEN during dependency resolution and signal errors accordingly if encountered.

Package

evol.

Source

dependency.lisp.

Macro: symbolize (name)

symbolize name => symbol

Quotes, transforms and interns unquoted variable names.

Package

evol.

Source

environment.lisp.

Macro: with-dependency-nodes (var &body body)

with-dependency-nodes var &body body => context

Evaluate BODY in scope of VAR bound to dependency node list.

Package

evol.

Source

breeder.lisp.

Macro: with-new-lock-held (var &body body)

with-new-lock-held var &body body => context

Evaluate BODY in locked scope of VAR bound to a new mutex with random name.

Package

evol.

Source

breeder.lisp.

Macro: with-outputs-to-strings ((&rest vars) &body forms-decls)

with-outputs-to-strings (&rest vars) &body forms-decls => (result string1 .. stringN)

The multi-version of WITH-OUTPUT-TO-STRING preserving original return values. Evaluate FORMS-DECLS with each element in VARS bound to a fresh open stream. Return multiple VALUES of FORMS-DECLS evaluation result and one string per VARS in given argument order.

Package

evol.

Source

util.lisp.

Macro: with-slot-enhanced-environment ((slots object) &body body)

with-slot-enhanced-environment (slots object) body => context

Create lexical context overriding *ENVIRONMENT* with a fresh copy enhanced by all slot names/values as key/values from symbol list SLOTS in OBJECT.

Package

evol.

Source

util.lisp.


6.2.3 Ordinary functions

Function: argument-option (argument)

argument-option argument => option

Find option owning ARGUMENT (command line option).

Package

evol.

Source

toplevel.lisp.

Function: cl-load-ops (list)

cl-load-ops list => list

Prepares a list of ASDF:LOAD-op forms for op in input LIST.

Package

evol.

Source

common-lisp.lisp.

Function: cl-run-command (implementation packages cmd &key verbose fatal)

cl-run-command implementation packages cmd &key verbose fatal => (integer string string)

Run CL command sequence CMD with the appropriate IMPLEMENTATION. Load all
PACKAGES with ASDF first.
Wrap CMD in an implicit PROGN and HANDLER-CASE.

Package

evol.

Source

common-lisp.lisp.

Function: copy-ring-buffer (instance)
Package

evol.

Source

ring-buffer.lisp.

Function: deflate-string (list &optional separator)

deflate-string list &optional separator => string|object

Splice list of strings into merged string having elements separated with string seperator.

Package

evol.

Source

shell.lisp.

Function: dependency-node (namefn dependencyfn object)

dependency-node namefn dependencyfn object => node

Transform OBJECT into a node (list) by appending the results of calling NAMEFN and DEPENDENCYFN against it.

Package

evol.

Source

dependency.lisp.

Function: dependency-nodes-hashtable (predicate namefn dependencyfn env)

dependency-nodes-hashtable predicate namefn dependencyfn env => node-list

Filter out all values satisfying PREDICATE from hashtable ENV and return result list of transforming each one into a node list by calling NAMEFN and DEPENDENCYFN.

Package

evol.

Source

dependency.lisp.

Function: evolution-arguments (args)

evolution-arguments args => list

List of what to evolve based on list of command line args, default evolution and - as a last resort - the first defined evolvable.

Package

evol.

Source

toplevel.lisp.

Function: evolvable-p (object)

evolvable-p object => boolean

Tell whether OBJECT is an EVOLVABLE.

Package

evol.

Source

evolvable.lisp.

Function: expand-$-match (match)

expand-$-match match => string

Lookup match in the environment CL was started in returning the result.

Package

evol.

Source

shell.lisp.

Function: expand-%-match (match target sourcefn environment)

expand-%-match match target sourcefn environment => string

Act depending on string match:
- % returns %
- @ returns target
- < returns result of invoking sourcefn against target and modifier
- Any other sequence will be looked up in evol’s environment returning the result, defaulting to an empty string
- In case of @ and <, if target respectively sourcefn invocation returns a list, it will be auto-deflated to a string with spaces as element seperator. To modify the deflation seperator, simply pass any non-whitespace character sequence after @ or <, e.g.
[@,] for target := (foo bar baz) => "foo,bar,baz"

Package

evol.

Source

shell.lisp.

Function: find-node (name nodes)

find-node name nodes => node

Find and return node designated by NAME in NODES.

Package

evol.

Source

dependency.lisp.

Function: format-option (stream string &optional argument)

format-option stream string argument => result

Print option STRING with optional ARGUMENT to STREAM; formatting depends on whether STRING is a short or a long option, determined by its length.

Package

evol.

Source

toplevel.lisp.

Function: internify (name)

internify name => symbol

Return interned symbol for arbitrarily typed name; useful for use as hash keys.

Package

evol.

Source

environment.lisp.

Function: interpolate-$-argument (argument)

interpolate-$-argument argument => string

Expand all matches of $ words in string ARGUMENT.

Package

evol.

Source

shell.lisp.

Function: interpolate-%-argument (argument target sourcefn environment)

interpolate-%-argument argument target sourcefn environment => string

Expand all matches of % words in string ARGUMENT honoring the special TARGET and SOURCEFN matches and, for the rest, the ENVIRONMENT.

Package

evol.

Source

shell.lisp.

Function: interpolate-argument (argument target sourcefn environment)

interpolate-argument argument target sourcefn environment => list

Expand all % and $ matches in string argument in turn.

Package

evol.

Source

shell.lisp.

Function: interpolate-commandline (cmd &key target sourcefn environment)

interpolate-commandline cmd &key target sourcefn environment => list

Interpolate split arguments of command line string CMD after grouping through Bourne shell syntax block quoting, see split-commandline for details. Unquoted quotes are stripped after interpolation, single quotes prevent interpolation of their contained argument while double quotes don’t. Returns list of split and interpolated arguments.

Package

evol.

Source

shell.lisp.

Function: jobs-breeder (jobs)

jobs-breeder jobs => breeder

Create the appropriate BREEDER for the number of JOBS.

Package

evol.

Source

toplevel.lisp.

Function: leaf-nodes (nodes)

leaf-nodes nodes => node-list

Return all leaf nodes in NODES.
Leaf nodes are simply the ones with no dependencies at all.

Package

evol.

Source

dependency.lisp.

Function: load-evolution (options)

load-evolution options => void

Load the evolution file based on command line OPTIONS.

Package

evol.

Source

toplevel.lisp.

Function: make-ring-buffer (&key vector start used new end)
Package

evol.

Source

ring-buffer.lisp.

Function: mapthread (function list &rest more-lists)

mapthread function list &rest more-lists => list

Apply FUNCTION against each set of elements from LIST and MORE-LISTS just like MAPCAR but use a new thread for each call. Returns result list from joining all threads created that way.

Package

evol.

Source

util.lisp.

Function: new-ring-buffer (length)

new-ring-buffer length => ring-buffer

Create a new RING-BUFFER containing a simple character vector of fixed size LENGTH.

Package

evol.

Source

ring-buffer.lisp.

Function: parse-commandline (argv)

parse-commandline argv => (args opts)

Parse command line argument list ARGV with UNIX-OPTIONS:MAP-PARSED-OPTIONS and defined available *OPTIONS*.

Package

evol.

Source

toplevel.lisp.

Function: posix-argv ()

posix-argv => list

Return command line argument list. Implementation dependent.

Package

evol.

Source

util.lisp.

Function: posix-getenv (name)

posix-getenv name => string

Return value for POSIX environmental key name, empty string if nothing found.

Package

evol.

Source

environment.lisp.

Function: posix-quit (&optional code)

posix-quit => bye bye

Quit the current running CL instance returning error CODE.

Package

evol.

Source

util.lisp.

Function: print-help ()

print-help => string

Print help.

Package

evol.

Source

toplevel.lisp.

Function: rbref (buffer index)

rbref buffer index => character or #Nul

Return character stored at INDEX in ring BUFFER.

Package

evol.

Source

ring-buffer.lisp.

Function: (setf rbref) (buffer index)

setf (rbref buffer index) value => value

SETF for RBREF. If INDEX > LENGTH of BUFFER, start over at the beginning.

Package

evol.

Source

ring-buffer.lisp.

Function: read-heredoc (stream char arg)

read-heredoc stream char arg => string

Return string from STREAM up to the point where the string read first until CHAR is encountered. All evaluation is completely turned off so no quoting is required at all.
Example: #>eof>Write whatever (you) "want"!eof => Write whatever (you) "want"!

Package

evol.

Source

heredoc.lisp.

Function: read-until-match (stream terminal)

read-until-match stream terminal => string

Read characters from STREAM until a sequence equal to string TERMINAL is read. Return all characters read as string omitting TERMINAL itself. Signal error upon EOF.

Package

evol.

Source

heredoc.lisp.

Function: replace-with-region (replacefn &rest args)

replace-with-region replacefn &rest args => closure

Create closure that is suitable for use with cl-ppcre replacement forms. Created closure invokes replacefn against the matched subsequence in the string to be searched additionally passing args.

Package

evol.

Source

shell.lisp.

Function: reset-evolvables (&optional env)

reset-evolvables env => evolvables-list

RESET all evolvables in hashtable ENV. Useful for development.

Package

evol.

Source

evolvable.lisp.

Function: resolve-all (nodes resfn &optional roots)

resolve-all nodes resfn &optional (roots nodes) => list of dags or queues

Resolve list of distinct ROOTS (or, by default, everything) in node-list NODES using resfn.

Package

evol.

Source

dependency.lisp.

Function: resolve-dag (root nodes)

resolve root nodes => dag

Try to resolve dependencies for ROOT node in NODES and return its dependency dag (directed acyclic graph).

Dags are suitable for parallel building.

Package

evol.

Source

dependency.lisp.

Function: resolve-queue (root nodes)

resolve-queue root nodes => queue

Try to resolve dependencies for ROOT node in NODES and return its dependency queue.

Queues are suitable for sequential building only.

Package

evol.

Source

dependency.lisp.

Function: resolve-roots (nodes resfn)

resolve-roots nodes resfn => list of dags or queues

Resolve node-list NODES using resfn for all its root-nodes.

Package

evol.

Source

dependency.lisp.

Function: ring-buffer-clear (buffer)

ring-buffer-clear buffer => -1

Reset all indices of BUFFER to their initial state.

Package

evol.

Source

ring-buffer.lisp.

Reader: ring-buffer-end (instance)
Writer: (setf ring-buffer-end) (instance)
Package

evol.

Source

ring-buffer.lisp.

Target Slot

end.

Function: ring-buffer-flush (buffer)

ring-buffer-flush buffer => string

Flush all unused characters in BUFFER.

Package

evol.

Source

ring-buffer.lisp.

Function: ring-buffer-insert (buffer value)

ring-buffer-insert buffer value => value

Increment END of BUFFER inserting VALUE at the new index.

Package

evol.

Source

ring-buffer.lisp.

Reader: ring-buffer-new (instance)
Writer: (setf ring-buffer-new) (instance)
Package

evol.

Source

ring-buffer.lisp.

Target Slot

new.

Function: ring-buffer-next (buffer)

ring-buffer-next buffer => character or nil

Return next match character incrementing USED in BUFFER or simply NIL if none are left.

Package

evol.

Source

ring-buffer.lisp.

Function: ring-buffer-p (object)
Package

evol.

Source

ring-buffer.lisp.

Function: ring-buffer-pop (buffer)

ring-buffer-pop buffer => character

Increment START of BUFFER returning VALUE at the new index. Additionally, reset the BUFFER match indices.

Package

evol.

Source

ring-buffer.lisp.

Function: ring-buffer-reset (buffer)

ring-buffer-reset buffer => end-index

Reset match beginning/end indices USED and NEW in BUFFER to START and END.

Package

evol.

Source

ring-buffer.lisp.

Reader: ring-buffer-start (instance)
Writer: (setf ring-buffer-start) (instance)
Package

evol.

Source

ring-buffer.lisp.

Target Slot

start.

Reader: ring-buffer-used (instance)
Writer: (setf ring-buffer-used) (instance)
Package

evol.

Source

ring-buffer.lisp.

Target Slot

used.

Reader: ring-buffer-vector (instance)
Writer: (setf ring-buffer-vector) (instance)
Package

evol.

Source

ring-buffer.lisp.

Target Slot

vector.

Function: root-nodes (nodes)

root-nodes nodes => node-list

Return all root nodes in NODES.
Root nodes are identified by not being referenced as a dependency by any other node. This is done by building the difference (complement of intersection) between the ones having dependencies and the complete set.

Package

evol.

Source

dependency.lisp.

Function: safe-format (lock destination control-string &rest format-arguments)

safe-format lock control-string &rest format-arguments => nil

Mutex-protected FORMAT.

Package

evol.

Source

breeder.lisp.

Function: safe-getenv (lock var)

safe-getenv lock var => result

Mutex-protected GETENV.

Package

evol.

Source

breeder.lisp.

Function: split-commandline (cmd)

split-commandline cmd => list

Split command line string cmd into arguments accourding to Bourne shell syntax rules honoring double quotes ["], single quotes [’] and regular whitespace.

Package

evol.

Source

shell.lisp.

Function: stringify (object)

stringify object => string

If OBJECT is a STRING, return it - else cast WRITE-TO-STRING.

Package

evol.

Source

util.lisp.

Function: trim-{} (string)

trim-{} string => string

Trims {} brackets strings.

Package

evol.

Source

shell.lisp.

Function: unix-options-options ()

unix-options-options => (bool-options parameter-options)

Transform *OPTIONS* so that they are suitable for use with UNIX-OPTIONS:MAP-PARSED-OPTIONS.

Package

evol.

Source

toplevel.lisp.


6.2.4 Generic functions

Generic Function: breed (breeder evolvable)

Breed the evolvable so it can hatch

Package

evol.

Source

breeder.lisp.

Methods
Method: breed ((swarm swarm) (evol evolvable))

breed swarm evolvable => result-dag

Swarm-based evolution. Works through creating new threads per edge / dag node / branch (equivalent here) while locking the evolvables encountered. Breeding is forwarded to the Patron queue that works by using a thread pool itself so welcome to deadlock wonderland!
There is considerable overhead involved in this method but payoff should be reached early even for simple real-life evolutions with mediocre complexity.

Method: breed :around ((swarm swarm) (evol evolvable))
Method: breed ((breeder breeder) (evol evolvable))

breed breeder evol => result-list

Breed dependency evolvables of EVOL sequentially depth-first up to and including EVOL itself. No multithreading, minimal overhead, nil deadlocks.

Generic Reader: circular-inter-nodes (condition)
Package

evol.

Methods
Reader Method: circular-inter-nodes ((condition circular-dependency))
Source

dependency.lisp.

Target Slot

inter-nodes.

Generic Reader: circular-node (condition)
Package

evol.

Methods
Reader Method: circular-node ((condition circular-dependency))
Source

dependency.lisp.

Target Slot

circular-node.

Generic Reader: cl-implementation (object)
Package

evol.

Methods
Reader Method: cl-implementation ((cl-transformator cl-transformator))

automatically generated reader method

Source

common-lisp.lisp.

Target Slot

implementation.

Generic Writer: (setf cl-implementation) (object)
Package

evol.

Methods
Writer Method: (setf cl-implementation) ((cl-transformator cl-transformator))

automatically generated writer method

Source

common-lisp.lisp.

Target Slot

implementation.

Generic Reader: cl-packages (object)
Generic Writer: (setf cl-packages) (object)
Package

evol.

Methods
Reader Method: cl-packages ((cl-core cl-core))
Writer Method: (setf cl-packages) ((cl-core cl-core))

Package to load before creating heap image.

Source

common-lisp.lisp.

Target Slot

packages.

Generic Reader: cl-save-options (object)
Generic Writer: (setf cl-save-options) (object)
Package

evol.

Methods
Reader Method: cl-save-options ((cl-core cl-core))
Writer Method: (setf cl-save-options) ((cl-core cl-core))

Additional arguments to pass to the implementation-dependent save call.

Source

common-lisp.lisp.

Target Slot

cl-save-options.

Generic Reader: command-failure-code (condition)
Package

evol.

Methods
Reader Method: command-failure-code ((condition command-failure))
Source

shell.lisp.

Target Slot

code.

Generic Reader: command-failure-command (condition)
Package

evol.

Methods
Reader Method: command-failure-command ((condition command-failure))
Source

shell.lisp.

Target Slot

command.

Generic Reader: command-failure-stderr (condition)
Package

evol.

Methods
Reader Method: command-failure-stderr ((condition command-failure))
Source

shell.lisp.

Target Slot

stderr.

Generic Reader: command-failure-stdout (condition)
Package

evol.

Methods
Reader Method: command-failure-stdout ((condition command-failure))
Source

shell.lisp.

Target Slot

stdout.

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

evol.

Methods
Reader Method: dependencies ((evolvable evolvable))
Writer Method: (setf dependencies) ((evolvable evolvable))

List of evolvables this one depends on

Source

evolvable.lisp.

Target Slot

dependencies.

Generic Function: enqueue-breeding (swarm evolvable)

Push breeding an evolvable into the worker queue and wait for the job to finish

Package

evol.

Source

breeder.lisp.

Methods
Method: enqueue-breeding ((swarm swarm) (evol evolvable))

enqueue-breeding swarm evol => result

Create and hold a new mutex, push breeding into the Patron queue and wait for Patron to call either RESULT-REPORT-FUNCTION or ERROR-REPORT-FUNCTION that are both set to notify condition against the entry thread of this method which is waiting. If a condition is found in the finished job, signal it, else return evolution result.

Generic Reader: env-slots (object)
Generic Writer: (setf env-slots) (object)
Package

evol.

Methods
Reader Method: env-slots ((evolvable evolvable))
Writer Method: (setf env-slots) ((evolvable evolvable))

List of slots to lexically bind to the environment during evolution

Source

evolvable.lisp.

Target Slot

env-slots.

Generic Function: evolve (evolvable &rest args &key &allow-other-keys)

Evolve this, whatever that may be

Package

evol.

Source

evolvable.lisp.

Methods
Method: evolve :around ((exe cl-exe) &rest args &key &allow-other-keys)
Source

common-lisp.lisp.

Method: evolve :around ((core cl-core) &rest args &key &allow-other-keys)
Source

common-lisp.lisp.

Method: evolve ((trans cl-transformator) &rest args &key &allow-other-keys)
Source

common-lisp.lisp.

Method: evolve ((trans generic-transformator) &rest args &key &allow-other-keys)
Method: evolve :after ((exe executable) &rest args &key &allow-other-keys)
Method: evolve :around ((evol checkable) &rest args &key &allow-other-keys)
Method: evolve ((virt virtual) &rest args &key &allow-other-keys)
Method: evolve :after ((evol evolvable) &rest args &key &allow-other-keys)

evolve :after evol &rest args &key &allow-other-keys => t

Mark evolvable EVOL hatched.

Method: evolve :around ((evol evolvable) &rest args &key &allow-other-keys)

evolve :around evol &rest args &key &allow-other-keys => context

Call the next method in scope of a copy of *ENVIRONMENT* enhanced by all slots in EVOL specified by ENV-SLOTS.

Generic Function: evolved-p (checkable)

Check that given evolution has been evolved properly

Package

evol.

Source

evolvable.lisp.

Methods
Method: evolved-p ((file file))
Generic Function: expand (standard-object)

expand standard-object => string

Return a suitable form of the object for %-style rule expansion. Defined here to prevent circular dependencies.

Package

evol.

Source

environment.lisp.

Methods
Method: expand ((hive hive))

expand hive => list

Hives expand to a list of their dependencies’ names.

Source

evolvable.lisp.

Method: expand ((evol evolvable))

expand evol => string

Expand EVOL to its name.

Source

evolvable.lisp.

Method: expand ((object standard-object))

expand object => object

Just return IDENTITY of the OBJECT.

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

evol.

Methods
Reader Method: hatched ((evolvable evolvable))
Writer Method: (setf hatched) ((evolvable evolvable))

Whether evolution is finished

Source

evolvable.lisp.

Target Slot

hatched.

Generic Reader: illegal-evolvable (condition)
Package

evol.

Methods
Reader Method: illegal-evolvable ((condition illegal-evolvable))
Source

toplevel.lisp.

Target Slot

target.

Generic Reader: mutex (object)
Package

evol.

Methods
Reader Method: mutex ((evolvable evolvable))

Mutex for the wait queue

Source

evolvable.lisp.

Target Slot

mutex.

Generic Reader: name (object)
Package

evol.

Methods
Reader Method: name ((evolvable evolvable))

The name of the evolvable, also available in evol’s environment

Source

evolvable.lisp.

Target Slot

name.

Generic Function: reset (evolvable)

reset evolvable => result

Reset evolution of EVOLVABLE.

Package

evol.

Source

evolvable.lisp.

Methods
Method: reset ((evol evolvable))

reset evolvable => nil

Set slot HATCHED back to nil. Useful for development (only?).

Generic Reader: rule (object)
Package

evol.

Methods
Reader Method: rule ((cl-exe cl-exe))

automatically generated reader method

Source

common-lisp.lisp.

Target Slot

rule.

Reader Method: rule ((cl-core cl-core))

automatically generated reader method

Source

common-lisp.lisp.

Target Slot

rule.

Reader Method: rule ((cl-transformator cl-transformator))

automatically generated reader method

Source

common-lisp.lisp.

Target Slot

rule.

Reader Method: rule ((generic-transformator generic-transformator))

automatically generated reader method

Source

evolvable.lisp.

Target Slot

rule.

Reader Method: rule ((definite definite))

The rule used to evolve the definite

Source

evolvable.lisp.

Target Slot

rule.

Generic Writer: (setf rule) (object)
Package

evol.

Methods
Writer Method: (setf rule) ((cl-transformator cl-transformator))

automatically generated writer method

Source

common-lisp.lisp.

Target Slot

rule.

Writer Method: (setf rule) ((generic-transformator generic-transformator))

automatically generated writer method

Source

evolvable.lisp.

Target Slot

rule.

Writer Method: (setf rule) ((definite definite))

The rule used to evolve the definite

Source

evolvable.lisp.

Target Slot

rule.

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

evol.

Methods
Reader Method: sourcefn ((definite definite))
Writer Method: (setf sourcefn) ((definite definite))

The function to compute the input from other slots like e.g. target and name

Source

evolvable.lisp.

Target Slot

sourcefn.

Reader Method: sourcefn ((cl-core cl-core))

Preinitialized for this class; returns a list of
forms to first load asdf, then in turn additional asdf packages from rule and finally a form to have sbcl create a core file.

Source

common-lisp.lisp.

Target Slot

sourcefn.

Generic Reader: stream-lock (object)
Package

evol.

Methods
Reader Method: stream-lock ((swarm swarm))

Mutex to use for printing

Source

breeder.lisp.

Target Slot

stream-lock.

Generic Reader: swarm-error-stream (object)
Package

evol.

Methods
Reader Method: swarm-error-stream ((swarm swarm))

Stream to use for printing errors

Source

breeder.lisp.

Target Slot

error-stream.

Generic Reader: swarm-stream (object)
Package

evol.

Methods
Reader Method: swarm-stream ((swarm swarm))

Stream to use for printing

Source

breeder.lisp.

Target Slot

stream.

Generic Reader: unloadable-evolution-pathname (condition)
Package

evol.

Methods
Reader Method: unloadable-evolution-pathname ((condition unloadable-evolution))
Source

toplevel.lisp.

Target Slot

pathname.

Generic Reader: unresolvable-dependency (condition)
Package

evol.

Methods
Reader Method: unresolvable-dependency ((condition unresolvable-dependency))
Source

dependency.lisp.

Target Slot

dependency.

Generic Reader: unresolvable-node (condition)
Package

evol.

Methods
Reader Method: unresolvable-node ((condition unresolvable-dependency))
Source

dependency.lisp.

Target Slot

node.

Generic Reader: waitqueue (object)
Package

evol.

Methods
Reader Method: waitqueue ((evolvable evolvable))

Wait queue used for multithreaded breeding

Source

evolvable.lisp.

Target Slot

waitqueue.


6.2.5 Conditions

Condition: circular-dependency
Package

evol.

Source

dependency.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: circular-node
Initargs

:circular-node

Readers

circular-node.

Writers

This slot is read-only.

Slot: inter-nodes
Initargs

:inter-nodes

Readers

circular-inter-nodes.

Writers

This slot is read-only.

Condition: command-failure

Condition signalled if invocation of an external command failed.

Package

evol.

Source

shell.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: command

The command that failed.

Initargs

:command

Readers

command-failure-command.

Writers

This slot is read-only.

Slot: code

Status code of failed invocation.

Initargs

:code

Readers

command-failure-code.

Writers

This slot is read-only.

Slot: stdout

Output of invocation.

Initargs

:stdout

Readers

command-failure-stdout.

Writers

This slot is read-only.

Slot: stderr

Error output of invocation.

Initargs

:stderr

Readers

command-failure-stderr.

Writers

This slot is read-only.

Condition: illegal-evolvable
Package

evol.

Source

toplevel.lisp.

Direct superclasses

error.

Direct methods

illegal-evolvable.

Direct slots
Slot: target
Initargs

:evolvable

Readers

illegal-evolvable.

Writers

This slot is read-only.

Condition: unemployment
Package

evol.

Source

toplevel.lisp.

Direct superclasses

error.

Condition: unloadable-evolution
Package

evol.

Source

toplevel.lisp.

Direct superclasses

error.

Direct methods

unloadable-evolution-pathname.

Direct slots
Slot: pathname
Package

common-lisp.

Initargs

:path

Readers

unloadable-evolution-pathname.

Writers

This slot is read-only.

Condition: unresolvable-dependency
Package

evol.

Source

dependency.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: node
Initargs

:node

Readers

unresolvable-node.

Writers

This slot is read-only.

Slot: dependency
Initargs

:dependency

Readers

unresolvable-dependency.

Writers

This slot is read-only.


6.2.6 Structures

Structure: ring-buffer

Structure defining ring buffers utilizing a simple VECTOR of fixed size and four indices:
START: Index of first live value
END: Index of last live value
USED: Beginning of current match
NEW: End of current match

Package

evol.

Source

ring-buffer.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: vector
Package

common-lisp.

Readers

ring-buffer-vector.

Writers

(setf ring-buffer-vector).

Slot: start
Package

external-program.

Initform

-1

Readers

ring-buffer-start.

Writers

(setf ring-buffer-start).

Slot: used
Initform

-1

Readers

ring-buffer-used.

Writers

(setf ring-buffer-used).

Slot: new
Initform

-1

Readers

ring-buffer-new.

Writers

(setf ring-buffer-new).

Slot: end
Initform

-1

Readers

ring-buffer-end.

Writers

(setf ring-buffer-end).


6.2.7 Classes

Class: breeder

Solitary breeder class.

Package

evol.

Source

breeder.lisp.

Direct subclasses

swarm.

Direct methods

breed.

Class: checkable

Evolvables derived from checkable provide a means to pre- and post-validate their evolution.

Package

evol.

Source

evolvable.lisp.

Direct superclasses

evolvable.

Direct subclasses

file.

Direct methods

evolve.

Class: cl-core

This evolvable enables creation of non-standalone Common Lisp
core (heap image) files.
Feed rule with a list of asdf-recognized package symbols to load into the core.

Package

evol.

Source

common-lisp.lisp.

Direct superclasses
Direct subclasses

cl-exe.

Direct methods
Direct slots
Slot: sourcefn

Preinitialized for this class; returns a list of
forms to first load asdf, then in turn additional asdf packages from rule and finally a form to have sbcl create a core file.

Allocation

:class

Initform

(function (lambda (evol::target evol::modifier) (declare (ignore evol::modifier)) (format nil ":~a" evol::target)))

Readers

sourcefn.

Writers

This slot is read-only.

Slot: rule
Initform

" (in-package %<) (%cl-save \"%@\" %cl-save-options)"

Initargs

:rule

Readers

rule.

Writers

This slot is read-only.

Slot: packages

Package to load before creating heap image.

Initform

(alexandria:required-argument :packages)

Initargs

:packages

Readers

cl-packages.

Writers

(setf cl-packages).

Slot: cl-save-options

Additional arguments to pass to the implementation-dependent save call.

Initform

""

Initargs

:save-options

Readers

cl-save-options.

Writers

(setf cl-save-options).

Slot: env-slots
Initform

(list (quote evol::packages) (quote evol::cl-save-options))

Class: cl-exe

In line with cl-core, a complete dump is generated but with
the engine fully runable contained within so the resulting file is a real executable.
Feed rule with a list of asdf-recognized package symbols to load into the binary.

Package

evol.

Source

common-lisp.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: rule
Initform

" (in-package %<) (%cl-save \"%@\" %cl-save-options %cl-executable)"

Initargs

:rule

Readers

rule.

Writers

This slot is read-only.

Class: cl-transformator

Evolution takes place here through running a freshly forked
Common Lisp copy that expects rule to be a list of forms to execute in order. sourcefn is expected to return list of valid Common Lisp forms that will each be grouped as a single argument to be passed to (eval) so no special quoting aside from \" is required.
Variable expansion is only performed against sourcefn’s return forms.

Package

evol.

Source

common-lisp.lisp.

Direct superclasses

definite.

Direct subclasses

cl-core.

Direct methods
Direct slots
Slot: implementation
Initform

(alexandria:required-argument :implementation)

Initargs

:implementation

Readers

cl-implementation.

Writers

(setf cl-implementation).

Slot: rule
Initform

(alexandria:required-argument :rule)

Initargs

:rule

Readers

rule.

Writers

(setf rule).

Class: definite

Definite evolvables define transformation rules and
computation of their effective input(s) to evolve, possibly from some kind of sources.

Package

evol.

Source

evolvable.lisp.

Direct superclasses

evolvable.

Direct subclasses
Direct methods
Direct slots
Slot: rule

The rule used to evolve the definite

Initargs

:rule

Readers

rule.

Writers

(setf rule).

Slot: sourcefn

The function to compute the input from other slots like e.g. target and name

Initform

(function evol:default-sourcefn)

Initargs

:sourcefn

Readers

sourcefn.

Writers

(setf sourcefn).

Class: evolvable

Base class for all evolvables.

Package

evol.

Source

evolvable.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: name

The name of the evolvable, also available in evol’s environment

Initform

(alexandria:required-argument :name)

Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: dependencies

List of evolvables this one depends on

Initargs

:deps

Readers

dependencies.

Writers

(setf dependencies).

Slot: env-slots

List of slots to lexically bind to the environment during evolution

Initargs

:env-slots

Readers

env-slots.

Writers

(setf env-slots).

Slot: mutex

Mutex for the wait queue

Initform

(bordeaux-threads:make-lock)

Readers

mutex.

Writers

This slot is read-only.

Slot: waitqueue

Wait queue used for multithreaded breeding

Initform

(bordeaux-threads:make-condition-variable)

Readers

waitqueue.

Writers

This slot is read-only.

Slot: hatched

Whether evolution is finished

Readers

hatched.

Writers

(setf hatched).

Class: executable

Executables are files that can be run on a machine’s stack by
either containing machince code themselves or referring to an interpreter for source code contained within. This class ensures its file is executable after creation.

Package

evol.

Source

evolvable.lisp.

Direct superclasses

file.

Direct subclasses
Direct methods

evolve.

Class: file

Files are targets that usually lead to evolution
of... files. Their existence can easily be checked through their distinct pathnames.

Package

evol.

Source

evolvable.lisp.

Direct superclasses

checkable.

Direct subclasses
Direct methods

evolved-p.

Class: generic

TODO

Package

evol.

Source

evolvable.lisp.

Direct superclasses
Class: generic-transformator

Objects of this kind evolve through running an external
program through interpolating the rule and source function contained within honoring common quoting rules in line with Bourne shell syntax.

Package

evol.

Source

evolvable.lisp.

Direct superclasses

definite.

Direct subclasses
Direct methods
Direct slots
Slot: rule
Initform

(alexandria:required-argument :rule)

Initargs

:rule

Readers

rule.

Writers

(setf rule).

Class: hive

Hives are similar to virtuals but enable mass spawning of
evolvables they auto-depend on so depending on a hive saves from declaring lots of mutual evolvables manually.

Package

evol.

Source

evolvable.lisp.

Direct superclasses

virtual.

Direct methods
Direct slots
Slot: of

The subtype of evolvable to harbor

Initform

(alexandria:required-argument :of)

Initargs

:of

Readers

of.

Writers

This slot is read-only.

Slot: spawn

Source of spawn evolvables; can be a function or a list

Initform

(alexandria:required-argument :spawn)

Initargs

:spawn

Readers

spawn.

Writers

This slot is read-only.

Class: program

TODO

Package

evol.

Source

evolvable.lisp.

Direct superclasses
Class: swarm

Swarms are breeders that heavily rely on threading and also derive from Patron for thread-pooled queue working.

Package

evol.

Source

breeder.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: stream

Stream to use for printing

Package

common-lisp.

Type

stream

Initform

*standard-output*

Initargs

:stream

Readers

swarm-stream.

Writers

This slot is read-only.

Slot: error-stream

Stream to use for printing errors

Type

stream

Initform

*error-output*

Initargs

:error-stream

Readers

swarm-error-stream.

Writers

This slot is read-only.

Slot: stream-lock

Mutex to use for printing

Initform

(bordeaux-threads:make-lock "swarm-stream-lock")

Readers

stream-lock.

Writers

This slot is read-only.

Class: virtual

Virtual evolvables exist for the sole purpose of
beautification through grouping and/or naming by having its dependencies evolve.

Package

evol.

Source

evolvable.lisp.

Direct superclasses

evolvable.

Direct subclasses

hive.

Direct methods

evolve.


Appendix A Indexes


A.1 Concepts


A.2 Functions

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

(
(setf cl-implementation): Private generic functions
(setf cl-implementation): Private generic functions
(setf cl-packages): Private generic functions
(setf cl-packages): Private generic functions
(setf cl-save-options): Private generic functions
(setf cl-save-options): Private generic functions
(setf dependencies): Private generic functions
(setf dependencies): Private generic functions
(setf env-slots): Private generic functions
(setf env-slots): Private generic functions
(setf hatched): Private generic functions
(setf hatched): Private generic functions
(setf rbref): Private ordinary functions
(setf ring-buffer-end): Private ordinary functions
(setf ring-buffer-new): Private ordinary functions
(setf ring-buffer-start): Private ordinary functions
(setf ring-buffer-used): Private ordinary functions
(setf ring-buffer-vector): Private ordinary functions
(setf rule): Private generic functions
(setf rule): Private generic functions
(setf rule): Private generic functions
(setf rule): Private generic functions
(setf sourcefn): Private generic functions
(setf sourcefn): Private generic functions

A
argument-option: Private ordinary functions

B
breed: Private generic functions
breed: Private generic functions
breed: Private generic functions
breed: Private generic functions

C
circular-inter-nodes: Private generic functions
circular-inter-nodes: Private generic functions
circular-node: Private generic functions
circular-node: Private generic functions
cl-implementation: Private generic functions
cl-implementation: Private generic functions
cl-load-ops: Private ordinary functions
cl-packages: Private generic functions
cl-packages: Private generic functions
cl-run-command: Private ordinary functions
cl-save-options: Private generic functions
cl-save-options: Private generic functions
command-failure-code: Private generic functions
command-failure-code: Private generic functions
command-failure-command: Private generic functions
command-failure-command: Private generic functions
command-failure-stderr: Private generic functions
command-failure-stderr: Private generic functions
command-failure-stdout: Private generic functions
command-failure-stdout: Private generic functions
copy-ring-buffer: Private ordinary functions

D
default: Private macros
default-sourcefn: Public ordinary functions
defenv: Public macros
deflate-string: Private ordinary functions
dependencies: Private generic functions
dependencies: Private generic functions
dependency-node: Private ordinary functions
dependency-nodes-hashtable: Private ordinary functions
devolution: Private macros

E
enqueue-breeding: Private generic functions
enqueue-breeding: Private generic functions
env-slots: Private generic functions
env-slots: Private generic functions
eval-reverse-cons: Private macros
evolution-arguments: Private ordinary functions
evolvable-p: Private ordinary functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolve: Private generic functions
evolved-p: Private generic functions
evolved-p: Private generic functions
expand: Private generic functions
expand: Private generic functions
expand: Private generic functions
expand: Private generic functions
expand-$-match: Private ordinary functions
expand-%-match: Private ordinary functions

F
find-node: Private ordinary functions
format-option: Private ordinary functions
Function, (setf rbref): Private ordinary functions
Function, (setf ring-buffer-end): Private ordinary functions
Function, (setf ring-buffer-new): Private ordinary functions
Function, (setf ring-buffer-start): Private ordinary functions
Function, (setf ring-buffer-used): Private ordinary functions
Function, (setf ring-buffer-vector): Private ordinary functions
Function, argument-option: Private ordinary functions
Function, cl-load-ops: Private ordinary functions
Function, cl-run-command: Private ordinary functions
Function, copy-ring-buffer: Private ordinary functions
Function, default-sourcefn: Public ordinary functions
Function, deflate-string: Private ordinary functions
Function, dependency-node: Private ordinary functions
Function, dependency-nodes-hashtable: Private ordinary functions
Function, evolution-arguments: Private ordinary functions
Function, evolvable-p: Private ordinary functions
Function, expand-$-match: Private ordinary functions
Function, expand-%-match: Private ordinary functions
Function, find-node: Private ordinary functions
Function, format-option: Private ordinary functions
Function, getenv: Public ordinary functions
Function, internify: Private ordinary functions
Function, interpolate-$-argument: Private ordinary functions
Function, interpolate-%-argument: Private ordinary functions
Function, interpolate-argument: Private ordinary functions
Function, interpolate-commandline: Private ordinary functions
Function, jobs-breeder: Private ordinary functions
Function, leaf-nodes: Private ordinary functions
Function, load-evolution: Private ordinary functions
Function, make-ring-buffer: Private ordinary functions
Function, mapthread: Private ordinary functions
Function, new-ring-buffer: Private ordinary functions
Function, parse-commandline: Private ordinary functions
Function, pathname-change-suffix: Public ordinary functions
Function, pathname-suffix-p: Public ordinary functions
Function, posix-argv: Private ordinary functions
Function, posix-getenv: Private ordinary functions
Function, posix-quit: Private ordinary functions
Function, print-help: Private ordinary functions
Function, rbref: Private ordinary functions
Function, read-heredoc: Private ordinary functions
Function, read-until-match: Private ordinary functions
Function, repl: Public ordinary functions
Function, replace-with-region: Private ordinary functions
Function, reset-evolvables: Private ordinary functions
Function, resolve-all: Private ordinary functions
Function, resolve-dag: Private ordinary functions
Function, resolve-queue: Private ordinary functions
Function, resolve-roots: Private ordinary functions
Function, ring-buffer-clear: Private ordinary functions
Function, ring-buffer-end: Private ordinary functions
Function, ring-buffer-flush: Private ordinary functions
Function, ring-buffer-insert: Private ordinary functions
Function, ring-buffer-new: Private ordinary functions
Function, ring-buffer-next: Private ordinary functions
Function, ring-buffer-p: Private ordinary functions
Function, ring-buffer-pop: Private ordinary functions
Function, ring-buffer-reset: Private ordinary functions
Function, ring-buffer-start: Private ordinary functions
Function, ring-buffer-used: Private ordinary functions
Function, ring-buffer-vector: Private ordinary functions
Function, root-nodes: Private ordinary functions
Function, run-command: Public ordinary functions
Function, safe-format: Private ordinary functions
Function, safe-getenv: Private ordinary functions
Function, split-commandline: Private ordinary functions
Function, stringify: Private ordinary functions
Function, trim-{}: Private ordinary functions
Function, unix-options-options: Private ordinary functions

G
Generic Function, (setf cl-implementation): Private generic functions
Generic Function, (setf cl-packages): Private generic functions
Generic Function, (setf cl-save-options): Private generic functions
Generic Function, (setf dependencies): Private generic functions
Generic Function, (setf env-slots): Private generic functions
Generic Function, (setf hatched): Private generic functions
Generic Function, (setf rule): Private generic functions
Generic Function, (setf sourcefn): Private generic functions
Generic Function, breed: Private generic functions
Generic Function, circular-inter-nodes: Private generic functions
Generic Function, circular-node: Private generic functions
Generic Function, cl-implementation: Private generic functions
Generic Function, cl-packages: Private generic functions
Generic Function, cl-save-options: Private generic functions
Generic Function, command-failure-code: Private generic functions
Generic Function, command-failure-command: Private generic functions
Generic Function, command-failure-stderr: Private generic functions
Generic Function, command-failure-stdout: Private generic functions
Generic Function, dependencies: Private generic functions
Generic Function, enqueue-breeding: Private generic functions
Generic Function, env-slots: Private generic functions
Generic Function, evolve: Private generic functions
Generic Function, evolved-p: Private generic functions
Generic Function, expand: Private generic functions
Generic Function, hatched: Private generic functions
Generic Function, illegal-evolvable: Private generic functions
Generic Function, mutex: Private generic functions
Generic Function, name: Private generic functions
Generic Function, reset: Private generic functions
Generic Function, rule: Private generic functions
Generic Function, sourcefn: Private generic functions
Generic Function, stream-lock: Private generic functions
Generic Function, swarm-error-stream: Private generic functions
Generic Function, swarm-stream: Private generic functions
Generic Function, unloadable-evolution-pathname: Private generic functions
Generic Function, unresolvable-dependency: Private generic functions
Generic Function, unresolvable-node: Private generic functions
Generic Function, waitqueue: Private generic functions
getenv: Public ordinary functions
getf-option: Private macros

H
hatched: Private generic functions
hatched: Private generic functions

I
illegal-evolvable: Private generic functions
illegal-evolvable: Private generic functions
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
internify: Private ordinary functions
interpolate-$-argument: Private ordinary functions
interpolate-%-argument: Private ordinary functions
interpolate-argument: Private ordinary functions
interpolate-commandline: Private ordinary functions

J
jobs-breeder: Private ordinary functions

L
leaf-nodes: Private ordinary functions
load-evolution: Private ordinary functions

M
Macro, default: Private macros
Macro, defenv: Public macros
Macro, devolution: Private macros
Macro, eval-reverse-cons: Private macros
Macro, getf-option: Private macros
Macro, resolve-cond: Private macros
Macro, symbolize: Private macros
Macro, with-dependency-nodes: Private macros
Macro, with-new-lock-held: Private macros
Macro, with-outputs-to-strings: Private macros
Macro, with-slot-enhanced-environment: Private macros
make-ring-buffer: Private ordinary functions
mapthread: Private ordinary functions
Method, (setf cl-implementation): Private generic functions
Method, (setf cl-packages): Private generic functions
Method, (setf cl-save-options): Private generic functions
Method, (setf dependencies): Private generic functions
Method, (setf env-slots): Private generic functions
Method, (setf hatched): Private generic functions
Method, (setf rule): Private generic functions
Method, (setf rule): Private generic functions
Method, (setf rule): Private generic functions
Method, (setf sourcefn): Private generic functions
Method, breed: Private generic functions
Method, breed: Private generic functions
Method, breed: Private generic functions
Method, circular-inter-nodes: Private generic functions
Method, circular-node: Private generic functions
Method, cl-implementation: Private generic functions
Method, cl-packages: Private generic functions
Method, cl-save-options: Private generic functions
Method, command-failure-code: Private generic functions
Method, command-failure-command: Private generic functions
Method, command-failure-stderr: Private generic functions
Method, command-failure-stdout: Private generic functions
Method, dependencies: Private generic functions
Method, enqueue-breeding: Private generic functions
Method, env-slots: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolve: Private generic functions
Method, evolved-p: Private generic functions
Method, expand: Private generic functions
Method, expand: Private generic functions
Method, expand: Private generic functions
Method, hatched: Private generic functions
Method, illegal-evolvable: Private generic functions
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, mutex: Private generic functions
Method, name: Private generic functions
Method, of: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, reset: Private generic functions
Method, rule: Private generic functions
Method, rule: Private generic functions
Method, rule: Private generic functions
Method, rule: Private generic functions
Method, rule: Private generic functions
Method, sourcefn: Private generic functions
Method, sourcefn: Private generic functions
Method, spawn: Public standalone methods
Method, stream-lock: Private generic functions
Method, swarm-error-stream: Private generic functions
Method, swarm-stream: Private generic functions
Method, unloadable-evolution-pathname: Private generic functions
Method, unresolvable-dependency: Private generic functions
Method, unresolvable-node: Private generic functions
Method, waitqueue: Private generic functions
mutex: Private generic functions
mutex: Private generic functions

N
name: Private generic functions
name: Private generic functions
new-ring-buffer: Private ordinary functions

O
of: Public standalone methods

P
parse-commandline: Private ordinary functions
pathname-change-suffix: Public ordinary functions
pathname-suffix-p: Public ordinary functions
posix-argv: Private ordinary functions
posix-getenv: Private ordinary functions
posix-quit: Private ordinary functions
print-help: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods

R
rbref: Private ordinary functions
read-heredoc: Private ordinary functions
read-until-match: Private ordinary functions
repl: Public ordinary functions
replace-with-region: Private ordinary functions
reset: Private generic functions
reset: Private generic functions
reset-evolvables: Private ordinary functions
resolve-all: Private ordinary functions
resolve-cond: Private macros
resolve-dag: Private ordinary functions
resolve-queue: Private ordinary functions
resolve-roots: Private ordinary functions
ring-buffer-clear: Private ordinary functions
ring-buffer-end: Private ordinary functions
ring-buffer-flush: Private ordinary functions
ring-buffer-insert: Private ordinary functions
ring-buffer-new: Private ordinary functions
ring-buffer-next: Private ordinary functions
ring-buffer-p: Private ordinary functions
ring-buffer-pop: Private ordinary functions
ring-buffer-reset: Private ordinary functions
ring-buffer-start: Private ordinary functions
ring-buffer-used: Private ordinary functions
ring-buffer-vector: Private ordinary functions
root-nodes: Private ordinary functions
rule: Private generic functions
rule: Private generic functions
rule: Private generic functions
rule: Private generic functions
rule: Private generic functions
rule: Private generic functions
run-command: Public ordinary functions

S
safe-format: Private ordinary functions
safe-getenv: Private ordinary functions
sourcefn: Private generic functions
sourcefn: Private generic functions
sourcefn: Private generic functions
spawn: Public standalone methods
split-commandline: Private ordinary functions
stream-lock: Private generic functions
stream-lock: Private generic functions
stringify: Private ordinary functions
swarm-error-stream: Private generic functions
swarm-error-stream: Private generic functions
swarm-stream: Private generic functions
swarm-stream: Private generic functions
symbolize: Private macros

T
trim-{}: Private ordinary functions

U
unix-options-options: Private ordinary functions
unloadable-evolution-pathname: Private generic functions
unloadable-evolution-pathname: Private generic functions
unresolvable-dependency: Private generic functions
unresolvable-dependency: Private generic functions
unresolvable-node: Private generic functions
unresolvable-node: Private generic functions

W
waitqueue: Private generic functions
waitqueue: Private generic functions
with-dependency-nodes: Private macros
with-new-lock-held: Private macros
with-outputs-to-strings: Private macros
with-slot-enhanced-environment: Private macros


A.3 Variables

Jump to:   *  
C   D   E   H   I   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

*
*default-evolution*: Private special variables
*environment*: Public special variables
*options*: Private special variables

C
circular-node: Private conditions
cl-save-options: Private classes
code: Private conditions
command: Private conditions

D
dependencies: Private classes
dependency: Private conditions

E
end: Private structures
env-slots: Private classes
env-slots: Private classes
error-stream: Private classes

H
hatched: Private classes

I
implementation: Private classes
inter-nodes: Private conditions

M
mutex: Private classes

N
name: Private classes
new: Private structures
node: Private conditions

O
of: Private classes

P
packages: Private classes
pathname: Private conditions

R
rule: Private classes
rule: Private classes
rule: Private classes
rule: Private classes
rule: Private classes

S
Slot, circular-node: Private conditions
Slot, cl-save-options: Private classes
Slot, code: Private conditions
Slot, command: Private conditions
Slot, dependencies: Private classes
Slot, dependency: Private conditions
Slot, end: Private structures
Slot, env-slots: Private classes
Slot, env-slots: Private classes
Slot, error-stream: Private classes
Slot, hatched: Private classes
Slot, implementation: Private classes
Slot, inter-nodes: Private conditions
Slot, mutex: Private classes
Slot, name: Private classes
Slot, new: Private structures
Slot, node: Private conditions
Slot, of: Private classes
Slot, packages: Private classes
Slot, pathname: Private conditions
Slot, rule: Private classes
Slot, rule: Private classes
Slot, rule: Private classes
Slot, rule: Private classes
Slot, rule: Private classes
Slot, sourcefn: Private classes
Slot, sourcefn: Private classes
Slot, spawn: Private classes
Slot, start: Private structures
Slot, stderr: Private conditions
Slot, stdout: Private conditions
Slot, stream: Private classes
Slot, stream-lock: Private classes
Slot, target: Private conditions
Slot, used: Private structures
Slot, vector: Private structures
Slot, waitqueue: Private classes
sourcefn: Private classes
sourcefn: Private classes
spawn: Private classes
Special Variable, *default-evolution*: Private special variables
Special Variable, *environment*: Public special variables
Special Variable, *options*: Private special variables
start: Private structures
stderr: Private conditions
stdout: Private conditions
stream: Private classes
stream-lock: Private classes

T
target: Private conditions

U
used: Private structures

V
vector: Private structures

W
waitqueue: Private classes


A.4 Data types

Jump to:   B   C   D   E   F   G   H   I   M   P   R   S   T   U   V  
Index Entry  Section

B
breeder: Private classes
breeder.lisp: The evol/src/breeder․lisp file

C
checkable: Private classes
circular-dependency: Private conditions
cl-core: Private classes
cl-exe: Private classes
cl-transformator: Private classes
Class, breeder: Private classes
Class, checkable: Private classes
Class, cl-core: Private classes
Class, cl-exe: Private classes
Class, cl-transformator: Private classes
Class, definite: Private classes
Class, evolvable: Private classes
Class, executable: Private classes
Class, file: Private classes
Class, generic: Private classes
Class, generic-transformator: Private classes
Class, hive: Private classes
Class, program: Private classes
Class, swarm: Private classes
Class, virtual: Private classes
command-failure: Private conditions
common-lisp.lisp: The evol/src/common-lisp․lisp file
Condition, circular-dependency: Private conditions
Condition, command-failure: Private conditions
Condition, illegal-evolvable: Private conditions
Condition, unemployment: Private conditions
Condition, unloadable-evolution: Private conditions
Condition, unresolvable-dependency: Private conditions

D
definite: Private classes
dependency.lisp: The evol/src/dependency․lisp file

E
environment.lisp: The evol/src/environment․lisp file
evol: The evol system
evol: The evol package
evol-system: The evol-system package
evol.asd: The evol/evol․asd file
evolvable: Private classes
evolvable.lisp: The evol/src/evolvable․lisp file
executable: Private classes

F
file: Private classes
File, breeder.lisp: The evol/src/breeder․lisp file
File, common-lisp.lisp: The evol/src/common-lisp․lisp file
File, dependency.lisp: The evol/src/dependency․lisp file
File, environment.lisp: The evol/src/environment․lisp file
File, evol.asd: The evol/evol․asd file
File, evolvable.lisp: The evol/src/evolvable․lisp file
File, heredoc.lisp: The evol/src/heredoc․lisp file
File, package.lisp: The evol/src/package․lisp file
File, path.lisp: The evol/src/path․lisp file
File, ring-buffer.lisp: The evol/src/ring-buffer․lisp file
File, shell.lisp: The evol/src/shell․lisp file
File, toplevel.lisp: The evol/src/toplevel․lisp file
File, util.lisp: The evol/src/util․lisp file

G
generic: Private classes
generic-transformator: Private classes

H
heredoc.lisp: The evol/src/heredoc․lisp file
hive: Private classes

I
illegal-evolvable: Private conditions

M
Module, src: The evol/src module

P
Package, evol: The evol package
Package, evol-system: The evol-system package
package.lisp: The evol/src/package․lisp file
path.lisp: The evol/src/path․lisp file
program: Private classes

R
ring-buffer: Private structures
ring-buffer.lisp: The evol/src/ring-buffer․lisp file

S
shell.lisp: The evol/src/shell․lisp file
src: The evol/src module
Structure, ring-buffer: Private structures
swarm: Private classes
System, evol: The evol system

T
toplevel.lisp: The evol/src/toplevel․lisp file

U
unemployment: Private conditions
unloadable-evolution: Private conditions
unresolvable-dependency: Private conditions
util.lisp: The evol/src/util․lisp file

V
virtual: Private classes