Jump to content

[SOLVED] maximum namespace is is 32767


photo

Recommended Posts

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

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
  • 2 weeks later...

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

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
  • 3 weeks later...

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

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
  • 2 weeks later...

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

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

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
  • 1 year later...
×
×
  • Create New...