Evolving Machine Codes: Tierra V3.13

Thomas Ray ray at chopin.udel.edu
Sat Jul 11 17:48:33 EST 1992

                                TIERRA UPDATE:

Version V3.13 Now Available; Unified License Agreement; FTP Site Reorganized;
Bug Fixes; Virtual Debugger; Instruction Set Documented; Genome Injector;
Genebank Hash Function; Haploid Sex; Resolution Toggle; Diversity Tool Improved;
Chris Stephenson, Kurt Thearling and Walter Tackett visit SFI;
Future Phylogeny; Tierra in the News; Tierra Publications; Mailing Lists;
What Tierra Is;

This message contains:

1) Availability of Tierra V3.13 Source Code
   a) by ftp
   b) by snail mail on disk
2) Unified License Agreement
3) FTP Site Reorganized
4) Bug Fixes
5) Virtual Debugger
6) Instruction Set Documented
7) Genome Injector
8) Genebank Hash Function
9) Haploid Sex
10) Resolution Toggle
11) Diversity Tool Improved
12) Chris Stephenson, Kurt Thearling and Walter Tackett visit SFI
13) Converation with Paul Barton-Davis (Evolution of a Decision)
14) Future Phylogeny
15) Tierra Funding
16) Tierra in the News
17) Tierra Publications
18) Mailing Lists
19) What Tierra Is (If you don't know what Tierra is, read this first)

1) Availability of Tierra V3.13 Source Code

     The Tierra V3.13 source code; and the source code, and DOS executables of
all tools is available now.  Please note that the source code in the ftp
site and the source code provided on disk will each compile and run on either
DOS or UNIX platforms.  It is exactly the same source code in either case.
The DOS executables are available only on disk, and can not be freely

     If you purchase this program on disk, thank you for your support.
If you obtain the source code through the net or friends, we invite you to
contribute an amount that represents the program's worth to you.  You may
make a check in US dollars payable to Virtual Life, and mail the check to
one of the two addresses listed below.

   a) by ftp

     If you use the software, be sure to pick up new versions from the ftp
site.  The source in the ftp site will be replaced on a roughly monthly or
bi-monthly basis.

     The complete source code and documentation is available by anonymous
ftp at:

tierra.slhs.udel.edu [] and
  life.slhs.udel.edu []

in the directories: almond/, beagle/, doc/, and tierra/.

To get it, ftp to tierra or life, log in as user "anonymous" and give your
email address (eg. tom at udel.edu) as a password.  Be sure to transfer binaries
in binary mode (it is safe to transfer everything in binary mode).
Each directory contains a compressed tar file (filename.tar.Z) and a SRC
directory that contains all the files in raw ascii format.  You can just
pick up the .tar.Z files, and they will expand into the complete directory
structure with the following commands (Unix only):

uncompress tierra.tar.Z
tar oxvf tierra.tar

   b) by snail mail on disk

     The source code, documentation and the beagle.exe file can be distributed
freely, however, the executables (the .exe files in DOS) are for sale and
cannot be freely distributed (with the exeception of beagle.exe).

     If you do not have ftp access you may obtain everything on DOS disks
by making a check for $65 (US dollars drawn on a US bank) payable to
Virtual Life.  Specify 3.5" or 5.25" disks.  Send the check to one of the
following addresses:

Tom Ray                  (January through August)
Santa Fe Institute
1660 Old Pecos Trail
Suite A
Santa Fe, NM 87501

Virtual Life             (September through December)
P.O. Box 625
Newark, Delaware 19715

     The DOS disks contain everything but ALmond (ALmond can be provided on
disk by request, but it only runs on a Unix platform).  The disks include DOS
executables, source code and documentation.  The DOS disks include an easy
installation program.  This is the same source code available in the ftp
site.  If you have ftp access, there is no need to buy the disks.

2) Unified License Agreement

     If you have seen the earlier versions (pre V3.12), you may have noticed
