in reply to Detect which version of perl an XS module is linked against?

You goofed. AS allows you to upgrade minor versions (eg. 5.8.6 to 5.8.8) without throwing away everything you previously installed as this will, mostly, work.

But attempting to upgrade a major version (5.8.x to 5.10.x) and retain previously installed modules almost certainly won't. There are substantial internal changes (see the section "Changed Internals" of the 510 delta) that mean 5.8.x code will not coexist with 5.10.

Your best course of action would be to delete your entire perl directory tree (which you should have done in the first place) and install 5.10 again.

Your other alternative would have been to select a different path at install time (assuming you used the msi), or relocate to a different path if you used the zipped install.

Note: This is not a bug in AS Perl, it is how it is designed to work. If you attempted to load an xs module compiled under 5.8.8 using 5.10 under linux, you'd run into exactly the same problem.


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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."
  • Comment on Re: Detect which version of perl an XS module is linked against?

Replies are listed 'Best First'.
Re^2: Detect which version of perl an XS module is linked against?
by Limbic~Region (Chancellor) on Jan 03, 2008 at 13:48 UTC
    BrowserUk,
    But attempting to upgrade a major version (5.8.x to 5.10.x) and retain previously installed modules almost certainly won't. ...

    Your best course of action would be to delete your entire perl directory tree (which you should have done in the first place) and install 5.10 again.

    Note: This is not a bug in AS Perl, it is how it is designed to work.

    Perhaps you missed the part where I said I de-installed AS Perl 5.8.8 before installing AS Perl 5.10.0? In fact, AS Perl 5.10.0 won't let you install when it detects a previous version. Granted, I probably should have confirmed the perl directory was wiped but if AS refused to install prior to the de-install and happily agreed after, how was I to know it did not do its job correctly?

    Cheers - L~R

      Perhaps you missed the part where I said I de-installed AS Perl 5.8.8 before installing AS Perl 5.10.0?

      No. I saw that.

      In fact, AS Perl 5.10.0 won't let you install when it detects a previous version.

      Really. That's strange because I have 5.8.6(AS811), 5.8.8(AS817) and 5.10 Beta all installed concurrently?

      Granted, I probably should have confirmed the perl directory was wiped but if AS refused to install prior to the de-install and happily agreed after, how was I to know it did not do its job correctly?

      I think it is optimistic to expect that an uninstall will remove stuff added to the install directories after the initial install. And if it did, it would prevent my being able to install a minor version upgrade over an existing install and so retain all the packages I already installed.

      Indeed, I think it would be disasterous for it to try and work out what you might have installed using CPAN, CPANPLUS, PPM, and all the various manual install mechanisms. I also keep a lot of Perl related stuff, additional docs, various home generated scripts and modules, and the perl sources within the overall Perl directory tree. What should it do with those?

      There are times when I prefer software to allow me to decide what I want to do.


      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.
        BrowserUk,
        I concede you make really good points. I hope you concede that the average user is just going to accept the defaults and expect it to "just work". This is my situation and I would guess that it is the same for many more users.

        It didn't take me long to figure out what the problem was or how to fix it. In fact, my goal in this post (updated in the root thread) is to fix a particular test in the parrot test suite - not change how AS works. OTOH, it wouldn't be incredibly difficult for AS to make this easier on the average user during install:

        • Distinguish <install>\site\lib by version
        • Detect if files already exist in destination directory - issue a warning requiring acknowledgement

        Cheers - L~R