in reply to Re^4: B::Generate for Win32?
in thread B::Generate for Win32?

Yes, you have ppm3. That's the version not on CPAN. Anyone can get it from http://downloads.activestate.com/PPM/. IIRC, ActivePerl 5.6 originally came with ppm2 (still called it ppm), while ActivePerl 5.8 came with ppm3.
 
If, given your detective work above, B::Generate builds elsewhere but not on Win32, then the problem lies not in the module, but in the Module::Build mechanism for Win32?
No, Module::Build is not the problem, and neither is win32. It shouldn't build on any platform ( 'fold_constants' isn't exported anywhere). From what I can tell you'd have to build from the perl (5.8+) source tree (PERL_CORE), and you'd have to link in op.obj, but there is no mention of this anywhere.

Or, you have to build a perl which exports fold_constants (or Perl_fold_constants).

Maybe you need to build a new perl? Hmm, yeah, maybe you need to make perl. I can't tell, nor can I test (that part is horribly broken on win32, use of cat everywhere, excedes commandline (i got tons of extensions installed) ... horrible).

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.

Replies are listed 'Best First'.
Re^6: B::Generate for Win32?
by BrowserUk (Patriarch) on Aug 22, 2004 at 01:03 UTC

    Okay. Just so I know I understand what your saying...

    If someone attempting to build B::Generate, was doing it on top of a copy of perl they had built themselves--which most unix people/perl hackers would be--then the "missing bits" would probably be "lying around" in appropriate places and would get picked up and used when building Generate.xs.

    But because I was attempting to build on top of a binary distribution of perl, the objects and libs created by the Perl build process aren't there, hence the failure. And no amount of hacking, beyond rebuild perl myself and building B::Generate on top of that, is going to let me succeed.

    Did I get it?


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "Think for yourself!" - Abigail
    "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
      Yup, you got it. Followup here (in this thread) if you get anything out of the p5p.

      MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
      I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
      ** The third rule of perl club is a statement of fact: pod is sexy.

Re^6: B::Generate for Win32?
by ysth (Canon) on Aug 22, 2004 at 06:58 UTC
    It shouldn't build on any platform ( 'fold_constants' isn't exported anywhere)
    I have to admit that my understanding of this is weak, but I believe that only some platforms require explicitly listing what symbols are publicly exported from a dynamic library. This is handled by makedef.pl in the perl source; from the comments there, this seems to be limited to Win32, wince, os2, AIX, netware, and MacOS. So problems like this (a module using a symbol that isn't available everywhere) do fairly regularly crop up. I think the fix is to add Perl_fold_constants to global.sym (by changing it to public in embed.fnc and running embed.pl) and rebuild perl :(.