📄 news
字号:
[I] Went through header files in source/main/ and removed all non-required includes.[F] Removed the very old [5+ years] resources implementation.[F] Removed everything to do with redcode.[F] Removed Block time slicer.[I] Abstracted out the time slicer so it just keeps a collection of ints, each with their own merit, and a "GetNextID()" method which returns the int that goes next... Moved both slice and merit into the tools directory.[I] Adjusted the header files in the viewer so that the viewer takes virtually no time to compile in primitive mode.[I] Added BENCHMARK file to keep track of timings of avida as changes are made. Added MAP file to track #include's. Add tMemTrack for potential tracking.[I] Removed files: source/cpu/cpu.ii source/cpu/hardware.ii source/cpu/head.ii source/cpu/interface.cc source/cpu/interface.hh source/main/classes.hh source/main/geneology.cc source/main/geneology.hh source/tools/include.hh source/tools/lookup.cc source/tools/lookup.hh source/tools/memory.cc source/tools/memory.hh source/tools/memory.ii source/tools/memtrack.cc source/tools/memtrack.hh source/tools/struct.cc source/tools/struct.hh[I] Moved functionality from inst_lib.hh into its code file...[I] Removed cFlags object entirely; got rid of tools.ii.[I] Removed debug.ii, random.ii, and string.ii[I] Created a string_util.?? component to hold higher level string methods.[I] Created a seperate inst_args.?? component to contain instructions that can have arguments. Ideally this needs to be further compartmentalized in the futures.[I] Created cGenome and cCPUMemory to replace cCodeArray; a *much* cleaner interface. They are in main/genome.?? and cpu/cpu_memory.?? respectively. [This was a very serious, code-wide change!] cGenome is a fixed length, doesn't have flags associated with each instruction, and is used for most of the old occurances of cCodeArray. cCPUMemory is more similar to the original cCodeArray, but is derived from cGenome (henece functions that that cGenome can use either) and has many fewer methods that should add up to the same functionality.[I] Added main/genome_util.?? for static genome manipulation and comparison functions (like Hamming and Edit distances).[I] Stripped out a lot of the redundent methods from cHardware. More of this should be done.[I] Moved tracking of stepping through organisms in the viewer over to population. Got rid of all of the AltInstructionSet nonsense that used to handle it. There are now two tight loops in DoUpdate() ; one of them is run if you're stepping, the other if your not, so there should be no speed loss.[I] Continued to stip down the interface to cHardware. Ideally we'll be able to shift instruction execution in there soon (from cBaseCPU) and rebuild cBaseCPU into cOrganism or somesuch.[I] Re-vamped cInstLib. Made cInstEntry a private object, and generally cleaned up the insides. Inst libs might take longer to load at startup now (insignificant since its done only once, and we're talking miliseconds), but the interface is *much* cleaner.[I] Created seperate inst_util.?? component to handle interations between inst_lib and genomes (such as printing) and initializations of inst libraries.[F] Got rid of arg-based instruction set and binary instruction set entirely. This had remarkably far-reaching effects.[F] Removed curses.?? [Its old enough that we shouldn't need it anymore, and the interface was out of date.][I] Created a tDictionary template that takes in strings with arbitrary data, and can lookup the data via the string. Uses a hast table keyed off of the string.[F] Avida will now warn you if you attempt to load an instruction in the inst library that doesn't exits. It used to just ignore it.[I] Merged cCreature into cBaseCPU. Removed creature.hh[I] Moved cCPUStack into its own component[I] Separated out hardware and cpu into logical elements. This is a huge change, and I'm not going into detail here about it.[I] Setup memory allocation method Necrophelia to work more correctly -- it now uses the older memory that was lingering in the hardware the organism is in.[I] Shifted cpu/cpu.?? to main/organism.?? and cleaned up dependencies.[I] In genesis, changed the name of the RESET_* configuration variables, to the more acurate STERILIZE_*[B] Added #include <string.h> in string.hh and debug.hh -- it was crashing on calls to strlen() on some newer compilers.[B] Fixed templates in tDictionary; reuse of "T" as templated class crashed on some newer compilers.[B] Fixed make_events.pl -- it was creating statments in the form of (test_input == "") variable=default : variable=input_value; This is a problem since the variable should always be on the outside of such statements. Unfortunatly, that gives other errors, so I changed it to a proper if-else. New format is: if (test_input == "") variable=default; else variable=input_value;[B] Fixed some const problems in events.[F] Added genesis option "REQUIRED_TASK", which lets the user set the id of a mandatory task for a divide to be successful.Claus 08/11/01:[I] Removed the cAvidaMain events files. All events are now defined in events/cPopulation.events. I removed two events completely, the one to change the viewer and the one to print the event list. I think both are pretty unnecessary (and are in the way of cleaning up the code more).Charles 08/15/01:[F] Removed LINEAR_MEMORY option...[I] Systematically shifted some includes to be more restrictive (in .cc rather than .hh)[I] Removed class cCPUInfo entirely; placed most components into cPhenotype, and the rest directly into cOrganism.[I] Created hardware_util.?? to handle loading of hardware methods into instruction libraries.[I] Created lineage_util.?? to remove lineage printing (and hence all knowledge of lineages) from stats.[I] Created organism_util.?? to provide a location for functions that act on organisms but require the use of both genotype & genebank.[I] Lots of changes throughout viewer to get it up and running again with all the modifications from the rest of the code...[F] Added more descriptive faults in the zoom mode of the viewer; helpful in debugging organism operation.[B] Changed minimum executed and copied size so that at the minimum values, the organisms are legal, but not below (changed a '<=' to just a '<'). This means that with a minimum copied size of 1.0, everything must be copied (as opposed to more than everything, which was causing this to break before.[I] Generally did a lot of prep work to get the organisms well seperated from the population... That'll be the next big step.------------[I] Created a population_cell.?? component; populations have a collection of cells instead of organisms -- the cells contain the organisms that make up the population.[I] Created a seperate mutations.?? component, with a cMutationRates class to keep track of mutation rates, and handle basic functions dealing with them. Each population cell has its own mutaiton rates, which get passed to any organism placed into that cell. All traces of mutations have been removed from environments.[I] Most of the system has been fully levelized -- all of the files in the tools/ main/ and cpu/ directories are set; only the viewer and events are left to be done, and they should be rather straigh-forward. Take a look at current/source/tools/MAP and current/source/LEVELS for more info.[I] Organisms are now unique entities for their entire existance; they used to be referred to as CPUs in the code, and would have new genomes regularly loaded into them. A population is now a collection of cells, each of which can be occupied with an organism or not. When an organism gives birth, it passes a fully constructed offspring organism to the population to be placed.[I] The population object itself has been entirely overhauled. Its streamlined to now have a minimal number of methods, including the key methods ActivateOrganism(), which is always called to place an organism in a population, and KillOrganism() which must be called to remove an organism. This allows central points for statistics to be done, though they haven't been moved there yet.[I] Hardware construction and destruction has been centralized in a hardware factory object; this will allow recycling of hardware objects for a speed increase, though this optimization still needs to be finished.[I] A number of utility classes have been created to more complex manipulation of objects that don't belong inside of them. This has made the relevent classes cleaner and easier to understand.[F] Added configure mode --enable-normal to compile without either debug or optimization. Much faster for testing![I] Major re-engineering of cPhenotype -- the internals should be much cleaner now.[I] Created symbol_util.?? component in viewers to remove all of the symbol handling from population_cell.??[B] Got TestCPUs working properly at last.[B] Got death working again.[O] Tracing now provides registers in both decimal and hex formats. Also, merit is broken down into initial (either constant or proportional to length) and earned bonuses.[I] Removed a bunch of viewer related methods from cAvidaMain that were either unused or redundant.[I] Cleaned up even more header files (in particular test_cpus were being included in some components they didn't need to be in any more.)[B] The GetTest[...] methods in genotype had had some problems when a genotype wasn't viable; these should be fixed now.[O] Surpressed output of warning that data files are bring over-written. Ideally, we'll put this back in properly at some point, but at the moment, its messes with the viewer.[O] Improved output methods, and in particular "species.dat" for speciation measurements.[I] Moved task_buffer.?? to the more generic template tBuffer.hh and placed it in tools.[F] Removed all portions of current resource system throughout code (in preperation of setting up a new one).[O] Renamed event_list to events.cfg[I] Changed all "special" assert commands to the default assert.[I] Moved inst_lib and mutation rates into environment.[B] Repaired generation counting... it was always incrementing the generation of parent no matter what the genesis file said, and *then* it would increment the generation of the parent. Obviously this was a bug all around and its now fixed. I did, however, set the defaults to splitting and increasing the generation of both parent and child.----------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -