[Avida-cvs] [Avida2-svn] r180 - in branches/brysonda: Avida2.xcode
source source/cpu source/main source/support source/viewers
brysonda at myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Mon Jun 6 12:43:13 PDT 2005
Author: brysonda
Date: 2005-06-06 15:43:12 -0400 (Mon, 06 Jun 2005)
New Revision: 180
Added:
branches/brysonda/source/support/genesis.smt
branches/brysonda/source/support/inst_set.smt
branches/brysonda/source/support/organism.smt
Modified:
branches/brysonda/Avida2.xcode/project.pbxproj
branches/brysonda/source/cpu/hardware_factory.cc
branches/brysonda/source/cpu/hardware_smt.h
branches/brysonda/source/defs.hh
branches/brysonda/source/main/config.cc
branches/brysonda/source/main/primitive.cc
branches/brysonda/source/support/genesis.4stack
branches/brysonda/source/viewers/symbol_util.cc
Log:
Fixed hardware factory to actually support loading SMT hardware. Added SMT config files. Organism does not replicate, though.
Modified: branches/brysonda/Avida2.xcode/project.pbxproj
===================================================================
--- branches/brysonda/Avida2.xcode/project.pbxproj 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/Avida2.xcode/project.pbxproj 2005-06-06 19:43:12 UTC (rev 180)
@@ -34,6 +34,12 @@
70486BA60826722F009328F0,
70486BA70826722F009328F0,
706D3158085243CD00D7DC8F,
+ 706D32E90854A39800D7DC8F,
+ 706D32EA0854A39900D7DC8F,
+ 706D32EB0854A39900D7DC8F,
+ 706D330F0854A7B900D7DC8F,
+ 706D33110854A7D700D7DC8F,
+ 706D33280854A90D00D7DC8F,
);
isa = PBXCopyFilesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -174,6 +180,66 @@
refType = 4;
sourceTree = "<group>";
};
+ 706D32E90854A39800D7DC8F = {
+ fileRef = DCC311950762539F008F7A48;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 706D32EA0854A39900D7DC8F = {
+ fileRef = DCC311970762539F008F7A48;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 706D32EB0854A39900D7DC8F = {
+ fileRef = DCC311980762539F008F7A48;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 706D330E0854A7B900D7DC8F = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ lastKnownFileType = text;
+ path = organism.smt;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 706D330F0854A7B900D7DC8F = {
+ fileRef = 706D330E0854A7B900D7DC8F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 706D33100854A7D700D7DC8F = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ lastKnownFileType = text;
+ path = genesis.smt;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 706D33110854A7D700D7DC8F = {
+ fileRef = 706D33100854A7D700D7DC8F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 706D33270854A90D00D7DC8F = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ lastKnownFileType = text;
+ path = inst_set.smt;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 706D33280854A90D00D7DC8F = {
+ fileRef = 706D33270854A90D00D7DC8F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
70CBFCE80815E7FE0078D8CC = {
fileEncoding = 30;
isa = PBXFileReference;
@@ -4213,13 +4279,16 @@
DCC311810762539F008F7A48,
DCC311820762539F008F7A48,
DCC311830762539F008F7A48,
+ 706D33100854A7D700D7DC8F,
DCC311840762539F008F7A48,
DCC311850762539F008F7A48,
DCC311860762539F008F7A48,
+ 706D33270854A90D00D7DC8F,
DCC311870762539F008F7A48,
DCC311890762539F008F7A48,
DCC3118A0762539F008F7A48,
DCC3118B0762539F008F7A48,
+ 706D330E0854A7B900D7DC8F,
DCC3118C0762539F008F7A48,
);
isa = PBXGroup;
Modified: branches/brysonda/source/cpu/hardware_factory.cc
===================================================================
--- branches/brysonda/source/cpu/hardware_factory.cc 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/cpu/hardware_factory.cc 2005-06-06 19:43:12 UTC (rev 180)
@@ -10,6 +10,7 @@
#include "hardware_base.hh"
#include "hardware_cpu.hh"
#include "hardware_4stack.hh"
+#include "hardware_smt.h"
#include "inst_set.hh"
#include "organism.hh"
@@ -29,14 +30,20 @@
cHardwareBase * new_hardware = NULL;
// If there is nothing to recycle, just create a new one.
- if (hardware_cpu_list.GetSize() == 0) {
+ if (hardware_cpu_list.GetSize() == 0)
+ {
new_count++;
- if (type == HARDWARE_TYPE_CPU_ORIGINAL) {
- new_hardware = new cHardwareCPU(in_org, inst_set);
+ switch (type)
+ {
+ case HARDWARE_TYPE_CPU_ORIGINAL:
+ new_hardware = new cHardwareCPU(in_org, inst_set);
+ break;
+ case HARDWARE_TYPE_CPU_4STACK:
+ new_hardware = new cHardware4Stack(in_org, inst_set);
+ break;
+ case HARDWARE_TYPE_CPU_SMT:
+ new_hardware = new cHardwareSMT(in_org, inst_set);
}
- else if (type == HARDWARE_TYPE_CPU_4STACK) {
- new_hardware = new cHardware4Stack(in_org, inst_set);
- }
}
// If we do have hardware to recycle, do so!
Modified: branches/brysonda/source/cpu/hardware_smt.h
===================================================================
--- branches/brysonda/source/cpu/hardware_smt.h 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/cpu/hardware_smt.h 2005-06-06 19:43:12 UTC (rev 180)
@@ -236,7 +236,7 @@
cHeadMultiMem FindLabel(const cCodeLabel & in_label, int direction);
cHeadMultiMem FindFullLabel(const cCodeLabel & in_label);
- int GetType() const { return HARDWARE_TYPE_CPU_4STACK; }
+ int GetType() const { return HARDWARE_TYPE_CPU_SMT; }
bool InjectParasite(double mut_multiplier);
bool InjectHost(const cCodeLabel & in_label, const cGenome & injection);
int InjectThread(const cCodeLabel &, const cGenome &) { return -1; }
Modified: branches/brysonda/source/defs.hh
===================================================================
--- branches/brysonda/source/defs.hh 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/defs.hh 2005-06-06 19:43:12 UTC (rev 180)
@@ -75,9 +75,9 @@
// the macro VERSION is defined by automake (in the file 'configure.in' in
// the top-level directory).
#ifndef VERSION
- #define VERSION "2.3.0"
+ #define VERSION "2.3.1"
#endif
-#define AVIDA_VERSION VERSION
+#define AVIDA_VERSION "2.3.1 (Padawan)"
#ifdef QUICK_BASE_TEST_CPU
#define QUICK_TEST_CPU
Modified: branches/brysonda/source/main/config.cc
===================================================================
--- branches/brysonda/source/main/config.cc 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/main/config.cc 2005-06-06 19:43:12 UTC (rev 180)
@@ -451,7 +451,7 @@
<< "# For more information, see doc/genesis.html" << endl
<< "#############################################################################" << endl
<< endl
- << "VERSION_ID " << AVIDA_VERSION << " # Do not change this value."
+ << "VERSION_ID " << VERSION << " # Do not change this value."
<< endl;
// Loop through the groups, and print out all of the variables.
@@ -568,10 +568,10 @@
}
cString version_id = genesis.ReadString("VERSION_ID", "Unknown");
- if (genesis.IsOpen() == true && version_id != AVIDA_VERSION) {
+ if (genesis.IsOpen() == true && version_id != VERSION) {
cerr << "/ WARNING WARNING WARNING WARNING WARNING \\" << endl
<< "| Using incorrect genesis file. |" << endl
- << "| Version needed = \"" << AVIDA_VERSION
+ << "| Version needed = \"" << VERSION
<< "\". Version used = \"" << version_id() << "\" |" << endl
<< "\\ WARNING WARNING WARNING WARNING WARNING /" << endl
<< endl;
@@ -649,7 +649,7 @@
} else if (cur_arg == "-version" || cur_arg == "-v") {
cout << " by Charles Ofria" << endl;
cout << " designed by Charles Ofria, Chris Adami, Travis Collier, C. Titus Brown, and Claus Wilke" << endl;
- cout << " For more information, see: http://dllab.caltech.edu/avida/" << endl;
+ cout << " For more information, see: http://devolab.cse.msu.edu/software/avida/" << endl;
exit(0);
} else if (cur_arg == "-set") {
if (arg_num + 1 == argc || arg_num + 2 == argc) {
Modified: branches/brysonda/source/main/primitive.cc
===================================================================
--- branches/brysonda/source/main/primitive.cc 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/main/primitive.cc 2005-06-06 19:43:12 UTC (rev 180)
@@ -75,7 +75,7 @@
signal(SIGINT, ExitAvida);
// output copyright message
- printf( "Avida version %s\nCopyright (C) 1993-2003 California Institute of Technology.\n\n", AVIDA_VERSION );
+ printf( "Avida %s\nCopyright (C) 1993-2003 California Institute of Technology.\n\n", AVIDA_VERSION );
printf( "Avida comes with ABSOLUTELY NO WARRANTY.\n" );
printf( "This is free software, and you are welcome to redistribute it\nunder certain conditions. See file COPYING for details.\n\n" );
Modified: branches/brysonda/source/support/genesis.4stack
===================================================================
--- branches/brysonda/source/support/genesis.4stack 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/support/genesis.4stack 2005-06-06 19:43:12 UTC (rev 180)
@@ -3,7 +3,7 @@
# For more information, see doc/genesis.html
#############################################################################
-VERSION_ID 2.3.0 # Do not change this value!
+VERSION_ID 2.3.1 # Do not change this value!
### Architecture Variables ###
MAX_UPDATES -1 # Maximum updates to run simulation (-1 = no limit)
@@ -24,7 +24,7 @@
EVENT_FILE events.cfg # File containing list of events during run
ANALYZE_FILE analyze.cfg # File used for analysis mode
ENVIRONMENT_FILE environment.cfg # File that describes the environment
-START_CREATURE preset_organisms/organism.4stack # Organism to seed the soup
+START_CREATURE organism.4stack # Organism to seed the soup
### Reproduction ###
BIRTH_METHOD 4 # 0 = Replace random organism in neighborhood
Added: branches/brysonda/source/support/genesis.smt
===================================================================
--- branches/brysonda/source/support/genesis.smt 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/support/genesis.smt 2005-06-06 19:43:12 UTC (rev 180)
@@ -0,0 +1,168 @@
+#############################################################################
+# This file includes all the basic run-time defines for avida.
+# For more information, see doc/genesis.html
+#############################################################################
+
+VERSION_ID 2.3.1 # Do not change this value!
+
+### Architecture Variables ###
+MAX_UPDATES -1 # Maximum updates to run simulation (-1 = no limit)
+MAX_GENERATIONS -1 # Maximum generations to run simulation (-1 = no limit)
+END_CONDITION_MODE 0 # End run when ...
+ # 0 = MAX_UPDATES _OR_ MAX_GENERATIONS is reached
+ # 1 = MAX_UPDATES _AND_ MAX_GENERATIONS is reached
+WORLD-X 60 # Width of the world in Avida mode.
+WORLD-Y 60 # Height of the world in Avida mode.
+RANDOM_SEED 0 # Random number seed. (0 for based on time)
+HARDWARE_TYPE 2 # 0 = Original CPUs
+ # 1 = New, Stack-based CPUs
+ # 2 = Newer -- Stacks, Memory, Threading
+MAX_CPU_THREADS 1 # Number of Threads CPUs can spawn
+
+### Configuration Files ###
+DEFAULT_DIR ../work/ # Directory in which config files are found
+INST_SET inst_set.smt # File containing instruction set
+EVENT_FILE events.cfg # File containing list of events during run
+ANALYZE_FILE analyze.cfg # File used for analysis mode
+ENVIRONMENT_FILE environment.cfg # File that describes the environment
+START_CREATURE organism.smt # Organism to seed the soup
+
+### Reproduction ###
+BIRTH_METHOD 4 # 0 = Replace random organism in neighborhood
+ # 1 = Replace oldest organism in neighborhood
+ # 2 = Replace largest Age/Merit in neighborhood
+ # 3 = Place only in empty cells in neighborhood
+ # 4 = Replace random from entire population (Mass Action)
+ # 5 = Replace oldest in entire population (like Tierra)
+DEATH_METHOD 0 # 0 = Never die of old age.
+ # 1 = Die when inst executed = AGE_LIMIT (with deviation)
+ # 2 = Die when inst executed = length * AGE_LIMIT (+ dev.)
+AGE_LIMIT 5000 # Modifies DEATH_METHOD
+AGE_DEVIATION 0 # Modified DEATH_METHOD
+ALLOC_METHOD 0 # 0 = Allocated space is set to default instruction.
+ # 1 = Set to section of dead genome (Necrophilia)
+ # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 2 # 0 = Divide leaves state of mother untouched.
+ # 1 = Divide resets state of mother
+ # (after the divide, we have 2 children)
+ # 2 = Divide resets only the current thread of the mother
+ # (useful in 4-stack CPU w/ parasites)
+
+GENERATION_INC_METHOD 0 # 0 = Only the generation of the child is
+ # increased on divide.
+ # 1 = Both the generation of the mother and child are
+ # increased on divide (good with DIVIDE_METHOD 1).
+
+### Divide Restrictions ####
+CHILD_SIZE_RANGE 2.0 # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.5 # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.5 # Code fraction which must be executed before divide.
+REQUIRE_ALLOCATE 1 # Is a an allocate required before a divide? (0/1)
+REQUIRED_TASK -1 # Number of task required for successful divide.
+
+### Mutations ###
+
+# mutations that occur during execution..
+POINT_MUT_PROB 0.0 # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0075 # Mutation rate (per copy).
+
+# mutations that occur on divide...
+INS_MUT_PROB 0.0 # Insertion rate (per site, applied on divide).
+DEL_MUT_PROB 0.0 # Deletion rate (per site, applied on divide).
+DIV_MUT_PROB 0.0 # Mutation rate (per site, applied on divide).
+DIVIDE_MUT_PROB 0.0 # Mutation rate (per divide).
+DIVIDE_INS_PROB 0.05 # Insertion rate (per divide).
+DIVIDE_DEL_PROB 0.05 # Deletion rate (per divide).
+PARENT_MUT_PROB 0.0 # Per-site, in parent, on divide
+
+# heads based mutations
+# READ_SHIFT_PROB 0.0
+# READ INS_PROB 0.0
+# READ_DEL_PROB 0.0
+# WRITE_SHIFT_PROB 0.0
+# WRITE_INS_PROB 0.0
+# WRITE_DEL_PROB 0.0
+
+
+### Mutation reversions ###
+# these slow down avida a lot, and should be set to 0 normally.
+REVERT_FATAL 0.0 # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0 # 0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0
+REVERT_BENEFICIAL 0.0
+
+STERILIZE_FATAL 0.0 # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0 # 0.0 to 1.0; Probability of reset.
+STERILIZE_NEUTRAL 0.0
+STERILIZE_BENEFICIAL 0.0
+
+FAIL_IMPLICIT 0 # Should copies that failed *not* due to mutations
+ # be eliminated?
+
+### Time Slicing ###
+AVE_TIME_SLICE 30
+SLICING_METHOD 2 # 0 = CONSTANT: all organisms get default...
+ # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+ # 2 = INTEGRATED: Perfectly integrated deterministic.
+SIZE_MERIT_METHOD 4 # 0 = off (merit is independent of size)
+ # 1 = Merit proportional to copied size
+ # 2 = Merit prop. to executed size
+ # 3 = Merit prop. to full size
+ # 4 = Merit prop. to min of executed or copied size
+ # 5 = Merit prop. to sqrt of the minimum size
+TASK_MERIT_METHOD 1 # 0 = No task bonuses
+ # 1 = Bonus just equals the task bonus
+THREAD_SLICING_METHOD 1 # 0 = One thread executed per time slice.
+ # 1 = All threads executed each time slice.
+ # Formula for an organism's thread slicing:
+ # 1 + (num_organism_threads-1) * THREAD_SLICING_METHOD
+
+MAX_LABEL_EXE_SIZE 1 # Max nops marked as executed when labels are used
+MERIT_TIME 1 # 0 = Merit Calculated when task completed
+ # 1 = Merit Calculated on Divide
+MAX_NUM_TASKS_REWARDED -1 # -1 = Unlimited
+
+### Genotype Info ###
+THRESHOLD 3 # Number of organisms in a genotype needed for it
+ # to be considered viable.
+GENOTYPE_PRINT 0 # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0 # Print out a genotype if it stays dominant for
+ # this many updates. (0 = off)
+SPECIES_THRESHOLD 2 # max failure count for organisms to be same species
+SPECIES_RECORDING 0 # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0 # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20 # Time allocated in test CPUs (multiple of length)
+TRACK_MAIN_LINEAGE 1 # Track primary lineage leading to final population?
+
+### Log Files ###
+LOG_CREATURES 0 # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0 # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0 # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0 # 0/1 (off/on) toggle to print file.
+LOG_LANDSCAPE 0 # 0/1 (off/on) toggle to print file.
+
+LOG_LINEAGES 0 # 0/1 (off/on) to log advantageous mutations
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# See also LINEAGE_CREATION_METHOD.
+
+LINEAGE_CREATION_METHOD 0
+# Lineage creation options are. Works only when LOG_LINEAGES is set to 1.
+# 0 = manual creation (on inject, use successive integers as lineage labels).
+# 1 = when a child's (potential) fitness is higher than that of its parent.
+# 2 = when a child's (potential) fitness is higher than max in population.
+# 3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+# 4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+# 5 = same as child's (potential) fitness is higher than that of the
+# currently dominant organism, and also than that of any organism
+# currently in the same lineage.
+# 6 = when a child's (potential) fitness is higher than any organism
+# currently in the same lineage.
+# 7 = when a child's (potential) fitness is higher than that of any
+# organism in its line of descent
+
+### END ###
+
+
Added: branches/brysonda/source/support/inst_set.smt
===================================================================
--- branches/brysonda/source/support/inst_set.smt 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/support/inst_set.smt 2005-06-06 19:43:12 UTC (rev 180)
@@ -0,0 +1,38 @@
+Nop-A 1 #1 (a)
+Nop-B 1 #2 (b)
+Nop-C 1 #3 (c)
+Nop-D 1 #4 (d)
+#Nop-X 1 #
+Val-Shift-R 1 #5 (e)
+Val-Shift-L 1 #6 (f)
+Val-Nand 1 #7 (g)
+Val-Add 1 #8 (h)
+Val-Sub 1 #9 (i)
+Val-Mult 1 #10 (j)
+Val-Div 1 #11 (k)
+SetMemory 1 #12 (l)
+Divide 1 #13 (m)
+Inst-Read 1 #14 (n)
+Inst-Write 1 #15 (o)
+#Inst-Copy 1 ()
+If-Equal 1 #16 (p)
+If-Not-Equal 1 #17 (q)
+If-Less 1 #18 (r)
+If-Greater 1 #19 (s)
+Head-Push 1 #20 (t)
+Head-Pop 1 #21 (u)
+Head-Move 1 #22 (v)
+Search 1 #23 (w)
+Push-Next 1 #24 (x)
+Push-Prev 1 #25 (y)
+Push-Comp 1 #26 (z)
+Val-Delete 1 #27 (A)
+Val-Copy 1 #28 (B)
+#ThreadFork 1 #29 ()
+#if-label 1 ()
+Val-Inc 1 #30 (C)
+Val-Dec 1 #31 (D)
+Val-Mod 1 #32 (E)
+#ThreadKill 1 #33 ()
+IO 1 #34 (F)
+Inject 1 #35 (G)
\ No newline at end of file
Added: branches/brysonda/source/support/organism.smt
===================================================================
--- branches/brysonda/source/support/organism.smt 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/support/organism.smt 2005-06-06 19:43:12 UTC (rev 180)
@@ -0,0 +1,108 @@
+# SAMPLE ORGANISM:
+#
+Search # 1: Find organism end.
+Nop-C # 2: - Match CD:AB
+Nop-D
+#ThreadFork # 3:
+#Nop-D # 4:
+Push-Prev # 5: Move end position to Stack-A
+SetMemory # 6: Place FLOW-head in memory space for offspring
+Head-Move # 7: Move Write head to flow head position
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Nop-C # 8:
+Search # 9: Drop flow head at start of copy loop
+Inst-Read # 10:
+Inst-Write # 11:
+Head-Push # 12: Get current position of...
+Nop-C # 13: - Read-Head
+If-Equal # 14: Test if we are done copying...
+Divide # 15: ...If so, divide.
+Head-Move # 16: ...If not, continue with loop.
+Nop-A # 17:
+Nop-B
\ No newline at end of file
Modified: branches/brysonda/source/viewers/symbol_util.cc
===================================================================
--- branches/brysonda/source/viewers/symbol_util.cc 2005-06-06 14:59:29 UTC (rev 179)
+++ branches/brysonda/source/viewers/symbol_util.cc 2005-06-06 19:43:12 UTC (rev 180)
@@ -117,21 +117,18 @@
// if (thread_count < 200) return 'C';
//const cHardwareBase * hardware;
int num_threads;
- if(cConfig::GetHardwareType() == HARDWARE_TYPE_CPU_ORIGINAL)
- {
- //const cHardwareCPU & hard_cpu= (cHardwareCPU &) cell.GetOrganism()->GetHardware();
- //num_threads = hard_cpu.GetNumThreads();
+ switch (cConfig::GetHardwareType())
+ {
+ case HARDWARE_TYPE_CPU_ORIGINAL:
num_threads = ((cHardwareCPU &) cell.GetOrganism()->GetHardware()).GetNumThreads();
return (char) ('0' + num_threads);
- }
- else
- {
- //const cHardware4Stack & hard_4stack= (cHardware4Stack &) cell.GetOrganism()->GetHardware();
- //num_threads = hard_4stack.GetNumThreads();
+ case HARDWARE_TYPE_CPU_4STACK:
num_threads = ((cHardware4Stack &) cell.GetOrganism()->GetHardware()).GetNumThreads();
return (char) ('0' + num_threads);
- }
- //return '+';
+ case HARDWARE_TYPE_CPU_SMT:
+ num_threads = static_cast<cHardwareSMT&>(cell.GetOrganism()->GetHardware()).GetNumThreads();
+ return (char) ('0' + num_threads);
+ }
}
char cSymbolUtil::GetLineageSymbol(const cPopulationCell & cell)
More information about the Avida-cvs
mailing list