Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-02-12

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

All times shown according to UTC.

Time Nick Message
00:34 pyrimidine joined #perl6-dev
01:35 FiveBroDeepBook joined #perl6-dev
01:35 FiveBroDeepBook left #perl6-dev
02:36 pyrimidine joined #perl6-dev
02:56 kalkin- joined #perl6-dev
02:57 pyrimidine joined #perl6-dev
03:17 geekosaur joined #perl6-dev
04:35 pyrimidine joined #perl6-dev
06:28 FiveBroDeepBook joined #perl6-dev
06:28 FiveBroDeepBook left #perl6-dev
07:39 Guest72436 joined #perl6-dev
09:58 pyrimidine joined #perl6-dev
11:19 ggoebel joined #perl6-dev
11:42 AlexDaniel joined #perl6-dev
11:46 gfldex is there a class or metaclass that represents the dispatcher?
12:02 RabidGravy joined #perl6-dev
12:03 patrickz joined #perl6-dev
12:09 gfldex is there actually a rule for this? https://github.com/perl6/doc/issues/1182
12:11 jnthn gfldex: What do you mean by "the dispatcher"? There are several things that we might call that in Perl 6... )
12:11 jnthn gfldex: Method dispatch semantics are controlled by the meta-object of the thing you call the method on (ClassHOW implements find_method, for example)
12:11 jnthn gfldex: Multiple dispatch is just methods on Routine at the moment
12:12 jnthn And deferral is a bunch of objects, with some base class and then subclasses for the multi/method/wrap cases
12:12 gfldex i'm asking because I'm thinking about the structure of the docs.
12:13 gfldex There are pleanty of things that are related to a class like Routine or Match.
12:13 jnthn OK, I dunno if what I just said helps :)
12:13 gfldex But then there are things that are kind of free floating.
12:13 gfldex it did help
12:14 jnthn One further note is that a multi-method dispatch is actually two dispatches: one to the proto method, then another to the candidate
12:14 jnthn (Of course, things like spesh do what they can to reduce that to one or zero)
12:15 gfldex we don't really explain how MMD works mostly because there is only one person on this planet how knows :->
12:18 jnthn It works as described in the design docs :P
12:20 gfldex that makes two persons then
12:21 FiveBroDeepBook joined #perl6-dev
12:21 FiveBroDeepBook left #perl6-dev
12:21 gfldex the smartmatch github issue really worries me
12:27 IOninja ?
12:28 gfldex that one https://github.com/perl6/doc/issues/1182
12:29 IOninja and which part worries you?
12:31 IOninja s: (my %b = :1a), 'ACCEPTS', \(my %a = :1a)
12:31 SourceBaby IOninja, Sauce is at https://github.com/rakudo/rakudo/blob/266f345/src/core/Map.pm#L99
12:32 llfourn joined #perl6-dev
12:32 IOninja Missing Map:D? candidate?
12:32 IOninja m: my %a = :1a; my %b{Any}; %b{item %a} = 42; say %a ~~ %b
12:33 camelia rakudo-moar 266f34: OUTPUT«True␤»
12:33 IOninja wonder if that's on purpose...
12:34 gfldex as it stands ~~ is pretty unpedictable
12:35 dogbert17 jnthn: my attempts to get some ASAN output from running spectest with HARNESS_TYPE6 has been a dismal failure. when I went to bed I even started a valgrind run in desperation...no dice
12:35 jnthn Aww :(
12:35 jnthn gfldex: The type on the right is always in charge of what's going to happen, but guess you already know that part :)
12:36 dogbert17 but I finally managed to get some output with the help of gdb, this time with a backtrace, hopefulle it gets us closer: https://gist.github.com/dogbert17/ffdabdb6edfdb64aff1d2e06d596434f
12:36 jnthn But can be worth making clear in the docs, since provided you know what you have on the right, you can go to the page for that type
12:37 IOninja jnthn: but is %hasha ~~ %hashb supposed to try to lookup %hasha as being a key of %hashb rather than check if the two hashes are same, as is with arrays?
12:38 jnthn No, per S03:
12:38 jnthn Hash        Hash      hash mapping equivalent $_ eqv X
12:38 jnthn And
12:39 jnthn Associative Hash      force hash comparison   $_.Hash eqv X
12:39 IOninja Ah. OK :)
12:39 IOninja Thanks.
12:39 jnthn There's a few other entries in the table too for Hash
12:39 jnthn Could be worth checking :)
12:40 IOninja Will do.
13:08 pyrimidi_ joined #perl6-dev
13:32 dogbert17 jnthn: did the latest gist provide any new insights? If not I'll have to attack this problem in some other manner
13:34 timotimo dogbert17: the thing is when the error is triggered in GC because of some corruption to malloc's heap, there's hardly any information in the stack traces that'd help
13:34 timotimo "it exploded when GC started", but GC starts whenever it likes to
13:35 dogbert17 suspected as much, it's extremely annoying that ASAN was so incredibly silent
13:35 timotimo aye
13:35 jnthn Yeah, sadly not much new in there :(
13:36 timotimo it could be that we're corrupting past the FSA's boundaries
13:36 jnthn Hm, is that line number the same as yesterday's one?
13:36 timotimo and into the malloc heap metadata region
13:36 dogbert17 no, a few lines before
13:36 dogbert17 was 515
13:36 jnthn Hm, no
13:36 timotimo you could try enabling valgrind support in moarvm, that will add a little redzone around FSA allocated blobs
13:37 dogbert17 will that option only be useful with valgrind?
13:37 timotimo mildly useful without
13:37 timotimo we don't have any code that checks for these redzones to be untouched, though
13:37 timotimo i could actually add a piece of code for that
13:37 dogbert17 sounds interesting
13:38 timotimo like, only check the redzone manually when valgrind is detected to not be running
13:38 dogbert17 is that easy to fix?
13:39 timotimo what is?
13:39 dogbert17 the piece of code that you might add
13:40 timotimo there's a question as to how to design its operation, but other than that it's simple
13:40 dogbert17 ok
13:40 dogbert17 I guess I'll give ASAN another chance
13:41 timotimo i'd imagine it'd check if the redzone bytes haven't been overwritten with different values when a piece of memory handled by the FSA gets freed
13:41 dogbert17 btw, is it important tou build with --no-optimize? doing that slows things down alot
13:41 timotimo i'd say --optimize=1
13:42 timotimo it mostly means that when you poke around in gdb you often get "value optimized out"
13:42 dogbert17 ok, will do the same :)
13:42 timotimo if you don't want to poke around a bunch with gdb, you can as well use --optimize=3
13:43 timotimo if there was a way to use asan only with the host process and not the individual tasks ...
13:43 timotimo i mean, we could totally write some programs in C that behave as if they were TAP-using programs
13:43 timotimo and just run all of those?
13:45 dogbert17 gdb hasn't been a success story in this particular case :)
13:45 timotimo yeah
13:47 dogbert17 I won't give up that easily though maybe ASAN will be more forthcoming today :)
13:47 timotimo that'd be fantastic
13:47 timotimo it'd probably be interesting to set that environment variable that'll abort with ASAN as soon as it finds an error
13:47 timotimo rather than crashing the program a bit further down the road
13:47 timotimo it'll let you get better stack traces with gdb
13:48 dogbert17 do you know which option that might be?
13:48 timotimo ASAN_OPTIONS=abort_on_error=1
13:48 dogbert17 will set it immediately :) thx
13:49 dogbert17 and now ... it's a waiting game
13:49 timotimo yes :<
14:00 [Tux] This is Rakudo version 2017.01-204-g266f34571 built on MoarVM version 2017.01-49-g7ff91dbb
14:00 [Tux] csv-ip5xs        2.908
14:00 [Tux] test            12.436
14:00 [Tux] test-t           5.107 - 5.112
14:00 [Tux] csv-parser      13.828
14:51 llfourn joined #perl6-dev
15:20 pyrimidine joined #perl6-dev
15:30 lizmat .
15:30 yoleaux2 10 Feb 2017 16:50Z <IOninja> lizmat: maybe I'm missremembering, but I think I saw a commit by you go in, ensuring .pull-one can be called even after IterationEnd was returned. Turns out such behaviour is undefined and that commit can be removed, unless I'm imagining things (don't see anything relevant in gitlog).
15:33 robertle joined #perl6-dev
15:34 moritz \o lizmat
15:34 lizmat moritz o/
15:34 lizmat still recovering, mostly lurking  :-)
15:53 timotimo oh there's a lizmat! :)
15:58 pyrimidi_ joined #perl6-dev
16:02 camelia joined #perl6-dev
16:10 * lizmat is glad she doesn't need to use her voice to chat
16:17 timotimo :D
16:17 timotimo so the concerts were enjoyable, yes?
16:30 lizmat yes, very much so...
16:30 timotimo i'm very glad :)
16:38 llfourn joined #perl6-dev
17:34 geekosaur joined #perl6-dev
17:39 llfourn joined #perl6-dev
17:42 AlexDaniel joined #perl6-dev
17:59 nine joined #perl6-dev
18:01 camelia joined #perl6-dev
18:02 geekosaur joined #perl6-dev
18:04 Geth ¦ rakudo: MasterDuke17++ created pull request #1018: Make Parameter.[named_names, type_captures] list_s
18:04 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1018
18:39 llfourn joined #perl6-dev
19:14 tadzik joined #perl6-dev
19:29 agentzh joined #perl6-dev
19:39 llfourn joined #perl6-dev
20:02 ilmari[m] joined #perl6-dev
20:16 pyrimidine joined #perl6-dev
20:29 agentzh joined #perl6-dev
20:41 llfourn joined #perl6-dev
20:44 RabidGravy joined #perl6-dev
21:42 llfourn joined #perl6-dev
22:27 agentzh joined #perl6-dev
22:44 llfourn joined #perl6-dev
23:45 llfourn joined #perl6-dev

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