Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-02-26

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:16 IOninja dogbert17: t/spec/S17-supply/syntax.t is what I also see flap on occasion. Flapped just now while I was running a stresstest
04:32 pyrimidi_ joined #moarvm
05:22 tbrowder_ joined #moarvm
05:30 samcv_ joined #moarvm
06:46 pyrimidine joined #moarvm
08:16 samcv_ those darn flappers
09:36 domidumont joined #moarvm
11:04 domidumont joined #moarvm
11:21 geekosaur joined #moarvm
12:06 geekosaur joined #moarvm
12:14 * dogbert17 runs a stresstest something I don't do wery often. also wonders which test in syntax.t failed for IOnija
12:15 dogbert17 s/IOnija/IOninja/
12:17 MasterDuke dogbert17: have you looked into https://rt.perl.org/Ticket/Display.html?id=125507#ticket-history at all?
12:17 MasterDuke or https://rt.perl.org/Ticket/Display.html?id=125500
12:18 dogbert17 it looks vaguely familiar, does that code even run on the current rakudo (remembers something about a Supply complaint)
12:20 MasterDuke nope
12:20 MasterDuke complains that you can't do Supply.new
12:21 * dogbert17 heh, the stresstest segfaulted (harness6). Wonders if jnthn had an idea what was wrong with that or if it's still a mystery.
12:21 MasterDuke but i've never written anything with Supplies, so i don't know what the replacement should be
12:21 dogbert17 and neither have I :(
12:22 dogbert17 we need expert help :)
12:24 dogbert17 the error message is nice and offers many suggestions though
12:27 moritz pro tip: become an export!
12:27 moritz :-)
12:28 dogbert17 moritz: I changed line 14 to '$!queue = Supplier.new.Supply;'  code is here https://gist.github.com/anonymous/4071a06909f4df8cabb2
12:30 dogbert17 it seems to mork but breaks a little later on line 106 with 'Type check failed in binding; expected Positional but got Seq ((["Filesystem", "Inod...)'
12:31 dogbert17 s/mork/work/   what's up with my spelling :(
12:32 MasterDuke dogbert17: could probably just change those binds to assigns
12:33 * dogbert17 tries
12:34 dogbert17 now it fails at line 41 'Too many positionals passed; expected 1 argument but got 2
12:34 dogbert17 in block  at scratch.pl6 line 41
12:37 jnthn I guess I became an export about 10 years ago... :-)
12:37 yoleaux2 25 Feb 2017 16:06Z <IOninja> jnthn: I forcee some largish changes due to IO grant work. Some things have zero tests at all. Others, only tests in master. I currently plan to write an advance notice and publish it today-ish. The changes will land in 2017.04 release and will include a detailed info on what changed. If that's a bad plan, let me know.
12:37 yoleaux2 25 Feb 2017 16:13Z <IOninja> jnthn: Some examples: is `link` taking args in reverse (and being documented as such), despite using them in right order in error message. So I forcee this being changed to follow the same order of args as `ln` Linux command, which follows the "sub($existing-thing, $new-thing)" order that `move`, `rename` and ilk follow. The other change I'll propose is tossing Seek* enum and passing position to
12:37 yoleaux2 25 Feb 2017 16:13Z <IOninja> jnthn: .seek() as named args. The `link()` has no tests at all. The `seek()` only has the tests I added in January, 2017
12:37 yoleaux2 05:06Z <IOninja> jnthn: here's the notice draft and it deliniates the timeline on when more concrete info will be available, so people would know to look for it: https://gist.github.com/zoffixznet/b625809972d76952f05931e949a19ece
12:39 MasterDuke dogbert17: maybe it's the `my $s := qq:x< $cmd >;` part? i don't know what the x adverb does to qq
12:42 dogbert17 hmm, this is scandalous, do you actually have to know Perl6 do hunt SEGV's and leaks :-)
12:43 jnthn .tell IOninja The advance notice looks sensible overall. I think we'll need to evaluate the changes for impact on a case-by-case basis, and preferably - like we did with lexical module loading - try the out against ecosystem modules to understand their impact "in the wild".
12:43 yoleaux2 jnthn: I'll pass your message to IOninja.
12:44 MasterDuke jnthn: since you seem to be here. i was trying to figure out what the fix was you mentioned here http://irclog.perlgeek.de/perl6-dev/2016-09-08#i_13173728 . nine_ suggested https://gist.github.com/niner/da7d13490b3548b5176fa2192eaeee8b , but that didn't seem to fix the problems in `"a" x <large number>`
12:46 jnthn .tell IOninja The link argument order change I think we need to be cautious on, in so far as I fear that we could turn running code into something that causes data loss. Wouldn't the failure mode be replacing the target to link to with a link to nowhere? So may want to explore alternatives there.
12:46 yoleaux2 jnthn: I'll pass your message to IOninja.
12:48 jnthn MasterDuke: Curious, the nine++ patch looks sensible
12:48 jnthn I'll have to dig a bit more
12:50 MasterDuke jnthn: cool. there was a little bit of discussion here https://irclog.perlgeek.de/perl6-dev/2017-02-25#i_14164696
12:51 jnthn m: say ('x' x 2 ** 60).chars
12:51 camelia rakudo-moar dd4dfb: OUTPUT: «repeat count > 1073741824 arbitrarily unsupported...␤  in block <unit> at <tmp> line 1␤␤»
12:51 jnthn m: say ('x' x 2 ** 63).chars
12:51 camelia rakudo-moar dd4dfb: OUTPUT: «0␤»
12:52 jnthn m: say ('x' x 2 ** 64).chars
12:52 camelia rakudo-moar dd4dfb: OUTPUT: «Cannot unbox 65 bit wide bigint into native integer␤  in block <unit> at <tmp> line 1␤␤»
12:52 jnthn m: say ('x' x 2 ** 62).chars
12:52 camelia rakudo-moar dd4dfb: OUTPUT: «repeat count > 1073741824 arbitrarily unsupported...␤  in block <unit> at <tmp> line 1␤␤»
12:54 jnthn m: say 0x7FFFFFFFFFFFFFFF
12:54 camelia rakudo-moar dd4dfb: OUTPUT: «9223372036854775807␤»
12:54 jnthn m: say 2 ** 63
12:54 camelia rakudo-moar dd4dfb: OUTPUT: «9223372036854775808␤»
12:54 jnthn 2 ** 63 is actually 1 too big to represent
12:55 MasterDuke m: say ('x' x 2 ** 63 - 1).chars
12:55 camelia rakudo-moar dd4dfb: OUTPUT: «repeat count > 1073741824 arbitrarily unsupported...␤  in block <unit> at <tmp> line 1␤␤»
12:55 jnthn So it's an off-by-one
12:55 jnthn Because of the 2s-complement representation
12:56 jnthn We can represent down to -(2 ** 63) but only up to 2 ** 63 - 1
12:56 jnthn So yeah, the nine patch is close but not quite there, it seems
12:58 MasterDuke so it should actually be `if (bits > (sign ? 63 : 62)) {`?
13:02 jnthn I think that'll rule out too many values?
13:02 jnthn iiuc, libtommath stores only signed numbers and then has a seprate sign bit
13:02 jnthn Whereas a native int is stored in 2s complement, so we have an issue where we can represent a bigger negative than we can a positive
13:04 MasterDuke yeah, that `sign` nine added is 1 if `MP_NEG == SIGN(i)`, and i think SIGN() just looks at the mp_int.sign
13:05 MasterDuke so should that conditional get more complicated? if positive and == 63, check that it's not actually 2**63?
13:09 jnthn Yeah
13:12 MasterDuke if that's all that's required i can try to adapt nine's patch. unless you're already on it?
13:13 jnthn No, I'm off for lunch :)
13:13 jnthn And should probably rest/relax today :)
13:14 MasterDuke cool. if i get something working i'll create PR, otherwise leave a note that it was beyond me
13:34 geekosaur joined #moarvm
13:58 pyrimidi_ joined #moarvm
14:10 IOninja .
14:10 yoleaux2 12:43Z <jnthn> IOninja: The advance notice looks sensible overall. I think we'll need to evaluate the changes for impact on a case-by-case basis, and preferably - like we did with lexical module loading - try the out against ecosystem modules to understand their impact "in the wild".
14:10 yoleaux2 12:46Z <jnthn> IOninja: The link argument order change I think we need to be cautious on, in so far as I fear that we could turn running code into something that causes data loss. Wouldn't the failure mode be replacing the target to link to with a link to nowhere? So may want to explore alternatives there.
14:10 IOninja Case-by-case basis sounds good.
14:13 IOninja jnthn: tested out the link(); the failure mode is it throws `no such file or directory`. I'm not changing anything yet though and will include this in the Action Plan so everything will have a chance to review the proposed changed before I change anything.
14:13 IOninja s/everything/everyone/
15:11 zakharyas joined #moarvm
17:45 spebern joined #moarvm
18:17 dogbert17 hmm, I seem to be able to get t/spec/S17-supply/supplier-preserving.t to flap
18:19 dogbert17 it's the last test which fails from time to time 'not ok 11 - Close called as expected'. Seems as if a character gets lost. expected: 'xxxxxxxxxx', got: 'xxxxxxxxx'
19:01 pyrimidine joined #moarvm
19:16 dogbert17 wat, 'IOninja is now known as Zoffix'
19:16 Zoffix joined #moarvm
19:16 Zoffix heh
19:16 dogbert17 wazzup with that
19:17 dogbert17 is this the end of IOninja?
19:17 Zoffix Got an email that indicated a person didn't realize IOninja was a Zoffix and since the IOwesomeness directs to Zoffix for more info I figured it'd be more helpful if they could find a Zoffix on IRC easily :)
19:18 timotimo good point
19:23 dogbert17 timotimo: are you good at interpreting output from helgrind?
19:26 dogbert17 are complaints like 'Thread #1: lock order "0x6A37EA0 before 0x5A17960" violated' anything to worry about?
19:37 timotimo i'm not good at helgrind. not at all.
19:37 timotimo in theory those warnings point out potential deadlocks, i think?
19:40 dogbert17 if I run an empty p6 program a few complaints pop up. i.e https://gist.github.com/dogbert17/0200459af7ea31aea7acbfbf1ed2f6f1
20:08 zakharyas joined #moarvm
20:42 pyrimidine joined #moarvm
20:44 pyrimidine joined #moarvm
21:04 pyrimidine joined #moarvm
21:14 pyrimidine joined #moarvm
23:44 Sufrostico[m] joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary