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«FalseFalse» | ||
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«FalseTrue» | ||
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.newAny.new» | ||
japhb | Woah. | ||
m: my $a = 1e0; dd $a; dd $a<>; | 01:44 | ||
camelia | rakudo-moar fbbe44: OUTPUT«Num $a = 1e01e0» | ||
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++ |