Objects survive until no one has a handle to them any longer.
For the case of a local variable, this means they are destroyed as soon as the local scope exits, which is probably what you are seeing.
There is no global namespace for variables, unless you intentionally put a variable there (ie with
GLOBAL) or intentionally keep a handle to the
Boxed_Value inside of your C++ code.
The intention was to as closely as possible model the lifetime of objects in C++.
Hopefully this discussion is helpful as well: https://github.com/ChaiScript/ChaiScript/issues/214#issuecomment-146198716
Let me know if you have any other questions or if the behavior you are seeing seems contrary to this information.