02:03 retupmoca joined 02:47 ilbot3 joined 03:16 xiaomiao joined 03:30 khagan joined 03:44 vendethiel joined 07:28 vendethiel joined 07:41 FROGGS joined 07:58 Ven joined 07:59 Ven joined 08:01 Ven_ joined 08:04 xiaomiao left 08:23 vendethiel joined
nwc10 nine: No idea if this is interesting: morepypy.blogspot.co.at/2016/02/c-a...pdate.html 08:28
08:29 zakharyas joined
nine nwc10: thanks! Definitely interesting. I wonder why they used to have 4 dictionaries. I seem to get by just fine with a single array 08:39
09:16 vendethiel joined 09:20 Redaa joined 09:32 Ven joined 10:18 brrt joined 10:45 domidumont joined 11:08 vendethiel joined 11:29 Ven joined 11:55 vendethiel joined
dalek arVM: 24b3867 | (Gerd Pokorra)++ | src/ (3 files):
Fix the build when not bundling libtommath.
12:04
brrt hey #moarvm 12:25
nwc10 hi brrt 12:26
brrt i was looking this morning at reinstatint the little 'affordances' in the expr jit that used to be in th per-node compilation code, and that are now partially in the tile-list generation code
reinstating
anyway, i came across COPY, which is basically a register-forcing op 12:27
jnthn o/ brrt
brrt \o jnthn
moritz \o *
brrt the thing is,COPY is ultimately a hint to the register allocator 12:28
but, the register allocator, is currently still inline
ok, that answers stuff
it does not belong in the tiling
or rather, it belongs as a 'marker' pseudotile
not as a 'doing' pseudotile
ugh, not well thought out 12:29
not enough brainspace :-( 12:32
12:53 Ven_ joined 13:15 Ven joined 13:30 Ven joined 13:47 brrt joined 13:51 vendethiel joined
timotimo oh, what, that's gerd! 14:12
or is that not_gerd?
great to see them commit again in any case!
FROGGS timotimo: not_gerd is gerdr on github 14:18
timotimo ah, so it's gerd rather than not_gerd 14:19
thanks
jnthn Yeah, patch arrived in my mail this morning :) 14:20
FROGGS I still wonder what happened to not_gerd
timotimo me, too 14:21
jnthn three, don't know anything there :( 14:23
timotimo also, zoffix seems to be sick or something, and has been gone for many moons 14:24
jnthn Yeah...sounds very un-fun
moritz timotimo: I think he moved, and will regain Internet connection at home in early March 14:27
and yes, sick before that
jnthn Ah, so maybe not still sick now... 14:29
Fingers crossed :)
timotimo oh
OK
14:32 Ven joined
FROGGS he popped in yesterday or the day before that 14:36
14:50 vendethiel joined 14:56 Ven joined 15:08 kjs_ joined 15:32 vendethiel joined 17:09 vendethiel joined 17:29 ilbot3 joined
flussence
.oO( there's so many awesome people here that at any given time we're always upset one or another isn't around... #perlworldproblems )
17:56
18:08 domidumont joined 18:48 FROGGS joined
FROGGS o/ 18:48
20:03 vendethiel joined
FROGGS jnthn: I think my CArray-in-CPPStruct bug is triggered by a gc run 20:08
timotimo ah, so potentially need for a "copy_to" to exist, or be fixed? 20:10
FROGGS copy_to would throw here... 20:13
why would I need it?
timotimo i don't know 20:14
isn't that what the gc uses to move stuff around?
i could be wrong, of course 20:15
FROGGS MVM_exception_throw_adhoc(tc, "cloning a CPPStruct is NYI"); 20:17
timotimo OK 20:18
FROGGS I believe copy_to copies the data to another container
timotimo it's important to be wrong every now and again
FROGGS hehe
timotimo so that people don't rely on everything you blurt out as "accurate"
FROGGS hmmm, what about jnthn then?
he's probably the only entity thats never wrong on the internet :o) 20:19
timotimo don't forget TimToady's rules 20:45
FROGGS troo 20:46
jnthn FROGGS: Yeah, copy_to isn't used for copying done by the GC... 20:55
FROGGS: What symptoms?
The copy is done purely based on the size field in the object header. 20:56
FROGGS things in body->child_objs vanish when I call a C++ method that mutates the C++ mem 20:57
jnthn Which *could* be being got wrong, but it's unlikey you'd not see the issue until a GC run then, because you'd have an over-short object.
So it'd be scribbled on by the next allocation.
More common is gc_mark fails to tell the GC about stuff
FROGGS m: use nqp; nqp::forcegc();
camelia rakudo-moar 531495: OUTPUTĀ«===SORRY!===ā¤No registered operation handler for 'forcegc'ā¤Ā»
FROGGS jnthn: I dont see gc_mark being called at all 20:58
m: use nqp; nqp::force_gc();
camelia ( no output )
FROGGS will try that instead of the method call
nice: *** Error in `/home/froggs/dev/nqp/install/bin/moar': free(): invalid pointer: 0x0000000005497808 *** 20:59
now gc_mark is called btw
timotimo whoops, that looks ungood :)
probably something wrote over the thing that you were trying to free there 21:00
FROGGS in MVM_gc_collect_free_nursery_uncopied
#8 gc_free (tc=<optimized out>, obj=0x7ffff67a1078) at src/6model/reprs/CArray.c:132
timotimo yeah, that'll be the part that tries to free the object when it's no longer needed 21:03
i.e. free every pointer that would have been mallocd at some point 21:04
FROGGS but it should not free a CArray at that point, since both CArrays that exist are referenced by the enclosing CPPStruct 21:05
jnthn What keeps them alive? 21:07
FROGGS this? gist.github.com/FROGGS/94c223c9d26...y-diff-L99 21:08
jnthn MVM_gc_root_temp_push(tc, (MVMCollectable **)&body); 21:10
That looks dubious
What is body?
FROGGS MVMCPPStructBody *body
jnthn Ah
FROGGS yeah, I thought about that already
jnthn You can't do that.
You can only root the collectable object iself. 21:11
FROGGS does it actually hurt?
jnthn *itself
Yes
FROGGS ohh
jnthn It'll cause the GC to look at junk memory
And, also, to not update the pointer ;)
FROGGS okay, I removed it but that wasnt it
jnthn Yeah, but you're right body will be an issue 21:12
It will become out of date.
(If you allocate)
Should must be updated
So as not to be hated
...OK, the last line as just to keep rhyming
FROGGS *g* 21:13
jnthn But yeah, body will need to be recalculated from the pointer that is rooted.
FROGGS same for repr_data I guess
jnthn No, because repr_data is just a malloc'd piece of memory
Whereas body is a pointer into the middle of a piece of GC-managed memory
If you're seeing stuff being zeroed that's very likely it 21:14
Because the old body pointer will be in the middle of a cleared out nursery, most likely
FROGGS I mean this: MVM_gc_root_temp_push(tc, (MVMCollectable **)&repr_data);
that's still wrong, no?
jnthn That looks really wrong too :)
FROGGS k :o)
jnthn Speicherabzug!! 21:15
FROGGS \m/
jnthn Makes "Segmentation fault" sound really boring :P
FROGGS yes, German is slightly less boring than English :o) 21:18
jnthn wonders what it'd be in Czech... :)
FROGGS sadly the behaviour does not change 21:19
jnthn What did you change to update body? 21:21
FROGGS body = OBJECT_BODY(root);
jnthn Yeah, should be enough
root is in an MVMROOT equivalent, yes? 21:22
FROGGS root is from: static void initialize(MVMThreadContext *tc, MVMSTable *st, MVMObject *root, void *data) {
and I temp_root_push it
jnthn Yeah, that should be sufficient... 21:31
hmm
FROGGS is an STable collectable? 21:35
jnthn Yes
FROGGS gnight 21:47