Geth rakudo/nom: 5d200f1e52 | (Jonathan Worthington)++ | src/core/Supply.pm
Avoid a Failure in the `supply` implementation.

Those end up taking a backtrace, which is rather expensive. This should decrease the cost of Supply block teardown a good bit.
00:40
jnthn Oops, what time?
'night!
Zoffix night 00:48
ZofBot: it's hammer time!
ZofBot Zoffix, map({ sprintf($format, $_) })
[Tux] This is Rakudo version 2017.07-129-g5d200f1e5 built on MoarVM version 2017.07-293-g3f33a841 06:29
csv-ip5xs 2.541
test 12.261
test-t 4.184 - 4.594
csv-parser 13.421
lizmat Files=1217, Tests=67414, 259 wallclock secs (13.93 usr 5.46 sys + 1689.04 cusr 170.50 csys = 1878.93 CPU) 07:39
m: use nqp; my $b := nqp::create(IterationBuffer); $b.push(Empty); dd $b # sigh :-( 17:16
camelia (Empty,)?
lizmat m: my %h = :42a; dd %h<b>:delete:exists:p # pretty sure that should be Nil 17:33
camelia ()?
lizmat or at least :!b 17:34
Does anybody see any problem with object hashes inheriting from QuantHash, rather than from Map? 17:56
an object hash could be seen as a further extension of a Mix, namely allowing for all possible values, rather than Reals 17:57
fwiw, object hashes are much more like QuantHashes internally, because the keys are always .WHICH strings
japhb lizmat: Is this sufficiently complete to capture the current Associative type graph, or is there more this isn't showing? docs.perl6.org/type/QuantHash 18:23
I admit to having gotten very, very confused about all the Associative types we have.
[Coke] note that the type maps have to be updated manually every so often (and they haven't been in a while) 18:24
japhb [Coke]: Ah, I take it no one got around to doing something better than the big typemap file ... 18:28
.oO( Temporary hacks aren't. )
lizmat the thing is that everytime I have a Map:D candidate, I need to check for object hashness 18:31
Zoffix NeuralAnomaly: status 18:34
NeuralAnomaly Zoffix, [?] Next release will be in 1 day and 2 weeks. Since last release, there are 30 new still-open tickets (12 unreviewed and 0 blockers) and 133 unreviewed commits. See perl6.fail/release/stats for details 18:35
jnthn lizmat: I thought the candidates for that were mixed in, thus overriding the various Map methods? 18:38
Or at least, the ones that need to differ 18:39
lizmat well, there's things like postcircumfix that could use an optimization 18:40
but now can't as we need to check for object hashness for a Map:D candidate
anything that takes a hash as a parameter, can not be easily optimized without needing that runtime check 18:41
jnthn Huh, postcircumfix should really just be calling the .AT-KEY and friends?
lizmat well, I have a benchmark where I could make %h<a> about 6x faster
but one loses the whole opt because of the extra object hashness test 18:42
jnthn So...if you don't let polymorphism do the job, and just write the check that it would do anyway, then you come out equal? :-) 18:43
lizmat well, the test is now the rather expensive: nqp::eqaddr(map.keyof,Str(Any)) 18:44
jnthn Right, which is a method call, and so is .AT-KEY 18:45
lizmat note: this is not about methods in objects hash, this is about subs / methods taking hashes
jnthn Yeah, but I thought postcircumfix were meant to work in terms of calling methods
If they're poking into the internals of certain types then I'm a bit concerned 18:46
lizmat not sure how they are *meant* to work, but yeah, let polymorphism handle the method calls
but that's not to stop one from adding optimized candidates, no? 18:48
postcircumfix candidates I mean
jnthn I guess it's allowable, but if they have to have extra checks in there then I'm not sure it's going to come out better
What we really want is inlining
lizmat which is exactly my point
jnthn That needs small candidates.
lizmat I can't create a Map:D candidate, because then I need the expensive nqp::eqaddr(map.keyof,Str(Any)) check 18:49
jnthn Uh, I want *spesh* to do the inlining. Not you. :P
Method calls are relatively easy to deal with. 18:50
Optimizing away other checks less so
lizmat ideally: sub postcircumfix<{ }>(Map:D \SELF, Str:D \key) { nqp::atkey(nqp::getattr(SELF,Map,'$!storage'),key) }
jnthn Except it can't be that because auto-viv :) 18:51
lizmat yeah, so it needs an ifnull around it
and that would create the container
jnthn The typed thing is just a sign of a larger issue though
What if somebody writes a subclass of Map or Hash?
We must call their AT-KEY 18:52
That's partly why the thing is factored with the mixin: we have to support user subclasses too, so may as well use the same mechanism we already need to support. 18:53
lizmat hmmm... 18:54
jnthn But my point is that - especially with the changes I've been doing now - we shouldn't have to worry about this kind of manual inlining for performance
lizmat ok, that's good to hear... shall I bump versions ? 18:55
:-)
jnthn spesh should be able to do that for us, and it can do multi-level, so it maybe can even avoid even the two calls
You can. I didn't yet do the thing where it spots the final parameter is variant but the other two aren't though.
But being able to do postcircumfixes and AT-KEY and AT-POS inlining better was one of the motivations for re-designing the way we log and analyze the data. 18:56
lizmat ok, then I'll take of my hands there :-)
hmmm... what was the way to get the commits that are brought in again? 18:57
jnthn Aside from bumping and seeing what the bot says? :) 18:58
lizmat the bot doesn't put it in the commit message
Zoffix bump version in the file; git diff the repo (it'll show you two commits); go back to the repo from which commits are from; type git log --oneline first_sha ... second_sha 18:59
jnthn But in MoarVM just git fetch ; git log --oneline <the git describe output>..origin/master
Zoffix keeps meaning to make a single-command alias for that -_-
or better yet, make the bot bumps tuff :)
jnthn (where git describe output is what's in MOAR_REVISION before you bump)
Geth nqp: 82d06ccf35 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
Bump MAOR_REVISION

This gets the following commits: 604da4d Merge pull request #624 from MasterDuke17/patch-2 d195198 Fix spelling in comments 8325f01 Better no-arg and no-object-arg callsite handling. 8153063 Bump spesh stats version on updates. ... (20 more lines)
19:00
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-g604da4d
rakudo/nom: 8bed4a67b4 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION
Bump NQP_VERSION

Getting all of the new spesh goodies,specifically from Moar: 604da4d Merge pull request #624 from MasterDuke17/patch-2 d195198 Fix spelling in comments 8325f01 Better no-arg and no-object-arg callsite handling. 8153063 Bump spesh stats version on updates. ... (21 more lines)
19:11
Ā¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....9-g82d06cc
dogbert2 oh, a new MAOR_REVISION :) 19:12
lizmat yeah... even MAOR bettar
good change test-t is now below 4 seconds 19:13
*chance
[Tux] ?? :-) 19:14
jnthn Would make me happy if so :)
dogbert2 maor improvements :)
lizmat down from 3.591 to 3.173 on my machine 19:15
jnthn m: say 3.173 / 3.591 19:16
camelia 0.883598?
jnthn Wow, not bad
Zoffix :o 19:17
AlexDaniel :o
timotimo :o
lizmat also, that's without the "has foo is default()" fix 19:18
Zoffix :O
lizmat as that broke people with R*
jnthn: feels like bare startup is now a lot lower as well 19:25
jnthn lizmat: Hmm, interesting
Though in a way that's expected somewhat
lizmat it's been a while since I've seen '0.102' :-)
jnthn In that all spesh work is done on a background thread. 19:26
So the main one can get one with starting up :)
Oh, also, I taught it not to enable spesh at all until various load-time stuff was done
So it doesn't even log for those instructions
But those things were there for a while, not just in the latest bump 19:27
lizmat ah, ok
jnthn But yeah, I was hoping that not blocking up the starting up thread with spesh work would help startup time :)
lizmat just realised that this week's Perl 6 Weekly was the 100th P6W she'd written 19:29
jnthn lizmat++ 19:30
wow :)
dogbert2 jnthn: what changes do you have in store for next week? 19:31
timotimo whoa, i didn't even know there's a "logging inhibitor" in there 19:33
dogbert2 hmm, the doc for subbuf-rw looks slighly duplicated: docs.perl6.org/type/Buf 19:47
Zoffix yeah :) 19:49
Zoffix & 19:50
[Coke] lizmat++ P6W - those are super helpful for getting the word out
japhb lizmat++ # P6W is also super-helpful for semi-regulars like myself 20:00
japhb wonders what the equivalent of the White Camel Award is for the Perl 6 community 20:01
timotimo "brilliant butterfly"
brrt lizmat++ indeed 20:02
zostay lizmat++ i read it every week, especially the summaries of new fixes and features
japhb timotimo: I like that name 20:03
Geth rakudo: dwarring++ created pull request #1129:
Fix comment
20:07
rakudo/nom: 412c576bd9 | (David Warring)++ (committed using GitHub Web editor) | src/core/List.pm
Fix comment
20:15
rakudo/nom: abf1cfe722 | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/core/List.pm
Merge pull request #1129 from dwarring/patch-3

