Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^6: Install Math::GSL fail

by syphilis (Canon)
on Jan 24, 2013 at 09:54 UTC ( #1015131=note: print w/ replies, xml ) Need Help??


in reply to Re^5: Install Math::GSL fail
in thread Install Math::GSL fail

return (gsl_nan());

That looks wrong to me, too - I think that the value returned by gsl_nan() needs instead to be pushed onto the stack and returned using XSRETURN() ... but I don't have time to test, tonight.

Cheers,
Rob


Comment on Re^6: Install Math::GSL fail
Re^7: Install Math::GSL fail
by aixtal (Sexton) on Jan 24, 2013 at 10:14 UTC
    Wonderful! Your reply opened my eyes. I changed the two occurrences of return to XSRETURN, and the build succeeded. I'll file a pull request on Github. Many thanks! --j
      I changed the two occurrences of return to XSRETURN, and the build succeeded

      Whilst that will enable the build to succeed, it's unfortunately not the right solution.
      XSRETURN() takes, as its argument, the number of elements to return from the stack. According to perldoc perlapi:
      XSRETURN Return from XSUB, indicating number of items on the stack. This is u +sually handled by "xsubpp". void XSRETURN(int nitems)
      I'm not sure what will happen if your version of that block of code gets executed and an attempt is made to return gsl_nan() items off the stack ... but I fully expect that it won't be pretty.
      If that block of code gets executed, then it needs to XSRETURN(1), and the one item that it needs to return from the stack is whatever-it-is-that-is-returned-by gsl_nan(). (Presumably that's either a NaN, or a Math::GSL object that holds the value NaN.)

      So long as that block of code never gets executed I think your fix should, however, be fine.

      Cheers,
      Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1015131]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2014-07-24 02:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (156 votes), past polls