that there were different license agreements for the DOS and Unix versions.
There is now a single and perhaps more coherent license agreement.

3) FTP Site Reorganized

     With Version 3.11 the ftp site was reorganized.  The files are no
longer distributed in shar format.  They are in both raw form, and in
compressed tar files.  All the documentation has been moved to the doc/
directory.  The doc/ directory also includes manuscripts on Tierra in LaTeX
and Postscript formats.

4) Bug Fixes

new in V3.13:

adr() - the parse function for the adr instruction, previous to V3.13, set
     is.iip = 0, which meant that the instruction pointer would not increment.
     This means that if ever the adr instruction were executed, the virtual
     cpu would hang on this instruction.  This has been fixed in V3.13.

GarbageCollectGB() - previous to V3.13, this function (in bookeep.c) caused
     some empty .gen files to be created, which would clutter up the genebank
     directory.  This has been fixed.

genotype histogram - there were some problems with the genotype histogram
     display in V3.12, these have been fixed.

new in V3.12:

template search - Version 3.11 and earlier had a bug in the bi-directional
     template search algorithm.  God intended that the search should move
     outward at equal rates in both directions.  However, some situations
     caused one direction to get ahead of the other.  This does not matter
     to the creatures or evolution; evolution makes due with whatever
     physics or chemistry it has at hand.  However, it makes it difficult
     for the observer reading the genome files to tell what the outcome of
     a bi-directional template search might be.  Another problem with the
     same algorithm is that the limit on the distance of the template
     search was not properly implemented, they tend to search farther than
     the intended limit.  Both these bugs are fixed in V3.12.

5) Virtual Debugger

     In V3.13 the virtual debugger has been spiffed up, and the system is
configured to compile with the debugger implemented, and the dubugger is
documented in the tierra.doc file.  This allows the user to single step
through the code of a creature, while viewing the virutal cpu.  This will
be useful to anyone writing a creature, or trying to see what a creature

6) Instruction Set Documented

     With V3.13, the tierra.doc file includes a new section that provides
a detailed documentation of what each of the 32 Tierran instructions actually

7) Genome Injector

     With V3.13, a mechanism has been provided for injecting genomes into a
running simulation.  The tool is available through the menu system, and allows
a genome from the genebank to be injected into the run at the users command.
However, there is a function Inject(), in the genebank.c module, which takes
a pointer to a genome as an argument.  This function can be used to inject
genomes from any source.  An interesting use of this function would be to
facilitate migration of genomes between simulations running on separate
machines, creating an archipelago.

8) Genebank Hash Function

     In V3.13 a hash function has been added to the genebanker.  The
function CheckGenotype() applies the hash function to each new genome.
This means that when a new genotype appears, its sequence no longer must
be compare to the sequence of every same-sized genome in the bank.  Generally,
only a single integer must be compared.  This means that the .gen files
for V3.13 are not compatible with earlier versions.

9) Haploid Sex

     An option is now available to force creatures to cross-over their genomes
with other creatures while reproducing.  This feature is documented in the
tierra.doc file.

10) Resolution Toggle

     In V3.12 and higher on DOS machines with a VGA display, the simulator
will come up in low resolution mode.  If you select a histogram or size list
display, it will toggle into high resolution mode.  When you return to the
plan display, it will toggle back into low resolution mode.  This is easier
on the eyes.

11) Diversity Tool Improved

     Several changes have been made to the diversity tool to improve its
utility.  The divrange file now also contains the average value of each of
the eight variables, in addition to the minimum and maximum values that it
formerly contained.  Also when multiple divdat.X output files are produced,
they now each contain header information so that they can be processed
independently by the diversity graphics tools in Beagle.  To facilitate this,
a brkrange file is also produced which contains the maximum value of each
variable at the end of each divdat.X file.

12) Chris Stephenson, Kurt Thearling and Walter Tackett visit SFI

     Kurt Thearling of Thinking Machines Corporation (kurt at think.com) is
