Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2017-02-06

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:18 sten joined #perl11
01:20 esaym153 installing cperl 5.24.2. About to find out if it truly is less memory and faster because this machine is only 512mb and 1.6ghz :)
04:14 willthechill esaym153: we look forward to your assessment!
04:33 willthechill joined #perl11
04:39 esaym153 hmm, can't seem to install Try::Tiny http://paste.debian.net/hidden/b2385bdc/ or is that not the 'cperl' way?
04:42 esaym153 actually, that failed test looks stupid. I'll just force install it
04:52 esaym153 though YAML::Tiny seems to be a nogo
05:26 esaym153 hmm not sure if Module::Runtime is in good shape either
06:12 ribasushi esaym153: there's a general piece you are missing ( and which sadly isn't documented prominently )
06:12 ribasushi there is an irritatingly large amount of little bits and pieces patches necessary to get many generic CPAN modules to build/test on cperl
06:13 ribasushi upstreaming these patches is not possible for various reasons
06:13 ribasushi thus rurban maintains a comprehensive ditroprefs library, where 99.99% of the issues are taken care of
06:13 ribasushi ( the Try::Tiny fail is news to me too )
06:13 ribasushi you use it thusly in anger:
06:14 esaym153 ribasushi: Try::Tiny (and a few others) seem to fail because of some auto generated test from distzilla (which I've never used)
06:14 ribasushi esaym153: https://twitter.com/ribasushi/status/719793279655669760
06:14 ribasushi esaym153: the key point is that in order to activate the distroprefs you *must* use cpan ( not cpanm )
06:15 ribasushi from there on it should be smooth sailing
06:15 ribasushi esaym153: what I mean by "comprehensive": https://github.com/rurban/distroprefs/tree/master/sources/authors/id/R/RU/RURBAN/patches
06:15 ribasushi ( and that's not all of it )
06:16 ribasushi now, a lot of these patches shouldn't be necessary, but I failed to convince rurban of this :/
06:16 * ribasushi heads to office
06:16 ribasushi esaym153: good luck sir!
06:18 esaym153 hmm, still trying to figure out what exactly 'distroprefs' is
06:19 ribasushi esaym153: cpan ( the client ) has had a built-in patch-locally mechanism for more than a decade
06:20 ribasushi it is called "distroprefs"
06:20 esaym153 ribasushi: strange.. sounds scary lol
06:20 ribasushi essentially "when you are on perl such and such and are trying to install tarball such and such - apply this patch as first order of business for me"
06:20 ribasushi for example: https://github.com/rurban/distroprefs/blob/master/prefs/YAML-Tiny.yml
06:21 ribasushi it's not very scalable, but it allows one to start somewhere
06:22 * ribasushi runs for real &
06:33 esaym153 strangely with both cpanm and cpan, I will sometimes get a failed install because it (cpan or cpanm) eats up all my machine memory. Then if it run it again, it installs fine and only uses a 1% or so of ram. Really makes no sense..
07:01 willthechill here I am, late to the party, haha!
07:58 esaym153 Module::Build::Tiny ends up with "Module 'DynaLoader' is not installed"
07:59 willthechill hmmm
07:59 willthechill I sent a message to rurban asking him to come online
07:59 willthechill but no response yet
09:06 anton joined #perl11
09:55 kentnl joined #perl11
10:29 travis-ci perl11/cperl#2227 (smoke/master - fe4b237 : Reini Urban): The build was broken. https://travis-ci.org/perl11/cperl/builds/198780053
10:43 kentnl joined #perl11
13:41 travis-ci perl11/cperl#2229 (smoke/master - bd51042 : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/198828109
15:45 rurban joined #perl11
15:47 rurban Sorry, watched superbowl this morning.
15:47 rurban Try::Tiny uses unfortunately a hack module, which doesn't work yet. perl5 also had troubles with it
15:49 rurban Oh, this is easy: "skip() needs to know $how_many tests are in the block at t/zzz-check-breaks.t"
15:49 rurban just force install it.
15:49 rurban people don't care about the Test::More API, and I modernized it, which made it stricter, but also 2x faster.
15:49 rurban cpan -f Try::Tiny should do it
15:50 ribasushi rurban: you are too quick to shoot
15:50 rurban I meant Try::Catch is the broken one. I like it, and it's the only try-catch module which should be recommended, but unfortunately Scope::Upper is too much of a hack
15:51 ribasushi this particular failure is only present on your version of Test::More
15:51 rurban yes
15:51 ribasushi both old and new T::M in core behave correctly
15:51 rurban I know. on purpose.
15:51 ribasushi perl -e 'use Test::More tests => 2; ok ("fine"); SKIP: { skip "I am just jerking you around", 0 }; ok ("still fine")'
15:51 rurban No, my Test::More behaves correctly. This is even a FAQ entry
15:51 ribasushi ^^ this one, it *is* a bug on your end
15:52 rurban skip has a mandatory int $how_many arg, which cannot be omitted
15:52 ribasushi rurban: see my reproduction one liner
15:53 rurban 0 is invalid
15:53 ribasushi it is a valid way to signal a noop for a conditional skip block
15:54 rurban then please comment it out. I don't spend 500 cycles on an invalid block.
15:55 ribasushi rurban: I don't know what to say, have a good rest of the day
15:57 rurban ribasushi: it was a quirky way to NOOP a block, but it is not in cperl anymore. I found no API documentation which supports how_many == 0.
16:05 rurban IMHO it's better to signal compile-time API errors, such as a loop (1..0) when being supported by the API documentation. But I'm testing a fix, how much worse the code gets with default -1
16:05 ribasushi rurban: you are yet again completely oblivious to the context here: a person comes in and wants to try your platform ( because they heard it is better in some ways ). Instead of succeeding and giving it a thumbs up they get caught in a sea of little quirky fails. Even distroprefs doesn't help because this particular failure is new and you haven't caught it yet. *ALL* of this could be voided if you didn't blindly insist on "tests must be modernized",
16:05 ribasushi especially in areas where the software is kinda-sorta "done". I already outlined this half a year ago in https://irclog.perlgeek.de/perl11/2016-06-08#i_12624929 and all you did is ridicule me as a result
16:06 ribasushi rurban: the bottom line is this: while mainstrim perl5 is sinking you should be bending over backwards to get *more* users, instead of leaving them stranded like you do now
16:06 ribasushi my 2c
16:06 rurban Someone needs to start modernizing APIs, and it's cperl. It made test suites 2x faster, and caught many API errors.
16:06 rurban on such an error force-install is easy, because it's clearly just a wrong test.
16:08 rurban I don't leave them stranded. I do respect the API. p5p is on the other side negelcting the API, constantly removing old features they are not able to fix. Even if the fixes are available. Or deprecating perfectly fine syntax, such as for qw(){}
16:08 rurban thanks for your concerns though, appreciated.
16:09 rurban cperl is only faster and modern, because it uses signatures, types and is stricter.
16:09 rurban when you let everything through to run-time, you are back at perl5
16:12 rurban I found a skip no_plan bug. There's a wrong logic with the default how_many count
16:18 rurban doc: It's important that $how_many accurately reflects the number of tests
16:18 rurban in the SKIP block so the # of tests run will match up with your plan.
16:18 rurban If your plan is C<no_plan> $how_many is optional and will default to 1.
16:19 rurban not a bug, mixed it up. cperl was right before, perl5 ignores it's own docs.
16:31 rurban You may file a Test-Simple bug, because they violate their own API docs.
16:32 rurban Oh, I see: ETHER/Try-Tiny-0.28.tar.gz this explains everything. ROLSKY and ETHER have no idea what they are doing
16:33 rurban And they usually ignore their bugs, or are not able to apply patches.
16:34 rurban So they are super qualified for the next p5p pumpkin job.
16:39 rurban On another note: perl6 also disqualified themselves from the job last year when they announced, that they will ignore their own docs and specs. Only the implementation counts. Similar to perl5
18:46 travis-ci perl11/cperl#2230 (smoke/master - e8cc494 : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/198902667
18:46 esaym153 rurban: I'm all for "modernizing" and stuff. But it took me 3 hours to get cperl up and running with my normal install of 30 cpan modules. Was not really expecting that.
18:46 esaym153 of course this box is super slow and I was cherry picking through the test failures
18:47 esaym153 which for the most part, it seems most of the test errors can be ignored. Perl is the only language that actually has tests anyway lol
18:48 esaym153 though not sure if the whole Dancer/Plack stack is installable since Module::Build::Tiny completely bombs out
18:48 esaym153 but at least on this box I'm not using Dancer ...
18:49 esaym153 but sadly, performance and memory wise, I'm not seeing that much of a difference with execution time and mem usage compared to 5.22
19:27 willthechill esaym153: cperl includes dozens (if not hundreds) of micro-optimizations, thus the benefits of cperl vary widely across each Perl application
19:28 willthechill but that's about the limit of my specific knowledge, my expertise is RPerl internals not cperl internals, only rurban can really answer the question of "how to make cperl run the fastest possible?"
19:28 esaym153 willthechill: yea understood. I was just timing some cgi script executions. Pretty much no different. Timing a script with a few Moose classes though... took 1.3 seconds to run on 5.22 and 1.25 seconds on cperl :/
19:32 willthechill unfortunately, those timings don't mean much to me, because I can't tell you if those particular tests are suited to benefit from cperl or not
19:32 willthechill BUT you've gotten this far with cperl finally installed and running, so that's quite an accomplishment already!  :-D
19:32 esaym153 willthechill: probably not :)
19:43 willthechill I asked rurban to come back online (he's probably asleep now in Europe), he is the only one who can tell us which tests show the best cperl improvement
22:25 rurban joined #perl11
22:34 rurban esaym153: cperl-5.24 against perl-5.22 should be 40% faster. 5.24 made a 20% perf jump with context handling
22:35 rurban memory is mostly Config, DynaLoader. warnings and unicode space savings are not yet in. XS warnings is about 120k less. unicode will be several MB
22:40 esaym153 rurban: one "benchmark" I did http://paste.debian.net/hidden/88bea2ca/ of course I guess there is not much runtime stuff going on there...
22:40 esaym153 but I have some cgi scripts that under 5.22 take about 650ms to respond, it was the same under cperl.
22:41 esaym153 I probably got some text processing scripts around somewhere, I could try and see what those do
22:47 willthechill good info and discussion from everyone!  :-)

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary