Re: why $Config{d_libname_unique} = undef for strawberry perl (DynaLoader.pm) ?

[email protected] (sisyphus) Thu, 12 Sep 2019 22:28:33 +1000
Newsgroups perl.win32.vanilla
Message-ID <CADZSBj37YHxCwc69_bGQqhqdXdktUmr+O91+OGJNTm54=-wDGA@mail.gmail.com>
--000000000000e64f3305925a4737
Content-Type: text/plain; charset="UTF-8"

On Thu, Sep 12, 2019 at 8:15 PM Ivan Baidakou <[email protected]>
wrote:

> As this is generic issue on Windows-platform,

I'm not so sure that this *is* a generic issue on Windows.
Consider the modules Hash::Util and List::Util, both of which load their
own separate Util.dll.

If it were a generic issue, I would think that loading both of those
modules would create  the same sort of clash as you're seeing with your
modules.
But that doesn't happen:

C:\_32>perl -MHash::Util="all_keys" -MList::Util="uniqnum" -le "print 'ok
1'"
ok 1
C:\_32>perl -MList::Util="uniqnum" -MHash::Util="all_keys" -le "print 'ok
2'"
ok 2

If you can show me how the issue can be reproduced using Hash::Util and
List::Util, then I'll be in agreement that there's a generic Windows issue
interfering here.
Otherwise, I'll remain a little suspicious of the way that you're various
*::XS modules are being loaded.

(On reflection, you might argue that, even if you *are* loading the modules
in an unusual way, it's still a *generic* Windows issue ;-)

> I think it should be fixed in via enabling d_libname_unique. It would be
nice to hear devs, why not enable this option.

My guess is that this would be unfeasible on Windows (because the docs
suggest that it's solely for the benefit of Android) ... but I am only
*guessing* about that.

Cheers,
Rob

--000000000000e64f3305925a4737
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><br></d=
iv><br><div class=3D"gmail_quote"><div class=3D"gmail_attr" dir=3D"ltr">On =
Thu, Sep 12, 2019 at 8:15 PM Ivan Baidakou &lt;<a href=3D"mailto:i.baydakov=
@crazypanda.ru">[email protected]</a>&gt; wrote:</div><div class=3D"=
gmail_attr" dir=3D"ltr"><br></div><div class=3D"gmail_attr" dir=3D"ltr">&gt=
; As this is generic issue on Windows-platform,</div><div class=3D"gmail_at=
tr" dir=3D"ltr"><br></div><div class=3D"gmail_attr">I&#39;m not so sure tha=
t this *is* a generic issue on Windows.</div><div class=3D"gmail_attr">Cons=
ider the modules Hash::Util and List::Util, both of which load their own se=
parate Util.dll.</div><div class=3D"gmail_attr"><br></div><div class=3D"gma=
il_attr">If it were a generic issue,=C2=A0I would think that=C2=A0loading b=
oth of those modules would create=C2=A0 the same sort of clash as you&#39;r=
e seeing with your modules.</div><div class=3D"gmail_attr">But that doesn&#=
39;t happen:</div><div class=3D"gmail_attr" dir=3D"ltr"><br></div><div clas=
s=3D"gmail_attr" dir=3D"ltr">C:\_32&gt;perl -MHash::Util=3D&quot;all_keys&q=
uot; -MList::Util=3D&quot;uniqnum&quot; -le &quot;print &#39;ok 1&#39;&quot=
;<br>ok 1</div><div class=3D"gmail_attr" dir=3D"ltr">C:\_32&gt;perl -MList:=
:Util=3D&quot;uniqnum&quot; -MHash::Util=3D&quot;all_keys&quot; -le &quot;p=
rint &#39;ok 2&#39;&quot;<br>ok 2</div><div class=3D"gmail_attr" dir=3D"ltr=
"><br></div><div class=3D"gmail_attr">If you can show me how the issue can =
be reproduced using Hash::Util and List::Util, then I&#39;ll be in agreemen=
t that there&#39;s a generic Windows issue interfering here.</div><div clas=
s=3D"gmail_attr">Otherwise, I&#39;ll remain a little suspicious of the way =
that you&#39;re various *::XS modules are being loaded.</div><div class=3D"=
gmail_attr"><br></div><div class=3D"gmail_attr">(On reflection, you might a=
rgue that, even if you *are* loading the modules in an unusual way, it&#39;=
s still a *generic* Windows issue ;-)</div><div class=3D"gmail_attr" dir=3D=
"ltr"></div><div class=3D"gmail_attr" dir=3D"ltr"><br></div><div class=3D"g=
mail_attr" dir=3D"ltr">&gt;=C2=A0I think it should be fixed in=20
via enabling d_libname_unique. It would be nice to hear devs, why not=20
enable this option.</div><div class=3D"gmail_attr" dir=3D"ltr"><br></div><d=
iv class=3D"gmail_attr">My=C2=A0guess is that this=C2=A0would be=C2=A0unfea=
sible on Windows (because=C2=A0the docs suggest that it&#39;s=C2=A0solely f=
or the benefit of Android) ... but I am only *guessing* about that.</div><d=
iv class=3D"gmail_attr"><br></div><div class=3D"gmail_attr">Cheers,</div><d=
iv class=3D"gmail_attr">Rob<br></div>
</div></div></div></div>

--000000000000e64f3305925a4737--