Geth ast: 685da70fb9 | (Elizabeth Mattijsen)++ | S32-exceptions/misc.t
Unfudge now passing test
00:02
lizmat good night, #perl6-dev! 00:03
notviki night 00:24
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
And I don't know if this is a bug in =:= or if the lack of decont is intentional;
and if the latter, what it is *supposed* to be.
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?
what does === do?
m: say 1 === 1 01:34
camelia rakudo-moar fbbe44: OUTPUT«True␤»
timotimo m: my $a = Any.new; my $b = Any.new; my $c = $a; say $a === $b; say $a === $b
camelia rakudo-moar fbbe44: OUTPUT«False␤False␤»
timotimo hm, no.
japhb Didn't you mean '$c' at the end there? 01:35
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␤»
timotimo oh
yes, i did
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
you can definitely decont manually with postfix:≪<>≫
japhb timotimo: Wait, what? I'm not aware of this one 01:39
timotimo that'd probably make =:= work? 01:40
but yeah, that works
japhb I can't find that op. Where is it? 01:41
timotimo dunno
could be in the grammar itself
apparently it actually calls postcircumfix:<{ }> 01:42
like, without an argument 01:43
japhb m: my $a = Any.new; dd $a; dd $a<>;
camelia rakudo-moar fbbe44: OUTPUT«Any $a = Any.new␤Any.new␤»
japhb Woah.
m: my $a = 1e0; dd $a; dd $a<>; 01:44
camelia rakudo-moar fbbe44: OUTPUT«Num $a = 1e0␤1e0␤»
japhb I'll be darned.
timotimo :) 02:20
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.
notviki fwiw, nine is off until 15th 04:30
MasterDukeLaptop i'm trying to note() $name here: github.com/perl6/nqp/blob/master/s...W.nqp#L641 04:58
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
even if i put it after the "if nqp::existskey(%meths, $name) {"
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
i expect you'd get the same error message if you "noot($name)" instead of "note($name)"
MasterDukeLaptop timotimo++ 05:02
timotimo it's doing the "undefined names give you NQPMu" thing again, i expect ;(
MasterDukeLaptop that works. i thought note did just that though?
or are you saying note() isn't available there/then? 05:04
timotimo yeah, i expect that's the case 05:05
MasterDukeLaptop good to know 05:06
i was looking at a profile of notviki's code that just defines some custom operators 05:30
and a significant part of the time is spend in find_method
so i wanted to see what $obj/$name combos were being searched for 05:31
turns out, that if all you do is define 10 new custom operators, fine_method is called 162k times 05:32
*find_method
with these $obj types and $name's the most frequent by far: 15980 BOOTStr: kok 17426 BOOTStr: end_keyword 05:34
timotimo would like to see a few more results from that list 05:35
MasterDukeLaptop i'll gist it
gist.github.com/MasterDuke17/50bf3...ff0095391e 05:37
timotimo it might be interesting to also output the type of self 05:38
MasterDukeLaptop added, rebuilding rakudo now 05:40
every single one was NQPClassHOW 05:46
timotimo oh, of course
MasterDukeLaptop for "self.HOW.name(self)"
timotimo i meant to say self.name($obj) 05:47
MasterDukeLaptop ah, very different results (for the NQP build so far) 05:48
timotimo the self is the HOW of course. that's not interesting in this case 05:49
we want the actual object the method is looked for upon
MasterDukeLaptop gist updated 05:52
timotimo that's really amusing to look at 05:53
MasterDukeLaptop it's looks kind of like a fractal 05:54
samcv morning/night #perl6-dev 07:06
.tell yoleaux2 good morning/night 07:07
yoleaux2 samcv: Thanks for the message.
[Tux] This is Rakudo version 2016.12-253-gfbbe446c6 built on MoarVM version 2016.12-71-g331a6b43 07:54
csv-ip5xs 3.056
test 13.544
test-t 5.401
csv-parser 13.819
lizmat Files=1164, Tests=56522, 196 wallclock secs (11.19 usr 4.68 sys + 1165.78 cusr 132.63 csys = 1314.28 CPU) 09:30
m: dd &infix:<+>.prec # so where does this method .prec live ? 10:40
camelia rakudo-moar fbbe44: OUTPUT«{:assoc("left"), :prec("t=")}␤»
lizmat ah, found it :-) 10:41
Geth kudo/nom: caba0d346a | (Elizabeth Mattijsen)++ | 2 files
Streamline .prec on operators a bit

  - make sure that all Routines have a .prec
   so we don't need to check if they can .prec
  - add fast direct lookup interface:
   say &infix:<+>.prec("assoc") # left
