> > So this means I should be able to stop the dynwind from > > plowing through any pure C++ function, in theory, right? > > Yes. > > > (I'm still itching to upgrade the libguile API for C++, > > if I only had the time to futz with it...) > > IMHO this is possible only by wrapping libguile with > a C++ library. And even in this case mixing the two > dynwinds is troublesome. I am not a C++ programmer, > but maybe using object functions to invoke the Guile/C > API and wrapping them in scm_dynwind_begin/end...
Hi, One possible approach could be to wrap top-level Guile/C calls in C++ to convert dynwind exceptions into C++ exceptions, but isolate C++ exceptions to prevent them from espacing to guile/C by "rethrow"-ing with scm_error or equivalent. e.g. SCM my_cxx_function(SCM arg1) { try { // actual function body that is protected from dynwinding // through upon error via some handler... } catch (...) { // helpful dianostic scm_error_scm(...); } } It the idea sound? or just crazy? Fang _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user