visiting the Santa Fe Institute from June 12 through May 12 to work on the
Tierra project.  His primary objective will be to port Tierra to the CM5.

     Chris Stephenson of the IBM T. J. Watson Research Center
(cjs at yktem.vnet.ibm.com) will visit SFI from June 29 through July 13 to work
on the Tierra project.  His primary objective will be to provide a new memory
allocator for Tierra.  He will use a memory allocation scheme that he
developed, which will allow us to specify where we would like the new
creature to be placed in memory.

     Walter Tackett of Hughes Aircraft (tackett at ipld01.hac.com) will visit
SFI from June 12 through July 3.  His main objective will be discuss his work
in applying artificial selection to Tierran creatures in order to evolve them
to do ``useful'' work.

13) Converation with Paul Barton-Davis (Evolution of a Decision)

     At the recent Artificial Life III conference in Santa Fe I had an
interesting conversation with Paul Barton-Davis (pauld at cs.washington.edu)
about his work with his own implementation of Tierra.  Paul built his version
of Tierra from scratch, but used the same instruction set described in Ray's
publications.  However, one thing he did differently was to eliminate the
reaper.  Instead his creatures become increasingly flawed as they age, and
eventually die from these effects.  One of the consequences of this is that
free memory is not always available when a creature requests it.  Paul
provided the following details:

    You might or might want to note the other conditions that, in addition
    to the reaper-removal, led to this adapatation and that are absent in
    the release version of Tierra:

    1) a memory allocator that uses virtual memory addresses beginning at
       1, not zero (thus creating a "flag" value that can specifically
       and easily be tested for by a tierran creature).
    2) selection pressure (via the slice size) for medium size        
       creatures (256 to 5K instructions in size) (gaussian
       distribution of slice size around a mean creature size
       of about 2K)
    3) memory protect bits turned on, and used in a significant fashion.
    4) a more complex ancestor, although the copy code is almost
       identical to Ray's 80aaa.

     An adaptation which evolved under these conditions is the first example
I know of in which a Tierran creature evolved a decision making mechanism.
If memory is not available when a creature requests it, the memory allocator
returns a value of zero in the AX register, rather than the address of the
allocated block.  The adaptation then, is to somehow move the value in the
AX register into CX (for example by first pushing AX onto the stack and then
popping that value into the CX register).  Then the creature executes if_cz,
which tests to see if the CX register is zero.  If CX is not zero, the
creature proceeds with reproduction, if CX is zero the creature executes some
code which leads to making another request for memory rather than trying to
copy the genome without having a cell to copy it into.  Paul provided the
following details:

    I recall seeing both:

        mal       ;  111
        push_ax   ;  111
        pop_cx    ;  111
        if_cz     ;  111

    as well as the slightly more expensive:

        mal        ; 111
        mov_ab     ; 111 
        push_bx    ; 111
        pop_cx     ; 111
        if_cz      ; 111

14) Future Phylogeny

     At the moment, the primary effort in new code development is dedicated
to an extension to the genebanker that will produce an ironclad phylogeny.
The requires that we trace the genetic source of every instruction written
into every creature.  Stay tuned.

15) Tierra Funding

     The National Science Foundation has awared a Small Grant for Exploratory
Research to Dr. Ray to support the Tierra project.  The grant is titled:
``Computer Architectures for the Natural Evolution of Machine Code''.  It
is jointly funded through the Computer Systems Architecutre program and the
Computational Biology Activities programs.

16) Tierra in the News

The Tierra Simulator has been widely reported in the media.  Below is a
list of most of the national or international reports that I am aware of.
If you know of some news report not on this list, please send me a hard

Nature (John Maynard Smith, UK) February 27, 1992: ``Byte-sized evolution.
...we badly need a comparative biology.  So far, we have been able to study
only one evolving system and we cannot wait for interstellar flight to
provide us with a second.  If we want to discover generalizations about
evolving systems, we will have to look at artificial ones.  Ray's study is a
good start.''

