Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-01-09

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 Geth roast: 685da70fb9 | (Elizabeth Mattijsen)++ | S32-exceptions/misc.t
00:02 Geth roast: Unfudge now passing test
00:02 Geth roast: review: https://github.com/perl6/roast/commit/685da70fb9
00:03 lizmat good night, #perl6-dev!
00:24 notviki night
01:23 Woodi joined #perl6-dev
01:23 ilmari joined #perl6-dev
01:23 JimmyZ joined #perl6-dev
01:27 ugjka joined #perl6-dev
01:28 tbrowder joined #perl6-dev
01:32 japhb If I've got an array of generic objects, and I want to remove a *particular object* from it, which I provide, how do I do that idiomatically?  I thought `@array .= grep(* !=:= $o);` would work, but because =:= doesn't decont, this fails.  So now I'm doing `use nqp; @array .= grep: { nqp::decont($_) !=:= nqp::decont($o) };` but ... eww.
01:32 japhb And I don't know if this is a bug in =:= or if the lack of decont is intentional;
01:32 japhb and if the latter, what it is *supposed* to be.
01:33 japhb Er, I mean, what the "object identity ignoring container" op is *supposed* to be.
01:33 timotimo if you have already the right object, you could compare the .WHERE maybe?
01:33 timotimo what does === do?
01:34 timotimo m: say 1 === 1
01:34 camelia rakudo-moar fbbe44: OUTPUT«True␤»
01:34 timotimo m: my $a = Any.new; my $b = Any.new; my $c = $a; say $a === $b; say $a === $b
01:34 camelia rakudo-moar fbbe44: OUTPUT«False␤False␤»
01:34 timotimo hm, no.
01:35 japhb Didn't you mean '$c' at the end there?
01:37 japhb m: my $a = Any.new; my $b = Any.new; my $c = $a; say $a === $b; say $a === $c
01:37 camelia rakudo-moar fbbe44: OUTPUT«False␤True␤»
01:37 timotimo oh
01:37 timotimo yes, i did
01:38 japhb Problem is, === does a lot more.  If you grep for infix:<===> there's a fair number of matches.
01:38 timotimo i tried to search for it on github, but it found all infix ops instead
01:38 timotimo you can definitely decont manually with postfix:≪<>≫
01:39 japhb timotimo: Wait, what?  I'm not aware of this one
01:40 timotimo that'd probably make =:= work?
01:40 timotimo but yeah, that works
01:41 japhb I can't find that op.  Where is it?
01:41 timotimo dunno
01:41 timotimo could be in the grammar itself
01:42 timotimo apparently it actually calls postcircumfix:<{ }>
01:43 timotimo like, without an argument
01:43 japhb m: my $a = Any.new; dd $a; dd $a<>;
01:43 camelia rakudo-moar fbbe44: OUTPUT«Any $a = Any.new␤Any.new␤»
01:43 japhb Woah.
01:44 japhb m: my $a = 1e0; dd $a; dd $a<>;
01:44 camelia rakudo-moar fbbe44: OUTPUT«Num $a = 1e0␤1e0␤»
01:44 japhb I'll be darned.
02:20 timotimo :)
02:30 kalkin- joined #perl6-dev
02:46 dalek joined #perl6-dev
02:46 JimmyZ joined #perl6-dev
02:46 [Tux] joined #perl6-dev
02:51 ilbot3 joined #perl6-dev
02:51 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
02:54 tbrowder joined #perl6-dev
03:32 stmuk_ joined #perl6-dev
04:11 japhb .ask nine Which phasers are expected to happen *during* precompilation, which ones are expected to happen at need time, and which ones during import time?
04:11 yoleaux2 japhb: I'll pass your message to nine.
04:30 notviki fwiw, nine is off until 15th
04:44 MasterDukeLaptop joined #perl6-dev
04:58 MasterDukeLaptop i'm trying to note() $name here: https://github.com/perl6/nqp/blob/master/src/how/NQPClassHOW.nqp#L641
04:59 MasterDukeLaptop but no matter what kind of !isnull, definite, etc i put, the NQP compile always dies with "Cannot invoke this object (REPR: Null; VMNull)"
04:59 MasterDukeLaptop even if i put it after the "if nqp::existskey(%meths, $name) {"
05:00 timotimo you're using the sub note? can you try nqp::sayfh(nqp::getstderr(), ...) instead to make sure it's not running into trouble from that?
05:00 timotimo i expect you'd get the same error message if you "noot($name)" instead of "note($name)"
05:02 MasterDukeLaptop timotimo++
05:02 timotimo it's doing the "undefined names give you NQPMu" thing again, i expect ;(
05:02 MasterDukeLaptop that works. i thought note did just that though?
05:04 MasterDukeLaptop or are you saying note() isn't available there/then?
05:05 timotimo yeah, i expect that's the case
05:06 MasterDukeLaptop good to know
05:30 MasterDukeLaptop i was looking at a profile of notviki's code that just defines some custom operators
05:30 MasterDukeLaptop and a significant part of the time is spend in find_method
05:31 MasterDukeLaptop so i wanted to see what $obj/$name combos were being searched for
05:32 MasterDukeLaptop turns out, that if all you do is define 10 new custom operators, fine_method is called 162k times
05:32 MasterDukeLaptop *find_method
05:34 MasterDukeLaptop with these $obj types and $name's the most frequent by far:   15980 BOOTStr: kok   17426 BOOTStr: end_keyword
05:35 * timotimo would like to see a few more results from that list
05:35 MasterDukeLaptop i'll gist it
05:37 MasterDukeLaptop https://gist.github.com/MasterDuke17/50bf3e8ce5b54c36fb399eff0095391e
05:38 timotimo it might be interesting to also output the type of self
05:40 MasterDukeLaptop added, rebuilding rakudo now
05:46 MasterDukeLaptop every single one was NQPClassHOW
05:46 timotimo oh, of course
05:46 MasterDukeLaptop for "self.HOW.name(self)"
05:47 timotimo i meant to say self.name($obj)
05:48 MasterDukeLaptop ah, very different results (for the NQP build so far)
05:49 timotimo the self is the HOW of course. that's not interesting in this case
05:49 timotimo we want the actual object the method is looked for upon
05:52 MasterDukeLaptop gist updated
05:53 timotimo that's really amusing to look at
05:54 MasterDukeLaptop it's looks kind of like a fractal
06:51 RabidGravy joined #perl6-dev
07:06 samcv morning/night #perl6-dev
07:07 samcv .tell yoleaux2 good morning/night
07:07 yoleaux2 samcv: Thanks for the message.
07:54 [Tux] This is Rakudo version 2016.12-253-gfbbe446c6 built on MoarVM version 2016.12-71-g331a6b43
07:54 [Tux] csv-ip5xs        3.056
07:54 [Tux] test            13.544
07:54 [Tux] test-t           5.401
07:54 [Tux] csv-parser      13.819
09:30 lizmat Files=1164, Tests=56522, 196 wallclock secs (11.19 usr  4.68 sys + 1165.78 cusr 132.63 csys = 1314.28 CPU)
10:40 lizmat m: dd &infix:<+>.prec   # so where does this method .prec live ?
10:40 camelia rakudo-moar fbbe44: OUTPUT«{:assoc("left"), :prec("t=")}␤»
10:41 lizmat ah, found it  :-)
11:05 kalkin- joined #perl6-dev
11:08 kalkin- joined #perl6-dev
11:48 Geth rakudo/nom: caba0d346a | (Elizabeth Mattijsen)++ | 2 files
11:48 Geth rakudo/nom: Streamline .prec on operators a bit
11:48 Geth rakudo/nom:
11:48 Geth rakudo/nom: - make sure that all Routines have a .prec
11:48 Geth rakudo/nom:   so we don't need to check if they can .prec
11:48 Geth rakudo/nom: - add fast direct lookup interface:
11:48 Geth rakudo/nom:   say &infix:<+>.prec("assoc")     # left
11:48 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/caba0d346a
12:22 kalkin- joined #perl6-dev
12:48 lizmat jnthn: question: all of the METAOP_REDUCE_xxx subs take a \triangle parameter, but none of them seem to use it ?
12:57 Geth rakudo/nom: 870b11b759 | (Elizabeth Mattijsen)++ | 3 files
12:57 Geth rakudo/nom: Introducing Rakudo::Metaops
12:57 Geth rakudo/nom:
12:57 Geth rakudo/nom: - separate class for providing callables for meta operators
12:57 Geth rakudo/nom: - intended to replace all METAxxx subs from metaops.pm in the long run
12:57 Geth rakudo/nom: - initially only provides for optimised &[+] and &[~]
12:57 Geth rakudo/nom: - initially only supports left assoc generic ops
12:57 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/870b11b759
12:57 lizmat please run config.pl after pulling this commit
13:01 Geth rakudo/nom: 62f7027cbd | (Elizabeth Mattijsen)++ | src/core/List.pm
13:01 Geth rakudo/nom: Make zip(:with) use R:I.ZipIterablesMapIterator
13:01 Geth rakudo/nom:
13:01 Geth rakudo/nom: - makes zip(@a,@b,:with(&[+|~]) about 12x faster
13:01 Geth rakudo/nom: - makes zip(@a,@b,:with(&op)) about 7x faster
13:01 Geth rakudo/nom:
13:01 Geth rakudo/nom: Sadly, this does not affect Zop yet, as that codegens directly to
13:01 Geth rakudo/nom: a METAOP_ZIP call currently.
13:01 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/62f7027cbd
13:07 notviki s: &infix:<+>, 'prec', \()
13:07 SourceBaby notviki, Sauce is at https://github.com/rakudo/rakudo/blob/caba0d3/src/core/traits.pm#L150
13:10 jnthn m: say [\+] 1..10
13:10 camelia rakudo-moar caba0d: OUTPUT«(1 3 6 10 15 21 28 36 45 55)␤»
13:10 jnthn lizmat: Triangle meta-ops are this case, fwiw
13:14 lizmat jnthn: yeah, I get that, it's just that I don't see the triangle parameter being used in those subs?
13:15 lizmat I see the string "triangle" only in the signatures, not in the code ?
13:18 jnthn oh
13:18 jnthn they're multis
13:19 jnthn And we distinguish by receiving the extra arg
13:19 lizmat aaaaahhhhh
13:19 jnthn So the name is purely documentation for what the paramter is for
13:19 lizmat duh
13:19 jnthn :)
13:19 jnthn Yes, took me a moment to spot it too
13:28 notviki m: say 381248380984
13:28 notviki m: say 381248-380984
13:28 camelia rakudo-moar 62f702: OUTPUT«381248380984␤»
13:28 camelia rakudo-moar 62f702: OUTPUT«264␤»
13:32 notviki seems like Geth is leaking on each commit announcement. Though it's weird. It grows, then stays stable for a few announcements, then grows again :/
13:32 lizmat how much does it grow then ?
13:33 notviki on one growage it grew by 264KB
13:33 notviki buggable: speed
13:33 buggable notviki, ██▇▇▇█▄▆▅▃▄▄▂▃▃▄▂▁▁▂▃▂▂▅▂▂▄▂▃▂▂▁▆▄▂▂▃▂▂▂▃▃▃▃▃▃▄▂▃▅ data for 2016-12-19–2017-01-09; range: 5.137s–6.242s
13:34 notviki m: say 563728-563556
13:34 camelia rakudo-moar 62f702: OUTPUT«172␤»
13:34 notviki All bots are leaking I think ^ making bugggable print that message grew it by 172KB
13:36 buggable joined #perl6-dev
13:37 notviki And I just restarted it: uses now 264628KB, but before restart was at 564728KB
13:39 jnthn notviki: The various MoarVM PRs I filed on Friday may help matters
13:39 notviki \o/
13:43 Geth rakudo/nom: d7d76b7dcf | (Elizabeth Mattijsen)++ | 2 files
13:43 Geth rakudo/nom: Make Routine.prec(key) return '' rather than Nil on fail
13:43 Geth rakudo/nom:
13:43 Geth rakudo/nom: Makes it easier to handle in comparisons and such.
13:43 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d7d76b7dcf
13:43 Geth rakudo/nom: a7ccfc6f80 | (Elizabeth Mattijsen)++ | 2 files
13:43 Geth rakudo/nom: Move .prec from Routine to Code
13:43 Geth rakudo/nom:
13:43 Geth rakudo/nom: Turns out Blocks and WhateverCode also need to have a .prec to allow
13:43 Geth rakudo/nom: for easy checking of precedence of operators in metaops.
13:43 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a7ccfc6f80
13:43 Geth rakudo/nom: 3fb04c34e5 | (Elizabeth Mattijsen)++ | src/core/List.pm
13:43 Geth rakudo/nom: Simplify/speedup find-reducer-for-op
13:43 Geth rakudo/nom:
13:43 notviki :o
13:43 lizmat - uses the new .prec(key) interface
13:43 lizmat - should be better optimizable because compile-time values
13:43 lizmat review: https://github.com/rakudo/rakudo/commit/3fb04c34e5
13:44 notviki Oh, I guess *now* I get why dalek was cutoff :P
13:44 jnthn I see Geth is a very direct dalek replacement ;)
13:44 notviki I need to manually throttle it
13:44 notviki lol
13:44 lizmat notviki: perhaps add a little pause between commits ?
13:44 * lizmat admits pushing 3 commits at the same time on purpose
13:45 notviki Yeah, should be easy to fix thanks to filters in IRC::Client
14:16 Geth rakudo/nom: 5c685f2fa7 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Metaops.pm
14:16 Geth rakudo/nom: Add support for generic listinfix ops
14:16 Geth rakudo/nom:
14:16 Geth rakudo/nom: - e.g. makes zip(@a,@a,:with(&[minmax]) about 2x as fast
14:16 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5c685f2fa7
14:21 Geth joined #perl6-dev
14:30 Geth joined #perl6-dev
14:33 Geth rakudo/nom: 731d587495 | (Elizabeth Mattijsen)++ | src/core/precedence.pm
14:33 Geth rakudo/nom: Remove unused/unreference precedence group
14:33 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/731d587495
14:33 lizmat afk until laters&
14:34 Geth joined #perl6-dev
14:37 Geth joined #perl6-dev
14:38 Geth joined #perl6-dev
14:40 Geth joined #perl6-dev
14:41 notviki k
14:41 notviki lizmat: Geth is now ready to take commits of any size and number :) Commit away!
14:43 awwaiid joined #perl6-dev
14:45 arnsholt notviki: Rate-limiting on commit-level or line-level?
14:45 notviki .tell lizmat some Perl6Weekly material: AlexDaniel reviewed in-channel camelia evals over the past year (thousands of them) and found lots of bugs. Also Rust devs seem to be impressed with our bisectable bot: https://internals.rust-lang.org/t/rust-ci-release-infrastructure-changes/4489/9
14:45 yoleaux2 notviki: I'll pass your message to lizmat.
14:45 notviki arnsholt: line
14:45 arnsholt Spiffy!
14:46 arnsholt Cause I'm pretty sure I've seen dalek sunk because of really long single commit messages
14:46 arnsholt (Some of them may even have been my fault =D)
14:56 Undercover joined #perl6-dev
15:06 FROGGS joined #perl6-dev
15:29 awwaiid joined #perl6-dev
16:20 geekosaur joined #perl6-dev
16:40 [Coke] what's the preferred windows toolchain for rakudo? MSVC still?
16:42 timotimo strawberry perl also works, doesn't it?
16:49 tadzik joined #perl6-dev
16:50 [Coke] hm, thought we used to have a file that described windows builds in rakudo
16:54 Geth rakudo/nom: af4bb645f4 | (Will Coleda)++ | INSTALL.txt
16:54 Geth rakudo/nom: Sadly, this hasn't been updated in a while.
16:54 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af4bb645f4
16:59 perlpilot_ joined #perl6-dev
17:13 AlexDaniel joined #perl6-dev
17:35 stmuk joined #perl6-dev
17:36 FROGGS joined #perl6-dev
17:39 pyrimidine joined #perl6-dev
17:44 pyrimidine I'm seeing an error with dynamic loading of modules (e.g. plugins) that appears related to lexical scoping changes: https://travis-ci.org/cjfields/bioperl6#L2199
17:45 pyrimidine I'll see if I can golf that down to something smaller
17:46 pyrimidine reason I think it's related to lexical scoping: if I explicitly add the 'use Bio::SeqIO::fasta' (the plugin) with the tests they pass
17:48 pyrimidine This probably affects Pluggable (https://github.com/tony-o/perl6-pluggable) too, though there is one other outstanding bug with that module which hasn't been addressed (use of @*INC)
17:55 [Coke] maybe commits to 6.c-errata should include a link to perl6-dev discussion.
17:57 ilmari[m] joined #perl6-dev
18:12 [Coke] jnthn: anyone review your PRs? I read through them, but am pretty sure I wouldn't be able to tell you what you did wrong, if anything. :)
18:14 jnthn [Coke]: Well, timotimo++ left a comment, that I'll address... Otherwise, no :)
18:14 jnthn But I do wonder how many people are reading them but saying nothing :)
18:14 [Coke] I mean, I feel like they're over my paygrade. :)
18:15 [Coke] I'll go over them again, maybe I'll learn something, anyway.
18:16 timotimo we could run coverity over the code pre- and post-merge :)
18:16 jnthn Learning is one of my aims in this experiment.
18:23 JimmyZ I took a look , didn't find anything not good
18:24 arnsholt jnthn: I used to try to have a look at interesting-sounding commits and branches you did back when I was a more regular contributor
18:24 JimmyZ well, I take  looks at any commits to moarvm
18:25 arnsholt Not so much to find mistakes as to try to glean some additional internals knowledge, mind
18:27 * TimToady tends to prioritize staying on top of things culturally over technically...
18:37 * TimToady therefore tends to prioritize backlogging over code review...
18:37 jnthn :)
18:39 jnthn I'll likely merge them tomorrow (today my time was nommed on $other-project)
18:59 [Coke] jnthn: I'll test out my weird doc issue again post-merge.
18:59 [Coke] jnthn++
19:15 Geth rakudo/nom: 46cdf16f12 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Metaops.pm
19:15 Geth rakudo/nom: Make zip(@a,@a,:with(&[=>])) about 5x faster
19:15 Geth rakudo/nom:
19:15 Geth rakudo/nom: By special casing the &[=>] op.  Sadly, this doesn't translate to
19:15 Geth rakudo/nom: similar efficiency improvements for Z=> just yet, as that still
19:15 Geth rakudo/nom: codegens to the old METAOP_ZIP code.
19:15 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/46cdf16f12
19:17 FROGGS joined #perl6-dev
19:19 pyrimidi_ joined #perl6-dev
19:25 timotimo hum, first line not bold? review link not bold? is my terminal b0rked here?
19:25 timotimo no, it was fine in the other channel
19:25 timotimo weird.
19:31 geekosaur no bolding in here for some reason
19:32 geekosaur or in #moarvm
19:32 geekosaur maybe the channel mode?
19:32 pyrimidine joined #perl6-dev
19:32 geekosaur right, this channel is +c and strips them
19:49 timotimo oh, +c
19:49 timotimo i didn't notice
19:52 pyrimidine joined #perl6-dev
19:59 Geth rakudo/nom: 6703b4c550 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Metaops.pm
19:59 Geth rakudo/nom: Add support for generic right associative zip ops
19:59 Geth rakudo/nom:
19:59 Geth rakudo/nom: Makes them at least 2x faster, but just for zip(@a,@a,:with(...))
19:59 Geth rakudo/nom: for now
19:59 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6703b4c550
20:01 diakopter at this rate, the whole standard library will be in nqp:: ops this year... :D  (not that I'm complaining)
20:02 pyrimidine joined #perl6-dev
20:06 lizmat diakopter: I'll be gladly rewriting them to real Perl 6 code again when that makes them faster yet again  :-)
20:06 yoleaux2 14:45Z <notviki> lizmat: some Perl6Weekly material: AlexDaniel reviewed in-channel camelia evals over the past year (thousands of them) and found lots of bugs. Also Rust devs seem to be impressed with our bisectable bot: https://internals.rust-lang.org/t/rust-ci-release-infrastructure-changes/4489/9
20:07 TimToady diakopter: all you have to do is write an optimizer that is better than lizmat :)
20:07 lizmat notviki: do we have a URL with an overview of bots on the #perl6 channels ?
20:08 diakopter TimToady: or you could design a language in which someone could write such an optimizer XD
20:08 TimToady sure, but then who'd use it?
20:09 lizmat I might  :-)
20:10 notviki lizmat: the only one I know of is: https://github.com/perl6/doc/issues/711#issuecomment-235414744
20:10 AlexDaniel lizmat: https://github.com/perl6/doc/issues/711#issuecomment-235414744 is what we have
20:10 notviki jinks you owe me a coke
20:10 AlexDaniel notviki: ಠ_ಠ
20:12 lizmat I guess that will do for now  :-)
20:13 AlexDaniel though the comment that was left in the rust thread is not by a rust developer
20:18 lizmat AlexDaniel: but by a Perl 6 developer ??
20:19 AlexDaniel oh, indeed!
20:19 AlexDaniel :D
20:20 lizmat ah, hmmm... :-)
20:21 pyrimidine joined #perl6-dev
20:22 AlexDaniel camelia was used about 31669 times during the last year
20:22 AlexDaniel which averages to about 86 times per day
20:22 AlexDaniel and that's only “m:” messages on #perl6
20:25 notviki Awwww... And here I thought Rust devs paid attention to us :(
20:28 AlexDaniel at least we have bisectable and they don't :P
20:30 Geth roast: 90c58ff0eb | usev6++ | S32-list/grep.t
20:30 Geth roast: Add test for RT #130529
20:30 Geth roast: review: https://github.com/perl6/roast/commit/90c58ff0eb
22:06 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2017/01/09/2017-02-dogfooding-and-powerbotting/
22:06 jnthn \o/
22:10 jnthn Wow, so much news!
22:10 jnthn lizmat++
22:27 jnthn 'night, #perl6-dev
22:28 [Coke] (owe me a coke) hey now
22:30 lizmat gnight jnthn
22:30 cognominal lizmat++
22:36 pyrimidine joined #perl6-dev
23:05 pyrimidine joined #perl6-dev

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary