Ah, in that case Isaiah's answer is spot on.

On Wed, Dec 24, 2014 at 11:59 PM, Elliot Saba <[email protected]> wrote:

> 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
>>>>>>
>>>>>
>>>
>>
>

Reply via email to