Next: SOFTWARE-EVOLUTION-LIBRARY/SOFTWARE/ASM-SUPER-MUTANT, Previous: SOFTWARE-EVOLUTION-LIBRARY/SOFTWARE/ASM, Up: Software Evolution Library Index [Contents][Index]
Class precedence list: function-index-entry, structure-object, slot-object, t
Entry into the index, which is a vector of all the functions in the file.
Class precedence list: asm-heap, asm, simple, software, oid-object, file-w-attributes, file, standard-object, slot-object, t
Slots:
function-index
— initarg: :function-index
Create this on demand.
function-bounds-file
— initarg: :function-bounds-file
; reader: software-evolution-library/software/asm-heap:function-bounds-file
If this is present, use it to create function index
super-owner
— initarg: :super-owner
; reader: software-evolution-library/software/asm-heap:super-owner
; writer: (setf software-evolution-library/software/asm-heap:super-owner)
If present, contains asm-super-mutant instance.
asm-syntax
— initarg: :asm-syntax
; reader: software-evolution-library/software/asm-heap:asm-syntax
; writer: (setf software-evolution-library/software/asm-heap:asm-syntax)
Assembly syntax, either :att or :intel.
Structured software object for assembler source.
Alternative to ASM software objects which should use less memory
in many cases. Similar to range
, but allows for adding and mutating
lines, and should be able to handle any type of mutation we need.
The genome
is a vector of references into the asm-heap.
Copying an asm-heap
is shallow by default, to avoid a large
performance penalty when making many copies. The line-heap holds
the original lines of the program (before any mutations, along
with any new or modified lines appended to the end of the heap.
All elements of the genome are references into this line-heap.
Return the names of functions being called in the asm code. The format is: (:name <string> :library <string-library-name> :full-name <qualified name>).
Insert a line of assembler code into the genome. Parses a new line of assembler, adds it to the heap, and inserts it at index in the genome. Returns the number of lines inserted. Note that one line may be split into multiple lines by the parser. If index is not supplied, defaults to the end of the genome.
Insert a list of asm lines into the genome. Inserts list of lines (calling insert-new-line). If index is not supplied, defaults to end of the genome.
True if syntax has been set to :intel. The argument should be an asm-heap instance or a symbol representing a valid asm-syntax slot value.
Destructively remove and return an element from a vector with a fill pointer.