github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
timotimo uh oh 00:45
i think we have trouble with CArray inlined in CStructs
here CArray's destructor is trying to free its *storage, but it actually points to the inside of a CStruct's body
but the managed flag is still set for some reason
that's clearly not right
00:47 Kaiepi left 00:48 Kaiepi joined
timotimo i wonder if it should become part of the repr data 00:55
m: use NativeCall; class Test is repr<CStruct> { has int32 $.foo; has int32 $.bar; HAS int8 @.foo[16] is CArray }; my @things; for ^100_000 { @things.push(Test.new); @things.pop; Nil } 01:02
camelia ===SORRY!=== Error while compiling <tmp>
Two or more attributes declared that both want an accessor method 'foo'
at <tmp>:1
timotimo m: use NativeCall; class Test is repr<CStruct> { has int32 $.foo; has int32 $.bar; HAS int8 @.bloop[16] is CArray }; my @things; for ^100_000 { @things.push(Test.new); @things.pop; Nil } 01:03
camelia (signal ABRT)*** Error in `/home/camelia/rakudo-m-inst-2/bin/moar': free(): invalid pointer: 0x0000000004435508 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x740ef)[0x7f3394eb60ef]
/lib64/libc.so.6(+0x79646)[0x7f3394ebb646]
/lib64/libc.…
timotimo bisect: use NativeCall; class Test is repr<CStruct> { has int32 $.foo; has int32 $.bar; HAS int8 @.bloop[16] is CArray }; my @things; for ^100_000 { @things.push(Test.new); @things.pop; Nil }
bisectable6_ timotimo, Bisecting by exit signal (old=2015.12 new=e68e38e). Old exit signal: 0 (None)
timotimo, bisect log: gist.github.com/2c419d7862632b2fcd...79503348c9
timotimo, (2018-08-07) github.com/rakudo/rakudo/commit/3c...e44e295369
timotimo Bump nqp/moar for CStruct/CArray fix 01:06
well, that worked out ;) ;)
Geth: ver github.com/rakudo/rakudo/commit/3c...e44e295369 01:07
Geth timotimo, version bump brought in these changes: github.com/perl6/nqp/compare/2018....g001d1a756
MasterDuke Geth: ver github.com/perl6/nqp/commit/001d1a...84cad4735a 01:20
Geth MasterDuke, version bump brought in these changes: github.com/MoarVM/MoarVM/compare/2...gac3d3c769
timotimo greppable6: HAS.*is\s+CArray 01:46
greppable6 timotimo, 1 line, 1 module: gist.github.com/70b9289e8cdd783963...5e7868e350
02:04 AlexDaniel left 02:09 samcv left 02:12 samcv joined 02:19 AlexDaniel joined
MasterDuke timotimo: i just saw a "bailed completely" because of sp_bind_i32. how hard would it be to jit those sp_bind_* ops? 03:05
nine MasterDuke: as there are a number of sp_bind_* ops already jited, I guess it's quite easy. 07:03
07:52 domidumont joined 07:57 domidumont left 08:00 domidumont joined 09:26 AlexDani` joined 09:30 evalable6 left, benchable6 left, AlexDaniel left 09:35 scovit_ left, scovit joined
scovit timotimo: in my patch to get CStruct passed by value I was adding the same funtionality to CStruct inlined in CStructs 10:02
*storage should point inside the struct body so that you can do things like InlinedStruct.new(x=>1, y=>2); 10:03
what I think moar should do is to be able to recognize this situation and do not free the pointer
last time I checked this was not an issue since the CStruct just memleaks all over 10:05
10:14 evalable6 joined
scovit I mean this kind of code I think should work: github.com/scovit/rakudo/blob/cstr...args.t#L32 10:22
right now it wouldn't) 10:23
11:14 domidumont left 11:24 dogbert2_ joined 12:25 lizmat_ joined 12:26 dogbert21 joined 12:29 nebuchad` joined 12:30 harrow left, lizmat left, samcv left, nebuchadnezzar left, dogbert2_ left, camelia left, harrow joined, samcv joined 12:31 samcv left, samcv joined 12:33 camelia joined 12:41 lucasb joined 13:03 domidumont joined 13:43 nebuchad` is now known as nebuchadnezzar
nwc10 good *, #moarvm 13:45
ASAN is also really excited by t/spec/S02-types/sethash.t
paste.scsys.co.uk/583278
(as well as the complete pavement pizza explosion with more-pea when trying to build NQP)
nwc10 wonders - is there a way to colect the full colour ouptut from ASAN, and paste it somewhere in colour? 13:46
masak screenshot? 13:54
nwc10 I was rather hoping for colour text 13:55
"JPG pasted into a word document" never feels like the right answer :-) 13:56
this was an idle thought
timotimo some terminals will let you copy-paste formatted text with colors and such 14:05
and if you have a browser with something like a textarea with ContentsEditable it'll paste that as HTML iiuc
jnthn: how would you prefer CArray and CStruct get signaled that their body pointer points inside an existing memory region, for example inlined structs/arrays inside other structs, or structs inside an array-of-struct 14:09
right now at least the CArray gets created with ->initialize when a CStruct is created or marshalled from C, and that blindly assumes the memory region is owned by the CStruct 14:10
should it be part of the repr data, and we'd add something to the compose protocol?
or would it be fine for the parent object to set a value before or after initialize; that sounds too ad-hoc, non-API, dirty 14:11
14:22 MasterDuke left 14:24 brrt joined, lizmat_ is now known as lizmat
brrt ohai #moarvm 14:25
hurrah for TPF in being accepted to GSoC
lizmat coooool!
brrt oh, i maybe shouldn't have said that on a logged channel
.oO( Probably nobody reads this )
lizmat oops
I didn't
tadzik no, nobody knows 14:26
brrt :-D
but I'm fairly excited 14:27
timotimo someone else already wrote that in a logged channel yesterday i think 14:47
brrt hehe 14:52
jnthn Wrote what? :) 15:04
yoleaux 24 Feb 2019 19:44Z <nwc10> jnthn: ASAN very excited by more-pea - heap-use-after-free when building NQP -- paste.scsys.co.uk/583261
jnthn Oh...wrote to memory after free... :P
o/
dogbert21 .seen timotimo 15:30
yoleaux I saw timotimo 14:47Z in #moarvm: <timotimo> someone else already wrote that in a logged channel yesterday i think
15:35 brrt left, domidumont1 joined 15:38 domidumont left 15:43 brrt joined 15:49 brrt left 16:17 AlexDani` is now known as AlexDaniel
Geth MoarVM: dcafbc4c72 | (Aleks-Daniel Jakimenko-Aleksejev)++ | src/core/nativecall.c
Revert "Change CStruct For Compatibility With Native Call JIT"

This partially reverts commit efdf568975cf38c2b711c3c9c6c2bb741bf89460.
16:33
timotimo dogbert21: sup? 16:35
16:59 brrt joined
brrt ohai jnthn 17:22
dogbert17 timotimo: I suggested to AlexDaniel that he should revert parts of efdf568975cf38c2b711c which he did 17:25
dogbert17 sort of suggested :) 17:26
AlexDaniel: I had a look at R#2665, I can't get the test to panic on its own, it only panics when trying to install the module via zef 17:29
synopsebot R#2665 [open]: github.com/rakudo/rakudo/issues/2665 [⚠ blocker ⚠] MoarVM panic when testing Red
AlexDaniel dogbert17: oh, so it *does* panic 17:30
dogbert17 with a zef install ... yes
AlexDaniel OK that makes more sense
because I think I was trying to reproduce it without zef
soooo… ok, that's some good info 17:31
17:46 robertle joined 17:49 domidumont joined 17:52 domidumont1 left 18:03 Kaiepi left
AlexDaniel dogbert17: ah-ha, yeah, I can reproduce it through zef 18:04
18:04 Kaiepi joined
dogbert17 AlexDaniel: cool 18:07
AlexDaniel dogbert17: yeah but… now what?
dogbert17 perhaps ugexe has some ideas 18:10
jnthn o/ brrt 18:22
jnthn has been a bit burried with stuff to do, but will be about a bit more for the rest of the week :)
nwc10 that's half \o/ and half not 18:23
I think the "forward looking statement" is the better half.
18:32 domidumont left
nwc10 and you're going to rain on ASAN's parade? 18:36
brrt ASAN is repeatedly raining on our parade, so it's only fair 18:53
timotimo at some point nobody will know who started the whole thing 18:59
19:01 brrt left, brrt joined 19:03 brrt left
timotimo bisectable6_: class ABC { has int32 $.x; multi method new(int32 :$x!) { self.bless(:$x) } }; ABC.new(x => 0); 19:15
bisectable6_ timotimo, On both starting points (old=2015.12 new=9a87b56) the exit code is 1 and the output is identical as well
timotimo, Output on both points: «Lexical with name '$x' has a different type in this frame␤ in method new at /tmp/c5jP3thMj9 line 1␤ in block <unit> at /tmp/c5jP3thMj9 line 1␤␤»
timotimo hum?
in MVMContext's bind_key it got_kind 3 (MVM_int32) but wanted 4 (MVM_int64) 19:19
this probably wants a little bit of truncation magic just like in at_key?
this comes from bindkey_i, which always passes int64 ... 19:20
19:20 samcv_ joined
timotimo and there are no ops that bindkey_i32 or similar 19:20
19:20 samcv left
timotimo why it binds that in an MVMContext, i'm not entirely sure about, though. comes from the binder, apparently 19:20
19:21 Kaiepi left, squashable6 left 20:24 Kaiepi joined 20:41 patrickb joined 20:54 samcv_ is now known as samcv 21:18 squashable6 joined 22:47 MasterDuke joined 22:48 MasterDuke left, MasterDuke joined 23:01 lucasb left 23:13 Kaiepi left 23:14 Kaiepi joined 23:32 AlexDaniel left 23:37 AlexDaniel joined 23:42 AlexDaniel left 23:49 squashable6 left 23:51 squashable6 joined