gfldex is there a class or metaclass that represents the dispatcher? 11:46
is there actually a rule for this? github.com/perl6/doc/issues/1182 12:09
jnthn gfldex: What do you mean by "the dispatcher"? There are several things that we might call that in Perl 6... ) 12:11
gfldex: Method dispatch semantics are controlled by the meta-object of the thing you call the method on (ClassHOW implements find_method, for example)
gfldex: Multiple dispatch is just methods on Routine at the moment
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.
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 :)
gfldex But then there are things that are kind of free floating.
it did help
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
(Of course, things like spesh do what they can to reduce that to one or zero)
gfldex we don't really explain how MMD works mostly because there is only one person on this planet how knows :-> 12:15
jnthn It works as described in the design docs :P 12:18
gfldex that makes two persons then 12:20
the smartmatch github issue really worries me 12:21
IOninja ? 12:27
gfldex that one github.com/perl6/doc/issues/1182 12:28
IOninja and which part worries you? 12:29
s: (my %b = :1a), 'ACCEPTS', \(my %a = :1a) 12:31
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/266f...Map.pm#L99
IOninja Missing Map:D? candidate? 12:32
m: my %a = :1a; my %b{Any}; %b{item %a} = 42; say %a ~~ %b
camelia rakudo-moar 266f34: OUTPUTĀ«Trueā¤Ā» 12:33
IOninja wonder if that's on purpose...
gfldex as it stands ~~ is pretty unpedictable 12:34
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 :(
gfldex: The type on the right is always in charge of what's going to happen, but guess you already know that part :)
dogbert17 but I finally managed to get some output with the help of gdb, this time with a backtrace, hopefulle it gets us closer: gist.github.com/dogbert17/ffdabdb6...06d596434f 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
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:37
jnthn No, per S03: 12:38
Hash Hash hash mapping equivalent $_ eqv X
And
Associative Hash force hash comparison $_.Hash eqv X 12:39
IOninja Ah. OK :)
Thanks.
jnthn There's a few other entries in the table too for Hash
Could be worth checking :)
IOninja Will do. 12:40
dogbert17 jnthn: did the latest gist provide any new insights? If not I'll have to attack this problem in some other manner 13:32
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
"it exploded when GC started", but GC starts whenever it likes to
dogbert17 suspected as much, it's extremely annoying that ASAN was so incredibly silent 13:35
timotimo aye
jnthn Yeah, sadly not much new in there :(
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?
timotimo and into the malloc heap metadata region
dogbert17 no, a few lines before
was 515
jnthn Hm, no
timotimo you could try enabling valgrind support in moarvm, that will add a little redzone around FSA allocated blobs
dogbert17 will that option only be useful with valgrind? 13:37
timotimo mildly useful without
we don't have any code that checks for these redzones to be untouched, though
i could actually add a piece of code for that
dogbert17 sounds interesting
timotimo like, only check the redzone manually when valgrind is detected to not be running 13:38
dogbert17 is that easy to fix?
timotimo what is? 13:39
dogbert17 the piece of code that you might add
timotimo there's a question as to how to design its operation, but other than that it's simple 13:40
dogbert17 ok
I guess I'll give ASAN another chance
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
timotimo i'd say --optimize=1
it mostly means that when you poke around in gdb you often get "value optimized out" 13:42
dogbert17 ok, will do the same :)
timotimo if you don't want to poke around a bunch with gdb, you can as well use --optimize=3
if there was a way to use asan only with the host process and not the individual tasks ... 13:43
i mean, we could totally write some programs in C that behave as if they were TAP-using programs
and just run all of those?
dogbert17 gdb hasn't been a success story in this particular case :) 13:45
timotimo yeah
dogbert17 I won't give up that easily though maybe ASAN will be more forthcoming today :) 13:47
timotimo that'd be fantastic
it'd probably be interesting to set that environment variable that'll abort with ASAN as soon as it finds an error
rather than crashing the program a bit further down the road
it'll let you get better stack traces with gdb
dogbert17 do you know which option that might be? 13:48
timotimo ASAN_OPTIONS=abort_on_error=1
dogbert17 will set it immediately :) thx
and now ... it's a waiting game 13:49
timotimo yes :<
[Tux] This is Rakudo version 2017.01-204-g266f34571 built on MoarVM version 2017.01-49-g7ff91dbb 14:00
csv-ip5xs 2.908
test 12.436
test-t 5.107 - 5.112
csv-parser 13.828
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).
moritz \o lizmat 15:34
lizmat moritz o/
still recovering, mostly lurking :-)
timotimo oh there's a lizmat! :) 15:53
lizmat is glad she doesn't need to use her voice to chat 16:10
timotimo :D 16:17
so the concerts were enjoyable, yes?
lizmat yes, very much so... 16:30
timotimo i'm very glad :)
Geth rakudo: MasterDuke17++ created pull request #1018:
Make Parameter.[named_names, type_captures] list_s
18:04