From 8998e2eb104c0965b0c9f190705b70abc16b62d7 Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Thu, 29 Feb 2024 02:29:14 +0100 Subject: Removed information EAT-ing. [#16] Allowing organisms to EAT information is causing huge reefs to form too early and occupy most memory space. Here we replace EATB/F with the old shift left/right. This is done to compare simulation stability. --- include/evolver.h | 3 +-- include/instset.h | 6 +++--- include/process.h | 5 +---- 3 files changed, 5 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/evolver.h b/include/evolver.h index b2ead10..457cd9a 100644 --- a/include/evolver.h +++ b/include/evolver.h @@ -4,8 +4,7 @@ * * This module controls all random events in Salis. At its heart lies a * XOR-Shift pseudo-random number generator with 128 bits of state. It controls -* cosmic rays and rises simulation entropy whenever organisms 'eat' -* information. +* cosmic rays and slowly rises simulation entropy. */ #ifndef SALIS_EVOLVER_H diff --git a/include/instset.h b/include/instset.h index ab7bab0..eeb4600 100644 --- a/include/instset.h +++ b/include/instset.h @@ -32,6 +32,8 @@ enum { SALIS_INST SPLT, /**< $ Split child memory block */ SALIS_INST INCN, /**< ^ Increment register */ SALIS_INST DECN, /**< v Decrement register */ + SALIS_INST SHFL, /**< < Shift-left register */ + SALIS_INST SHFR, /**< > Shift-right register */ SALIS_INST ZERO, /**< 0 Zero out register */ SALIS_INST UNIT, /**< 1 Place 1 on register */ SALIS_INST NOTN, /**< ! Negation operator */ @@ -45,9 +47,7 @@ enum { SALIS_INST SEND, /**< S Send instruction to common pipe */ SALIS_INST RECV, /**< R Receive instruction from common pipe */ SALIS_INST PSHN, /**< # Push value to stack */ - SALIS_INST POPN, /**< ~ Pop value from stack */ - SALIS_INST EATB, /**< < Eat backwards */ - SALIS_INST EATF /**< > Eat forward */ + SALIS_INST POPN /**< ~ Pop value from stack */ }; /** Determine if an unsigned integer contains a valid instruction. diff --git a/include/process.h b/include/process.h index 3723ad6..bd46462 100644 --- a/include/process.h +++ b/include/process.h @@ -5,8 +5,7 @@ * This module allows access to Salis processes, or procs. Procs are the actual * organisms in the simulation. They consist of a virtual CPU with 4 registers * and a stack of 8. The instruction pointer (IP) and seeker pointer (SP) -* coordinate the execution of all instructions. Organisms get rewarded or -* punished, depending on certain conditions. +* coordinate the execution of all instructions. */ #ifndef SALIS_PROCESS_H @@ -21,8 +20,6 @@ struct Process SALIS_PROC_ELEMENT uint32 mb1s; SALIS_PROC_ELEMENT uint32 mb2a; SALIS_PROC_ELEMENT uint32 mb2s; - SALIS_PROC_ELEMENT uint32 reward; - SALIS_PROC_ELEMENT uint32 punish; SALIS_PROC_ELEMENT uint32 ip; SALIS_PROC_ELEMENT uint32 sp; SALIS_PROC_ELEMENT uint32 rax; -- cgit v1.2.1