Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-12-20

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

All times shown according to UTC.

Time Nick Message
00:16 pyrimidine joined #perl6-dev
00:17 [Tux] joined #perl6-dev
00:39 pyrimidine joined #perl6-dev
00:51 lizmat joined #perl6-dev
01:14 pyrimidine joined #perl6-dev
01:26 pyrimidine joined #perl6-dev
01:39 pyrimidine joined #perl6-dev
01:42 notviki m: say now - 1
01:42 camelia rakudo-moar a96292: OUTPUT«Instant:1482198165.690788␤»
01:42 notviki m: say now-1
01:42 camelia rakudo-moar a96292: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤    now used at line 1. Did you mean 'not', 'HOW'?␤␤»
01:42 notviki m: say rand - 1
01:42 camelia rakudo-moar a96292: OUTPUT«-0.950830785771641␤»
01:42 notviki m: say rand-1
01:42 camelia rakudo-moar a96292: OUTPUT«-0.833198465193581␤»
01:55 pyrimidine joined #perl6-dev
02:22 pyrimidine joined #perl6-dev
02:24 japhb .tell ugexe I'm switching over from panda to zef in my "rebuild the world" scripts, and I'm running across a testing problem.  When a test crashes with a compile time error (===SORRY!===) such as a missing include, zef's testing framework reports 'No subtests run' and then 'All tests successful.' and later 'Testing [OK] for <dist>'.  An example of this is the tests for META6.
02:24 yoleaux2 japhb: I'll pass your message to ugexe.
02:32 pyrimidine joined #perl6-dev
02:49 ilbot3 joined #perl6-dev
02:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
02:52 kalkin-_ joined #perl6-dev
02:57 pyrimidine joined #perl6-dev
03:33 ugexe japhb: does that happen if you run with --/tap-harness? I'm guessing its a bug with TAP::Harness6 - if that option works that would confirm
03:33 yoleaux2 02:24Z <japhb> ugexe: I'm switching over from panda to zef in my "rebuild the world" scripts, and I'm running across a testing problem.  When a test crashes with a compile time error (===SORRY!===) such as a missing include, zef's testing framework reports 'No subtests run' and then 'All tests successful.' and later 'Testing [OK] for <dist>'.  An example of this is the tests for META6.
04:22 japhb .tell ugexe Good catch; --/tap-harness fixes the problem (which is to say that it correctly fails the tests on a compile-time error).
04:22 yoleaux2 japhb: I'll pass your message to ugexe.
04:24 japhb .tell ugexe As a side note, the backtrace of zef itself after "Aborting due to test failure: META6:ver('0.0.11'):auth('github:jonathanstowe') (use --force to override)" just seems confusing, not terribly helpful to the end user (maybe only show it with a debug option?
04:24 yoleaux2 japhb: I'll pass your message to ugexe.
04:45 ugexe reverted zef back to using perl5 prove as the default tester
04:45 yoleaux2 04:22Z <japhb> ugexe: Good catch; --/tap-harness fixes the problem (which is to say that it correctly fails the tests on a compile-time error).
04:45 yoleaux2 04:24Z <japhb> ugexe: As a side note, the backtrace of zef itself after "Aborting due to test failure: META6:ver('0.0.11'):auth('github:jonathanstowe') (use --force to override)" just seems confusing, not terribly helpful to the end user (maybe only show it with a debug option?
06:51 RabidGravy joined #perl6-dev
07:01 geekosaur joined #perl6-dev
07:16 pyrimidine joined #perl6-dev
07:17 [Tux] This is Rakudo version 2016.12-37-ga96292882 built on MoarVM version 2016.12
07:17 [Tux] csv-ip5xs        3.152
07:17 [Tux] test            13.425
07:17 [Tux] test-t           6.145
07:17 [Tux] csv-parser      14.028
07:26 pyrimidine joined #perl6-dev
07:53 samcv [Tux], help
07:53 [Tux] how?
07:53 samcv oh you aren't a bot?
07:53 [Tux] nope
07:53 samcv oh ok
07:54 samcv well not hard to see why, you always say the same thing at like intervals of whatever time :P
07:54 * samcv waves
08:16 pyrimidi_ joined #perl6-dev
08:45 lizmat Files=1155, Tests=53962, 197 wallclock secs (11.21 usr  4.74 sys + 1187.30 cusr 125.45 csys = 1328.70 CPU)
08:46 lizmat and good morning, #perl6-dev!
08:50 * DrForr waves.
08:58 lizmat https://news.ycombinator.com/item?id=13216924  # labster's advent post on HN
09:22 lizmat m: my @a <== 0..Inf; dd @a   # this feels incorrect to me, am I right ?
09:22 camelia rakudo-moar a96292: OUTPUT«Array @a = []␤»
09:26 lizmat Zoffix: re http://rakudo.org/2016/12/17/lexical-module-loading/ , added it to the list of things nine did last week
09:27 lizmat $ 6 'my @a <== 0..Inf'
09:27 lizmat Cannot push a lazy list onto a Array
09:27 lizmat is more what I expected.  jnthn notviki moritz ^^^ opinions ?
09:28 moritz sounds OK
09:29 timotimo lizmat: but the advent post is by tadzik :)
09:29 lizmat aaaaahhhhh
09:29 lizmat oops
09:29 lizmat why doesn't it say "tadzik" as the author then  :-)
09:30 lizmat labster was the one who posted it on HN
09:31 timotimo "ttjjss" is also the name of his own blog
09:34 timotimo lizmat: but awwaid didn't post the thing to HN either ... it was labster :)
09:35 timotimo i suggest a nice cup of tea :)
09:35 lizmat eh... where did I say it was awwaiid ?
09:41 tadzik yeah, my wordpress username is different
09:45 lizmat tadzik++   # elves  :-)
09:45 lizmat afk&
09:46 timotimo um, you didn'.
09:46 timotimo i suggest a nice cup of tea for myself, then
09:51 AlexDaniel joined #perl6-dev
09:52 * jnthn chuckles at [Tux] passing the inverse Turing test in the backlog :)
09:57 tadzik :D
11:27 geekosaur joined #perl6-dev
11:38 pyrimidine joined #perl6-dev
11:46 notviki samcv: don't believe him! That's what all bots want you to think!
11:46 samcv !!!
11:46 notviki lizmat: I know nothing about feeds
11:46 mst FEED ME SEYMOUR
11:47 samcv the bots are taking over
11:48 lizmat m: my @a <== 0..Inf; dd @a  # jnthn masak this feels incorrect
11:48 camelia rakudo-moar a96292: OUTPUT«Array @a = []␤»
11:52 dalek rakudo/nom: 99e33fc | lizmat++ | src/core/Array.pm:
11:52 dalek rakudo/nom: Another batch of fail -> throw conversions
11:52 dalek rakudo/nom:
11:52 dalek rakudo/nom: To prevent a Failure from becoming a one element list.
11:52 dalek rakudo/nom:
11:52 dalek rakudo/nom: This breaks one spectest:
11:52 dalek rakudo/nom:   my @a <== 0..Inf
11:52 dalek rakudo/nom: This used to "work" (resulting in an empty @a), it now throws:
11:52 dalek rakudo/nom:   Cannot push a lazy list onto a Array
11:52 dalek rakudo/nom: I think the new behaviour is correct and the test is actually faulty.
11:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/99e33fc264
11:56 pyrimidine joined #perl6-dev
12:06 pyrimidine joined #perl6-dev
12:24 pyrimidine joined #perl6-dev
12:25 awwaiid what hmm?
12:26 awwaiid oh, I just replied
12:34 pyrimidine joined #perl6-dev
12:37 dalek rakudo/nom: ece2c69 | lizmat++ | src/core/ (2 files):
12:37 dalek rakudo/nom: Abstract xx * Seq logic into R:I:RepeatValueIterator
12:37 dalek rakudo/nom:
12:37 dalek rakudo/nom: Part of an array_slice refactor I'm working on
12:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ece2c69fb6
12:43 pyrimidine joined #perl6-dev
12:52 pyrimidine joined #perl6-dev
13:02 pyrimidine joined #perl6-dev
13:13 dalek nqp: 0c9f07f | (Pawel Murias)++ | src/vm/js/ (3 files):
13:13 dalek nqp: [js] Implement nqp::ctxcallerskipthunk and nqp::ctxouterskipthunk.
13:13 dalek nqp: review: https://github.com/perl6/nqp/commit/0c9f07f313
13:13 dalek nqp: c43f720 | (Pawel Murias)++ | t/qast/01-qast.t:
13:13 dalek nqp: Test nqp::ctxouterskipthunk and nqp::ctxcallerskipthunk.
13:13 dalek nqp: review: https://github.com/perl6/nqp/commit/c43f72091c
13:19 dalek rakudo/nom: 5d084a7 | lizmat++ | src/core/ (2 files):
13:19 dalek rakudo/nom: R:I:RollerIterator should return an Iterator, not a Seq
13:19 dalek rakudo/nom:
13:19 dalek rakudo/nom: Also use a more general name of source variable, as this should work
13:19 dalek rakudo/nom: on any object that has a .roll method.
13:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d084a7daf
13:20 pyrimidine joined #perl6-dev
13:30 pyrimidine joined #perl6-dev
13:34 perlpilot joined #perl6-dev
13:37 dalek rakudo/nom: af1501a | lizmat++ | src/core/ (3 files):
13:37 dalek rakudo/nom: Remove a few is-lazy methods: the default in Mu§ is False
13:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af1501ab7f
13:39 pyrimidine joined #perl6-dev
13:45 notviki betlu/L
13:46 lizmat znif\O
13:57 pyrimidine joined #perl6-dev
14:00 notviki I guess now/time are keywords and rand does have a sub variant
14:00 notviki m: say time-1
14:00 camelia rakudo-moar af1501: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared routine:␤    time used at line 1␤␤»
14:00 notviki m: say time -1
14:00 camelia rakudo-moar af1501: OUTPUT«1482242448␤»
14:00 notviki m: say rand-1
14:00 camelia rakudo-moar af1501: OUTPUT«-0.671731379135938␤»
14:01 notviki The, ahem, "kok" token doesn't let keywords be followed by '-'
14:03 lucasb joined #perl6-dev
14:04 pmurias joined #perl6-dev
14:10 dalek rakudo/nom: ba7be97 | (Jimmy Zhuo)++ | src/vm/moar/ops/perl6_ops.c:
14:10 dalek rakudo/nom: Add missing MVMROOT in finddispatcher.
14:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba7be97db6
14:10 dalek rakudo/nom: af6c681 | (Jimmy Zhuo)++ | src/vm/moar/ops/perl6_ops.c:
14:10 dalek rakudo/nom: use MVMROOT correctly
14:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af6c68124e
14:10 dalek rakudo/nom: 8998646 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
14:10 dalek rakudo/nom: Merge pull request #956 from zhuomingliang/patch-9
14:10 dalek rakudo/nom:
14:10 dalek rakudo/nom: Add missing MVMROOT in finddispatcher.
14:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/89986465fa
14:10 pyrimidine joined #perl6-dev
14:16 pyrimidine joined #perl6-dev
14:24 pyrimidine joined #perl6-dev
14:42 dalek rakudo/nom: bd4e1f4 | lizmat++ | src/core/List.pm:
14:42 dalek rakudo/nom: Make sure List.roll always returns a Seq
14:42 dalek rakudo/nom:
14:42 dalek rakudo/nom: and throws Failures rather than potentially masquerading them as a
14:42 dalek rakudo/nom: single element list.
14:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd4e1f44f3
14:57 * notviki still feels like exploding failures like that severely limits usefulness of Failure mechanism... :/
14:57 AlexDaniel joined #perl6-dev
15:02 notviki m: given Failure.new { .elems.say for .Slip, .kv, .keys, .values, .pairs, .antipairs, .pick, .roll, .iterator, .classify(%), .categorize(%), .rotor(1), .reverse, .combinations, .permutations, .nodemap({;}), .duckmap({;}), .deepmap({;}), .tree };
15:02 camelia rakudo-moar bd4e1f: OUTPUT«1␤2␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤2␤1␤1␤1␤1␤1␤»
15:03 notviki Are we gonna make all of these throw too? Feels very wrong.
15:03 lizmat well, that was my interpretation of TimToady's stance on this
15:03 notviki Yeah, mine too.
15:04 notviki And it feels wrong :)
15:04 lizmat there's always rule 2
15:04 notviki :)
15:09 lizmat notviki: fwiw, the changes don't cause any regressions (except on suspect tests  :-)
15:10 notviki m: dd Failure.new.duckmap({;})
15:10 camelia rakudo-moar bd4e1f: OUTPUT«(Nil,)␤»
15:12 notviki Actually the above "all of these" example is not good, some of those return failures and it's just the .elems method that hides them
15:15 dalek rakudo/nom: 0745ae0 | lizmat++ | src/core/ (2 files):
15:15 dalek rakudo/nom: Rename R:I:RepeatValueIterator to UnendingvalueIterator
15:15 dalek rakudo/nom:
15:15 dalek rakudo/nom: It describes what it does better.  With "Repeat" one would expect
15:15 dalek rakudo/nom: a fixed number of repetitions
15:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0745ae07d4
15:18 notviki m: use MONKEY; augment class Failure { method elems { self } }; given Failure.new { .elems.say for .keys, .pairs, .antipairs, .pick(5), .roll(5), .iterator, .classify(%), .categorize(%), .rotor(1), .reverse, .combinations, .permutations, .nodemap({;}), .duckmap({;}), .deepmap({;}),  }
15:18 camelia rakudo-moar bd4e1f: OUTPUT«1␤1␤1␤1␤5␤1␤1␤1␤1␤1␤2␤1␤1␤1␤1␤»
15:19 notviki Time will tell, I guess. There's always 6.d :)
15:19 lizmat hmmm.... interesting idea
15:19 lizmat I mean, why don't we let Failure.elems do the throwing ?
15:20 notviki Well, it could just propagate it, but all of the other methods above would need to be added to Failure too, since they return something other than Failure
15:20 notviki So there's a lot of method adding involved, but we'll maintain the Failure mechanism even for listy things
15:21 notviki m: Failure.^mro.say
15:21 camelia rakudo-moar bd4e1f: OUTPUT«((Failure) Nil (Cool) (Any) (Mu))␤»
15:22 notviki m: Failure.^methods(:all).elems.say
15:22 camelia rakudo-moar bd4e1f: OUTPUT«274␤»
15:22 notviki well, that's the upper bound. Many of them likely work good as is
15:23 notviki or generate them automatically during compilatio? method $method-name(|) { self }
15:24 kalkin-_ left #perl6-dev
15:25 kalkin- joined #perl6-dev
15:25 lizmat notviki: that feels getting dirtier and dirtier
15:25 notviki hehe
15:26 notviki Well, but we made List.roll throw now, so it no longer propagates failures, but the problem is still half-fixed since Failure.new.roll(5) still hides the failure
15:26 lizmat notviki: it does ?
15:26 lizmat ]ah
15:27 lizmat ah
15:27 notviki m: Failure.new.roll(5).elems.say
15:27 camelia rakudo-moar bd4e1f: OUTPUT«5␤»
15:27 lizmat ok, sorry, it does...
15:27 lizmat m: (^Inf).roll(5)
15:27 camelia rakudo-moar bd4e1f: OUTPUT«Cannot .roll from a lazy list␤  in block <unit> at <tmp> line 1␤␤»
15:27 lizmat that actually throws now
15:28 lizmat m: my $a = (^Inf).roll(5)
15:28 camelia rakudo-moar bd4e1f: OUTPUT«Cannot .roll from a lazy list␤  in block <unit> at <tmp> line 1␤␤»
15:28 lizmat star-m: my $a = (^Inf).roll(5)
15:28 camelia star-m 2016.10: ( no output )
15:28 notviki I mean that if you call .roll(5) on something that you think is a list, but is actually a Failure, it doesn't throw.
15:28 lizmat yeah, gotcha
15:54 dalek nqp: 2302a03 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
15:54 dalek nqp: [js] Implement serialization and deserialization for the NFA repr.
15:54 dalek nqp: review: https://github.com/perl6/nqp/commit/2302a03c37
15:54 dalek nqp: c624649 | (Pawel Murias)++ | t/serialization/01-basic.t:
15:54 dalek nqp: Test serializing and deserializing a NFA repr.
15:54 dalek nqp: review: https://github.com/perl6/nqp/commit/c6246492de
16:04 cognominal joined #perl6-dev
16:36 ugexe nine: is there a 1 liner / single file way to demonstrate lexical module loading working?
16:37 nine m: { use NativeCall; } my $p = Pointer.new;
16:37 camelia rakudo-moar 0745ae: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> { use NativeCall; }⏏ my $p = Pointer.new;␤    expecting any of:␤        infix␤        infix stopper␤        stat…»
16:37 nine Yep, if it explodes, everything is fine.
16:37 notviki m: { use NativeCall; }; my $p = Pointer.new;
16:37 camelia rakudo-moar 0745ae: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Undeclared name:␤    Pointer used at line 1␤␤»
16:37 ugexe er, i mean I want to show 2 different versions of something being used
16:38 nine oh, thanks notviki
16:38 ugexe not sure if thats easily doable without having 2 physical distributions
16:38 nine Err...we'd need something with 2 different versions installed
16:39 ugexe would it theoretically be possible if 2 different Distribution were dynamically generated and loaded?
16:50 nine Of course. That would just be a very long 1 liner :) But a cool demo nevertheless
17:04 japhb .tell ugexe Current zef seems to be doing the right thing around compile-time test failures, thank you.  However, now I'm noticing that zef doesn't seem to be pulling the latest from github for https://github.com/jonathanstowe/META6 , which specifically includes a fix for the lexical import error I'm still seeing when I do a from-scratch rebuild and reach the `zef install` stage for that module.
17:04 yoleaux2 japhb: I'll pass your message to ugexe.
17:18 ugexe japhb: that distribution was updated but the version was not bumped, so the cached copy doesn't know its stale
17:18 yoleaux2 17:04Z <japhb> ugexe: Current zef seems to be doing the right thing around compile-time test failures, thank you.  However, now I'm noticing that zef doesn't seem to be pulling the latest from github for https://github.com/jonathanstowe/META6 , which specifically includes a fix for the lexical import error I'm still seeing when I do a from-scratch rebuild and reach the `zef install` stage for that module.
17:19 ugexe `zef --/cached install META6` should work in that scenario
17:20 ugexe the cache is stored at ~/.zef, so it persists between zef reinstallations
17:24 ugexe you can also store a copy of the resources/config.json in ~/.zef/config.json to modify the default behavior, such as removing the cache all together. But technically this is the correct behavior given the version number has not changed
17:30 japhb ugexe: Ah, OK, gotcha.
17:31 japhb That option name sounds funny in my head: "dash dash slash cached"
17:32 ugexe you can change the option name if you want as well heh https://github.com/ugexe/zef/blob/master/resources/config.json#L13
17:34 japhb ugexe: :-D
17:42 lucasb lizmat: hi, you don't have a 32 bit machine, per chance, do you? :)
17:42 lucasb I commented in https://rt.perl.org/Public/Bug/Display.html?id=130294#txn-1440487
17:42 lucasb ^^ with a snippet that segfaults on my 32 bit machine...
17:43 lucasb I hope someone can confirm it still segfaults on their machine
17:43 lucasb for 64 bit users, I guess raising the "f(839)" value to something bigger should help trigger the segfault (I forgot to mention this in the comment)
17:44 notviki lucasb: yup
17:44 notviki "-833 -834 -835 -836 -837 -838 Segmentation fault"
17:44 lucasb notviki: thanks!
17:44 lucasb noticed the ranges? starts in 839 and segfaults in -838. funny
17:45 notviki Doesn't segfault if I turn off the optimizer
17:46 notviki with --optimize=off
17:47 notviki And adding MVM_SPESH_DISABLE=1 causes it to segfault after -837
17:50 lucasb hm, interesting. I expected to be something related to the optimizer...
17:51 lucasb it's those kinds of bugs that only triggers after some threshold of iteration or allocation, idk :)
17:56 dalek nqp: d0b1381 | jnthn++ | tools/build/MOAR_REVISION:
17:56 dalek nqp: Get MoarVM with deep recursion fix.
17:56 dalek nqp: review: https://github.com/perl6/nqp/commit/d0b1381457
17:57 dalek roast: 275f7a2 | jnthn++ | integration/deep-recursion-initing-native-array.t:
17:57 dalek roast: Test to cover RT #130294.
17:57 dalek roast:
17:57 dalek roast: Gets its own test file, because it's rather fussy about actually
17:57 dalek roast: blowing up prior to the fix. (The first version of this test that
17:57 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130294
17:57 dalek roast: took the code directly from the RT was worthless, since adding
17:57 dalek roast: `use Test` hid the crash!)
17:57 dalek roast: review: https://github.com/perl6/roast/commit/275f7a21d4
17:58 notviki jnthn: would adding a comment inside that file indicating that it should be kept alone be acceptable (as far as repoing the crash goes)?
17:58 jnthn notviki: Yeah, that could be a good idea
17:58 notviki 'cause I can see the potential for it being merged into something else one day, since we currently are considering possibility to reorganize the roast some time in the future
17:58 jnthn I don't think that'd do enough to hide it
17:58 jnthn I can check ;)
17:58 jnthn Yeah :)
17:59 jnthn lucasb: heh, what timing...looks like the RT you're looking at is the one I spent a couple of hours hunting down this afternoon :P
17:59 notviki \o/
18:00 jnthn Just giving it a spectest run before doing a version bump, just in case.
18:12 jnthn Hm, I get a failurein t/spec/S03-feeds/basic.rakudo.moar
18:13 jnthn Anyone know about that?
18:13 notviki Yup
18:13 notviki jnthn: that's from lizmat's change: https://irclog.perlgeek.de/perl6-dev/2016-12-20#i_13771524
18:13 notviki I don't see the spectest being updated since that comment
18:14 lizmat before updating the spectest, I would like to know if we are in agreement on the test being faulty
18:15 lizmat afk again&
18:16 notviki jnthn: yeah, there was a question on that: https://irclog.perlgeek.de/perl6-dev/2016-12-20#i_13771060
18:16 jnthn notviki: bah, sto the answer is "we can have a short comment without hiding the SEGV" :P
18:16 dalek roast: 6c23a08 | jnthn++ | integration/deep-recursion-initing-native-array.t:
18:16 dalek roast: Comment on why a distinct test file.
18:16 dalek roast: review: https://github.com/perl6/roast/commit/6c23a08906
18:16 notviki \o/
18:18 dalek rakudo/nom: 58c79e2 | jnthn++ | tools/build/NQP_REVISION:
18:18 dalek rakudo/nom: Get latest MoarVM.
18:18 dalek rakudo/nom:
18:18 dalek rakudo/nom: This fixes a bug that affected a handful of programs that do deep
18:18 dalek rakudo/nom: recursion, causing GC panics or SEGVs.
18:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/58c79e23ad
18:18 dalek rakudo/nom: e8573e7 | jnthn++ | t/spectest.data:
18:18 dalek rakudo/nom: Run deep-recursion-initing-native-array.t.
18:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e8573e791e
18:29 dalek joined #perl6-dev
18:33 lucasb hehe, jnthn++ :)
18:34 notviki confirmed lucasb's test file no longer segfaults with the above fix
18:34 FROGGS joined #perl6-dev
18:36 jnthn Nice :)
18:44 lizmat jnthn: could it be that using a grammar could trigger the deep recursion issue as well
18:44 lizmat ?
18:45 jnthn lizmat: Potentially
18:45 jnthn It'd need a large grammar
18:45 jnthn Note that we didn't encounter this parsing Perl 6 programs. :)
18:45 lizmat true
18:45 jnthn So "yes" but "not immediately likely"
18:45 lizmat so far, I haven't been able to crash HARNESS_TYPE=6 make spectest anymore  :-)
18:46 lizmat 5 runs so far
19:06 ugexe the bug i'm seeing with prove6 is when a test does `use Not::Found;` it exits 0. `use-ok('Not::Found')` works as expected
19:07 lizmat 10 runs and clean
19:16 lizmat :-(   12th run crashed
19:16 lizmat so, it feels stabler than it was before
19:17 lizmat Unhandled exception in code scheduled on thread 15
19:17 lizmat No such method 'made' for invocant of type 'TAP::Runner::State'
19:19 buggable joined #perl6-dev
19:19 huggable joined #perl6-dev
19:20 SourceBaby joined #perl6-dev
19:20 dalek rakudo/nom: b8df3a6 | jnthn++ | src/core/Backtrace.pm:
19:20 dalek rakudo/nom: Fix detection of runtime errors in threads.
19:20 dalek rakudo/nom:
19:20 dalek rakudo/nom: I can only imagine this must have worked at some point in the past,
19:20 dalek rakudo/nom: but it sure didn't now. More odd is that this only showed up some
19:20 dalek rakudo/nom: of them time. Anyway, fixed now, and simple programs doing things
19:20 dalek rakudo/nom: like `await start die 'foo'` will now not report errors as if they
19:20 Undercover joined #perl6-dev
19:20 dalek rakudo/nom: were compile-time.
19:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b8df3a6131
19:22 japhb jnthn: So that bug fix basically translates to "THREAD-ENTRY is a ForeignCode, not a Sub" ?
19:22 jnthn japhb: It's more like, nqp::backtrace gives back the raw code refs
19:23 jnthn Which then get wrapped in ForeignCode
19:23 japhb Ah, gotcha
19:23 japhb Yeah, now I get it.
19:23 jnthn Which is a tad wasteful, but if we're rendering a backtrace then I figure it's all over at that point anyway.
19:23 jnthn otoh I guess we could just be logging it somewhere :)
19:24 jnthn But that doesn't need this detection either, and the .gist already came out fine.
19:24 japhb That depends if by "wasteful" you mean "takes a few milliseconds" or "takes a couple seconds"
19:24 jnthn The former :)
19:24 jnthn Which in this context means "can be safely ignored"
19:25 japhb quite
19:25 jnthn And probably far less that milliseconds too
19:25 jnthn Righty, I'm off to cook/eat/relax
19:26 jnthn Will hunt more bugs tomorrow, including trying to turn the OO::Monitors crash into a test case and see why my attempted fix wasn't sufficient.
19:26 jnthn bbl
19:33 japhb jnthn: \o/
19:35 japhb .ask nine With lexical import, how do you handle the case of A.pm6 uses B.pm6, but at runtime B needs to refer to an our variable in A?
19:35 yoleaux2 japhb: I'll pass your message to nine.
19:37 ugexe perl6 -e 'use Test; my $fake_test_dir = "/tmp/t".IO andthen *.mkdir; my $fake_test_file = $fake_test_dir.child("should-fail.t") andthen *.spurt(q|use Test; use Not::Found; ok 0;|); nok( run($_, $fake_test_file), "Failing test should fail: $_" ) for <prove prove6>;' # prove6 reporting passes for failing tests example
19:37 lizmat jnthn: while benchmarking, I ran into a weird thing wrt to Num.floor: while all other entries in the profile are abut the same, the variance on Num.floor is about 2.5x slower
19:38 lizmat (or faster, whichever way you look at it).
19:38 lizmat there *are* random numbers involved (100K of them)
19:39 lizmat so this could also indicate a problem with rand() ?
19:41 lizmat hnmm... now I even got a factor of 4x slower
19:43 dalek roast: bcec811 | (Zoffix Znet)++ | integration/error-reporting.t:
19:43 dalek roast: Test broken promise exceptions' backtraces know they're runtime
19:43 dalek roast:
19:43 dalek roast: Bug find: https://irclog.perlgeek.de/perl6/2016-12-20#i_13774176
19:43 dalek roast: Rakudo fix: https://github.com/rakudo/rakudo/commit/b8df3a6131
19:43 dalek roast: review: https://github.com/perl6/roast/commit/bcec81151d
19:43 notviki ugexe: where's this prove6?
19:44 lizmat tap-harness6/bin/prove6
19:44 lizmat aka https://github.com/Leont/tap-harness6.git
19:45 notviki Thanks.
19:49 notviki ugexe: well, it's here: https://github.com/Leont/tap-harness6/blob/master/bin/prove6#L48
19:49 notviki It just checks the failed number and doesn't consider exit code of the program itself, it seems
19:49 ugexe note that the bug itself occurs in rakudo/lib/TAP.pm6 (not the prove6 script itself)
19:50 ugexe because it happens to zef's interface as well: https://github.com/ugexe/zef/blob/master/lib/Zef/Service/TAP.pm6
19:51 ugexe oh ha its checkign failed == 0
19:52 notviki ugexe: seems the bug is in prove6, it's checking number of failed tests only, even tho TAP::Run has exit-code attribute too
19:52 notviki I mean .exit-status method: https://github.com/rakudo/rakudo/blob/nom/lib/TAP.pm6#L710
19:53 lizmat afk for some Rogue One
19:54 ugexe yeah, i just noticed i used failed == 0 in zef as well whoops
20:10 gfldex m: class { method ^name ($) { 'oi‽' } }
20:10 camelia rakudo-moar b8df3a: ( no output )
20:10 notviki .ask jnthn should stuff like class { method ^name ($) { "elems" } }; be spectested or is it a Rakudo-only detail? Like overriding the metamodel methods like that?
20:10 yoleaux2 notviki: I'll pass your message to jnthn.
20:10 gfldex îs this ^^^ valid Perl 6?
20:19 nine Serialization Error: missing static code ref for closure 'BUILD' (/usr/share/perl6/sources/C57EBB9F7A3922A4DA48EE8FCF34A4DC55942942:4)
20:19 yoleaux2 19:35Z <japhb> nine: With lexical import, how do you handle the case of A.pm6 uses B.pm6, but at runtime B needs to refer to an our variable in A?
20:19 nine Doesn't sound all that nice :/
20:20 nine japhb: wait...what?!
20:24 japhb nine: See https://github.com/ab5tract/Terminal-Print/blob/master/lib/Terminal/Print/Widget.pm6#L46 for a concrete failing example.  Terminal::Print uses Terminal::Print::Grid to implement the screen grid, and Terminal::Print::Widget uses Terminal::Print::Grid to implement its own backing grid.  A uses C, B uses C, now B wants to refer to a singleton in A.
20:25 japhb (concrete, and mildly more complex)
20:25 pmurias joined #perl6-dev
20:28 nine japhb: I thought Perl 6 really gave you enough tools, so you wouldn't need global variables anymore...
20:30 nine japhb: why isn't this grid thing passed to Terminal::Print::Widget's method?
20:30 pmurias joined #perl6-dev
20:33 japhb The check on that line is checking whether the target grid is the singleton's grid, in which case print to screen by default, otherwise, just composite onto the parent's grid -- it's a DWIM.  So the API *does* send the target grid explicitly, but this DWIM functionality is obviously not something you would want to trigger by being explicit, that's the opposite of DWIM.  :-)
20:35 nine Terminal::Print::Grid could simply have a flag for whether it's the screen grid
20:35 japhb Callers of .composite, such as animation controllers, won't necessarily know that any more easily.
20:37 nine japhb: why? Just default it to False and only set it to True in https://github.com/ab5tract/Terminal-Print/blob/master/lib/Terminal/Print.pm6#L86
20:38 japhb nine: Because Terminal::Print can have several grids at once, and at any given time only one is set as current-grid.
20:39 japhb And sure, I suppose T::P::Grid could add a flag indicating it is currently the screen singleton's current-grid, that seems like the wrong place to put that data, especially as it just screams thread UN-safety to me.
20:39 nine And global variables have been known to be especially thread safe?
20:39 japhb Note that the code I originally linked does a *method call* on that global.
20:40 japhb To get the current-grid.
20:40 japhb That method call can be made perfectly thread safe, and the global is a singleton that never changes after creation.
20:40 japhb I just can't refer to the global singleton at all, which seems wrong.
20:41 gfldex if you provide your own sub EXPORT you can expose anything (I may not have understood what your problem is)
20:41 japhb gfldex: Since A uses C and B uses C, I don't know that B can use A without horrible confusion.  Perhaps I am wrong in this ....
20:42 nine Put it into D
20:42 nine used by both A and C
20:42 gfldex you can do "forward declarations for modules"
20:43 japhb gfldex: You mean like: `package Terminal::Print { ... }` ?
20:43 gfldex yes
20:43 japhb Interesting, I didn't know that worked with package decls.
20:43 * japhb tries that.
20:43 gfldex and if you start with trianglish dependencies you will end up in a world of pain
20:44 gfldex japhb: err sorry, I ment you can't (I think)
20:44 nine You can but not between files
20:44 gfldex :D
20:44 nine Only for packages (classes, modules) in the same file
20:45 japhb Yeah, first variation didn't work.
20:47 AlexDaniel joined #perl6-dev
20:47 japhb nine: If I put the singleton in D, and both A and B use both C and D, will A and B see the same singleton?  (Meaning, will I accidentally create a doubleton?)
20:48 nine As long as it's initialized at runtime, you should be fine.
20:48 japhb Gah, just realized it's even worse: A uses B and C, B uses C.
21:00 pyrimidine joined #perl6-dev
21:09 pyrimidine joined #perl6-dev
21:11 japhb OK, so this is bringing up a general question for me.  In the new lexical imports world, 'use' forms a DAG of reachable imported declarations, with the main program at the root.  OK, fine, I get that.  But where's the escape hatch if I don't want a DAG, but want a DG instead?
21:13 arnsholt Circular uses have never been possible in Perl 6
21:14 arnsholt I can never remember *quite* why, but it's something to do with one-pass parsing, and allowing circular uses just messes everything up, IIRC
21:14 japhb arnsholt: But in Rakudo they have.
21:14 japhb Not circular 'use', circularity in the reachable declaration space.
21:15 arnsholt What do you mean by "reachable declaration space"?
21:16 japhb In other words, Rakudo's previous installation of packages into the global namespace allowed any package to reach any other package's "our" declarations just by using going through the global namespace.
21:16 japhb Even if neither package used the other, just as long as both were used somewhere, at some point.
21:16 arnsholt Ah, right
21:16 arnsholt That use-case
21:16 japhb I'm not saying I want that back by default -- I just want an escape hatch.
21:17 arnsholt use MONKEY-CLAIRVOYANCE perhaps =)
21:18 jnthn Putting stuff in PROCESS is probably one such escape hatch
21:18 japhb Something like, I dunno, CUR.package('Other::Package') returning a WHO
21:18 japhb jnthn: Oh, that's a decent point.
21:19 japhb Actually, I guess that wouldn't be CUR but rather CU or somesuch, but you get my general point.
21:24 stmuk joined #perl6-dev
21:25 * japhb finds temporary relief with PROCESS::<>
21:25 committable6 joined #perl6-dev
21:26 pyrimidine joined #perl6-dev
21:26 japhb It ain't ideal, but it means I don't have to do surgery on ab6tract's design
21:27 RabidGravy I took a quick look at that
21:32 japhb jnthn++  # Thank you for the suggestion, it worked: https://github.com/ab5tract/Terminal-Print/commit/5b2452f803cad853cc85af473b276e436b3268ac
21:37 pyrimidine joined #perl6-dev
21:55 pyrimidine joined #perl6-dev
22:04 pyrimidine joined #perl6-dev
22:22 pyrimidine joined #perl6-dev
22:41 pyrimidine joined #perl6-dev
22:50 pyrimidine joined #perl6-dev
22:56 cognominal joined #perl6-dev
23:28 pyrimidine joined #perl6-dev
23:37 pyrimidine joined #perl6-dev
23:55 pyrimidine joined #perl6-dev

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