No, I think what is wanted here is an analogue to Rcpp::stop(), which looks like it throws an R error <http://stackoverflow.com/questions/24557711/how-to-generate-an-r-warning-safely-in-rcpp> from within C/C++ code. I believe the intent here is to generate high-level-language errors from low(er)-level-language libraries. -E
On Wed, Dec 24, 2014 at 8:47 PM, Stefan Karpinski <[email protected]> wrote: > Isn't it the opposite of that though? I.e. catching C++ assert failures? > > On Wed, Dec 24, 2014 at 11:46 PM, Isaiah Norton <[email protected]> > wrote: > >> This might help: >> >> http://docs.julialang.org/en/release-0.3/manual/embedding/#throwing-julia-exceptions >> >> On Wed, Dec 24, 2014 at 10:41 PM, 良无 <[email protected]> wrote: >> >>> In C or C++ code, I have a function: >>> >>> void funcname(...){ >>> ... >>> assert(0); >>> ... >>> } >>> >>> if I run `ccall((:funcname, libpath), Void, (...), ...)` in Julia , it >>> will terminate the Julia process. >>> >>> How can I replace assert() with other function to throw an error in >>> Julia? >>> >>> >>> > ccall((:funcname, libpath), Void, (...), ...) >>> >>> ERROR: .... >>> >>> I am sorry that I can not make it clear, and I just come to Julia from >>> the R world. >>> >>> Thanks. ;-) >>> >>> I'm afraid I still don't get it. What do you want to do? >>>> >>>> >>>> On Dec 24, 2014, at 8:15 PM, 良无 <[email protected]> wrote: >>>> >>>> If you want to release an R package to CRAN, R Core will force you to >>>> check this by R CMD check: >>>> >>>> - Compiled code should never terminate the R process within which it is >>>> running. Thus C/C++ calls to assert/abort/exit, Fortran calls to STOP and >>>> so on must be avoided. Nor may R code call q(). >>>> >>>> >>>> Le mercredi 24 décembre 2014 à 08:36 -0800, 良无 a écrit : >>>>> > In my origin C++ code, I use assert(), but if I want to use this >>>>> code >>>>> > in Julia, maybe I need to replace it with other functions. In R, I >>>>> can >>>>> > use Rcpp::stop(). Is there any easy way to do it in Julia with C or >>>>> C >>>>> > ++ code. >>>>> IIUC, you want to raise a Julia exception from C code, right? >>>>> >>>>> > And it seems that Julia does not have R CMD check like stuff yet. It >>>>> > does not check this kind of issue. >>>>> You mean, running a test suite? See >>>>> http://docs.julialang.org/en/latest/stdlib/test/ >>>>> >>>>> and how most packages do this, for example >>>>> https://github.com/JuliaStats/StatsBase.jl/tree/master/test >>>>> >>>>> >>>>> Regards >>>>> >>>> >> >
