(Did we ever determine the reason that not all functions are exported ?)

I think you pretty much answered that question when you quoted Jan Dubois. Which you might summarise as "because they can" on some platforms.

Try editing perl.h line ~3943 (5.8.8 build)

# define PERL_CALLCONV __declspec(dllexport)

Without the above edit, perl58.dll from the AS817/5.8.8 distribution:

C:\test>pushd \AS817\perl\bin C:\AS817\perl\bin>dumpbin /exports perl58.dll | wc -l 1457 C:\AS817\perl\bin>dumpbin /exports perl58.dll | find "av_reify" C:\AS817\perl\bin>

With the above change, perl58.dll(5.8.8):

c:\Perl\src\perl-5.8.8>dumpbin /exports perl58.dll | wc -l 1995 c:\Perl\src\perl-5.8.8>dumpbin /exports perl58.dll | find "av_reify" 627 272 00001000 Perl_av_reify

How many problems those extra 500 exports will fix I'm not sure, but I'm betting quite a few.

Whether it will work with 5.10 I'll tell you in about 1/2 hour.

Update: Seems to work similarly for 5.10 also:

[10:50:31.10]C:\Perl\src\perl-5.10.0>dumpbin /exports perl510.dll | wc + -l 1993 [10:50:47.42]C:\Perl\src\perl-5.10.0>cd \Perl510\bin [10:50:59.53]C:\Perl510\bin>dumpbin /exports perl510.dll | wc -l 1387

And the (summary) output from nmake test looks 'normal':

Failed Test Stat Wstat Total Fail List of Failed ---------------------------------------------------------------------- +--------- ../ext/IO/t/io_dup.t 6 4 2-5 ../lib/lib.t 5 1280 13 0 ?? comp/multiline.t 6 2 5-6 io/dup.t 29 6 2-7 (1 subtest UNEXPECTEDLY SUCCEEDED), 56 tests and 1083 subtests skippe +d. Failed 4/1470 test scripts. 12/189314 subtests failed. Files=1470, Tests=189314, 1264 wallclock secs ( 0.00 cusr + 0.00 csys + = 0.00 CPU) Failed 4/1470 test programs. 12/189314 subtests failed. NMAKE : fatal error U1077: '..\perl.exe' : return code '0xff' Stop.

Whether it will break anything anywhere, or is backwards compatible with 5.0 again I do not know.

And where it leaves all the shenanigins played out by embed.pl & regen_lib.pl and all the work that goes into maintaining embed.fnc, pp.sym, intrpvar.h, perlvars.h and thrdvar.h is another open question.


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

In reply to Re^5: Perl for Windows ? by BrowserUk
in thread Perl for Windows ? by jflevi

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.