michael.zhang Posted June 6, 2011 Share Posted June 6, 2011 If I run my program for long enough, I get: NameSpace::NameSpace(): maximum namespace is is 32767 Expression::run_0(): bad expression I tried having the expressions be class_manage()'ed, in the hopes that deleting them would recycle past used anonymous namespaces.But, it continues to have the problem.Michael Zhang Link to comment
ulf.schroeter Posted June 7, 2011 Share Posted June 7, 2011 NameSpace::NameSpace(): maximum namespace is is 32767 You have exceeded interpreter limit of namespace instances. I would guess there is some kind of object leakage in your code. You should post minimal test case for problem reproduction. Link to comment
manguste Posted June 21, 2011 Share Posted June 21, 2011 There really seems to be a bug with deleting expression namespace instances. Right now our developers are head and ears in work implementing large coordinates support, but approximately in a week they will be able to check it. Link to comment
michael.zhang Posted June 21, 2011 Author Share Posted June 21, 2011 There really seems to be a bug with deleting expression namespace instances. Right now our developers are head and ears in work implementing large coordinates support, but approximately in a week they will be able to check it. Okay, I assume this is in response to the test case I sent by e-mail? I am looking forward to the solution. Thanks Link to comment
michael.zhang Posted July 6, 2011 Author Share Posted July 6, 2011 Okay, I assume this is in response to the test case I sent by e-mail? I am looking forward to the solution. Thanks Any update on this issue? Link to comment
manguste Posted July 7, 2011 Share Posted July 7, 2011 Not yet :( But new coordinates implementation is almost over, so your issue will be dealt with really soon. Link to comment
michael.zhang Posted July 9, 2011 Author Share Posted July 9, 2011 Not yet :( But new coordinates implementation is almost over, so your issue will be dealt with really soon. Please make sure that it is fixed in the next release, it's very frustrating to not be able to run the program for an extended period of time before crash. Thank you. Link to comment
manguste Posted July 22, 2011 Share Posted July 22, 2011 It turned out expressions can't be created and deleted every frame. They are intended to be created once, for example, on world load, rather than dynamically. It is not only the matter of namespace instances limit. The memory will eventually run out in any case as each time the space is allocated for newly added code. If you need to execute something this often, it is more rational to create a normal function instead. Link to comment
michael.zhang Posted July 25, 2011 Author Share Posted July 25, 2011 It turned out expressions can't be created and deleted every frame. They are intended to be created once, for example, on world load, rather than dynamically. It is not only the matter of namespace instances limit. The memory will eventually run out in any case as each time the space is allocated for newly added code. If you need to execute something this often, it is more rational to create a normal function instead. Hello, I am using Expressions to execute member functions from C++. If I cannot use Expressions, how do you recommend I achieve this? I do not wish to create a global function for each object/member combination I need to access from C++. Link to comment
manguste Posted July 27, 2011 Share Posted July 27, 2011 Our devs use the following approach: // UnigineScript executeMember (int instance, string method_name) { instance.call("method_name"); } // C++ Unigine::Variable instance; engine->runWorld("executeMember", instance, "method_name"); Link to comment
Recommended Posts