11:48
lizmat jnthn: question: all of the METAOP_REDUCE_xxx subs take a \triangle parameter, but none of them seem to use it ? 12:48
Geth kudo/nom: 870b11b759 | (Elizabeth Mattijsen)++ | 3 files
Introducing Rakudo::Metaops

  - separate class for providing callables for meta operators
  - intended to replace all METAxxx subs from metaops.pm in the long run
  - initially only provides for optimised &[+] and &[~]
  - initially only supports left assoc generic ops
12:57
lizmat please run config.pl after pulling this commit
Geth kudo/nom: 62f7027cbd | (Elizabeth Mattijsen)++ | src/core/List.pm
Make zip(:with) use R:I.ZipIterablesMapIterator

  - makes zip(@a,@b,:with(&[+|~]) about 12x faster
  - makes zip(@a,@b,:with(&op)) about 7x faster
Sadly, this does not affect Zop yet, as that codegens directly to a METAOP_ZIP call currently.
13:01
notviki s: &infix:<+>, 'prec', \() 13:07
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/caba...ts.pm#L150
jnthn m: say [\+] 1..10 13:10
camelia rakudo-moar caba0d: OUTPUT«(1 3 6 10 15 21 28 36 45 55)␤»
jnthn lizmat: Triangle meta-ops are this case, fwiw
lizmat jnthn: yeah, I get that, it's just that I don't see the triangle parameter being used in those subs? 13:14
I see the string "triangle" only in the signatures, not in the code ? 13:15
jnthn oh 13:18
they're multis
And we distinguish by receiving the extra arg 13:19
lizmat aaaaahhhhh
jnthn So the name is purely documentation for what the paramter is for
lizmat duh
jnthn :)
Yes, took me a moment to spot it too
notviki m: say 381248380984 13:28
m: say 381248-380984
camelia rakudo-moar 62f702: OUTPUT«381248380984␤»
rakudo-moar 62f702: OUTPUT«264␤»
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 ?
notviki on one growage it grew by 264KB 13:33
buggable: speed
buggable notviki, ██▇▇▇█▄▆▅▃▄▄▂▃▃▄▂▁▁▂▃▂▂▅▂▂▄▂▃▂▂▁▆▄▂▂▃▂▂▂▃▃▃▃▃▃▄▂▃▅ data for 2016-12-19–2017-01-09; range: 5.137s–6.242s
notviki m: say 563728-563556 13:34
camelia rakudo-moar 62f702: OUTPUT«172␤»
notviki All bots are leaking I think ^ making bugggable print that message grew it by 172KB
And I just restarted it: uses now 264628KB, but before restart was at 564728KB 13:37
jnthn notviki: The various MoarVM PRs I filed on Friday may help matters 13:39
notviki \o/
Geth kudo/nom: d7d76b7dcf | (Elizabeth Mattijsen)++ | 2 files
Make Routine.prec(key) return '' rather than Nil on fail

Makes it easier to handle in comparisons and such.
13:43
kudo/nom: a7ccfc6f80 | (Elizabeth Mattijsen)++ | 2 files
Move .prec from Routine to Code

Turns out Blocks and WhateverCode also need to have a .prec to allow for easy checking of precedence of operators in metaops.
kudo/nom: 3fb04c34e5 | (Elizabeth Mattijsen)++ | src/core/List.pm
Simplify/speedup find-reducer-for-op

