00:03 AlexDani` joined 00:05 AlexDani` joined 01:48 ilbot3 joined 04:50 lizmat joined
nine I can't believe how fast rakudo is, considering that a simple getattr has to loop so much... 07:36
moritz it has? 07:38
nine Finding the attribute slot in the object is looping over the inheritance hierarchy to find the requested class, then loop over the attributes to find the one with a matching name 07:39
moritz and I thoght we pre-compute the storage layout for each class individually 07:41
nine I guess that's what spesh does
09:42 cygx joined
cygx o/ 09:42
I can no longer build nqp using Strawberry Perl due to a segfault in MVM_nfg_crlf_grapheme() while generating the stage1 nqpmo.moarvm 09:43
09:53 Alexdaniel joined
jnthn nine: That's in the most late-bound case; in most cases a hint is provided which allows the whole search to be avoided entirely in favor of a bounds check, and spesh can eliminate the call to get_attribute entirely. 10:46
(And spesh can do that in cases where the static hint mechanism can't be used too) 10:48
11:02 cygx joined
jnthn fwiw, that Strawberry Perl SEGV cygx mentioned happens on Windows under MSVC too 11:27
I'll take a look tomorrow if nobody beats me to it
nine jnthn: is it ok to commit this debugging aid? gist.github.com/niner/50a724956cd0...962da2ca23 11:30
I got a bit tired of re-discovering how to "what the hell is this obj" in gdb every couple of months... 11:31
jnthn nine: Yes, though perhaps with a #define, and at minimum a comment saying it's not used anywhere in the rest of MoarVM but for debugging, so don't delete it as dead code :) 11:33
nine Gives me: (gdb) call MVM_dump_p6opaque(tc, obj, 0)
Stash->new(#`(from Map) $!storage=BOOTHash, #`(from Hash) $!descriptor, #`(from Stash) $!longname='A')
jnthn: ok, can do :) 11:34
jnthn Nite :)
Though, uh, ->new? :)
nine jnthn: is there any appropriate existing #define ?
Err... I guess 20 years of Perl 5 are hard to ignore ;)
jnthn nine: I can't think of one; I unified all of the GC debug aids under a single one a while ago
nine Oh, I could automatically set the #define on Configure.pl --debug 11:38
jnthn Or that
nine Calling it DEBUG_HELPERS for now
jnthn I think that makes sense
timotimo i also had a piece of code in moar-gdb that could print out p6opaque stuff, but it's not in master yet 12:56
13:09 domidumont joined 13:14 domidumont joined 13:28 zakharyas joined 13:42 Alexdaniel joined 16:37 lizmat joined 17:02 domidumont joined
Geth MoarVM: fd869b7a7c | (Stefan Seifert)++ | 2 files
Debugging aid for introspecting P6opaque objects

When compiling moarvm with --debug, the MVM_dump_p6opaque(tc, obj) function is available for calling from e.g. a debugger session.
17:28
17:49 MasterDuke joined 18:57 Alexdani` joined 19:13 zakharyas joined 20:00 Alexdani` joined 20:07 ggoebel joined, zakharyas joined 20:35 d4l3k_ joined, Zoffix joined 20:40 geekosaur joined 20:54 ilbot3 joined 21:06 ilmari[m] joined
samcv good * everyone 21:54