2009/8/16 Samir Araújo <samir.ara...@gmail.com>: > Hi Linas, > >> Now that I looked at them more closely, it appears that this >> is in the relex shim that Samir wrote, for embodiment. I have >> not reviewed this code, ... at the moment, I cannot even find it ... >> but clearly its doing something wrong.Where >> is this code? I can't even find it ... > > These output errors were occurring each time embodiment loads the Relex > output into the AtomTable via SchemeEval. The "eval" call is inside the > class: opencog/embodiment/Control/PerceptionActionInterface/PAI.cc (which > receives the Relex output via a XML message, generated by the Multiverse > Proxy). When more than one instance of SchemeEval is instantiated and > running in the system this kind of errors starts to appear. Not only when a > new Relex sentence is being parsed, but each time SchemeEval::eval is called > with any type of code. I've investigated the problem but it seems to be a > multithread issue of guile... I've converted SchemeEval into a Singleton, > what has solved the problem.
Ahh, yes. I'd worked with the guile folks to get many of the multi-threading bugs fixed, but as of 1.8.7, there's still several that are hanging out. It's possible that some of these no longer occur in guile-1.9.2, since important parts e.g. garbage collection, have been re-designed. Would you be able to get guile-1.9.2, and try it with the 'singleton' work-around disabled? FWIW, version 1.9.2 is labelled 'alpha', but seemed to mostly work for me. --linas