Nature (Laurence Hurst & Richard Dawkins, UK) May 21, 1992:
``Life in a test tube.''

New York Times (Malcolm Browne, USA) August 27, 1991: ``Lively Computer
Creation Blurs Definition of Life.  Software forms, obeying Darwin's rules,
vie to avoid the `reaper'.''

Science News (John Travis, USA) August 10, 1991: ``Digital Darwinism:
Electronic Ecosystem.  Evolving `life' flourishes and surprises in a
novel electronic world''.

Scientific American (John Rennie, USA) January 1992: ``Cybernetic Parasites...
Tierra... has been hailed as the most sophisticated artificial-life program
yet developed...''

New Scientist (Roger Lewin, UK) February 22, 1992: ``Life and death in a
digital world.  No one can turn back the evolutionary clock, but we can
follow the fate of a rich menagerie of artificial organisms as they evolve
in a model world.''

The Economist (Anon, UK) January 4, 1992: ``The meaning of `life'.
In order to understand the origin of life, scientists are switching from the
chemistry set to the computer.  In the process, they are beginning to
understand what it means to be alive.''

Guardian (Jocelyn Paine, UK) January 9, 1992: ``Unravelling the loop in the
primordial soup.  Tierran machine code is so adaptable it survives.  Jocelyn
Paine charts the evolution of artificial life within the computer.''

Actuel (Ariel Kyrou, France) April 1992: ``Visite Guidee Aux Extremes De
La Science: La Vie Artificielle.  Etes-vous pr\^{e}ts \`{a} entrer dans
l'univers vertigineux de la vie artificielle?  Un champ scientifique tout neuf
sur lequel se penchent les grosses t\^{e}tes et les Nobel de labos

The Chronicle of Higher Education (David Wilson, USA) December 4, 1991:
``Approaching Artificial Life on a Computer.  Survival-of-the-fittest
electronic organisms dramatically illustrate Darwinian principles.''

Mikrobitti (Pekka Tolonen, Finland) November 1991: ``Olemmeko humanoiden
biologinen koe?  Tierra simuloi el\"{a}m\"{a}\"{a}.''

Europeo (Giovanni Caprara, Italy) September 1991: ``Anche il computer ha
fatto un figlio.  Un biologo americano ha creato un software capace di
elaborare programmi che si evolvono da soli.''

GenteMoney (Riccardo Orizio, Italy) November 1991: ``Cos\`{\i} ho dato
la vita al software.''

Computerworld (Michael Alexander, USA) September 30, 1991: ``Tierra adds to
evolutionary studies.  A computerized world created on an IBM PC could
have real-world benefits for scientists.''

Sueddeutsche Zeitung (Konrad Peters, Germany) October 21, 1991:
``Die Evolution im Computer.  `K\"{u}nstliches Leben' hilft Biologen und
Informatikern auf die Spr\"{u}nge.''

Super Interessante (Anon, Brazil) November 1991: ``A vida dentro do

Technology Review (Susan Scheck, USA) April 14, 1991: ``Is It Live Or Is
It Memory?''

Corriere Della Sera (Giovanni Capara, Italy) August 28, 1991: ``Pronto in
USA il programma che si riproduce.  Il computer `padre' crea vita

Fakta (Tom Ottmar, Norway) March 1992: ``Den Lever!  En `skabning', der
best\aa r af nuller og \'{e}nere, er vokset ud af indamaden p\aa \ en
computer og er blevet en videnskabelig sensation i USA.''

Associated Press (Theresa Humphrey, USA) October 1991: ``Bringing life to
computer.  U of D biologist's program is self-replicating, shows evolution.''

Hovedomr\aa det (Jakob Skipper, Denmark) December 6, 1990: ``Kunstigt liv.
Nu kommer det kunstige liv.  En voksende gruppe af dataloger, biologer,
fysikere, psykologer og mange andre forskere efterlinger p\aa \ computer
det naturlige liv.''

17) Tierra Publications