5c685f2fa7 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Metaops.pm Add support for generic listinfix ops
  - e.g. makes zip(@a,@a,:with(&[minmax]) about 2x as fast
notviki :o
lizmat - uses the new .prec(key) interface
- should be better optimizable because compile-time values
review: github.com/rakudo/rakudo/commit/3fb04c34e5
notviki Oh, I guess *now* I get why dalek was cutoff :P 13:44
jnthn I see Geth is a very direct dalek replacement ;)
notviki I need to manually throttle it
lol
lizmat notviki: perhaps add a little pause between commits ?
lizmat admits pushing 3 commits at the same time on purpose
notviki Yeah, should be easy to fix thanks to filters in IRC::Client 13:45
kudo/nom: 731d587495 | (Elizabeth Mattijsen)++ | src/core/precedence.pm
Remove unused/unreference precedence group
14:33
lizmat afk until laters&
notviki k 14:41
lizmat: Geth is now ready to take commits of any size and number :) Commit away!
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: internals.rust-lang.org/t/rust-ci-...ges/4489/9
yoleaux2 notviki: I'll pass your message to lizmat.
notviki arnsholt: line
arnsholt Spiffy!
Cause I'm pretty sure I've seen dalek sunk because of really long single commit messages 14:46
(Some of them may even have been my fault =D)
[Coke] what's the preferred windows toolchain for rakudo? MSVC still? 16:40
timotimo strawberry perl also works, doesn't it? 16:42
[Coke] hm, thought we used to have a file that described windows builds in rakudo 16:50
Geth kudo/nom: af4bb645f4 | (Will Coleda)++ | INSTALL.txt
Sadly, this hasn't been updated in a while.
16:54
pyrimidine I'm seeing an error with dynamic loading of modules (e.g. plugins) that appears related to lexical scoping changes: travis-ci.org/cjfields/bioperl6#L2199 17:44
I'll see if I can golf that down to something smaller 17:45
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:46
This probably affects Pluggable (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:48
[Coke] maybe commits to 6.c-errata should include a link to perl6-dev discussion. 17:55
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:12
jnthn [Coke]: Well, timotimo++ left a comment, that I'll address... Otherwise, no :) 18:14
But I do wonder how many people are reading them but saying nothing :)
[Coke] I mean, I feel like they're over my paygrade. :)
I'll go over them again, maybe I'll learn something, anyway. 18:15
timotimo we could run coverity over the code pre- and post-merge :) 18:16
jnthn Learning is one of my aims in this experiment.
JimmyZ I took a look , didn't find anything not good 18:23
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
arnsholt Not so much to find mistakes as to try to glean some additional internals knowledge, mind 18:25
TimToady tends to prioritize staying on top of things culturally over technically... 18:27
TimToady therefore tends to prioritize backlogging over code review... 18:37
jnthn :)
I'll likely merge them tomorrow (today my time was nommed on $other-project) 18:39
[Coke] jnthn: I'll test out my weird doc issue again post-merge. 18:59
jnthn++
Geth kudo/nom: 46cdf16f12 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Metaops.pm
Make zip(@a,@a,:with(&[=>])) about 5x faster

By special casing the &[=>] op. Sadly, this doesn't translate to similar efficiency improvements for Z=> just yet, as that still codegens to the old METAOP_ZIP code.
19:15
timotimo hum, first line not bold? review link not bold? is my terminal b0rked here? 19:25
no, it was fine in the other channel
weird.
geekosaur no bolding in here for some reason 19:31
or in #moarvm 19:32
maybe the channel mode?
right, this channel is +c and strips them
timotimo oh, +c 19:49
i didn't notice
Geth kudo/nom: 6703b4c550 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Metaops.pm
Add support for generic right associative zip ops

Makes them at least 2x faster, but just for zip(@a,@a,:with(...)) for now
19:59
diakopter at this rate, the whole standard library will be in nqp:: ops this year... :D (not that I'm complaining) 20:01
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: internals.rust-lang.org/t/rust-ci-...ges/4489/9
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 ?
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?
lizmat I might :-) 20:09
notviki lizmat: the only one I know of is: github.com/perl6/doc/issues/711#is...-235414744 20:10
AlexDaniel lizmat: github.com/perl6/doc/issues/711#is...-235414744 is what we have
notviki jinks you owe me a coke
AlexDaniel notviki: ಠ_ಠ
lizmat I guess that will do for now :-) 20:12
AlexDaniel though the comment that was left in the rust thread is not by a rust developer 20:13
lizmat AlexDaniel: but by a Perl 6 developer ?? 20:18
AlexDaniel oh, indeed! 20:19
:D
lizmat ah, hmmm... :-) 20:20
AlexDaniel camelia was used about 31669 times during the last year 20:22
which averages to about 86 times per day
and that's only “m:” messages on #perl6
notviki Awwww... And here I thought Rust devs paid attention to us :( 20:25
AlexDaniel at least we have bisectable and they don't :P 20:28
Geth ast: 90c58ff0eb | usev6++ | S32-list/grep.t
Add test for RT #130529
20:30
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/01/09/...erbotting/ 22:06
jnthn \o/
Wow, so much news! 22:10
lizmat++
'night, #perl6-dev 22:27
[Coke] (owe me a coke) hey now 22:28
lizmat gnight jnthn 22:30
cognominal lizmat++