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
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
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
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
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
samcv good * everyone 21:54