Ray, T. S.  1991.  ``Is it alive, or is it GA?''
Proceedings of the 1991 International Conference on Genetic Algorithms,
Eds. Belew, R. K., and L. B. Booker, San Mateo, CA: Morgan Kaufmann, 527-534.

Ray, T. S.  1991.  ``An approach to the synthesis of life.''
Artificial Life II, Santa Fe Institute Studies in the Sciences of
Complexity, vol. XI, Eds. Farmer, J. D., C. Langton, S. Rasmussen, &
C. Taylor, Redwood City, CA: Addison-Wesley, 371-408.

Ray, T. S.  1991.  ``Population dynamics of digital organisms.''
Artificial Life II Video Proceedings,  Ed. C.G. Langton,
Redwood City, CA: Addison Wesley.

Ray, T. S.  1991.  ``Evolution and optimization of digital organisms.''
Scientific Excellence in Supercomputing: The IBM 1990 Contest Prize
Papers, Eds. Keith R. Billingsley, Ed Derohanes, Hilton Brown, III.
Athens, GA, 30602, The Baldwin Press, The University of Georgia.

18) Mailing Lists

     There are two mailing lists for Tierra users.  The first list is for
people who only want to get the official announcements, updates and bug-fixes.
The other will carry the official postings, and are intended for discussion
of Tierra by users.  This one is distributed in digest form, when there is
enough material.  The lists are:

tierra-announce    official updates, patches and announcements only
tierra-digest      discussion, updates, etc. (digest form)

The addresses are: 

tierra-request at life.slhs.udel.edu   the list administrator (Tom Uffner). to
                                    be added, removed, or complain about
                                    problems with any of these lists.

tierra-digest at life.slhs.udel.edu    to post to the list.

tierra-bug at life.slhs.udel.edu       for bug-reports or questions about the
                                    code or installation.

     You may also be interested in the Artificial Life mailing list.
Subscribe to the list by sending a message to:

alife-request at cognet.ucla.edu

     Post to the list by sending a message to:

alife at cognet.ucla.edu

19) What Tierra Is

     The C source code creates a virtual computer and its operating system,
whose architecture has been designed in such a way that the executable
machine codes are evolvable.  This means that the machine code can be mutated
(by flipping bits at random) or recombined (by swapping segments of code
between algorithms), and the resulting code remains functional enough of the
time for natural (or presumably artificial) selection to be able to improve
the code over time.

     Along with the C source code which generates the virtual computer, we
provide several programs written in the assembler code of the virtual
computer.  One of these was written by a human and does nothing more than make
copies of itself in the RAM of the virtual computer.  The others evolved from
the first, and are included to illustrate the power of natural selection.

     The operating system of the virtual computer provides memory management
and timesharing services.  It also provides control for a variety of factors
that affect the course of evolution: three kinds of mutation rates,
disturbances, the allocation of CPU time to each creature, the size of the
soup, etc.  In addition, the operating system provides a very elaborate
observational system that keeps a record of births and deaths, sequences
the code of every creature, and maintains a genebank of successful genomes.
The operating system also provides facilities for automating the ecological
analysis, that is, for recording the kinds of interactions taking place
between creatures.

     This system results in the production of synthetic organisms based on
a computer metaphor of organic life in which CPU time is the ``energy''
resource and memory is the ``material'' resource.  Memory is organized into
informational patterns that exploit CPU time for self-replication.  Mutation
generates new forms, and evolution proceeds by natural selection as different
genotypes compete for CPU time and memory space.

     Diverse ecological communities have emerged.  These digital communities
have been used to experimentally examine ecological and evolutionary
processes: e.g., competitive exclusion and coexistence, host/parasite density
dependent population regulation, the effect of parasites in enhancing
community diversity, evolutionary arms race, punctuated equilibrium, and the
role of chance and historical factors in evolution.  This evolution in a
bottle may prove to be a valuable tool for the study of evolution and ecology.

More information about the Mol-evol mailing list