12. 06. 2022. u 20:42, Alceu Rodrigues de Freitas Junior via
cpan-testers-discuss piše:
Hello Slaven,
On 09/06/2022 16:57, Slaven Rezic wrote:
09. 06. 2022. u 21:38, Slaven Rezic piše:
Hi Alceu,
I think that
useithreads: undef
should work, using exactly the string which is returned by
perl -V:useithreads
Actually, looking at this distropref file
https://github.com/eserte/srezic-cpan-distroprefs/blob/8c3ae5d7b4071f9639ccfcea4f44764c2699e27e/Devel-CallParser.yml#L5
it seems that the value is interepreted as a regexp, so you want to
anchor it with ^ and $ for extra safety.
I'm afraid that neither the options you proposed: I tried both and the
result is the same: Kwalify doesn't complain anymore but the
distribution is not skipped.
On the other hand, using:
useithreads: null
Generates the opposite outcome.
Not sure how Kwalify works (both Ruby's and Perl's implementation from
it), but the direct translation from Perl's undef would be null in YAML.
Hi Alceu,
Kwalify is just a schema for validating data structures and it does not
do any parsing or matching using the distroprefs data. The latter is
done by CPAN::Distroprefs.
That said, I tried "useithreads: undef" and it did not work. So it looks
like the matching is not done against what is displayed in "perl -V" (in
this case the string "undef"), but what is in the Config data structure
(the value undef).
However, the distroprefs code only does regexp matches against the
stringified values, so to match the stringified undef (the empty string)
one has to use '^$'. Below is a distroprefs file just for demonstration
purposes, and it works on my system.
Regards, Slaven
---
match:
distribution: Kwalify
perlconfig:
useithreads: '^$'
pl:
commandline: "echo unthreaded perl deteted; exit 1"
---
match:
distribution: Kwalify
perlconfig:
useithreads: '^define$'
pl:
commandline: "echo threading perl deteted; exit 1"
---
match:
distribution: Kwalify
pl:
commandline: "echo nothing matched; exit 1"