Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-08-04

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

All times shown according to UTC.

Time Nick Message
00:40 Geth ¦ rakudo/nom: 5d200f1e52 | (Jonathan Worthington)++ | src/core/Supply.pm
00:40 Geth ¦ rakudo/nom: Avoid a Failure in the `supply` implementation.
00:40 Geth ¦ rakudo/nom:
00:40 Geth ¦ rakudo/nom: Those end up taking a backtrace, which is rather expensive. This
00:40 Geth ¦ rakudo/nom: should decrease the cost of Supply block teardown a good bit.
00:40 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d200f1e52
00:40 jnthn Oops, what time?
00:40 jnthn 'night!
00:47 entonian joined #perl6-dev
00:48 Zoffix night
00:48 Zoffix ZofBot: it's hammer time!
00:48 ZofBot Zoffix, map({ sprintf($format, $_) })
01:53 ilbot3 joined #perl6-dev
01:53 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
02:22 BenGoldberg joined #perl6-dev
02:28 Ben_Goldberg joined #perl6-dev
02:29 http_GK1wmSU joined #perl6-dev
02:32 http_GK1wmSU left #perl6-dev
03:34 pharv joined #perl6-dev
04:12 vendethiel joined #perl6-dev
04:56 lizmat joined #perl6-dev
04:59 astj joined #perl6-dev
06:29 [Tux] This is Rakudo version 2017.07-129-g5d200f1e5 built on MoarVM version 2017.07-293-g3f33a841
06:29 [Tux] csv-ip5xs        2.541
06:29 [Tux] test            12.261
06:29 [Tux] test-t           4.184 - 4.594
06:29 [Tux] csv-parser      13.421
07:39 lizmat Files=1217, Tests=67414, 259 wallclock secs (13.93 usr  5.46 sys + 1689.04 cusr 170.50 csys = 1878.93 CPU)
07:57 cschwenz joined #perl6-dev
07:59 http_GK1wmSU joined #perl6-dev
08:01 http_GK1wmSU left #perl6-dev
08:30 vendethiel- joined #perl6-dev
08:35 astj joined #perl6-dev
08:48 vendethiel joined #perl6-dev
08:57 edehont joined #perl6-dev
09:40 vendethiel joined #perl6-dev
11:22 astj joined #perl6-dev
11:34 TimToady joined #perl6-dev
11:52 AlexDani` joined #perl6-dev
11:54 http_GK1wmSU joined #perl6-dev
11:56 http_GK1wmSU left #perl6-dev
12:18 dogbert17 joined #perl6-dev
12:21 AlexDani` joined #perl6-dev
13:09 astj joined #perl6-dev
14:06 astj joined #perl6-dev
16:01 sivoais joined #perl6-dev
16:15 astj joined #perl6-dev
16:16 TimToady joined #perl6-dev
16:41 edehont joined #perl6-dev
16:50 brrt joined #perl6-dev
17:16 lizmat m: use nqp; my $b := nqp::create(IterationBuffer); $b.push(Empty); dd $b   # sigh  :-(
17:16 camelia rakudo-moar 5d200f: OUTPUT: «(Empty,)?»
17:33 lizmat m: my %h = :42a; dd %h<b>:delete:exists:p   # pretty sure that should be Nil
17:33 camelia rakudo-moar 5d200f: OUTPUT: «()?»
17:34 lizmat or at least :!b
17:42 hoelzro joined #perl6-dev
17:56 lizmat Does anybody see any problem with object hashes inheriting from QuantHash, rather than from Map?
17:57 lizmat an object hash could be seen as a further extension of a Mix, namely allowing for all possible values, rather than Reals
17:57 lizmat fwiw, object hashes are much more like QuantHashes internally, because the keys are always .WHICH strings
18:06 astj joined #perl6-dev
18:23 japhb lizmat: Is this sufficiently complete to capture the current Associative type graph, or is there more this isn't showing?  https://docs.perl6.org/type/QuantHash
18:23 japhb I admit to having gotten very, very confused about all the Associative types we have.
18:24 [Coke] note that the type maps have to be updated manually every so often (and they haven't been in a while)
18:28 japhb [Coke]: Ah, I take it no one got around to doing something better than the big typemap file ...
18:28 japhb .oO( Temporary hacks aren't. )
18:31 lizmat the thing is that everytime I have a Map:D candidate, I need to check for object hashness
18:34 Zoffix NeuralAnomaly: status
18:35 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 http://perl6.fail/release/stats for details
18:38 jnthn lizmat: I thought the candidates for that were mixed in, thus overriding the various Map methods?
18:39 jnthn Or at least, the ones that need to differ
18:40 lizmat well, there's things like postcircumfix that could use an optimization
18:40 lizmat but now can't as we need to check for object hashness for a Map:D candidate
18:41 lizmat 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?
18:41 lizmat well, I have a benchmark where I could make %h<a> about 6x faster
18:42 lizmat but one loses the whole opt because of the extra object hashness test
18:43 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:44 lizmat well, the test is now the rather expensive: nqp::eqaddr(map.keyof,Str(Any))
18:45 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
18:45 jnthn Yeah, but I thought postcircumfix were meant to work in terms of calling methods
18:46 jnthn 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
18:48 lizmat but that's not to stop one from adding optimized candidates, no?
18:48 lizmat postcircumfix candidates I mean
18:48 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
18:48 jnthn What we really want is inlining
18:48 lizmat which is exactly my point
18:48 jnthn That needs small candidates.
18:49 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
18:50 jnthn Method calls are relatively easy to deal with.
18:50 jnthn Optimizing away other checks less so
18:50 lizmat ideally:  sub postcircumfix<{ }>(Map:D \SELF, Str:D \key) { nqp::atkey(nqp::getattr(SELF,Map,'$!storage'),key) }
18:51 jnthn Except it can't be that because auto-viv :)
18:51 lizmat yeah, so it needs an ifnull around it
18:51 lizmat and that would create the container
18:51 jnthn The typed thing is just a sign of a larger issue though
18:51 jnthn What if somebody writes a subclass of Map or Hash?
18:52 jnthn We must call their AT-KEY
18:53 jnthn 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:54 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
18:55 lizmat ok, that's good to hear...  shall I bump versions ?
18:55 lizmat :-)
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
18:55 jnthn You can. I didn't yet do the thing where it spots the final parameter is variant but the other two aren't though.
18:56 jnthn 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  :-)
18:57 lizmat hmmm... what was the way to get the commits that are brought in again?
18:58 jnthn Aside from bumping and seeing what the bot says? :)
18:58 lizmat the bot doesn't put it in the commit message
18:59 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
18:59 * Zoffix keeps meaning to make a single-command alias for that -_-
18:59 Zoffix or better yet, make the bot bumps tuff :)
18:59 jnthn (where git describe output is what's in MOAR_REVISION before you bump)
19:00 robertle joined #perl6-dev
19:00 Geth ¦ nqp: 82d06ccf35 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
19:00 Geth ¦ nqp: Bump MAOR_REVISION
19:00 Geth ¦ nqp:
19:00 Geth ¦ nqp: This gets the following commits:
19:00 Geth ¦ nqp: 604da4d Merge pull request #624 from MasterDuke17/patch-2
19:00 Geth ¦ nqp: d195198 Fix spelling in comments
19:00 Geth ¦ nqp: 8325f01 Better no-arg and no-object-arg callsite handling.
19:00 Geth ¦ nqp: 8153063 Bump spesh stats version on updates.
19:01 Geth ¦ nqp: <…commit message has 20 more lines…>
19:01 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/82d06ccf35
19:01 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.07-293-g3f33a84...2017.07-318-g604da4d
19:11 Geth ¦ rakudo/nom: 8bed4a67b4 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION
19:11 Geth ¦ rakudo/nom: Bump NQP_VERSION
19:11 Geth ¦ rakudo/nom:
19:11 Geth ¦ rakudo/nom: Getting all of the new spesh goodies,specifically from Moar:
19:11 Geth ¦ rakudo/nom: 604da4d Merge pull request #624 from MasterDuke17/patch-2
19:11 Geth ¦ rakudo/nom: d195198 Fix spelling in comments
19:11 Geth ¦ rakudo/nom: 8325f01 Better no-arg and no-object-arg callsite handling.
19:11 Geth ¦ rakudo/nom: 8153063 Bump spesh stats version on updates.
19:11 Geth ¦ rakudo/nom: <…commit message has 21 more lines…>
19:11 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8bed4a67b4
19:11 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.07-18-gdabd8a2...2017.07-19-g82d06cc
19:11 dogbert2 joined #perl6-dev
19:12 dogbert2 oh, a new MAOR_REVISION :)
19:12 lizmat yeah... even MAOR bettar
19:13 lizmat good change test-t is now below 4 seconds
19:13 lizmat *chance
19:14 lizmat [Tux] ??  :-)
19:14 jnthn Would make me happy if so :)
19:14 dogbert2 maor improvements :)
19:15 lizmat down from 3.591 to 3.173 on my machine
19:16 jnthn m: say 3.173 / 3.591
19:16 camelia rakudo-moar 5d200f: OUTPUT: «0.883598?»
19:16 jnthn Wow, not bad
19:17 Zoffix :o
19:17 AlexDaniel :o
19:17 timotimo :o
19:18 lizmat also, that's without the "has foo is default()" fix
19:18 Zoffix :O
19:18 lizmat as that broke people with R*
19:25 lizmat jnthn: feels like bare startup is now a lot lower as well
19:25 jnthn lizmat: Hmm, interesting
19:25 jnthn Though in a way that's expected somewhat
19:25 lizmat it's been a while since I've seen '0.102'  :-)
19:26 jnthn In that all spesh work is done on a background thread.
19:26 jnthn So the main one can get one with starting up :)
19:26 jnthn Oh, also, I taught it not to enable spesh at all until various load-time stuff was done
19:26 jnthn So it doesn't even log for those instructions
19:27 jnthn But those things were there for a while, not just in the latest bump
19:27 lizmat ah, ok
19:27 jnthn But yeah, I was hoping that not blocking up the starting up thread with spesh work would help startup time :)
19:29 * lizmat just realised that this week's Perl 6 Weekly was the 100th P6W she'd written
19:30 jnthn lizmat++
19:30 jnthn wow :)
19:31 dogbert2 jnthn: what changes do you have in store for next week?
19:33 timotimo whoa, i didn't even know there's a "logging inhibitor" in there
19:45 brrt joined #perl6-dev
19:47 dogbert2 hmm, the doc for subbuf-rw looks slighly duplicated: https://docs.perl6.org/type/Buf
19:49 Zoffix yeah :)
19:50 * Zoffix &
19:50 [Coke] lizmat++ P6W - those are super helpful for getting the word out
19:57 astj joined #perl6-dev
20:00 japhb lizmat++   # P6W is also super-helpful for semi-regulars like myself
20:01 * japhb wonders what the equivalent of the White Camel Award is for the Perl 6 community
20:01 timotimo "brilliant butterfly"
20:02 brrt lizmat++ indeed
20:02 zostay lizmat++ i read it every week, especially the summaries of new fixes and features
20:03 japhb timotimo: I like that name
20:07 Geth ¦ rakudo: dwarring++ created pull request #1129: Fix comment
20:07 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1129
20:15 Geth ¦ rakudo/nom: 412c576bd9 | (David Warring)++ (committed using GitHub Web editor) | src/core/List.pm
20:15 Geth ¦ rakudo/nom: Fix comment
20:15 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/412c576bd9
20:15 Geth ¦ rakudo/nom: abf1cfe722 | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/core/List.pm
20:15 Geth ¦ rakudo/nom: Merge pull request #1129 from dwarring/patch-3
20:15 Geth ¦ rakudo/nom:
20:15 Geth ¦ rakudo/nom: Fix comment
20:15 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/abf1cfe722
20:30 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:36 timotimo japhb: i might want to run spectests on this :)
20:37 timotimo wait
20:37 timotimo derp.
20:39 AlexDaniel joined #perl6-dev
20:45 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:46 AlexDaniel timotimo++ too :)
20:50 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 japhb Hopefully this isn't a regression from the most recent bumps
21:04 timotimo AlexDaniel: but only a little bit :)
21:04 timotimo 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?
21:06 lizmat timotimo: that's for the better, because I don't have a twitter username  :-)
21:09 japhb Rebuild at 8bed4a67b4^ is about to hit IO::String ... drumroll ...
21:11 japhb Nope, that exploded too.
21:13 japhb Trying again behind the next previous NQP bump
21:22 mspo so I have a 50% working version of my perl6.c replacement for the shell script working on the build
21:22 mspo but I can't seem to get all of the libpaths
21:23 mspo 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 mspo is there a better way? :)
21:29 lizmat japhb: if it's ok before the last NQP bump, jnthn would like to know  :-)
21:38 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:41 japhb It looks like the yet previous bump was 3 times in quick succession 5 days ago; trying right before the earliest of those.
21:45 astj joined #perl6-dev
22:02 japhb Gah, 51e59eeb5 fails also.  JSON::Marshal succeeds, IO::String succeeds, NativeHelpers::Blob breaks (aborted tests).
22:02 japhb How's a person supposed to find a working build to even start a bisect?!  *grumble*
22:03 japhb Mind you, not one of those is actually a package I want directly; they're all dependencies of the modules I actually need.
22:04 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
22:05 yoleaux joined #perl6-dev
22:09 AlexDaniel \o/
22:09 AlexDaniel yoleaux: I missed you so much!
22:12 lizmat japhb: sorry, calling it a night
22:13 japhb lizmat: I'll .tell you when it's ready
22:13 japhb Good night!
22:24 japhb .tell lizmat Everything works and installs with no test problems on 2017.07
22:24 yoleaux japhb: I'll pass your message to lizmat.
22:27 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.
22:46 Zoffix lizmat++ # P6W are super useful
22:55 [Tux] lizmat, testing would be useless: smokes of perl5 are talking all resources. we'll see tomorrow
23:12 BenGoldberg joined #perl6-dev

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