da0ef64f62e8340738d35317f39da00887c31ac2
We now allocate globalMind locally inside of marionetteMain. Why? Before now, we had an asymmetric threading situation where the globalMind's threads were initialized at during global constructor invocation and not on demand. This meant that we had to shut down those threads even if we had never got to the point of calling Mind::initializeReq. This significantly complicated our shutdown sequence since we had to factor in the lifetime of the std::thread objects inside of the ComponentThreads which were inside of the globalMind object. Now, if we hadn't called Mind::initializeReq, we don't have to perform any Mind::finalizeReq or adjacent operations. Shutdown is symmetrically mirrored against the operations we actually performed during execution. We introduced some complexity by splitting ComponentThreads into two derivative types (MindThread and MarionetteThread) but I think in the long term we'll be able to massage this split into a much cleaner situation overall.
The Salmanoff Project:
This project, Salmanoff (pronounced: Sal-man-off), is an ROS rewrite of the Harikoff project. The name is more reflective of the people whose ideas sparked the solutions in my mind. These people are:
- Gregory
SALmieri. - David Harri
MAN. - Leonard Peik
OFF.
Would you like to know what this project is and does? Well, it's a secret! But you can find out by reading the code. Or you could just ask me. Or you could wait until I release it. But that's no fun.
Description
Yeah. You would definitely like to know what this project is and does, mm?
agiaiartificial-general-intelligencecombinatorial-logiccomparabilityconceptsepistemologyethicsgoalsinductionintrinsic-valencymetaphysicsroboticssimilarityvolition
Readme
5.8 MiB
Languages
C++
89.4%
CMake
6.1%
C
2.3%
Shell
1.3%
GDB
0.6%
Other
0.3%
