Reini Urban
rurban@cpan.org
Show quoted text> On May 31, 2017, at 12:49 AM, Dick Franks via RT <bug-Net-DNS@rt.cpan.org> wrote:
>
> <URL:
https://rt.cpan.org/Ticket/Display.html?id=121680 >
>
> On Thu May 18 01:28:47 2017, RURBAN wrote:
>
>>> The code fragment that offends you produces mappings with one or
>>> three list elements in (strictly) equal numbers, which guarantees
>>> that the complete list has an even number of elements. My job is to
>>> make sure that happens, the compiler's job to complain if I foul up,
>>> otherwise to get on with what I (in polite Perl) asked it to do. Is
>>> that too much to ask?
>>
>> Well, I decided to allow only a pair, not multiple in strict mode. In
>> non-strict mode it is still valid code.
>
> So you unilaterally decide to change the language, and suddenly its all my fault for using a well defined Perl5 feature.
That’s your point of view.
My point of view is that cperl is besides perl6-lang and p5p one of the three perl language defining committees.
perl6-lang has not much influence on CPAN modules (yet), only p5p and cperl has.
p5p has a negative track record in designing features (in fact they failed in all attempts for 15 years), whilst cperl
has no negative track record, and pushed 10x more fixes and features in 2 years than p5p in 15 years. p5p is
actively destroying the language and the community, cperl is fixing and building it.
everybody was waiting for 15 years that perl5 is being fixed. cperl is doing that.
See
http://perl11.org/blog/p5p-incompetence.html or
https://www.reddit.com/r/cperl/comments/4gcwvi/what_to_do_with_p5p/
unilaterally: you mixed that with p5p development style.
they unilaterally decide what’s being implemented and how, commit it to master without any discussion and there it is.
everything sprout did in the last years. or what nicholas clark on the 10 years before.
highlights being the double readonly system, the horrible COW system, and ref instead of bind, despite a good design from perl6, a design for perl5 by chip salzenberg (OP_BIND being reserved for >10 years), which was not pursued because it would slow down every single SV access at run-time. sprout didn’t care and implemented just that, slowing down every single SV access at run-time, and on top of that
with an ill-designed \$ref syntax, not the better bind := perl6 syntax.
in p5p technical criticism is disallowed and censored via their new religious code of conduct in which all violations by
p5p members are tolerated (calling all germans or critics “assholes" being the typical way of engagement with the community),
and technical criticism from outside is a violation for their new “lack of faith” argument.
in cperl a feature is first publicly designed and presented as issue, then smoked in a branch,
then smoked on cpan, and only then merged to master and released. like in perl6 and unlike in perl5.
additionally to github cperl allows uncensored discussion in /r/cperl on reddit.
/r/perl, blogs perl and p5p is censored by p5p shills and trolls with hilarious arguments.
everybody who rather engages in p5p discussions about perl5 features is helpless, as these discussions are censored,
meaningless, and actually harmful. they are actively leading to the destruction of perl5. you should rather engage
yourself in perl6 and cperl feature discussions if you want to influence future changes.
well defined:
if it was well defined it wouldn’t lead to trouble. in fact it is ill defined, so I fixed it. this is one of the few features not taken from perl6.
Show quoted text> suddenly its all my fault for using a well defined Perl5 feature.
I never said that. I gave you a fix for cperl.
It would be your fault not to apply it and leave out cperl support. it would raise the bar for cperl users.
In order to fix dangerous habits such fixes are necessary.
perl5 is not going anywhere, is badly maintained, is losing all it’s users, and is a security risk to use on public services.
it’s still in the top 10 with lots of legacy code, cperl is recommended to be used there.
p5p doesn’t take any cperl fixes, dozens of high risk fixes are live, and it get’s worse and worse every year.
I’ve publicly warned from using perl5 since 5.16, and personally fixed all the known issues.
and cperl broke only one feature (-d with sigs), whilst perl5 broke many more (binary names, cow, lexical $_, use encoding,
types, the bytecode compiler).
Show quoted text> Splitting the construct into two lines does not alter what is taking place, does not change the risk profile, but merely prevents your over-constrained compiler from interfering with the process.
no, as explained it makes it clear that a list is spliced into a hash.
splicing a map into a hash demands pairs. the strict hashpairs name is it clear enough.
'use strict; my %hash = @{[map {$_} (0..1)]}' is a valid single line alternative,
but cperl does not recommend such code golfing. hence i left it unmentioned.