Fix comment
jnthn dogbert2: Next week I'll see if I can get us able to do fastinvoke/inline on code object-y things, and then try and make a few things in the spesh graph more precise so we can produce better code 20:30
timotimo japhb: i might want to run spectests on this :) 20:36
wait 20:37
derp.
AlexDaniel lizmat++ yes! I've been reading p6weekly for months before I started using perlĀ 6, and it was probably the main thing that kept my interest 20:45
timotimo++ too :) 20:46
japhb Hmmm, appears p6doc depends on IO::String, and IO::String has a bunch of suspicious failures in its tests. (Suspicious as in "gets totally the wrong answer", not as in crashing.) 20:50
Hopefully this isn't a regression from the most recent bumps
timotimo AlexDaniel: but only a little bit :) 21:04
wordpress is still making people tweet out my twitter username when they share the stories on p6weekly and i'm not sure how to change that?
lizmat timotimo: that's for the better, because I don't have a twitter username :-) 21:06
japhb Rebuild at 8bed4a67b4^ is about to hit IO::String ... drumroll ... 21:09
Nope, that exploded too. 21:11
Trying again behind the next previous NQP bump 21:13
mspo so I have a 50% working version of my perl6.c replacement for the shell script working on the build 21:22
but I can't seem to get all of the libpaths
also I just stuck it into a varaible inside of create-moar-runner.pl, where I do a $crunner.sprintf(@libpaths, $moar), basically 21:23
is there a better way? :)
lizmat japhb: if it's ok before the last NQP bump, jnthn would like to know :-) 21:29
japhb lizmat: I've yet to find a good one. Broken at HEAD, broken in the same way (IO::String tests completely wrong) just before today's bump, broken in a different way (JSON::Marshal aborts tests) just before the previous bump. 21:38
It looks like the yet previous bump was 3 times in quick succession 5 days ago; trying right before the earliest of those. 21:41
Gah, 51e59eeb5 fails also. JSON::Marshal succeeds, IO::String succeeds, NativeHelpers::Blob breaks (aborted tests). 22:02
How's a person supposed to find a working build to even start a bisect?! *grumble*
Mind you, not one of those is actually a package I want directly; they're all dependencies of the modules I actually need. 22:03
lizmat japhb: so, is it broken on 2017.07 as well ? 22:04
japhb lizmat: Give me a few minutes, and I'll do a full rebuild there
AlexDaniel \o/ 22:09
yoleaux: I missed you so much!
lizmat japhb: sorry, calling it a night 22:12
japhb lizmat: I'll .tell you when it's ready 22:13
Good night!
.tell lizmat Everything works and installs with no test problems on 2017.07 22:24
yoleaux japhb: I'll pass your message to lizmat.
japhb .tell lizmat In case you want to replicate: I rebuild rakudo from fresh checkouts of all rakudo/nqp/moar, install panda and zef, then run: zef --/tap-harness --/cached install URI File::Temp p6doc Terminal::ANSIColor Term::termios Debugger::UI::CommandLine JSON::Tiny DBIish Linenoise Inline::Perl5 Inline::Python IRC::Client oo-monitors Grammar::Debugger App::Mi6 HTTP::UserAgent 22:27
yoleaux japhb: I'll pass your message to lizmat.
Zoffix lizmat++ # P6W are super useful 22:46
[Tux] lizmat, testing would be useless: smokes of perl5 are talking all resources. we'll see tomorrow 22:55