Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:00 lizmat joined #perl6-dev
00:15 BenGoldberg joined #perl6-dev
01:20 TimToady MasterDuke: the next step in that process is passing back fates via the current match object rather than via a cached thread context array
01:21 TimToady we also need to redo the thing I did once that made fate numbers unique across the entire process
01:21 llfourn joined #perl6-dev
01:22 TimToady (or otherwise find a way to qualify fate numbers by context)
01:22 TimToady then we can return the extra information and pass it down to the next level in a way that it can look at and bypass the rescan
01:23 MasterDuke TimToady: so it's not a completely trivial undertaking?
01:23 TimToady um, no...
01:23 TimToady or I'd'a done it by now :)
01:24 MasterDuke heh. timotimo's description did seem a little too easy
01:25 TimToady I think he was channeling something I said in one of my talks, where I kinda glossed over the hard bits :)
01:26 * TimToady was gonna tackle it in September, but has been fighting a cephalic shingles flareup, which makes him temporarily stupider
01:26 TimToady well, I hope it's temporary :)
01:26 MasterDuke ha. pretty sure i'm not up for the hard bits in anything named *nfa*
01:27 TimToady there are other things we can do there as well
01:27 TimToady caching the first decision based on initial character would cut down the number of initial states we have to examine, for instance
01:27 * MasterDuke has never heard of cephalic shingles before, but it doesn't sound pleasant
01:28 TimToady well, it's why I was blind in one eye for 14 years till I got a cornea transplant
01:28 TimToady this time we prevented it from getting back into my eye, yay
01:29 TimToady it's just a bit distracting to feel like one side of one's head is on fire if you so much as touch it
01:30 MasterDuke understandably
01:32 MasterDuke hopefully not the side you sleep on if you normally sleep on your side
01:34 TimToady well...I would prefer to think that sleep disruption explains the stupidity more than that my trigeminal nerve is drilling holes in my brane... :)
01:40 * TimToady should go eat some dinner if he doesn't want to become even stupiderer...
01:56 ilbot3 joined #perl6-dev
01:56 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:13 geekosaur joined #perl6-dev
02:25 Geth ¦ rakudo: skids++ created pull request #1178: Implement metamethod shorthand syntax (RT#131478)
02:25 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1178
02:25 synopsebot RT#131478 [new]: https://rt.perl.org/Ticket/Display.html?id=131478 Warning about $. when using metamethod
03:13 Geth ¦ rakudo: skids++ created pull request #1179: Fix for RT#128054 and RT#126569 ... needs experienced review ...
03:13 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1179
03:13 synopsebot RT#128054 [open]: https://rt.perl.org/Ticket/Display.html?id=128054 [PARSER] In a string enclosed in parens, a {}-interpolation can't access the topic $_ of a statement modifier
03:13 synopsebot RT#126569 [new]: https://rt.perl.org/Ticket/Display.html?id=126569 [BUG] xx-repeated expression enclosed in parens can't access the topic $_ of a statement modifier
03:17 lizmat joined #perl6-dev
04:27 Ven`` joined #perl6-dev
04:49 nativecallable6 joined #perl6-dev
04:49 evalable6 joined #perl6-dev
04:49 quotable6 joined #perl6-dev
04:49 committable6 joined #perl6-dev
04:49 bloatable6 joined #perl6-dev
04:49 bisectable6 joined #perl6-dev
04:49 unicodable6 joined #perl6-dev
04:49 greppable6 joined #perl6-dev
04:49 benchable6 joined #perl6-dev
04:49 releasable6 joined #perl6-dev
04:49 coverable6 joined #perl6-dev
04:49 squashable6 joined #perl6-dev
04:49 statisfiable6 joined #perl6-dev
06:05 brrt joined #perl6-dev
06:46 lizmat joined #perl6-dev
07:40 patrickz joined #perl6-dev
07:44 lizmat good *, #perl6-dev
07:44 yoleaux 3 Oct 2017 22:29Z <tyil> lizmat: was this your doing? :p https://ghostbin.com/paste/t9opu
07:44 yoleaux 01:30Z <Zoffix> lizmat: In case the "your doing" line needs context; there appeared to be new error, but it's our standard behaviour: https://irclog.perlgeek.de/perl6/2017-10-03#i_15252868
08:03 evalable6 joined #perl6-dev
08:06 lizmat Files=1226, Tests=75554, 387 wallclock secs (17.10 usr  6.09 sys + 2624.29 cusr 263.26 csys = 2910.74 CPU)
08:07 lizmat .tell tyil the ghostbin seems to be out of order, so I have no idea what you mean  :-(
08:07 yoleaux lizmat: I'll pass your message to tyil.
08:22 AelxDnaiel squashable6: next
08:22 squashable6 AelxDnaiel, ⚠🍕 Next SQUASHathon in 2 days and ≈1 hour (2017-10-07 UTC-12⌁UTC+14). See https://github.com/rakudo/rakudo/wiki/Monthly-Bug-Squash-Day
09:51 astj joined #perl6-dev
10:03 astj joined #perl6-dev
10:13 dogbert2 joined #perl6-dev
10:20 Zoffix lizmat: it just said "ssh : nqp not found; cloning"
10:38 W4RL0RD joined #perl6-dev
10:42 geekosaur because shell error messages are not error messages, and because you know it happens to be something that is expected in some cases and therefore everyone does, yes
10:50 brrt joined #perl6-dev
10:51 astj joined #perl6-dev
10:55 Zoffix and because you didn't read the chat log where the guy said he'll try to improve it on the weekend, yes
11:06 robertle joined #perl6-dev
11:32 d4l3k_ joined #perl6-dev
11:32 synopsebot joined #perl6-dev
11:48 pmurias joined #perl6-dev
11:48 pmurias jnthn: a declaration_static code ref and it's clones share the lexical scope?
11:51 timotimo "outer" is part of the static frame in moarvm i believe
11:51 timotimo so yeah, should
12:03 * pmurias hates the autoclosing scope hack
12:04 timotimo i don't know what you mean?
12:08 pmurias when you use a lexical scope that doesn't exist yet MoarVM makes up a "fake" one
12:08 timotimo i didn't know that
12:09 pmurias m: class Foo {...};Foo.foo; class Foo {my $foo = 123; method foo() {say($foo)}}; Foo.foo
12:09 camelia rakudo-moar 98fae3: OUTPUT: «(Any)␤123␤»
12:09 jnthn pmurias: Most typically that means that we're going to take care of closure cloning ourselves
12:09 jnthn As Rakudo does with Block.clone
12:11 timotimo ah
12:13 jnthn pmurias: If you hate it enough you'll implement something you do like that solves the same problems but somehow better ;-)
12:14 pmurias jnthn: I think it's the problems it solves that I hate :)
12:18 pmurias the bugs that are worked around with autoclosing I think I'll have to fix at some point to emit decent code
12:20 pmurias user code using scopes that don't exit yet is unfortunate
12:24 pmurias jnthn: from testing things it seems when you clone a declaration_static that has an already set outer scope you get a closure that doesn't get affected by outer scope updates but when you clone one that doesn't have it set yet, it shares it?
12:31 astj joined #perl6-dev
12:36 Geth joined #perl6-dev
14:07 yoleaux joined #perl6-dev
14:10 skids joined #perl6-dev
14:20 brrt left #perl6-dev
15:16 SourceBaby joined #perl6-dev
15:16 Undercover joined #perl6-dev
15:18 Zoffix squashable6: status
15:18 squashable6 Zoffix, ⚠🍕 Next SQUASHathon in 1 day and ≈18 hours (2017-10-07 UTC-12⌁UTC+14). See https://github.com/rakudo/rakudo/wiki/Monthly-Bug-Squash-Day
15:19 Zoffix m: «"mark ticket LHF and explain how to fix it" "fix it yourself and make a bug sandwich"».pick.say
15:19 camelia rakudo-moar 98fae3: OUTPUT: «fix it yourself and make a bug sandwich␤»
15:19 Zoffix Well, you can't argue with a bot.
15:19 Zoffix buggable: tag lhf
15:19 buggable Zoffix, There are 4 tickets tagged with LHF; See http://fail.rakudo.party/t/LHF for details
15:20 Zoffix hm OTOH we could use more LHFs
15:23 Zoffix ZofBot: man, 2015 Zoffix was such a n00b
15:23 ZofBot Zoffix, I am supposed to write a document xD damn :) it's dinner time here first http://www
15:26 Zoffix Anyone with OSX who can try running this: perl6 -e 'say (await start { qx/echo foo/ }).perl'
15:26 Zoffix Does it output "foo\n" or something else? https://rt.perl.org/Ticket/Display.html?id=127030#ticket-history
15:26 [Tux] This is Rakudo version 2017.09-203-g98fae3d84 built on MoarVM version 2017.09.1-553-ga4fef0bd
15:26 [Tux] csv-ip5xs        1.216 -  1.238
15:26 [Tux] test             9.773 -  9.786
15:26 [Tux] test-t           3.224 -  3.269
15:26 [Tux] csv-parser       0.906 -  0.919
15:40 Zoffix .ask AlexDaniel so what makes a ticket LHF? I figured out a fix for a couple of tickets (e.g. #125818 )and marked them LHF and commented the fix... but now I think that's kinda lame and people wouldn't wanna do these already-solved tickets.
15:40 yoleaux Zoffix: I'll pass your message to AlexDaniel.
15:41 synopsebot RT#125818 [open]: https://rt.perl.org/Ticket/Display.html?id=125818 [LHF] error message: Inf.base(16)
15:45 buggable New CPAN upload: Foo-Bar-Perl6-0.10.tar.gz by TBROWDER https://www.cpan.org/authors/id/T/TB/TBROWDER/Perl6/Foo-Bar-Perl6-0.10.tar.gz
15:45 buggable New CPAN upload: Foo-Bar-Perl6-0.10.zip by TBROWDER https://www.cpan.org/authors/id/T/TB/TBROWDER/Perl6/Foo-Bar-Perl6-0.10.zip
15:45 buggable New CPAN upload: Foo-Bar-Perl6-1.2.3.tar.gz by TBROWDER https://www.cpan.org/authors/id/T/TB/TBROWDER/Perl6/Foo-Bar-Perl6-1.2.3.tar.gz
15:45 buggable New CPAN upload: Foo-Bar-Perl6-1.2.3.zip by TBROWDER https://www.cpan.org/authors/id/T/TB/TBROWDER/Perl6/Foo-Bar-Perl6-1.2.3.zip
15:48 * Zoffix wonders why those URLs are 404s....
15:49 Zoffix Does Perl6 assume the source code files are UTF-8? Or does it try to guess?
15:50 Zoffix Like, on the language level. There's a ticket to implement EVAL Buf where Buf is converted using the same methods as if it were bytes from source file.... wonder what that process is for source files
15:51 timotimo i think it assumes
15:52 timotimo we do have a commandline flag i believe
15:52 timotimo --encoding=mode      specify string encoding mode
15:52 timotimo it doesn't say that it's for the input, though
15:53 timotimo but it just passes that to the open function when reading from the filename
15:53 ilmari Zoffix: whatever mirror www.cpan.org is resolving to for you (and me) hasn't caught up yet
15:53 timotimo i got that from nqp's HLL/Compiler, btw
15:54 ilmari cpan.metacpan.org has them
15:54 ilmari https://cpan.metacpan.org/authors/id/T/TB/TBROWDER/Perl6/
15:54 ilmari they're both fastly, but presumably different origins, and different expiry policies
15:55 pmurias jnthn: re question, I figured it out from reading the MoarVM source how it works
15:56 Zoffix Thanks.
16:09 Zoffix .tell AlexDaniel never mind. I changed my mind. The hunter does not give up their prey. Raaaaawwwrr \o/
16:09 yoleaux Zoffix: I'll pass your message to AlexDaniel.
16:11 AlexDaniel Zoffix: for me personally, the fact that someone came up with a solution in their head does not discourage me from working on a ticket
16:11 yoleaux 15:40Z <Zoffix> AlexDaniel: so what makes a ticket LHF? I figured out a fix for a couple of tickets (e.g. #125818 )and marked them LHF and commented the fix... but now I think that's kinda lame and people wouldn't wanna do these already-solved tickets.
16:11 yoleaux 16:09Z <Zoffix> AlexDaniel: never mind. I changed my mind. The hunter does not give up their prey. Raaaaawwwrr \o/
16:11 synopsebot RT#125818 [open]: https://rt.perl.org/Ticket/Display.html?id=125818 [LHF] error message: Inf.base(16)
16:11 AlexDaniel and you never know if this solution actually works
16:12 Zoffix Well, I tested it :)
16:12 jnthn pmurias: Ah, glad you got it figured. Was busy with $other-job. :)
16:12 AlexDaniel then you might have as well committed it instead of leaving a comment :D
16:14 AlexDaniel Zoffix: maybe RT #126669 is a good example of that. Somebody investigated a little bit and proposed a solution. There's no code but it's very clear what has to be done. Great LHF ticket IMO
16:14 japhb Zoffix: To me LHF means two things: 1. Fixes that require little effort given their value,  2. Fixes that are small enough to help someone onramp to contributing to a code base without getting frustrated.  Basically just enough to learn how to PR, write a test, mark a bug fixed, etc., and get a quick rush of happy brain chemistry.
16:14 synopsebot RT#126669 [open]: https://rt.perl.org/Ticket/Display.html?id=126669 [LHF][LTA] error with "need 6"/"use 6" (no "v")
16:14 AlexDaniel “of that” – a good example of a LHF ticket
16:15 * Zoffix wouldn't get happy brain chemistry by being the delivery boy for a fix someone else created :)
16:15 Zoffix ZofBot: I guess we're different that way!
16:15 ZofBot Zoffix, 5x faster than the top one, testing it only for numbers under 1000 https://gist
16:16 japhb Zoffix: That's why it's valuable to have *both* "solution-described, just do the footwork" and "solution unknown but expected easy" LHF bugs.
16:16 japhb That way beginners can pick which to do.
16:16 AlexDaniel yeah
16:17 Zoffix m: say Blob ~~ Cool
16:17 camelia rakudo-moar 98fae3: OUTPUT: «True␤»
16:17 Zoffix m: say utf8 ~~ Cool
16:17 camelia rakudo-moar 98fae3: OUTPUT: «False␤»
16:17 Zoffix Isn't utf8 a more precise Blob that surely can be a Cool?
16:17 japhb .oO( utf8 may think it's cool, but Cool disagrees. )
16:17 Zoffix m: say [.^mro, .roles] with "x".encode
16:17 camelia rakudo-moar 98fae3: OUTPUT: «No such method 'roles' for invocant of type 'utf8'. Did you mean any of these?␤    does␤    roll␤␤  in block <unit> at <tmp> line 1␤␤»
16:17 Zoffix m: say [.^mro, .^roles] with "x".encode
16:17 camelia rakudo-moar 98fae3: OUTPUT: «[((utf8) (Any) (Mu)) ((Blob[uint8]) (Positional[T]) (Stringy))]␤»
16:18 jnthn m: (supply loop { emit Bool.pick }).tap: *.say
16:18 camelia rakudo-moar 98fae3: ( no output )
16:19 jnthn m: react whenever (supply loop { emit Bool.pick }) { .say }
16:19 camelia rakudo-moar 98fae3: ( no output )
16:19 Zoffix Blob ~~ Cool being True seems off; Blob is a role, Cool is a class. Why does it give True? :S
16:19 jnthn Zoffix: Not sure, seems odd to me also
16:20 timotimo yeah with a { } around the inner loop it works
16:20 Zoffix m: say role Meows is repr("VMArray") is array_type(int) {} ~~ Cool
16:20 camelia rakudo-moar 98fae3: OUTPUT: «True␤»
16:20 Zoffix hm, ok
16:21 jnthn m: react whenever (supply { loop { emit Bool.pick } }) { .say }
16:21 jnthn m: (supply { loop { emit Bool.pick } }).tap: *.say
16:21 jnthn timotimo: heh, nice catch
16:21 timotimo (wait for it)
16:21 jnthn I guess it's not sinking
16:22 timotimo it relies on sinking to work?
16:22 camelia rakudo-moar 98fae3: OUTPUT: «(timeout)True␤False␤False␤True␤True␤True␤False␤True␤False␤False␤False␤True␤True␤False␤False␤True␤True␤False␤False␤False␤True␤True␤False␤False␤True␤True␤False␤False␤False␤False␤False␤False␤Fa…»
16:22 camelia rakudo-moar 98fae3: OUTPUT: «(timeout)False␤True␤True␤True␤True␤False␤False␤True␤False␤False␤False␤True␤True␤False␤True␤False␤True␤False␤False␤True␤False␤True␤False␤True␤False␤False␤True␤False␤False␤False␤True␤False␤Tru…»
16:22 jnthn Well, more like sink context I guess
16:22 jnthn lazy loop { ... } is a thing
16:22 timotimo m: react whenever (supply emit "hi") { .say }
16:22 camelia rakudo-moar 98fae3: OUTPUT: «hi␤»
16:22 timotimo mhm
16:23 timotimo m: react whenever (supply { lazy loop { emit Bool.pick } }) { .say }
16:23 timotimo m: react whenever (supply eager loop { emit Bool.pick }) { .say }
16:23 timotimo m: react whenever (supply sink loop { emit Bool.pick }) { .say }
16:24 Zoffix man, someone should make camelia multi-threaded. You guys are blocking the bot for me :)
16:24 camelia rakudo-moar 98fae3: OUTPUT: «(timeout)False␤True␤True␤False␤False␤True␤True␤False␤False␤True␤False␤False␤False␤False␤True␤True␤False␤True␤False␤True␤True␤True␤True␤True␤False␤False␤False␤True␤True␤True␤False␤False␤True…»
16:24 camelia rakudo-moar 98fae3: OUTPUT: «(timeout)True␤True␤False␤True␤True␤True␤False␤False␤True␤True␤True␤False␤True␤True␤True␤False␤False␤False␤False␤False␤True␤True␤False␤False␤False␤True␤False␤False␤False␤True␤True␤True␤False…»
16:24 camelia rakudo-moar 98fae3: OUTPUT: «(timeout)True␤False␤True␤True␤True␤True␤False␤True␤True␤True␤False␤True␤True␤True␤True␤False␤True␤True␤False␤False␤False␤False␤True␤True␤True␤False␤True␤True␤True␤True␤False␤True␤False␤Tru…»
16:25 timotimo m: react whenever (supply lazy loop { emit Bool.pick }) { .say }
16:25 timotimo hm, all of these work, eh?
16:25 camelia rakudo-moar 98fae3: OUTPUT: «(timeout)False␤True␤False␤False␤True␤False␤True␤False␤True␤True␤True␤True␤False␤False␤True␤False␤False␤True␤True␤False␤False␤True␤False␤False␤True␤False␤False␤True␤True␤False␤False␤False␤Fal…»
16:32 buggable joined #perl6-dev
16:36 Geth ¦ roast: 0e9d6ff7c2 | (Jonathan Worthington)++ | S17-procasync/stress.t
16:36 Geth ¦ roast: Test for RT #122709
16:36 Geth ¦ roast: review: https://github.com/perl6/roast/commit/0e9d6ff7c2
16:36 synopsebot RT#122709 [open]: https://rt.perl.org/Ticket/Display.html?id=122709 [CONC][BUG] `await`ing a Promise in a different thread sometimes hangs
16:47 robertle joined #perl6-dev
17:16 Ven`` joined #perl6-dev
17:18 lizmat joined #perl6-dev
17:21 astj joined #perl6-dev
17:38 Zoffix Well, I now see why EVAL(Buf) was never implemented... :) it's src/core/control.pm before stuff like Blob or Stringy (or Positional, I'm guessing) are defined....
17:39 Zoffix Wonder if it even needs to be this early
17:40 Zoffix Block.pm uses it, but I think it'll be already if it's post-delcared or something
17:48 Zoffix ZOFFLOP: t/spec/S17-supply/unique.t t/spec/S11-modules/nested.t
17:49 Zoffix ZOFVM: Files=1276, Tests=152529, 156 wallclock secs (22.81 usr  3.45 sys + 3353.48 cusr 233.36 csys = 3613.10 CPU)
17:58 Geth ¦ rakudo/nom: 38186fcdf7 | (Zoffix Znet)++ | src/core/Real.pm
17:58 Geth ¦ rakudo/nom: Improve error on Inf.base
17:58 Geth ¦ rakudo/nom:
17:58 Geth ¦ rakudo/nom: Fixes RT#125818: https://rt.perl.org/Ticket/Display.html?id=125818
17:58 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/38186fcdf7
17:58 synopsebot RT#125818 [open]: https://rt.perl.org/Ticket/Display.html?id=125818 [LHF] error message: Inf.base(16)
18:23 Zoffix not ok 3 - .message matches /'Cannot coerce NaN to an Int'/
18:23 Zoffix # Failed test '.message matches /'Cannot coerce NaN to an Int'/'
18:23 Zoffix # at SETTING::src/core/Any-iterable-methods.pm line 672
18:23 Zoffix # Expected: /'Cannot coerce NaN to an Int'/
18:23 Zoffix # Got:      Cannot convert NaN to Int:
18:24 Zoffix We really should do something with tests like these :/
18:26 Zoffix Gah, it was 2016 Zoffix that added them.
18:41 Zoffix 6.c-errata fails for me t/spec/S04-phasers/end.t
18:42 Zoffix But seems due to this: https://github.com/perl6/roast/commit/e29b00346adcda5f8f313f7c0681063c1a7d28cc
18:42 Zoffix I mean. errata test tests for bitshifted code while master doesn't. :|
18:43 Zoffix And for some reason t/packages/Test/Util.pm doesn't get recompiled or something
18:43 Zoffix nope, not it. tossed all .precomp dirs and the issue still there :S
18:46 Zoffix Oh, it's damn September Zoffix breaking stuff
18:46 Zoffix ZofBot: that guy's starting to piss me off
18:46 ZofBot Zoffix, I'm a bit surprised it allows it, but I guess the actual constraint is loose enough that you get away with it if you never made an instance of the class
18:47 AlexDaniel .tell MasterDuke maybe RT #123926 is for you
18:47 yoleaux AlexDaniel: I'll pass your message to MasterDuke.
18:47 synopsebot RT#123926 [new]: https://rt.perl.org/Ticket/Display.html?id=123926 [BUG] LTA error message without Levenshtein distance suggestion when mistyping enum value in signature in Rakudo
18:47 Zoffix With https://github.com/perl6/roast/commit/0940d21cf45b83ebea917e228916cdd986c01f22
18:48 Zoffix 6.c-errata t/spec/S17-supply/basic.t fails.
18:48 Geth ¦ nqp: fb1e5ccd39 | usev6++ | 10 files
18:48 Geth ¦ nqp: [jvm] Update stage0 for modified core op 'div_i'
18:48 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/fb1e5ccd39
18:48 Geth ¦ nqp: 6dc507f35e | usev6++ | 2 files
18:48 Geth ¦ nqp: [jvm] Die with 'Division by zero' in div_i, try 2
18:48 Geth ¦ nqp:
18:48 Geth ¦ nqp: Without this change a division by zero led to a Java exception:
18:48 Geth ¦ nqp: java.lang.ArithmeticException: / by zero
18:48 Geth ¦ nqp:
18:48 Geth ¦ nqp: For some reasons that didn't work well with 'dies-ok'. As a
18:48 Geth ¦ nqp: result t/nqp/059-nqpop.t was blowing up on the jvm backend.
18:48 Geth ¦ nqp: With this patch 'make test' is clean, again. Also, the error
18:48 Geth ¦ nqp: message is now identical to the other two backends.
18:49 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/6dc507f35e
18:49 * bartolin hopes he got the stage0 thing right, this time
18:50 Zoffix AlexDaniel: Looks like this needs to be applied to 6.c-errata but cherry-pick fails and I'm too lazy to fix the conflicts: https://github.com/perl6/roast/commit/7ece4e578714fea8b31931a15fc2d63e8416e49f#diff-3fa51700d89d9b4cc807854d30343bca
18:50 Zoffix Or rather, I'm too deep down the rabbit hole for it.
18:50 Zoffix I went in with this to fix Inf.base(16) LTA error lol :) I guess I'm glad I didn't leave it as LHF
18:51 AlexDaniel I'll cherry-pick it now
18:53 Geth ¦ roast/6.c-errata: 559661b979 | (Zoffix Znet)++ | 2 files
18:53 Geth ¦ roast/6.c-errata: Fix broken test function usage
18:53 Geth ¦ roast/6.c-errata:
18:53 Geth ¦ roast/6.c-errata: No change in the behaviour being tested.
18:53 Geth ¦ roast/6.c-errata:
18:53 Geth ¦ roast/6.c-errata: The `is_run` routine comes from Test::Util, which was recently
18:53 Geth ¦ roast/6.c-errata: updated. The updated version does not expect the user to do
18:53 Geth ¦ roast/6.c-errata: the bit shifting business on the exit code. Fix by removing that
18:53 Geth ¦ roast/6.c-errata: stuff from the tests that use this routine.
18:53 Geth ¦ roast/6.c-errata:
18:53 Geth ¦ roast/6.c-errata: [1] https://github.com/perl6/roast/commit/0940d21cf45b83ebea917e228916cdd986c01f22
18:53 Geth ¦ roast/6.c-errata: review: https://github.com/perl6/roast/commit/559661b979
19:00 weabot joined #perl6-dev
19:00 Zoffix ZOFVM: Files=1276, Tests=152541, 160 wallclock secs (22.61 usr  3.57 sys + 3423.62 cusr 243.30 csys = 3693.10 CPU)
19:02 Geth ¦ rakudo/nom: 2e72652826 | (Zoffix Znet)++ | src/core/Exception.pm
19:02 Geth ¦ rakudo/nom: Implement X::Numeric::CannotConvert exception
19:02 Geth ¦ rakudo/nom:
19:02 Geth ¦ rakudo/nom: It's a generic exception to throw when a numeric cannot be
19:02 Geth ¦ rakudo/nom: converted to something (gonna use it for Inf -> Int coercion).
19:02 Geth ¦ rakudo/nom: Ideally, X::Numeric::Real would be removed and this exception
19:02 Geth ¦ rakudo/nom: be used in its place, but there are 6.c-errata tests expecting
19:02 Geth ¦ rakudo/nom: X::Numeric::Real to exist, so I left it in as just an empty
19:02 Geth ¦ rakudo/nom: subclass of X::Numeric::CannotConvert
19:03 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2e72652826
19:03 Geth ¦ rakudo/nom: f04bd1d617 | (Zoffix Znet)++ | src/core/Num.pm
19:03 Geth ¦ rakudo/nom: Fail with a typed exception when failing Num.Int
19:03 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f04bd1d617
19:03 Geth ¦ roast: fcee82fcff | (Zoffix Znet)++ | 2 files
19:03 Geth ¦ roast: Do not test for exact error message text
19:03 Geth ¦ roast:
19:03 Geth ¦ roast: The tests are not part of 6.c-errata.
19:03 Geth ¦ roast:
19:03 Geth ¦ roast: The actual message changed due to removed article. Change tests
19:03 Geth ¦ roast: to look for proper typed exception instead.
19:03 Geth ¦ roast: review: https://github.com/perl6/roast/commit/fcee82fcff
19:04 travis-ci joined #perl6-dev
19:04 travis-ci NQP build passed. usev6 '[jvm] Die with 'Division by zero' in div_i, try 2
19:04 travis-ci https://travis-ci.org/perl6/nqp/builds/283328904 https://github.com/perl6/nqp/compare/3b1356871ea7...6dc507f35e28
19:04 travis-ci left #perl6-dev
19:06 Geth ¦ roast: 48ea502f0d | (Zoffix Znet)++ | S32-num/base.t
19:06 Geth ¦ roast: Test Inf/NaN.base throws useful error
19:06 Geth ¦ roast:
19:06 Geth ¦ roast: RT#125818: https://rt.perl.org/Ticket/Display.html?id=125818
19:06 Geth ¦ roast: Rakudo fix: https://github.com/rakudo/rakudo/commit/38186fcdf7
19:06 Geth ¦ roast:             https://github.com/rakudo/rakudo/commit/2e72652826
19:06 Geth ¦ roast:             https://github.com/rakudo/rakudo/commit/f04bd1d617
19:06 Geth ¦ roast: review: https://github.com/perl6/roast/commit/48ea502f0d
19:06 synopsebot RT#125818 [open]: https://rt.perl.org/Ticket/Display.html?id=125818 [LHF] error message: Inf.base(16)
19:06 [Coke] joined #perl6-dev
19:08 Geth ¦ roast/6.c-errata: a4c41c25a2 | (Jonathan Worthington)++ (committed by Aleks-Daniel Jakimenko-Aleksejev) | S17-supply/basic.t
19:08 Geth ¦ roast/6.c-errata: Remove tests with some odd exepctations
19:08 Geth ¦ roast/6.c-errata:
19:08 Geth ¦ roast/6.c-errata: They claimed to cover RT #123477, and there are indeed tests in this
19:08 Geth ¦ roast/6.c-errata: file that cover that issue. However, these tests went further: they
19:08 Geth ¦ roast/6.c-errata: expected not only that the protocol would be enforced from the point
19:08 Geth ¦ roast/6.c-errata: of view of an individual tap (which is what the RT ticket was using),
19:08 Geth ¦ roast/6.c-errata: but also that this would carry over to future taps of the same Supply.
19:08 synopsebot RT#123477 [resolved]: https://rt.perl.org/Ticket/Display.html?id=123477 Supply.done doesn't seem to terminate anything
19:08 Geth ¦ roast/6.c-errata: <…commit message has 10 more lines…>
19:08 Geth ¦ roast/6.c-errata: review: https://github.com/perl6/roast/commit/a4c41c25a2
19:08 AlexDaniel “exepctations” huh…
19:08 Zoffix :)
19:10 AlexDaniel it feels like it could have figured it out by itself. I wonder if there's some flag to make the diff try harder
19:11 AlexDaniel it's exactly the same chunk of code being removed, but I guess it got confused because everything below that chunk was different
19:11 AlexDaniel whatever
19:12 Zoffix .in 6h check if we can change X::Numeric::CannotConvert's $.target.^name to just $.target, which the .^name bit done by the user, if needed
19:12 yoleaux Zoffix: I'll remind you on 5 Oct 2017 01:12Z
19:13 Zoffix .botsnack
19:13 yoleaux :D
19:13 Zoffix \o/ no more synopsebot stealing snacks :)
19:13 Zoffix synopsebot: botsnack
19:13 synopsebot Zoffix, om nom nom nom
19:13 Zoffix :)
19:13 * Zoffix &
20:12 gfldex is the new JIT already active by default?
20:12 Zoffix Yes, AFAIUI
20:17 * lizmat hasn't seen any speedups yet, just a slower make spectest  :-(
20:26 jnthn Spectest is the worst case for pretty much any optimization except those that improve startup time
20:26 jnthn Test.pm is about the only thing that gets hot-ish, and in most cases the test is over before we've time to compute the optimized version
20:27 lizmat jnthn: which then also is true for any short-lived batch jobs  :-(
20:28 lizmat because that's what the spectest basically is  :-(
20:28 jnthn Well, yes and no
20:29 jnthn heh, short-lived batch job...where's the batch? :P
20:29 jnthn But such jobs are rarely scheduled 16+ at a time, anyway
20:31 jnthn Which is the other thing: we may well have moved the optimization to another thread so wallclock time is less impacted by us doing more optimization work...but if you have a bunch of processes doing that it'll be much more noticable.
20:33 Zoffix I thought the merge wasn't expected to bring any speedups but will let us add more optimizations in the future
20:33 Zoffix merge of moar-jit branch I kean
20:33 Zoffix *mena
20:33 Zoffix >_<
20:35 jnthn Zoffix: Yeah, it's largely new infrastructure that will do a bit better at some things, but we're hardly exploiting it at all yet
20:35 jnthn But it likely does cost some more cycles already, which spectest will be more sensitive to
20:36 jnthn lizmat: You may or may not find that MVM_SPESH_DISABLE=1 make spectest (and a tweak of the jobs) wins, if spectest time is a drag for you
20:37 lizmat jnthn: will try in a mo
20:45 timotimo wowza, how did the precomp file for Format::Lisp turn up 275 megabytes
20:46 jnthn o.O
20:47 timotimo i stumbled upon it while looking for stuff to move from my internal drive to my external drive
20:48 timotimo hm, i want to give moarvm a mode that skips the first up to 128 bytes until it finds the magic string
20:48 timotimo for --dump
20:51 timotimo my system is misbehaving :\
20:52 gfldex I do see a slight speedup on the box with many cores
20:54 timotimo i think it's from the process i had segfaulting
20:57 japhb Why doesn't the new JIT give immediate improvements?  From comments above and previously, my mental model is "More startup time, more effort spent to produce the jitted code, and not as many ops with JIT definitions."
20:58 japhb Is that correct, or is there something else?
20:58 timotimo the exprjit is a part of the template jit. anything it can't handle it'll just fall back to the template jit
20:59 timotimo but it tries to gobble up multiple pieces of bytecode in one go
20:59 japhb "template jit" ~~ "old jit"?
20:59 timotimo aye
20:59 japhb So it wasn't a wholesale replace but an add-on?
20:59 japhb Ah
20:59 timotimo yup
21:00 japhb So that indicates that only the first two pieces of my mental model could apply: startup time, and effort spent per jitted block
21:01 dogbert2 lizmat: have noticed that parsetime is up 30-50% on some spectest files when comparing with 2017.07
21:01 japhb (Since # of ops jitted would by design no less than before)
21:01 japhb *would be
21:02 timotimo there's now also a "cost function" to tune so that it selects the best way to turn what it thinks should be done into actual assembly language pieces
21:02 timotimo are you good at reading assembly? i'm not :)
21:03 japhb timotimo: Can you give an example?
21:03 lizmat make spectest: 370 seconds, with MVM_SPESH_DISABLE=1 308 seconds
21:03 lizmat jnthn: ^^^
21:03 jnthn There you are then
21:03 japhb (I was quite good at reading Intel-format assembly, but I never got in the habit of reading gas-format)
21:03 timotimo japhb: you can get it to spit out actual binary dumps into a folder, along with an index file that tells you what is what
21:05 japhb I meant, can you explain what the cost function actually tunes?  What options is it trying to decide between?
21:05 Geth ¦ rakudo/nom: cef3bf3e75 | (Elizabeth Mattijsen)++ | 2 files
21:05 Geth ¦ rakudo/nom: Take 2 on getting $/ info into auto-generated methods
21:05 Geth ¦ rakudo/nom:
21:05 Geth ¦ rakudo/nom: - make sure we null out current-match at end of compilation as well
21:05 Geth ¦ rakudo/nom: - --profile now shows the line of the class definition
21:05 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cef3bf3e75
21:06 jnthn japhb: The expression JIT takes a tree representing the program to produce and "tiles" it. Those tiles determine the assembly that's produced.
21:06 jnthn japhb: The costs drive tile selection, the aim being to pick the set of tiles of lowest cost
21:06 japhb jnthn: I remember that from brrt's early explanations ... ah, OK
21:06 timotimo brrt gave an example at one point, i don't remember what exactly it was
21:07 japhb jnthn: So it doesn't do exhaustive search, but he's tuning the tiling equivalent of A*'s cost function?
21:07 jnthn japhb: And the costs are based on how expensive executing that tile is likely to be (things like instruction count, memory access, etc.)
21:07 japhb hmmm
21:07 jnthn I suspect the paper is referenced somewhere
21:07 gfldex how are the chances to the the JIT output caches alongside precompiled bytecode?
21:08 timotimo low, gfldex
21:08 japhb Is it aware of the interactions between neighboring tiles?  Meaning, because reading a line of memory is likely cheaper the next time you do it?
21:09 timotimo i think only if you make big enough tiles to cover something like that? not sure
21:09 japhb Ah, OK.
21:09 jnthn japhb: I didn't dig into it that deeply yet, tbh; brrt would of course know the details :)
21:10 * japhb wonders how deep the rabbit hole before one can contribute there
21:10 timotimo brrt hopes it doesn't go very deep
21:10 * japhb keeps typing sentences that are missing
21:11 jnthn Pretty sure http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.456.9102&amp;rep=rep1&amp;type=pdf is the paper brrt implemented it from
21:11 japhb .oO( "I see you shiver with antici-" )
21:12 timotimo japhb: you could have a look at the expr files
21:13 jnthn I read through the docs and while understanding the exact details of the tiling algo is likely quite deep, actually writing tiles and assigning costs is eaiser; the docs suggest how to do that
21:15 evalable6 joined #perl6-dev
21:15 japhb What is the granularity of the fallback to the template JIT?  Does the new JIT fall back if it can't JIT an entire block?  I'm noticing that there are only a few tiles defined, especially among math ops.
21:15 jnthn Per basic block, I believe
21:16 japhb Hmmmm.
21:16 timotimo getting multiple BBs into one go is a future goal
21:17 timotimo oh
21:17 timotimo this is about falling back
21:17 timotimo the exprjit kicks in at the beginning of every BB and tries to get as much as it can
21:17 timotimo it can fall back right in the middle of a BB
21:18 astj joined #perl6-dev
21:19 jnthn I guess it'll do better once we fuse BBs at the end of spesh, too
21:19 jnthn Especially since I went on a BB honesty rampage in the summer :)
21:19 timotimo i imagine it could
21:19 japhb timotimo: So the BB will have half code generated by exprjit and then half by template JIT?
21:19 timotimo yeah, i've stumbled over many spesh graphs with series of fully empty BBs
21:19 timotimo that is correct
21:19 jnthn japhb: Yeah, that's what the code looked to be doing to me
21:19 jnthn There's an instruction iterator, it eats all it can, and then leaves the test to the template JIT
21:20 japhb Interesting.  I wonder how he bridges the register allocation ....
21:22 Geth ¦ rakudo: Tyil++ created pull request #1180: Check configuration file's existence before opening
21:22 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1180
21:22 timotimo japhb: i'd assume "spill everything"
21:26 * jnthn gone for a bit, or maybe until the morning :)
21:26 jnthn o/
21:27 timotimo japhb: you can also look at the jit log to see it spit out graphviz graphs for individual pieces
21:35 tyil joined #perl6-dev
21:36 tyil I just opened https://github.com/rakudo/rakudo/pull/1180/files, would adding a message like "No pre-existing configuration file found at <path>" be appreciated instead of it silently skipping that path?
21:44 [Coke] s/configuration file/installed file/ maybe.
21:46 tyil [Coke]: added and pushed that to the pr
21:47 timotimo this looks for nqp binaries, right?
21:48 tyil I dont know that much, just that it generated the warning described in the pr comment
21:48 tyil and someone recommended me to try and fix it, so thats what I'm trying
21:49 timotimo i see
21:54 astj joined #perl6-dev
22:22 evalable6 joined #perl6-dev
22:43 travis-ci joined #perl6-dev
22:43 travis-ci Rakudo build failed. Zoffix Znet 'Implement X::Numeric::CannotConvert exception
22:43 travis-ci https://travis-ci.org/rakudo/rakudo/builds/283335906 https://github.com/rakudo/rakudo/compare/38186fcdf7d1...2e7265282694
22:43 travis-ci left #perl6-dev
22:43 buggable [travis build above] ☠ All failures are due to: failed make test (1 failure). Across all jobs, only t/04-nativecall/13-cpp-mangling.t test file failed.
22:47 timotimo japhb: if you wanna, maybe takedispatcher would be a nice place to start. i see it break off the exprjit a bunch of times
22:51 timotimo though from grepping and tallying up it looks like atkey_o is the top instruction that stops the exprjit in its tracks
22:52 BenGoldberg joined #perl6-dev
22:56 timotimo looking closer at the jit log pays off, though. for example, band_i occurs a bunchton, but almost always in front of an if_i or unless_i
22:56 timotimo i.e. immediately preceding the end of a bb
23:01 skids joined #perl6-dev
23:04 mudman joined #perl6-dev
23:11 mudman squash: status
23:11 squashable6 mudman, ⚠🍕 Next SQUASHathon in 1 day and ≈10 hours (2017-10-07 UTC-12⌁UTC+14). See https://github.com/rakudo/rakudo/wiki/Monthly-Bug-Squash-Day
23:35 timotimo japhb: i have an idea for how to get more info about bytecode offsets in the bin files, let's see if i can get it to work
23:43 japhb timotimo: Ah, thank you.
23:43 japhb ++timotimo
23:43 timotimo okay, huh, it's a lot more complicated than i thought ... of course
23:43 Geth ¦ rakudo/nom: fab0667f76 | (Patrick Spek)++ | tools/lib/NQP/Configure.pm
23:43 Geth ¦ rakudo/nom: Check for the config file's existence before trying to open it
23:43 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fab0667f76
23:43 Geth ¦ rakudo/nom: f1908a6855 | (Patrick Spek)++ | tools/lib/NQP/Configure.pm
23:43 Geth ¦ rakudo/nom: Add output line indicating a file is not found
23:43 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1908a6855
23:43 Geth ¦ rakudo/nom: a28c00a1f3 | (Zoffix Znet)++ (committed using GitHub Web editor) | tools/lib/NQP/Configure.pm
23:43 Geth ¦ rakudo/nom: Merge pull request #1180 from Tyil/resolve-not-found-warning
23:43 Geth ¦ rakudo/nom:
23:43 Geth ¦ rakudo/nom: Check configuration file's existence before opening
23:43 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a28c00a1f3
23:44 tyil \o/
23:45 timotimo i thought i could just ask dasm what the current insert position for the bytecode buffer is after each tile emitted its stuff
23:46 timotimo brrt would know if it's possible to get the actual asm bytecode offset at that stage, and how to do it reliably
23:53 timotimo bedtime for now, though
23:53 timotimo japhb: you should be able to test pre-/post-merge performance with the MVM_JIT_EXPR_DISABLE env var
23:55 geekosaur left #perl6-dev

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