Circular references
I am not clear on how to free objects with circular references. The Latest version of my code is posted at http://brevecluster.nmu.edu/files/.
The files called A.tz and NeuralNetwork3.tz are needed to run the simulation but you may have to change the variable <load> to 0 at first. Any help, code samples, or sage advice is appreciated.

Circular references
Mr. Kowall,
No sage advice from me, but a little remark:
I ran your BigBrainMaster_2006-FEB-01.tz, <load> was already set to 0, but I had to comment out
+ to migrate-current-best : #very daring suggested by katy retrograde migration to the 0th position in satalite monkeys (seats{0} get-genome) send-over-network to (satalitenames{visa0}) on PORT_NUM. (seats{0} get-genome) send-over-network to (satalitenames{visa1}) on PORT_NUM.because it gave me an error Quote:list index "5" out of bounds
Error evaluating keyword "to" for method "send-over-network"
( "5" or "8" or... anyways out of bounds, after completion of the first run)
Otherwise, it runs fine, and might I say: quite impressive! :D
Do you plan to make it run beyond your breveCluster? I mean, some kind of distributed way, it seems to be quite trivial to let it run as a screensaver (I just slapped/replaced the needed pieces into breveCreatures screensaver for OSX, and seems to run ok, except that the Braitenberg wheels are somehow flipped 90 degrees, and do not 'wheel' but more like 'paddle'... probably something I forgot to substitute... Or it might have to do w/ blindly interchangeing beta and 2.1, .3 stuff...)
Circular references
Sorry about the bunk version Rxke. If I can get the memory leak issue resolved (I may start completely over), I will deploy an @home version, possibly for Linux and Mac. Thanks for the feedback.
c
Circular references
Are you using garbage collection for the objects, or are you trying to collect them manually?
If you're using garbage collection, it's generally quite simple -- you just need to manually free one of the objects to get the ball rolling.
If you are freeing them manually, it can be a bit tricky, but below is an example from the DirectedGraph class which is included in the latest betas. The directed graph class not only has circular references, it has an arbitrary group of structures which is not known until runtime:
+ to destroy-connected-objects: % Initiates a recursive freeing of this object and all connected % objects, both directly and indiretly connected. h (hash). self destroy-connected-objects with-seen h. - to destroy-connected-objects with-seen seenhash (hash): connection (object). if seenhash{ self }: return. seenhash{ self } = 1. foreach connection in connections: { if (connection get-target): (connection get-target) destroy-connected-objects with-seen seenhash. free connection. } free self.This example recursively moves through an arbitrary structure of references using a hash table to make sure that no object is freed or traversed twice.
- jon
Circular references
ckowall wrote:Sorry about the bunk version Rxke.
I only just realised I used an older version of your simulation :oops:
So I retract my remarks...