This is the evol Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 06:04:09 2024 GMT+0.
evol/evol.asd
evol/src/package.lisp
evol/src/util.lisp
evol/src/path.lisp
evol/src/environment.lisp
evol/src/dependency.lisp
evol/src/ring-buffer.lisp
evol/src/heredoc.lisp
evol/src/shell.lisp
evol/src/evolvable.lisp
evol/src/common-lisp.lisp
evol/src/breeder.lisp
evol/src/toplevel.lisp
The main system appears first, followed by any subsystem dependency.
evol
evol - entrenched virtues of lisp / love reversed. Multi-purpose build system.
Alexander Kahl <e-user@fsfe.org>
GPLv3+
0.0.1
external-program
(system).
cl-fad
(system).
cl-ppcre
(system).
alexandria
(system).
unix-options
(system).
bordeaux-threads
(system).
patron
(system).
src
(module).
Modules are listed depth-first from the system components tree.
evol/src
evol
(system).
package.lisp
(file).
util.lisp
(file).
path.lisp
(file).
environment.lisp
(file).
dependency.lisp
(file).
ring-buffer.lisp
(file).
heredoc.lisp
(file).
shell.lisp
(file).
evolvable.lisp
(file).
common-lisp.lisp
(file).
breeder.lisp
(file).
toplevel.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
evol/evol.asd
evol/src/package.lisp
evol/src/util.lisp
evol/src/path.lisp
evol/src/environment.lisp
evol/src/dependency.lisp
evol/src/ring-buffer.lisp
evol/src/heredoc.lisp
evol/src/shell.lisp
evol/src/evolvable.lisp
evol/src/common-lisp.lisp
evol/src/breeder.lisp
evol/src/toplevel.lisp
evol/src/util.lisp
package.lisp
(file).
src
(module).
mapthread
(function).
posix-argv
(function).
posix-quit
(function).
stringify
(function).
with-outputs-to-strings
(macro).
with-slot-enhanced-environment
(macro).
evol/src/path.lisp
package.lisp
(file).
src
(module).
pathname-change-suffix
(function).
pathname-suffix-p
(function).
evol/src/environment.lisp
package.lisp
(file).
src
(module).
*environment*
(special variable).
defenv
(macro).
getenv
(function).
expand
(generic function).
internify
(function).
posix-getenv
(function).
symbolize
(macro).
evol/src/dependency.lisp
package.lisp
(file).
src
(module).
circular-dependency
(condition).
circular-inter-nodes
(reader method).
circular-node
(reader method).
dependency-node
(function).
dependency-nodes-hashtable
(function).
find-node
(function).
leaf-nodes
(function).
resolve-all
(function).
resolve-cond
(macro).
resolve-dag
(function).
resolve-queue
(function).
resolve-roots
(function).
root-nodes
(function).
unresolvable-dependency
(reader method).
unresolvable-dependency
(condition).
unresolvable-node
(reader method).
evol/src/ring-buffer.lisp
package.lisp
(file).
src
(module).
copy-ring-buffer
(function).
make-ring-buffer
(function).
new-ring-buffer
(function).
rbref
(function).
(setf rbref)
(function).
ring-buffer
(structure).
ring-buffer-clear
(function).
ring-buffer-end
(reader).
(setf ring-buffer-end)
(writer).
ring-buffer-flush
(function).
ring-buffer-insert
(function).
ring-buffer-new
(reader).
(setf ring-buffer-new)
(writer).
ring-buffer-next
(function).
ring-buffer-p
(function).
ring-buffer-pop
(function).
ring-buffer-reset
(function).
ring-buffer-start
(reader).
(setf ring-buffer-start)
(writer).
ring-buffer-used
(reader).
(setf ring-buffer-used)
(writer).
ring-buffer-vector
(reader).
(setf ring-buffer-vector)
(writer).
evol/src/heredoc.lisp
package.lisp
(file).
ring-buffer.lisp
(file).
src
(module).
read-heredoc
(function).
read-until-match
(function).
evol/src/shell.lisp
package.lisp
(file).
util.lisp
(file).
environment.lisp
(file).
src
(module).
default-sourcefn
(function).
print-object
(method).
run-command
(function).
command-failure
(condition).
command-failure-code
(reader method).
command-failure-command
(reader method).
command-failure-stderr
(reader method).
command-failure-stdout
(reader method).
deflate-string
(function).
expand-$-match
(function).
expand-%-match
(function).
interpolate-$-argument
(function).
interpolate-%-argument
(function).
interpolate-argument
(function).
interpolate-commandline
(function).
replace-with-region
(function).
split-commandline
(function).
trim-{}
(function).
evol/src/evolvable.lisp
package.lisp
(file).
shell.lisp
(file).
path.lisp
(file).
src
(module).
initialize-instance
(method).
initialize-instance
(method).
of
(reader method).
print-object
(method).
spawn
(reader method).
checkable
(class).
definite
(class).
dependencies
(reader method).
(setf dependencies)
(writer method).
env-slots
(reader method).
(setf env-slots)
(writer method).
evolvable
(class).
evolvable-p
(function).
evolve
(generic function).
evolved-p
(generic function).
executable
(class).
expand
(method).
expand
(method).
file
(class).
generic
(class).
generic-transformator
(class).
hatched
(reader method).
(setf hatched)
(writer method).
hive
(class).
mutex
(reader method).
name
(reader method).
program
(class).
reset
(generic function).
reset-evolvables
(function).
rule
(reader method).
rule
(reader method).
(setf rule)
(writer method).
(setf rule)
(writer method).
sourcefn
(reader method).
(setf sourcefn)
(writer method).
virtual
(class).
waitqueue
(reader method).
evol/src/common-lisp.lisp
package.lisp
(file).
util.lisp
(file).
evolvable.lisp
(file).
heredoc.lisp
(file).
src
(module).
cl-core
(class).
cl-exe
(class).
cl-implementation
(reader method).
(setf cl-implementation)
(writer method).
cl-load-ops
(function).
cl-packages
(reader method).
(setf cl-packages)
(writer method).
cl-run-command
(function).
cl-save-options
(reader method).
(setf cl-save-options)
(writer method).
cl-transformator
(class).
evolve
(method).
evolve
(method).
evolve
(method).
rule
(reader method).
rule
(reader method).
rule
(reader method).
(setf rule)
(writer method).
sourcefn
(reader method).
evol/src/breeder.lisp
package.lisp
(file).
dependency.lisp
(file).
evolvable.lisp
(file).
src
(module).
breed
(generic function).
breeder
(class).
enqueue-breeding
(generic function).
eval-reverse-cons
(macro).
safe-format
(function).
safe-getenv
(function).
stream-lock
(reader method).
swarm
(class).
swarm-error-stream
(reader method).
swarm-stream
(reader method).
with-dependency-nodes
(macro).
with-new-lock-held
(macro).
evol/src/toplevel.lisp
package.lisp
(file).
breeder.lisp
(file).
src
(module).
repl
(function).
*default-evolution*
(special variable).
*options*
(special variable).
argument-option
(function).
default
(macro).
devolution
(macro).
evolution-arguments
(function).
format-option
(function).
getf-option
(macro).
illegal-evolvable
(reader method).
illegal-evolvable
(condition).
jobs-breeder
(function).
load-evolution
(function).
parse-commandline
(function).
print-help
(function).
unemployment
(condition).
unix-options-options
(function).
unloadable-evolution
(condition).
unloadable-evolution-pathname
(reader method).
Packages are listed by definition order.
evol
love
alexandria
.
cl-fad
.
common-lisp
.
external-program
.
*environment*
(special variable).
default-sourcefn
(function).
defenv
(macro).
getenv
(function).
pathname-change-suffix
(function).
pathname-suffix-p
(function).
repl
(function).
run-command
(function).
*default-evolution*
(special variable).
*options*
(special variable).
argument-option
(function).
breed
(generic function).
breeder
(class).
checkable
(class).
circular-dependency
(condition).
circular-inter-nodes
(generic reader).
circular-node
(generic reader).
cl-core
(class).
cl-exe
(class).
cl-implementation
(generic reader).
(setf cl-implementation)
(generic writer).
cl-load-ops
(function).
cl-packages
(generic reader).
(setf cl-packages)
(generic writer).
cl-run-command
(function).
cl-save-options
(generic reader).
(setf cl-save-options)
(generic writer).
cl-transformator
(class).
command-failure
(condition).
command-failure-code
(generic reader).
command-failure-command
(generic reader).
command-failure-stderr
(generic reader).
command-failure-stdout
(generic reader).
copy-ring-buffer
(function).
default
(macro).
definite
(class).
deflate-string
(function).
dependencies
(generic reader).
(setf dependencies)
(generic writer).
dependency-node
(function).
dependency-nodes-hashtable
(function).
devolution
(macro).
enqueue-breeding
(generic function).
env-slots
(generic reader).
(setf env-slots)
(generic writer).
eval-reverse-cons
(macro).
evolution-arguments
(function).
evolvable
(class).
evolvable-p
(function).
evolve
(generic function).
evolved-p
(generic function).
executable
(class).
expand
(generic function).
expand-$-match
(function).
expand-%-match
(function).
file
(class).
find-node
(function).
format-option
(function).
generic
(class).
generic-transformator
(class).
getf-option
(macro).
hatched
(generic reader).
(setf hatched)
(generic writer).
hive
(class).
illegal-evolvable
(generic reader).
illegal-evolvable
(condition).
internify
(function).
interpolate-$-argument
(function).
interpolate-%-argument
(function).
interpolate-argument
(function).
interpolate-commandline
(function).
jobs-breeder
(function).
leaf-nodes
(function).
load-evolution
(function).
make-ring-buffer
(function).
mapthread
(function).
mutex
(generic reader).
name
(generic reader).
new-ring-buffer
(function).
parse-commandline
(function).
posix-argv
(function).
posix-getenv
(function).
posix-quit
(function).
print-help
(function).
program
(class).
rbref
(function).
(setf rbref)
(function).
read-heredoc
(function).
read-until-match
(function).
replace-with-region
(function).
reset
(generic function).
reset-evolvables
(function).
resolve-all
(function).
resolve-cond
(macro).
resolve-dag
(function).
resolve-queue
(function).
resolve-roots
(function).
ring-buffer
(structure).
ring-buffer-clear
(function).
ring-buffer-end
(reader).
(setf ring-buffer-end)
(writer).
ring-buffer-flush
(function).
ring-buffer-insert
(function).
ring-buffer-new
(reader).
(setf ring-buffer-new)
(writer).
ring-buffer-next
(function).
ring-buffer-p
(function).
ring-buffer-pop
(function).
ring-buffer-reset
(function).
ring-buffer-start
(reader).
(setf ring-buffer-start)
(writer).
ring-buffer-used
(reader).
(setf ring-buffer-used)
(writer).
ring-buffer-vector
(reader).
(setf ring-buffer-vector)
(writer).
root-nodes
(function).
rule
(generic reader).
(setf rule)
(generic writer).
safe-format
(function).
safe-getenv
(function).
sourcefn
(generic reader).
(setf sourcefn)
(generic writer).
split-commandline
(function).
stream-lock
(generic reader).
stringify
(function).
swarm
(class).
swarm-error-stream
(generic reader).
swarm-stream
(generic reader).
symbolize
(macro).
trim-{}
(function).
unemployment
(condition).
unix-options-options
(function).
unloadable-evolution
(condition).
unloadable-evolution-pathname
(generic reader).
unresolvable-dependency
(generic reader).
unresolvable-dependency
(condition).
unresolvable-node
(generic reader).
virtual
(class).
waitqueue
(generic reader).
with-dependency-nodes
(macro).
with-new-lock-held
(macro).
with-outputs-to-strings
(macro).
with-slot-enhanced-environment
(macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
defenv var val &optional environment => val
Store val for key var in hash environment.
evol
.
default-sourcefn target modifier => string
Default source computing function that does nothing but ignoring all arguments and always returns an empty string.
evol
.
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.
evol
.
pathname-change-suffix suffix pathspec => string
Change suffix of path name string pathspec; adds suffix if none present yet.
pathname-suffix-p suffix pathspec => boolean
Predicate whether pathspec has file name suffix.
repl => quit
Top-level function used for the standalone executable created through
bootstrapping evol.
Heads-up: Quits CL after execution.
evol
.
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.
evol
.
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.
evolvable
) &rest initargs) ¶initialize-instance :after evol &rest initargs => evol
Also register evolvable in the evol *environment*
hive
)) ¶The subtype of evolvable to harbor
keyword
.
of
.
evolvable
) stream) ¶print-object evolvable stream => nil
Printing evolvable-derived objects must simply return their names.
command-failure
) stream) ¶hive
)) ¶Source of spawn evolvables; can be a function or a list
keyword
.
default name => mixed
Top-level syntactic sugar macro to set the default evolvable to name.
evol
.
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.
evol
.
eval-reverse-cons (&body body1) (&body body2) => cons
Evaluate BODY2 and BODY1 in this order and return result cons [BODY1|BODY2].
evol
.
getf-option option keyword => result
GETF for options.
evol
.
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.
evol
.
symbolize name => symbol
Quotes, transforms and interns unquoted variable names.
evol
.
with-dependency-nodes var &body body => context
Evaluate BODY in scope of VAR bound to dependency node list.
evol
.
with-new-lock-held var &body body => context
Evaluate BODY in locked scope of VAR bound to a new mutex with random name.
evol
.
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.
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.
argument-option argument => option
Find option owning ARGUMENT (command line option).
evol
.
cl-load-ops list => list
Prepares a list of ASDF:LOAD-op forms for op in input LIST.
evol
.
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.
evol
.
deflate-string list &optional separator => string|object
Splice list of strings into merged string having elements separated with string seperator.
evol
.
dependency-node namefn dependencyfn object => node
Transform OBJECT into a node (list) by appending the results of calling NAMEFN and DEPENDENCYFN against it.
evol
.
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.
evol
.
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.
evol
.
evolvable-p object => boolean
Tell whether OBJECT is an EVOLVABLE.
evol
.
expand-$-match match => string
Lookup match in the environment CL was started in returning the result.
evol
.
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"
evol
.
find-node name nodes => node
Find and return node designated by NAME in NODES.
evol
.
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.
evol
.
internify name => symbol
Return interned symbol for arbitrarily typed name; useful for use as hash keys.
evol
.
interpolate-$-argument argument => string
Expand all matches of $ words in string ARGUMENT.
evol
.
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.
evol
.
interpolate-argument argument target sourcefn environment => list
Expand all % and $ matches in string argument in turn.
evol
.
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.
evol
.
jobs-breeder jobs => breeder
Create the appropriate BREEDER for the number of JOBS.
evol
.
leaf-nodes nodes => node-list
Return all leaf nodes in NODES.
Leaf nodes are simply the ones with no dependencies at all.
evol
.
load-evolution options => void
Load the evolution file based on command line OPTIONS.
evol
.
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.
new-ring-buffer length => ring-buffer
Create a new RING-BUFFER containing a simple character vector of fixed size LENGTH.
evol
.
parse-commandline argv => (args opts)
Parse command line argument list ARGV with UNIX-OPTIONS:MAP-PARSED-OPTIONS and defined available *OPTIONS*.
evol
.
posix-argv => list
Return command line argument list. Implementation dependent.
posix-getenv name => string
Return value for POSIX environmental key name, empty string if nothing found.
evol
.
posix-quit => bye bye
Quit the current running CL instance returning error CODE.
rbref buffer index => character or #Nul
Return character stored at INDEX in ring BUFFER.
evol
.
setf (rbref buffer index) value => value
SETF for RBREF. If INDEX > LENGTH of BUFFER, start over at the beginning.
evol
.
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"!
evol
.
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.
evol
.
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.
evol
.
reset-evolvables env => evolvables-list
RESET all evolvables in hashtable ENV. Useful for development.
evol
.
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.
evol
.
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.
evol
.
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.
evol
.
resolve-roots nodes resfn => list of dags or queues
Resolve node-list NODES using resfn for all its root-nodes.
evol
.
ring-buffer-clear buffer => -1
Reset all indices of BUFFER to their initial state.
evol
.
ring-buffer-flush buffer => string
Flush all unused characters in BUFFER.
evol
.
ring-buffer-insert buffer value => value
Increment END of BUFFER inserting VALUE at the new index.
evol
.
ring-buffer-next buffer => character or nil
Return next match character incrementing USED in BUFFER or simply NIL if none are left.
evol
.
ring-buffer-pop buffer => character
Increment START of BUFFER returning VALUE at the new index. Additionally, reset the BUFFER match indices.
evol
.
ring-buffer-reset buffer => end-index
Reset match beginning/end indices USED and NEW in BUFFER to START and END.
evol
.
evol
.
evol
.
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.
evol
.
safe-format lock control-string &rest format-arguments => nil
Mutex-protected FORMAT.
evol
.
safe-getenv lock var => result
Mutex-protected GETENV.
evol
.
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.
evol
.
stringify object => string
If OBJECT is a STRING, return it - else cast WRITE-TO-STRING.
trim-{} string => string
Trims {} brackets strings.
evol
.
unix-options-options => (bool-options parameter-options)
Transform *OPTIONS* so that they are suitable for use with UNIX-OPTIONS:MAP-PARSED-OPTIONS.
evol
.
Breed the evolvable so it can hatch
evol
.
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.
evol
.
circular-dependency
)) ¶evol
.
circular-dependency
)) ¶evol
.
cl-transformator
)) ¶automatically generated reader method
evol
.
cl-transformator
)) ¶automatically generated writer method
evol
.
command-failure
)) ¶code
.
evol
.
command-failure
)) ¶evol
.
command-failure
)) ¶evol
.
command-failure
)) ¶Push breeding an evolvable into the worker queue and wait for the job to finish
evol
.
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.
Evolve this, whatever that may be
evol
.
cl-transformator
) &rest args &key &allow-other-keys) ¶generic-transformator
) &rest args &key &allow-other-keys) ¶executable
) &rest args &key &allow-other-keys) ¶Check that given evolution has been evolved properly
evol
.
expand standard-object => string
Return a suitable form of the object for %-style rule expansion. Defined here to prevent circular dependencies.
evol
.
hive
)) ¶expand hive => list
Hives expand to a list of their dependencies’ names.
standard-object
)) ¶expand object => object
Just return IDENTITY of the OBJECT.
evol
.
illegal-evolvable
)) ¶reset evolvable => result
Reset evolution of EVOLVABLE.
evol
.
evol
.
cl-exe
)) ¶automatically generated reader method
rule
.
cl-core
)) ¶automatically generated reader method
rule
.
cl-transformator
)) ¶automatically generated reader method
rule
.
generic-transformator
)) ¶automatically generated reader method
rule
.
evol
.
cl-transformator
)) ¶automatically generated writer method
rule
.
generic-transformator
)) ¶automatically generated writer method
rule
.
evol
.
definite
)) ¶definite
)) ¶The function to compute the input from other slots like e.g. target and name
evol
.
unloadable-evolution
)) ¶evol
.
unresolvable-dependency
)) ¶evol
.
unresolvable-dependency
)) ¶node
.
Condition signalled if invocation of an external command failed.
evol
.
error
.
The command that failed.
:command
This slot is read-only.
Status code of failed invocation.
:code
This slot is read-only.
Output of invocation.
:stdout
This slot is read-only.
Error output of invocation.
:stderr
This slot is read-only.
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
evol
.
structure-object
.
common-lisp
.
external-program
.
-1
-1
-1
-1
Evolvables derived from checkable provide a means to pre- and post-validate their evolution.
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.
evol
.
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.
:class
(function (lambda (evol::target evol::modifier) (declare (ignore evol::modifier)) (format nil ":~a" evol::target)))
This slot is read-only.
"
(in-package %<)
(%cl-save \"%@\" %cl-save-options)"
:rule
rule
.
This slot is read-only.
Package to load before creating heap image.
(alexandria:required-argument :packages)
:packages
Additional arguments to pass to the implementation-dependent save call.
""
:save-options
(list (quote evol::packages) (quote evol::cl-save-options))
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.
evol
.
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.
evol
.
(alexandria:required-argument :implementation)
:implementation
Definite evolvables define transformation rules and
computation of their effective input(s) to evolve, possibly from some kind of
sources.
evol
.
The function to compute the input from other slots like e.g. target and name
(function evol:default-sourcefn)
:sourcefn
Base class for all evolvables.
evol
.
The name of the evolvable, also available in evol’s environment
(alexandria:required-argument :name)
:name
name
.
This slot is read-only.
List of evolvables this one depends on
:deps
List of slots to lexically bind to the environment during evolution
:env-slots
Mutex for the wait queue
(bordeaux-threads:make-lock)
This slot is read-only.
Wait queue used for multithreaded breeding
(bordeaux-threads:make-condition-variable)
This slot is read-only.
Whether evolution is finished
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.
Files are targets that usually lead to evolution
of... files. Their existence can easily be checked through their distinct
pathnames.
evol
.
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.
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.
Swarms are breeders that heavily rely on threading and also derive from Patron for thread-pooled queue working.
evol
.
breeder
.
patron
.
Stream to use for printing
common-lisp
.
stream
*standard-output*
:stream
This slot is read-only.
Stream to use for printing errors
stream
*error-output*
:error-stream
This slot is read-only.
Mutex to use for printing
(bordeaux-threads:make-lock "swarm-stream-lock")
This slot is read-only.
Virtual evolvables exist for the sole purpose of
beautification through grouping and/or naming by having its dependencies
evolve.
Jump to: | (
A B C D E F G H I J L M N O P R S T U W |
---|
Jump to: | (
A B C D E F G H I J L M N O P R S T U W |
---|
Jump to: | *
C D E H I M N O P R S T U V W |
---|
Jump to: | *
C D E H I M N O P R S T U V W |
---|
Jump to: | B C D E F G H I M P R S T U V |
---|
Jump to: | B C D E F G H I M P R S T U V |
---|