[Avida-cvs] [avida-svn] r945 - in development: Avida.xcodeproj source source/drivers source/main source/targets/avida source/targets/avida-viewer support/config
brysonda at myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Mon Sep 11 20:17:18 PDT 2006
Author: brysonda
Date: 2006-09-11 23:17:18 -0400 (Mon, 11 Sep 2006)
New Revision: 945
Added:
development/source/main/cEventList.cc
development/source/main/cEventList.h
Removed:
development/source/event/
development/source/main/cAvidaTriggers.h
Modified:
development/Avida.xcodeproj/project.pbxproj
development/source/CMakeLists.txt
development/source/SConscript
development/source/drivers/cDefaultRunDriver.cc
development/source/main/CMakeLists.txt
development/source/main/SConscript
development/source/main/cAvidaConfig.h
development/source/main/cWorld.cc
development/source/main/cWorld.h
development/source/targets/avida-viewer/CMakeLists.txt
development/source/targets/avida-viewer/SConscript
development/source/targets/avida-viewer/cOptionsScreen.cc
development/source/targets/avida-viewer/cTextViewerDriver.cc
development/source/targets/avida/CMakeLists.txt
development/source/targets/avida/SConscript
development/support/config/avida.cfg
Log:
Consolidate cEventList implementation details into the class itself. Move cEventList into source/main/, removing old event directory.
Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj 2006-09-12 00:36:14 UTC (rev 944)
+++ development/Avida.xcodeproj/project.pbxproj 2006-09-12 03:17:18 UTC (rev 945)
@@ -97,6 +97,9 @@
708051BB0A1F66B400CBB8B6 /* cActionLibrary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */; };
708051BC0A1F66B400CBB8B6 /* cActionLibrary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */; };
708051BD0A1F66B400CBB8B6 /* cActionLibrary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */; };
+ 708BF2FE0AB65DC700A923BF /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708BF2FD0AB65DC700A923BF /* cEventList.cc */; };
+ 708BF2FF0AB65DC700A923BF /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708BF2FD0AB65DC700A923BF /* cEventList.cc */; };
+ 708BF3000AB65DC700A923BF /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 708BF2FD0AB65DC700A923BF /* cEventList.cc */; };
709D924C0A5D950D00D6A163 /* cMutationalNeighborhood.cc in Sources */ = {isa = PBXBuildFile; fileRef = 709D924B0A5D950D00D6A163 /* cMutationalNeighborhood.cc */; };
709D924D0A5D950E00D6A163 /* cMutationalNeighborhood.cc in Sources */ = {isa = PBXBuildFile; fileRef = 709D924B0A5D950D00D6A163 /* cMutationalNeighborhood.cc */; };
709D924E0A5D950E00D6A163 /* cMutationalNeighborhood.cc in Sources */ = {isa = PBXBuildFile; fileRef = 709D924B0A5D950D00D6A163 /* cMutationalNeighborhood.cc */; };
@@ -221,10 +224,6 @@
70C1F03608C3C71300F50912 /* cHeadCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02608C3C71300F50912 /* cHeadCPU.cc */; };
70C1F03808C3C71300F50912 /* cTestCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02808C3C71300F50912 /* cTestCPU.cc */; };
70C1F03908C3C71300F50912 /* cTestUtil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02908C3C71300F50912 /* cTestUtil.cc */; };
- 70C1F19408C6A11100F50912 /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F18F08C6A11100F50912 /* cEventList.cc */; };
- 70C1F19608C6A11100F50912 /* cEventTriggers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F19108C6A11100F50912 /* cEventTriggers.cc */; };
- 70C1F19908C6A11100F50912 /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F18F08C6A11100F50912 /* cEventList.cc */; };
- 70C1F19B08C6A11100F50912 /* cEventTriggers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F19108C6A11100F50912 /* cEventTriggers.cc */; };
70C5BC6509059A970028A785 /* cWorld.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C5BC6309059A970028A785 /* cWorld.cc */; };
70C5BC6709059A970028A785 /* cWorld.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C5BC6309059A970028A785 /* cWorld.cc */; };
70C5BD6B0905CE5F0028A785 /* cHardwareManager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C5BD690905CE5F0028A785 /* cHardwareManager.cc */; };
@@ -271,8 +270,6 @@
70DCACB0097AF7CC002F8733 /* cHeadCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02608C3C71300F50912 /* cHeadCPU.cc */; };
70DCACB2097AF7CC002F8733 /* cTestCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02808C3C71300F50912 /* cTestCPU.cc */; };
70DCACB3097AF7CC002F8733 /* cTestUtil.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02908C3C71300F50912 /* cTestUtil.cc */; };
- 70DCACB4097AF7CC002F8733 /* cEventList.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F18F08C6A11100F50912 /* cEventList.cc */; };
- 70DCACB5097AF7CC002F8733 /* cEventTriggers.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F19108C6A11100F50912 /* cEventTriggers.cc */; };
70DCACB6097AF7CC002F8733 /* cEnvironment.cc in Sources */ = {isa = PBXBuildFile; fileRef = 702D4EFC08DA5341007BA469 /* cEnvironment.cc */; };
70DCACB7097AF7CC002F8733 /* cPopulationInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 702D4EFD08DA5341007BA469 /* cPopulationInterface.cc */; };
70DCACB8097AF7CC002F8733 /* cBirthChamber.cc in Sources */ = {isa = PBXBuildFile; fileRef = 702D4F3F08DA61FE007BA469 /* cBirthChamber.cc */; };
@@ -463,7 +460,6 @@
702D4EF608DA5328007BA469 /* cPopulationInterface.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cPopulationInterface.h; sourceTree = "<group>"; };
702D4EFC08DA5341007BA469 /* cEnvironment.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEnvironment.cc; sourceTree = "<group>"; };
702D4EFD08DA5341007BA469 /* cPopulationInterface.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cPopulationInterface.cc; sourceTree = "<group>"; };
- 702D4F3808DA61E2007BA469 /* cAvidaTriggers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cAvidaTriggers.h; sourceTree = "<group>"; };
702D4F3908DA61E2007BA469 /* cBirthChamber.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cBirthChamber.h; sourceTree = "<group>"; };
702D4F3F08DA61FE007BA469 /* cBirthChamber.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cBirthChamber.cc; sourceTree = "<group>"; };
702F52A70992F8F600B2B507 /* cSymbolTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cSymbolTable.h; sourceTree = "<group>"; };
@@ -471,7 +467,6 @@
702F52DE0992FD8000B2B507 /* cScriptObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cScriptObject.h; sourceTree = "<group>"; };
702F52DF0992FD8000B2B507 /* cScriptObject.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cScriptObject.cc; sourceTree = "<group>"; };
703CA36D0A50729700AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
- 703CA36E0A5072A600AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
703CA36F0A5072B700AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
703CA3700A5072E600AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
703CA3710A50734500AB4DB4 /* SConscript */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SConscript; sourceTree = "<group>"; };
@@ -591,6 +586,8 @@
708051A70A1F65FE00CBB8B6 /* SaveLoadActions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaveLoadActions.h; sourceTree = "<group>"; };
708051A80A1F65FE00CBB8B6 /* SaveLoadActions.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SaveLoadActions.cc; sourceTree = "<group>"; };
708051BA0A1F66B400CBB8B6 /* cActionLibrary.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cActionLibrary.cc; sourceTree = "<group>"; };
+ 708BF2FD0AB65DC700A923BF /* cEventList.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEventList.cc; sourceTree = "<group>"; };
+ 708BF3010AB65DD300A923BF /* cEventList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventList.h; sourceTree = "<group>"; };
70920C1C0A9CCE2C00757CDB /* analyze_samples.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = analyze_samples.html; sourceTree = "<group>"; };
70920C1D0A9CCE2C00757CDB /* code_c++_intro.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = "code_c++_intro.html"; sourceTree = "<group>"; };
70920C1E0A9CCE2C00757CDB /* code_death_birth.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = code_death_birth.html; sourceTree = "<group>"; };
@@ -792,13 +789,6 @@
70C1F02808C3C71300F50912 /* cTestCPU.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTestCPU.cc; sourceTree = "<group>"; };
70C1F02908C3C71300F50912 /* cTestUtil.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTestUtil.cc; sourceTree = "<group>"; };
70C1F0A808C3FF1800F50912 /* nHardware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nHardware.h; sourceTree = "<group>"; };
- 70C1F18608C6A0FA00F50912 /* cEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEvent.h; sourceTree = "<group>"; };
- 70C1F18808C6A0FA00F50912 /* cEventList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventList.h; sourceTree = "<group>"; };
- 70C1F18908C6A0FA00F50912 /* cEventListEntry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventListEntry.h; sourceTree = "<group>"; };
- 70C1F18A08C6A0FA00F50912 /* cEventListIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventListIterator.h; sourceTree = "<group>"; };
- 70C1F18B08C6A0FA00F50912 /* cEventTriggers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventTriggers.h; sourceTree = "<group>"; };
- 70C1F18F08C6A11100F50912 /* cEventList.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEventList.cc; sourceTree = "<group>"; };
- 70C1F19108C6A11100F50912 /* cEventTriggers.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cEventTriggers.cc; sourceTree = "<group>"; };
70C5BC6209059A970028A785 /* cWorld.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cWorld.h; sourceTree = "<group>"; };
70C5BC6309059A970028A785 /* cWorld.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cWorld.cc; sourceTree = "<group>"; };
70C5BD690905CE5F0028A785 /* cHardwareManager.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHardwareManager.cc; sourceTree = "<group>"; };
@@ -883,7 +873,6 @@
DCC30F7B0762539D008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
DCC30FA90762539D008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
DCC30FCF0762539D008F7A48 /* Doxyfile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Doxyfile; sourceTree = "<group>"; };
- DCC30FEB0762539D008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
DCC3109C0762539E008F7A48 /* avida.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = avida.cc; sourceTree = "<group>"; };
DCC310A90762539E008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
DCC31345076253A0008F7A48 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
@@ -1335,7 +1324,6 @@
70F7D8C8092546DC009E311D /* classification */,
DCC30F7C0762539D008F7A48 /* cpu */,
701D9115094B770B008B845F /* drivers */,
- DCC30FD00762539D008F7A48 /* event */,
DCC310040762539D008F7A48 /* main */,
70DCF4FF09CF81E400924128 /* platform */,
70DCAD1E097AF81A002F8733 /* script */,
@@ -1393,31 +1381,16 @@
path = cpu;
sourceTree = "<group>";
};
- DCC30FD00762539D008F7A48 /* event */ = {
- isa = PBXGroup;
- children = (
- 703CA36E0A5072A600AB4DB4 /* SConscript */,
- 70C1F18608C6A0FA00F50912 /* cEvent.h */,
- 70C1F18F08C6A11100F50912 /* cEventList.cc */,
- 70C1F18808C6A0FA00F50912 /* cEventList.h */,
- 70C1F18908C6A0FA00F50912 /* cEventListEntry.h */,
- 70C1F18A08C6A0FA00F50912 /* cEventListIterator.h */,
- 70C1F19108C6A11100F50912 /* cEventTriggers.cc */,
- 70C1F18B08C6A0FA00F50912 /* cEventTriggers.h */,
- DCC30FEB0762539D008F7A48 /* CMakeLists.txt */,
- );
- path = event;
- sourceTree = "<group>";
- };
DCC310040762539D008F7A48 /* main */ = {
isa = PBXGroup;
children = (
+ 708BF3010AB65DD300A923BF /* cEventList.h */,
+ 708BF2FD0AB65DC700A923BF /* cEventList.cc */,
703CA36F0A5072B700AB4DB4 /* SConscript */,
DCC3109C0762539E008F7A48 /* avida.cc */,
70B086BE08F5D86100FC65FE /* avida.h */,
7013846009028B3E0087ED2E /* cAvidaConfig.cc */,
7013845F09028B3E0087ED2E /* cAvidaConfig.h */,
- 702D4F3808DA61E2007BA469 /* cAvidaTriggers.h */,
702D4F3F08DA61FE007BA469 /* cBirthChamber.cc */,
702D4F3908DA61E2007BA469 /* cBirthChamber.h */,
702D4EFC08DA5341007BA469 /* cEnvironment.cc */,
@@ -1901,8 +1874,6 @@
70C1F03608C3C71300F50912 /* cHeadCPU.cc in Sources */,
70C1F03808C3C71300F50912 /* cTestCPU.cc in Sources */,
70C1F03908C3C71300F50912 /* cTestUtil.cc in Sources */,
- 70C1F19908C6A11100F50912 /* cEventList.cc in Sources */,
- 70C1F19B08C6A11100F50912 /* cEventTriggers.cc in Sources */,
702D4F0608DA5341007BA469 /* cEnvironment.cc in Sources */,
702D4F0708DA5341007BA469 /* cPopulationInterface.cc in Sources */,
702D4F4B08DA61FE007BA469 /* cBirthChamber.cc in Sources */,
@@ -2007,6 +1978,7 @@
7049F2DB0A66859F00640512 /* cHardwareTransSMT.cc in Sources */,
704ADBC80A6EEFC300666970 /* DriverActions.cc in Sources */,
705ABB3E0A8A6B4400A6A80E /* EnvironmentActions.cc in Sources */,
+ 708BF3000AB65DC700A923BF /* cEventList.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2039,8 +2011,6 @@
70DCACB0097AF7CC002F8733 /* cHeadCPU.cc in Sources */,
70DCACB2097AF7CC002F8733 /* cTestCPU.cc in Sources */,
70DCACB3097AF7CC002F8733 /* cTestUtil.cc in Sources */,
- 70DCACB4097AF7CC002F8733 /* cEventList.cc in Sources */,
- 70DCACB5097AF7CC002F8733 /* cEventTriggers.cc in Sources */,
70DCACB6097AF7CC002F8733 /* cEnvironment.cc in Sources */,
70DCACB7097AF7CC002F8733 /* cPopulationInterface.cc in Sources */,
70DCACB8097AF7CC002F8733 /* cBirthChamber.cc in Sources */,
@@ -2137,6 +2107,7 @@
7049F2DA0A66859B00640512 /* cHardwareTransSMT.cc in Sources */,
704ADBC60A6EEFC300666970 /* DriverActions.cc in Sources */,
705ABB3D0A8A6B4100A6A80E /* EnvironmentActions.cc in Sources */,
+ 708BF2FF0AB65DC700A923BF /* cEventList.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2156,8 +2127,6 @@
70C1F02E08C3C71300F50912 /* cHeadCPU.cc in Sources */,
70C1F03008C3C71300F50912 /* cTestCPU.cc in Sources */,
70C1F03108C3C71300F50912 /* cTestUtil.cc in Sources */,
- 70C1F19408C6A11100F50912 /* cEventList.cc in Sources */,
- 70C1F19608C6A11100F50912 /* cEventTriggers.cc in Sources */,
702D4F0108DA5341007BA469 /* cEnvironment.cc in Sources */,
702D4F0208DA5341007BA469 /* cPopulationInterface.cc in Sources */,
702D4F4508DA61FE007BA469 /* cBirthChamber.cc in Sources */,
@@ -2248,6 +2217,7 @@
7049F2D90A66859700640512 /* cHardwareTransSMT.cc in Sources */,
704ADBF90A6EF3A300666970 /* DriverActions.cc in Sources */,
705ABB3C0A8A6B3D00A6A80E /* EnvironmentActions.cc in Sources */,
+ 708BF2FE0AB65DC700A923BF /* cEventList.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: development/source/CMakeLists.txt
===================================================================
--- development/source/CMakeLists.txt 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/CMakeLists.txt 2006-09-12 03:17:18 UTC (rev 945)
@@ -1,5 +1,5 @@
-SUBDIRS(actions analyze classification cpu drivers event main platform targets third-party tools utils/task_events)
+SUBDIRS(actions analyze classification cpu drivers main platform targets third-party tools utils/task_events)
IF(AVD_SERIALIZATION)
SUBDIRS(archive)
ENDIF(AVD_SERIALIZATION)
Modified: development/source/SConscript
===================================================================
--- development/source/SConscript 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/SConscript 2006-09-12 03:17:18 UTC (rev 945)
@@ -8,7 +8,6 @@
'classification/SConscript',
'cpu/SConscript',
'drivers/SConscript',
- 'event/SConscript',
'main/SConscript',
'platform/SConscript',
'targets/SConscript',
Modified: development/source/drivers/cDefaultRunDriver.cc
===================================================================
--- development/source/drivers/cDefaultRunDriver.cc 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/drivers/cDefaultRunDriver.cc 2006-09-12 03:17:18 UTC (rev 945)
@@ -58,7 +58,7 @@
change_list->Reset();
}
- m_world->GetEvents();
+ m_world->GetEvents(ctx);
if (m_done == true) break;
// Increment the Update.
Modified: development/source/main/CMakeLists.txt
===================================================================
--- development/source/main/CMakeLists.txt 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/CMakeLists.txt 2006-09-12 03:17:18 UTC (rev 945)
@@ -5,6 +5,7 @@
cAvidaConfig.cc
cBirthChamber.cc
cEnvironment.cc
+ cEventList.cc
cFitnessMatrix.cc
cGenome.cc
cGenomeUtil.cc
Modified: development/source/main/SConscript
===================================================================
--- development/source/main/SConscript 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/SConscript 2006-09-12 03:17:18 UTC (rev 945)
@@ -7,9 +7,9 @@
'avida.h',
'cAvidaConfig.h',
'cAvidaContext.h',
- 'cAvidaTriggers.h',
'cBirthChamber.h',
'cEnvironment.h',
+ 'cEventList.h',
'cFitnessMatrix.h',
'cGenome.h',
'cGenomeUtil.h',
@@ -59,6 +59,7 @@
'cAvidaConfig.cc',
'cBirthChamber.cc',
'cEnvironment.cc',
+ 'cEventList.cc',
'cFitnessMatrix.cc',
'cGenome.cc',
'cGenomeUtil.cc',
Modified: development/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cAvidaConfig.h 2006-09-12 03:17:18 UTC (rev 945)
@@ -157,9 +157,6 @@
CONFIG_ADD_VAR(VERBOSITY, int, 1, "Control output verbosity");
CONFIG_ADD_GROUP(ARCH_GROUP, "Architecture Variables");
- CONFIG_ADD_VAR(MAX_UPDATES, int, -1, "Maximum updates to run experiment (-1 = no limit)");
- CONFIG_ADD_VAR(MAX_GENERATIONS, int, -1, "Maximum generations to run experiment (-1 = no limit)");
- CONFIG_ADD_VAR(END_CONDITION_MODE, int, 0, "End run when ...\n0 = MAX_UPDATES _OR_ MAX_GENERATIONS is reached\n1 = MAX_UPDATES _AND_ MAX_GENERATIONS is reached");
CONFIG_ADD_VAR(WORLD_X, int, 100, "Width of the Avida world");
CONFIG_ADD_VAR(WORLD_Y, int, 100, "Height of the Avida world");
CONFIG_ADD_VAR(WORLD_GEOMETRY, int, 2, "1 = Bounded Grid\n2 = Torus");
Deleted: development/source/main/cAvidaTriggers.h
===================================================================
--- development/source/main/cAvidaTriggers.h 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cAvidaTriggers.h 2006-09-12 03:17:18 UTC (rev 945)
@@ -1,54 +0,0 @@
-/*
- * cAvidaTriggers.h
- * Avida
- *
- * Called "avida_trigggers.hh" prior to 12/2/05.
- * Copyright 2005-2006 Michigan State University. All rights reserved.
- * Copyright 1993-2003 California Institute of Technology.
- *
- */
-
-#ifndef cAvidaTriggers_h
-#define cAvidaTriggers_h
-
-#ifndef cEventTriggers_h
-#include "cEventTriggers.h"
-#endif
-#ifndef cStats_h
-#include "cStats.h"
-#endif
-
-/**
- * A small class that determines the correct triggers for the event list.
- * Needed in order to separate the event business from the rest.
- */
-class cAvidaTriggers : public cEventTriggers
-{
-private:
- cStats& m_stats;
-
-
- cAvidaTriggers(); // @not_implemented
- cAvidaTriggers(const cAvidaTriggers&); // @not_implemented
- cAvidaTriggers& operator=(const cAvidaTriggers&); // @not_implemented
-
-public:
- cAvidaTriggers(cStats& stats) : m_stats(stats) { ; }
-
- double GetUpdate() const { return (double) m_stats.GetUpdate(); }
- double GetGeneration() const { return m_stats.SumGeneration().Average(); }
-};
-
-
-#ifdef ENABLE_UNIT_TESTS
-namespace nAvidaTriggers {
- /**
- * Run unit tests
- *
- * @param full Run full test suite; if false, just the fast tests.
- **/
- void UnitTests(bool full = false);
-}
-#endif
-
-#endif
Copied: development/source/main/cEventList.cc (from rev 944, development/source/event/cEventList.cc)
===================================================================
--- development/source/event/cEventList.cc 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cEventList.cc 2006-09-12 03:17:18 UTC (rev 945)
@@ -0,0 +1,345 @@
+/*
+ * cEventList.cc
+ * Avida
+ *
+ * Called "event_list.cc" prior to 12/2/05.
+ * Copyright 2005-2006 Michigan State University. All rights reserved.
+ * Copyright 1993-2003 California Institute of Technology.
+ *
+ */
+
+#include "cEventList.h"
+
+#include "defs.h"
+#include "cActionLibrary.h"
+#include "cInitFile.h"
+#include "cStats.h"
+#include "cString.h"
+#include "cWorld.h"
+
+#include <float.h> // for DBL_MIN
+#include <iostream>
+
+using namespace std;
+
+
+const double cEventList::TRIGGER_BEGIN = DBL_MIN;
+const double cEventList::TRIGGER_END = DBL_MAX;
+const double cEventList::TRIGGER_ALL = 0.0;
+const double cEventList::TRIGGER_ONCE = DBL_MAX;
+
+
+cEventList::~cEventList()
+{
+ cEventListEntry* current = NULL;
+ while (m_head != NULL) {
+ current = m_head;
+ m_head = m_head->GetNext();
+ delete current;
+ }
+}
+
+
+bool cEventList::AddEvent(eTriggerType trigger, double start, double interval,
+ double stop, const cString& name, const cString& args)
+{
+ cAction* action = m_world->GetActionLibrary().Create(name, m_world, args);
+
+ if (action != NULL) {
+ cEventListEntry* entry = new cEventListEntry(action, name, trigger, start, interval, stop);
+
+ // If there are no events in the list yet.
+ if (m_tail == NULL) {
+ assert(m_head == NULL);
+ m_head = entry;
+ m_tail = entry;
+ } else {
+ // Add to the end of the list
+ m_tail->SetNext(entry);
+ entry->SetPrev(m_tail);
+ m_tail = entry;
+ }
+
+ SyncEvent(entry);
+ ++m_num_events;
+ return true;
+ }
+
+ return false;
+}
+
+void cEventList::LoadEventFile(const cString& filename)
+{
+ cInitFile event_file(filename);
+
+ // Load in the proper event list and set it up.
+ event_file.Load();
+ event_file.Compress();
+
+ // Loop through the line_list and change the lines to events.
+ for (int line_id = 0; line_id < event_file.GetNumLines(); line_id++) {
+ AddEventFileFormat(event_file.GetLine(line_id));
+ }
+}
+
+
+void cEventList::Delete(cEventListEntry* entry)
+{
+ assert(entry != NULL);
+
+ if (entry->GetPrev() != NULL) {
+ entry->GetPrev()->SetNext(entry->GetNext());
+ } else {
+ assert(entry == m_head);
+ m_head = entry->GetNext();
+ }
+
+ if (entry->GetNext() != NULL) {
+ entry->GetNext()->SetPrev(entry->GetPrev());
+ } else {
+ assert(entry == m_tail);
+ m_tail = entry->GetPrev();
+ }
+
+ delete entry;
+}
+
+double cEventList::GetTriggerValue(eTriggerType trigger) const
+{
+ // Returns TRIGGER_END if invalid, TRIGGER_BEGIN for IMMEDIATE
+ double t_val = TRIGGER_END;
+ switch (trigger) {
+ case IMMEDIATE:
+ t_val = TRIGGER_BEGIN;
+ break;
+ case UPDATE:
+ t_val = m_world->GetStats().GetUpdate();
+ break;
+ case GENERATION:
+ t_val = m_world->GetStats().SumGeneration().Average();
+ break;
+ }
+ return t_val;
+}
+
+
+void cEventList::Process(cAvidaContext& ctx)
+{
+ double t_val = 0; // trigger value
+
+ // Iterate through all entrys in event list
+ cEventListEntry* entry = m_head;
+ while (entry != NULL) {
+ cEventListEntry* next_entry = entry->GetNext();
+
+ // Check trigger condition
+
+ // IMMEDIATE Events always happen and are always deleted
+ if (entry->GetTrigger() == IMMEDIATE) {
+ entry->GetAction()->Process(ctx);
+ Delete(entry);
+ } else {
+ // Get the value of the appropriate trigger variable
+ t_val = GetTriggerValue(entry->GetTrigger());
+
+ if (t_val != DBL_MAX &&
+ (t_val >= entry->GetStart() || entry->GetStart() == TRIGGER_BEGIN) &&
+ (t_val <= entry->GetStop() || entry->GetStop() == TRIGGER_END)) {
+
+ // Process the Action
+ entry->GetAction()->Process(ctx);
+
+ // Handle Interval Adjustment
+ if (entry->GetInterval() == TRIGGER_ALL) {
+ // Do Nothing
+ } else if (entry->GetInterval() == TRIGGER_ONCE) {
+ // If it is a onetime thing, remove it...
+ Delete(entry);
+ entry = NULL;
+ } else {
+ // There is an interval.. so add it
+ entry->NextInterval();
+ }
+
+ // If the event can never happen now... excize it
+ if (entry != NULL && entry->GetStop() != TRIGGER_END &&
+ ((entry->GetStart() > entry->GetStop() && entry->GetInterval() > 0) ||
+ (entry->GetStart() < entry->GetStop() && entry->GetInterval() < 0)))
+ Delete(entry);
+ }
+ } // end condition to do event
+
+ entry = next_entry;
+ }
+}
+
+
+void cEventList::Sync()
+{
+ cEventListEntry* entry = m_head;
+ cEventListEntry* next_entry;
+ while (entry != NULL) {
+ next_entry = entry->GetNext();
+ SyncEvent(entry);
+ entry = next_entry;
+ }
+}
+
+
+void cEventList::SyncEvent(cEventListEntry* entry)
+{
+ // Ignore events that are immdeiate
+ if (entry->GetTrigger() == IMMEDIATE) return;
+
+ double t_val = GetTriggerValue(entry->GetTrigger());
+
+ // If t_val has past the end, remove (even if it is TRIGGER_ALL)
+ if (t_val > entry->GetStop()) {
+ Delete(entry);
+ return;
+ }
+
+ // If it is a trigger once and has passed, remove
+ if (t_val > entry->GetStart() && entry->GetInterval() == TRIGGER_ONCE) {
+ Delete(entry);
+ return;
+ }
+
+ // If for some reason t_val has been reset or soemthing, rewind
+ if (t_val + entry->GetInterval() <= entry->GetStart()) {
+ entry->Reset();
+ }
+
+ // Can't fast forward events that are Triger All
+ if (entry->GetInterval() == TRIGGER_ALL) return;
+
+ // Keep adding interval to start until we are caught up
+ while (t_val > entry->GetStart()) entry->NextInterval();
+}
+
+
+void cEventList::PrintEventList(ostream& os)
+{
+ cEventListEntry* entry = m_head;
+ cEventListEntry* next_entry;
+ while (entry != NULL) {
+ next_entry = entry->GetNext();
+ switch (entry->GetTrigger()) {
+ case UPDATE:
+ os << "update ";
+ break;
+ case GENERATION:
+ os << "generation ";
+ break;
+ case IMMEDIATE:
+ os << "immediate ";
+ break;
+ default:
+ os << "undefined ";
+ }
+ if (entry->GetTrigger() != IMMEDIATE) {
+ if (entry->GetStart() == TRIGGER_BEGIN) os << "begin";
+ else os << entry->GetStart();
+
+ os << ":";
+
+ if (entry->GetInterval() == TRIGGER_ONCE) os << "once";
+ else if (entry->GetInterval() == TRIGGER_ALL) os << "all";
+ else os << entry->GetInterval();
+
+ os << ":";
+
+ if (entry->GetStop() == TRIGGER_END) os << "end";
+ else os << entry->GetStop();
+
+ os << " ";
+ }
+ os << entry->GetName() << " " << entry->GetArgs() << endl;
+ entry = next_entry;
+ }
+}
+
+
+//// Parsing Event List File Format ////
+bool cEventList::AddEventFileFormat(const cString& in_line)
+{
+ cString cur_line = in_line;
+
+ // Timing
+ eTriggerType trigger = UPDATE;
+ double start = TRIGGER_BEGIN;
+ double interval = TRIGGER_ONCE;
+ double stop = TRIGGER_END;
+
+ cString name;
+ cString arg_list;
+
+ cString tmp;
+
+ cString cur_word = cur_line.PopWord();
+
+ // Get the trigger variable if there
+ if (cur_word == "i" || cur_word == "immediate") {
+ trigger = IMMEDIATE;
+ name = cur_line.PopWord();
+ return AddEvent(name, cur_line); // If event is IMMEDIATE shortcut
+ } else if (cur_word == "u" || cur_word == "update") {
+ trigger = UPDATE;
+ cur_word = cur_line.PopWord();
+ } else if( cur_word == "g" || cur_word == "generation") {
+ trigger = GENERATION;
+ cur_word = cur_line.PopWord();
+ } else {
+ // If Trigger is skipped so assume IMMEDIATE
+ trigger = IMMEDIATE;
+ }
+
+ // Do we now have timing specified?
+ // Parse the Timing
+ cString timing_str = cur_word;
+
+ // Get the start:interval:stop
+ tmp = timing_str.Pop(':');
+
+ // If first value is valid, we are getting a timing.
+ if (tmp.IsNumber() || tmp == "begin") {
+
+ // First number is start
+ if (tmp == "begin") start = TRIGGER_BEGIN;
+ else start = tmp.AsDouble();
+
+ // If no other words... is "start" syntax
+ if (timing_str.GetSize() == 0) {
+ interval = TRIGGER_ONCE;
+ stop = TRIGGER_END;
+ } else {
+ // Second word is interval
+ tmp = timing_str.Pop(':');
+ if (tmp == "all") interval = TRIGGER_ALL;
+ else if (tmp == "once") interval = TRIGGER_ONCE;
+ else interval = tmp.AsDouble();
+
+ // If no other words... is "start:interval" syntax
+ if (timing_str.GetSize() == 0) stop = TRIGGER_END;
+ else {
+ // We have "start:interval:stop" syntax
+ tmp = timing_str;
+ if (tmp == "end") stop = TRIGGER_END;
+ else stop = tmp.AsDouble();
+ }
+ }
+ cur_word = cur_line.PopWord(); // timing provided, so get next word
+
+ } else { // We don't have timing, so assume IMMEDIATE
+ trigger = IMMEDIATE;
+ start = TRIGGER_BEGIN;
+ interval = TRIGGER_ONCE;
+ stop = TRIGGER_END;
+ }
+
+ // Get the rest of the info
+ name = cur_word;
+ arg_list = cur_line;
+
+ return AddEvent(trigger, start, interval, stop, name, arg_list);
+}
Copied: development/source/main/cEventList.h (from rev 944, development/source/event/cEventList.h)
===================================================================
--- development/source/event/cEventList.h 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cEventList.h 2006-09-12 03:17:18 UTC (rev 945)
@@ -0,0 +1,169 @@
+/*
+ * cEventList.h
+ * Avida
+ *
+ * Called "event_list.hh" prior to 12/2/05.
+ * Copyright 2005-2006 Michigan State University. All rights reserved.
+ * Copyright 1993-2003 California Institute of Technology.
+ *
+ */
+
+#ifndef cEventList_h
+#define cEventList_h
+
+#ifndef cAction_h
+#include "cAction.h"
+#endif
+
+class cAvidaContext;
+class cString;
+class cWorld;
+
+
+// This is the fundamental class for event management. It holds a list of all
+// events, and provides methods to add new events and to process existing
+// events.
+
+class cEventList
+{
+public:
+ enum eTriggerType { UPDATE, GENERATION, IMMEDIATE, UNDEFINED };
+
+ static const double TRIGGER_BEGIN;
+ static const double TRIGGER_END;
+ static const double TRIGGER_ALL;
+ static const double TRIGGER_ONCE;
+
+
+private:
+
+ class cEventListEntry
+ {
+ private:
+ cAction* m_action;
+ cString m_name;
+
+ eTriggerType m_trigger;
+ double m_start;
+ double m_interval;
+ double m_stop;
+ double m_original_start;
+
+ cEventListEntry* m_prev;
+ cEventListEntry* m_next;
+
+ public:
+ cEventListEntry(cAction* action, const cString& name, eTriggerType trigger = UPDATE, double start = TRIGGER_BEGIN,
+ double interval = TRIGGER_ONCE, double stop = TRIGGER_END, cEventListEntry* prev = NULL,
+ cEventListEntry* next = NULL) :
+ m_action(action), m_name(name), m_trigger(trigger), m_start(start), m_interval(interval), m_stop(stop),
+ m_original_start(start), m_prev(prev), m_next(next)
+ {
+ }
+
+ virtual ~cEventListEntry() { delete m_action; }
+
+ void SetPrev(cEventListEntry* prev) { m_prev = prev; }
+ void SetNext(cEventListEntry* next) { m_next = next; }
+
+ void NextInterval() { m_start += m_interval; }
+ void Reset() { m_start = m_original_start; }
+
+ // accessors
+ cAction* GetAction() const { assert(m_action != NULL); return m_action; }
+
+ const cString GetName() const { assert(m_action != NULL); return m_name; }
+ const cString& GetArgs() const { assert(m_action != NULL); return m_action->GetArgs(); }
+
+ eTriggerType GetTrigger() const { return m_trigger; }
+ double GetStart() const { return m_start; }
+ double GetInterval() const { return m_interval; }
+ double GetStop() const { return m_stop; }
+
+ cEventListEntry* GetPrev() const { return m_prev; }
+ cEventListEntry* GetNext() const { return m_next; }
+ };
+
+
+ cWorld* m_world;
+ cEventListEntry* m_head;
+ cEventListEntry* m_tail;
+ int m_num_events;
+
+
+ void SyncEvent(cEventListEntry* event);
+ double GetTriggerValue(eTriggerType trigger) const;
+ void Delete(cEventListEntry* entry);
+
+ cEventList(); // @not_implemented
+ cEventList(const cEventList&); // @not_implemented
+ cEventList& operator=(const cEventList&); // @not_implemented
+
+
+public:
+ /**
+ * The cEventList assumes ownership of triggers and destroys it when done.
+ *
+ * @param triggers A trigger object. The event list needs a trigger object
+ * to determine what events to call when.
+ **/
+ cEventList(cWorld* world) : m_world(world), m_head(NULL), m_tail(NULL), m_num_events(0) { ; }
+ ~cEventList();
+
+
+ /**
+ * Adds an event with given name and argument list. The event will be of
+ * type immediate, i.e. it is processed only once, and then deleted.
+ *
+ * @param name The name of the event.
+ * @param args The argument list.
+ **/
+ bool AddEvent(const cString& name, const cString& args)
+ {
+ return AddEvent(IMMEDIATE, TRIGGER_BEGIN, TRIGGER_ONCE, TRIGGER_END, name, args);
+ }
+
+
+ /**
+ * Adds an event with specified trigger type.
+ *
+ * @param trigger The type of the trigger.
+ * @param start The start value of the trigger variable.
+ * @param interval The length of the interval between one processing
+ * and the next.
+ * @param stop The value of the trigger variable at which the event should
+ * be deleted.
+ * @param name The name of the even.
+ * @param args The argument list.
+ **/
+ bool AddEvent(eTriggerType trigger, double start, double interval, double stop, const cString &name, const cString& args);
+
+ /**
+ * This function adds an event that is given in the event list file format.
+ * In other words, it can be used to parse one line from an event list file,
+ * and construct the appropriate event.
+ **/
+ bool AddEventFileFormat(const cString& line);
+
+
+ void LoadEventFile(const cString& filename);
+
+ void Process(cAvidaContext& ctx); // Go through list executing appropriate events.
+ void Sync(); // Get all events caught up.
+
+ void PrintEventList(std::ostream& os = std::cout);
+};
+
+
+#ifdef ENABLE_UNIT_TESTS
+namespace nEventList {
+ /**
+ * Run unit tests
+ *
+ * @param full Run full test suite; if false, just the fast tests.
+ **/
+ void UnitTests(bool full = false);
+}
+#endif
+
+#endif
Modified: development/source/main/cWorld.cc
===================================================================
--- development/source/main/cWorld.cc 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cWorld.cc 2006-09-12 03:17:18 UTC (rev 945)
@@ -11,12 +11,10 @@
#include "avida.h"
#include "cAnalyze.h"
-#include "cAvidaTriggers.h"
#include "cClassificationManager.h"
#include "cEnvironment.h"
#include "cEventList.h"
#include "cHardwareManager.h"
-#include "cInitFile.h"
#include "cPopulation.h"
#include "cStats.h"
#include "cTestCPU.h"
@@ -74,9 +72,8 @@
m_pop = new cPopulation(this);
// Setup Event List
- m_event_list = new cEventList(this, new cAvidaTriggers(*m_stats));
-
- ReadEventListFile(m_conf->EVENT_FILE.Get());
+ m_event_list = new cEventList(this);
+ m_event_list->LoadEventFile(m_conf->EVENT_FILE.Get());
const bool revert_fatal = m_conf->REVERT_FATAL.Get() > 0.0;
const bool revert_neg = m_conf->REVERT_DETRIMENTAL.Get() > 0.0;
@@ -98,59 +95,13 @@
return *m_analyze;
}
-void cWorld::ReadEventListFile(const cString & filename)
-{
- cInitFile event_file(filename);
-
- // Load in the proper event list and set it up.
- event_file.Load();
- event_file.Compress();
-
- // Loop through the line_list and change the lines to events.
- for (int line_id = 0; line_id < event_file.GetNumLines(); line_id++) {
- m_event_list->AddEventFileFormat(event_file.GetLine(line_id));
- }
-
- ////////// Adding events from the Genesis file //////////
- // Max Updates and/or Max Generations
- if(m_conf->END_CONDITION_MODE.Get() == 0 ){
- if(m_conf->MAX_UPDATES.Get() >= 0 ){
- m_event_list->AddEvent( cEventTriggers::UPDATE, m_conf->MAX_UPDATES.Get(),
- cEventTriggers::TRIGGER_ONCE,
- cEventTriggers::TRIGGER_END, "exit", "");
- }
- if(m_conf->MAX_GENERATIONS.Get() >= 0 ){
- m_event_list->AddEvent( cEventTriggers::GENERATION,
- m_conf->MAX_GENERATIONS.Get(),
- cEventTriggers::TRIGGER_ONCE,
- cEventTriggers::TRIGGER_END, "exit", "");
- }
- }else{
- if(m_conf->MAX_UPDATES.Get() >= 0 && m_conf->MAX_GENERATIONS.Get() >= 0 ){
- cString max_gen_str;
- max_gen_str.Set("%d", m_conf->MAX_GENERATIONS.Get());
- cString max_update_str;
- max_update_str.Set("%d", m_conf->MAX_UPDATES.Get());
- m_event_list->AddEvent( cEventTriggers::UPDATE, m_conf->MAX_UPDATES.Get(),
- 1, cEventTriggers::TRIGGER_END,
- "exit_if_generation_greater_than", max_gen_str);
- m_event_list->AddEvent( cEventTriggers::GENERATION,
- m_conf->MAX_GENERATIONS.Get(),
- .01, cEventTriggers::TRIGGER_END,
- "exit_if_update_greater_than", max_update_str);
- }
- }
-}
-
-void cWorld::SyncEventList() { m_event_list->Sync(); }
-
-void cWorld::GetEvents()
+void cWorld::GetEvents(cAvidaContext& ctx)
{
if (m_pop->GetSyncEvents() == true) {
- SyncEventList();
+ m_event_list->Sync();
m_pop->SetSyncEvents(false);
}
- m_event_list->Process();
+ m_event_list->Process(ctx);
}
int cWorld::GetNumInstructions()
Modified: development/source/main/cWorld.h
===================================================================
--- development/source/main/cWorld.h 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/main/cWorld.h 2006-09-12 03:17:18 UTC (rev 945)
@@ -103,9 +103,7 @@
inline void SetVerbosity(int v) { m_conf->VERBOSITY.Set(v); }
// @DMB - Inherited from cAvidaDriver heritage
- void GetEvents();
- void ReadEventListFile(const cString & filename);
- void SyncEventList();
+ void GetEvents(cAvidaContext& ctx);
// Save to archive
template<class Archive>
Modified: development/source/targets/avida/CMakeLists.txt
===================================================================
--- development/source/targets/avida/CMakeLists.txt 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida/CMakeLists.txt 2006-09-12 03:17:18 UTC (rev 945)
@@ -3,7 +3,7 @@
ADD_EXECUTABLE(avida primitive.cc)
SET(avida_target_link_libs
- main classification cpu event analyze drivers cpu tools actions analyze
+ main classification cpu analyze drivers cpu tools actions analyze
)
IF(NOT MSVC)
Modified: development/source/targets/avida/SConscript
===================================================================
--- development/source/targets/avida/SConscript 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida/SConscript 2006-09-12 03:17:18 UTC (rev 945)
@@ -12,7 +12,6 @@
'main',
'classification',
'cpu',
- 'event',
'analyze',
'drivers',
'cpu',
Modified: development/source/targets/avida-viewer/CMakeLists.txt
===================================================================
--- development/source/targets/avida-viewer/CMakeLists.txt 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/CMakeLists.txt 2006-09-12 03:17:18 UTC (rev 945)
@@ -26,7 +26,7 @@
ADD_EXECUTABLE(avida-viewer viewer.cc)
SET(avida_viewer_target_link_libs
- cursesviewer main classification cpu event analyze drivers cpu tools trio actions analyze ${NCURSES_LIBRARY}
+ cursesviewer main classification cpu analyze drivers cpu tools trio actions analyze ${NCURSES_LIBRARY}
)
Modified: development/source/targets/avida-viewer/SConscript
===================================================================
--- development/source/targets/avida-viewer/SConscript 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/SConscript 2006-09-12 03:17:18 UTC (rev 945)
@@ -25,7 +25,6 @@
'main',
'classification',
'cpu',
- 'event',
'analyze',
'drivers',
'cpu',
Modified: development/source/targets/avida-viewer/cOptionsScreen.cc
===================================================================
--- development/source/targets/avida-viewer/cOptionsScreen.cc 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/cOptionsScreen.cc 2006-09-12 03:17:18 UTC (rev 945)
@@ -79,7 +79,6 @@
Box(0, Height() - 5, Width(), 5);
SetBoldColor(COLOR_CYAN);
- Print(5, 15, "%d", info.GetConfig().MAX_UPDATES.Get());
Print(6, 15, "%dx%d", info.GetPopulation().GetWorldX(),
info.GetPopulation().GetWorldY());
Print(7, 15, "%d", info.GetRandom().GetSeed());
Modified: development/source/targets/avida-viewer/cTextViewerDriver.cc
===================================================================
--- development/source/targets/avida-viewer/cTextViewerDriver.cc 2006-09-12 00:36:14 UTC (rev 944)
+++ development/source/targets/avida-viewer/cTextViewerDriver.cc 2006-09-12 03:17:18 UTC (rev 945)
@@ -61,7 +61,7 @@
change_list->Reset();
}
- m_world->GetEvents();
+ m_world->GetEvents(ctx);
if (m_done == true) break;
// Increment the Update.
Modified: development/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg 2006-09-12 00:36:14 UTC (rev 944)
+++ development/support/config/avida.cfg 2006-09-12 03:17:18 UTC (rev 945)
@@ -7,39 +7,34 @@
### GENERAL_GROUP ###
# General Settings
-ANALYZE_MODE 0 # 0 = Disabled
- # 1 = Enabled
- # 2 = Interactive
-VIEW_MODE 0 # Initial viewer screen
-CLONE_FILE - # Clone file to load
-MT_CONCURRENCY 1 # Number of concurrent analyze threads
-VERBOSITY 1 # Control output verbosity
+ANALYZE_MODE 0 # 0 = Disabled
+ # 1 = Enabled
+ # 2 = Interactive
+VIEW_MODE 0 # Initial viewer screen
+CLONE_FILE - # Clone file to load
+MT_CONCURRENCY 1 # Number of concurrent analyze threads
+VERBOSITY 1 # Control output verbosity
### ARCH_GROUP ###
# Architecture Variables
-MAX_UPDATES -1 # Maximum updates to run experiment (-1 = no limit)
-MAX_GENERATIONS -1 # Maximum generations to run experiment (-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 Avida world
-WORLD_Y 60 # Height of the Avida world
-WORLD_GEOMETRY 2 # 1 = Bounded Grid
- # 2 = Torus
-NUM_DEMES 0 # Number of independed groups in the population; 0=off
-RANDOM_SEED 0 # Random number seed (0 for based on time)
-HARDWARE_TYPE 0 # 0 = Original CPUs
- # 1 = New SMT CPUs
- # 2 = Transitional SMT
+WORLD_X 100 # Width of the Avida world
+WORLD_Y 100 # Height of the Avida world
+WORLD_GEOMETRY 2 # 1 = Bounded Grid
+ # 2 = Torus
+NUM_DEMES 0 # Number of independed groups in the population; 0=off
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
### CONFIG_FILE_GROUP ###
# Configuration Files
-DATA_DIR data # Directory in which config files are found
-INST_SET - # 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 default-classic.org # Organism to seed the soup
+DATA_DIR data # Directory in which config files are found
+INST_SET - # 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 default-classic.org # Organism to seed the soup
### REPRODUCTION_GROUP ###
# Birth and Death
@@ -50,7 +45,7 @@
# 4 = Replace random from population (Mass Action)
# 5 = Replace oldest in entire population (like Tierra)
# 6 = Replace random within deme
-PREFER_EMPTY 1 # Are empty cells given preference in offsping placement?
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
DEATH_METHOD 2 # 0 = Never die of old age.
# 1 = Die when inst executed = AGE_LIMIT (+deviation)
# 2 = Die when inst executed = length*AGE_LIMIT (+dev)
@@ -61,8 +56,10 @@
# 1 = Set to section of dead genome (Necrophilia)
# 2 = Allocated space is set to random instruction.
DIVIDE_METHOD 1 # 0 = Divide leaves state of mother untouched.
- # 1 = Divide resets state of mother (after the divide, we have 2 children)
- # 2 = Divide resets state of current thread only(does not touch possible parasite threads)
+ # 1 = Divide resets state of mother
+ # (after the divide, we have 2 children)
+ # 2 = Divide resets state of current thread only
+ # (does not touch possible parasite threads)
GENERATION_INC_METHOD 1 # 0 = Only the generation of the child is
# increased on divide.
# 1 = Both the generation of the mother and child are
@@ -70,22 +67,23 @@
### RECOMBINATION_GROUP ###
# Sexual Recombination and Modularity
-RECOMBINATION_PROB 1.0 # probability that recombination will happen when div-sex is used
-MAX_BIRTH_WAIT_TIME -1 # Updates incipiant orgs can wait for crossover
-MODULE_NUM 0 # number of modules in the genome
-CONT_REC_REGS 1 # are (modular) recombination regions continuous
-CORESPOND_REC_REGS 1 # are (modular) recombination regions swapped at random or with corresponding ones, by location
-TWO_FOLD_COST_SEX 0 # 1 = only one recombined offspring is born.
- # 2 = both offspring are born
-SAME_LENGTH_SEX 0 # 0 = recombine with any genome
- # 1 = only recombine w/ same length
+RECOMBINATION_PROB 1.0 # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1 # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0 # number of modules in the genome
+CONT_REC_REGS 1 # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1 # are (modular) recombination regions swapped randomly
+ # or with corresponding positions?
+TWO_FOLD_COST_SEX 0 # 1 = only one recombined offspring is born.
+ # 2 = both offspring are born
+SAME_LENGTH_SEX 0 # 0 = recombine with any genome
+ # 1 = only recombine w/ same length
### DIVIDE_GROUP ###
# 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 # (Origianl CPU Only) Is a an allocate required before a divide? (0/1)
+REQUIRE_ALLOCATE 1 # (Original CPU Only) Require allocate before divide?
REQUIRED_TASK -1 # Task ID required for successful divide.
IMMUNITY_TASK -1 # Task providing immunity from the required task.
REQUIRED_REACTION -1 # Reaction ID required for successful divide.
@@ -120,6 +118,8 @@
STERILIZE_BENEFICIAL 0.0 #
FAIL_IMPLICIT 0 # Should copies that failed *not* due to mutations
# be eliminated?
+NEUTRAL_MAX 0.0 # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0 # The percent deleterious change from parent fitness to be considered neutral.
### TIME_GROUP ###
# Time Slicing
@@ -134,16 +134,17 @@
# 4 = Merit prop. to min of executed or copied size
# 5 = Merit prop. to sqrt of the minimum size
MAX_CPU_THREADS 1 # Number of Threads a CPU can spawn
-THREAD_SLICING_METHOD 0 # Formula for and organism's thread slicing -> 1 + (num_organism_threads-1) * THREAD_SLICING_METHOD.
+THREAD_SLICING_METHOD 0 # Formula for and organism's thread slicing
+ # (num_threads-1) * THREAD_SLICING_METHOD + 1
# 0 = One thread executed per time slice.
# 1 = All threads executed each time slice.
MAX_LABEL_EXE_SIZE 1 # Max nops marked as executed when labels are used
BASE_SIZE_MERIT 100 # Base merit when size is *not* used
-DEFAULT_BONUS 1.0 # The bonus an organism gets before it has completed any tasks
+DEFAULT_BONUS 1.0 # The bonus an organism gets before any tasks
MERIT_GIVEN 0.0 # Fraction of merit donated with 'donate' command
MERIT_RECEIVED 0.0 # Multiplier of merit given with 'donate' command
MAX_DONATE_KIN_DIST -1 # Limit on distance of relation for donate; -1=no max
-MAX_DONATE_EDIT_DIST -1 # Limit on genetic (edit) distance for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1 # Limit on edit distance for donate; -1=no max
MAX_DONATES 1000000 # Limit on number of donates organisms are allowed.
### GENEOLOGY_GROUP ###
@@ -197,3 +198,9 @@
NET_MUT_PROB 0.0 # Message corruption probability
NET_MUT_TYPE 0 # Type of message corruption. 0 = Random Single Bit, 1 = Always Flip Last
NET_STYLE 0 # Communication Style. 0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0 # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0 # price offered by organisms attempting to buy
+SELL_PRICE 0 # price offered by organisms attempting to sell
More information about the Avida-cvs
mailing list