Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
We don't bite newbies here... much
 
PerlMonks  

Re: Problems installing Devel::Cover on Strawberry, seems to work on Cygwin

by BrowserUk (Pope)
on Mar 28, 2008 at 09:47 UTC ( #676938=note: print w/ replies, xml ) Need Help??


in reply to Problems installing Devel::Cover on Strawberry, seems to work on Cygwin

The probability is that the undefined symbols are not exported because they do not appear in the EXPORTS section of win32\perldll.def. They do not appear there because they are not considered a part of the official PerlApi and not intended for use by code outside of the core.

Under *nix/cygwin, all symbols in a .so are exported by default because there is no mechanism to prevent it. As win32 has a mechanism to prevent the exporting of symbols from .dlls, it is used.

Hence, code that subverts the official API set, builds under *nix/cygwin but not under win32. If you could persuade the p5p guys to export all the symbols in perl5x.dll, regardless of it's official API status, about 90% of the "builds fine on *nix, but not on windoze" problems would disappear over night.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.


Comment on Re: Problems installing Devel::Cover on Strawberry, seems to work on Cygwin
Re^2: Problems installing Devel::Cover on Strawberry, seems to work on Cygwin
by syphilis (Canon) on Mar 28, 2008 at 18:14 UTC
    If you could persuade the p5p guys to export all the symbols in perl5x.dll, regardless of it's official API status ...

    It won't be easy to persuade them to do that. It amounts to convincing them that they should introduce a bug into Windows, just because that bug exists on *nix.

    Cheers,
    Rob

      Dropping the overzealous enforcement of an arbitrary division doesn't constitute "a bug".

      Enabling code to work, with the caveat that it may fail at some point in the future if it becomes necessary to modify the APIs it utilises, for CORE reasons, is simply pragmatic.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        Dropping the overzealous enforcement of an arbitrary division doesn't constitute "a bug"

        Aaah ... yes, I guess you could solve the problem by convincing the porters that they are being overzealous. My feeling is that you probably won't get too far - though I'm basing that solely on the responses I received from Jan Dubois about this issue in this thread to the perl-win32-users mailing list.

        Of course, Jan Dubois != p5p. (I think that p5p is the place to raise this if you want to get somewhere with it.)

        Maybe they could make it so that *every* symbol is available if, in our xs code, we:
        #define IT_IS_THE FAULT_OF_THE_AUTHOR_WHEN_IT_BREAKS
        Cheers,
        Rob

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (12)
As of 2014-04-17 15:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (453 votes), past polls