japhb FROGGS++ # Freakin' brilliant, as usual 00:11
00:11 vendethiel joined
jnthn needs to catch up on all the awesome FROGGS++ has been doing in the last week :) 00:12
01:21 vendethiel joined 01:41 colomon joined 01:44 colomon joined 01:45 vendethiel joined 02:09 vendethiel joined 02:47 ilbot3 joined, colomon joined 03:20 vendethiel joined 03:57 vendethiel joined 05:07 vendethiel joined 05:35 vendethiel joined 06:14 vendethiel joined 06:48 vendethiel joined 07:36 FROGGS[mobile] joined 07:52 FROGGS joined 07:53 rurban joined 07:54 vendethiel joined 07:56 zakharyas joined 08:06 Ven joined 10:00 kjs_ joined
FROGGS while implementing unions: 10:22
Program received signal SIGSEGV, Segmentation fault.
get_int (tc=0x6036b0, st=0x2e683f8, root=0x7ffff69cc3e8, data=0x80008080) at src/6model/reprs/P6int.c:69
69 case 64: return ((MVMP6intBody *)data)->value.i64;
jnthn: do you want to bet what's going on and what the conclusion is? :o)
jnthn That data pointer looks very bogus :) 10:23
FROGGS not quite :o)
jnthn It should almost certainly look like root, but a little further in memory, no? :) 10:24
FROGGS thing is that the union is inlined
jnthn Ah
FROGGS and we are expecting it to be referenced when we say: has Onion $.union
(Onion is repr<CUnion>)
so, we have to change our default and expect things to be inlined, not referenced 10:25
unless stated otherwise
jnthn Um, that's quite a change from CStruct inside of CStruct
FROGGS aye
jnthn Which is a reference thing
We probably want to do the same thing for the two. 10:26
It's possible to have a pointer to a union type also
FROGGS true
jnthn (Shows up all over the place inside of Moar)
FROGGS and you'd do either 'is rw' or 'has Pointer[Onion]...' in P6 to say that 10:27
jnthn Yeah. It's gonna take quite some doing... :) 10:29
FROGGS why?
Pointer[Onion] works already (it indirects by another pointer)
just the default for structs and unions inside structs has to be changed IMO 10:30
jnthn class Foo is repr('CStruct') { has SomeInlinedStruct $.s }; ... $foo.s.thing = 42; # how will this work?
And is $foo.s taking a copy of the inner struct, or a pointer to it?
FROGGS hmmmm 10:31
good point(er)
I guess that's the same problem for: class Onion is repr<CUnion> { has int32 $.i; has num32 $.n }... will it cause trouble when both point to the same memory location? 10:38
like that the GC frees the first attribute and explodes when freeing the second? 10:39
jnthn Well, in that particular case we're fine 10:44
Since int and num aren't GC'd
FROGGS ahh, true 10:45
jnthn But yeah, if there's 2 possible CStruct interpretations...only one of them can actually be the one that's "there"
dalek arVM/union: 1ca961a | FROGGS++ | / (10 files):
implement CUnion representation

This works for not-inlined unions only atm.
10:51
FROGGS that works now: github.com/rakudo/rakudo/commit/b6...37a2806R14 10:54
though, we need to improve on that
jnthn FROGGS: Are the tests at github.com/rakudo/rakudo/commit/b6...7d4600cR75 not LE-dependent? 10:57
FROGGS jnthn: I have no idea :D 10:58
jnthn FROGGS: My gut feeling is yes, but I'm taking a horribly long time (and a lot of cups of coffee) to properly wake up today... 11:00
11:01 Ven joined
jnthn notes the YAPC::EU theme is Art+Engineering, and wonders if he should submit a talk on "The art of engineering a VM for Perl 6" or some such :) 11:25
FROGGS[mobile] ohh, please do :o) 11:29
Ven please do indeed. 12:06
12:55 kjs_ joined 13:25 Ven joined 14:30 brrt joined 14:48 brrt left 15:17 FROGGS joined 15:30 brrt joined
brrt \o 15:31
jnthn hi brrt
FROGGS o/ 15:33
brrt hi FROGGS, jnthn
did any of you see the projects I've added to the GSoC-2015-ideas documents? 15:34
jnthn brrt: No; link? 15:35
brrt .... well, that i don't know
i think FROGGS sent the link to me
foundsit: docs.google.com/document/d/120zZBQ...ca6ls/edit 15:36
jnthn brrt: Hm, I don't see any you added in there though? 15:39
FROGGS ummm, somebody has deleted the REPL idea and something else O.o 15:40
jnthn Or did they get migrated to the web page?
Yes, wiki2.enlightenedperl.org/index.php...age#Rakudo 15:41
And #MoarVM below
brrt++ # they look good 15:42
brrt: Considering apply for one of them? ;)
timotimo um
did rakudo suggestions disappear from that document?
FROGGS ahh, nice
jnthn timotimo: I see two of them on the page I just linked.
timotimo oh, good 15:43
brrt yes, i'm considering that :-)
jnthn The google doc is for leaving ideas if you haven't a wiki write bit
brrt: \o/
timotimo huh, i suggested myself as a mentor for the regex optimizer thing, but didn't get put there?
brrt i'm also considering the question 'how do i leave the JIT suitable for the hands of a student'
and i'll also have to calculate my actual $time-available-in-summer compareed to the demands of the project and GSoC 15:45
jnthn *nod*
jnthn should have a decent amount of time to mentor
brrt :-) ok, that's good
are you anywhere around NL anytime between now and summer?
jnthn Not afaik; I won't make the NLPW this year, I'm afraid. 15:46
brrt shame. but there will be a next time
jnthn Aye
brrt i had hoped to make FOSDEM 15:47
but couldn't either :-(
is it by the way at all possible to student-and-backup-mentor at the same time? 15:48
FROGGS the first video looks promising wrt to quality: ftp.osuosl.org/pub/fosdem//2015/dev...ds_tml.mp4 15:49
brrt is that the very first video?
nice
jnthn brrt: Not sure. Officially, doubt it. Can you be a student and just happen to help out another student? Surely. :)
brrt that would work 15:50
what kind of projects / project ideas get the most attention, usually?
15:51 kjs_ joined
jnthn brrt: Hard to say. Having a decent description and sounding interesting but approachable probably helps. 15:53
brrt hmmm 15:54
jnthn You've been a student, I haven't, so you've probably a better idea than me of what's attractive :P 15:56
brrt but i'm naturally attracted to VMs and interpreters and compilers... I'm not sure I'm representative 15:58
jnthn I'm quite sure you're not the only person naturally attracted to such things. :) 15:59
Sure, maybe the majority aren't, but that's fine, we only need to draw in those interested in those areas who have various projects to choose between. :) 16:00
brrt very true
FROGGS jnthn: back to unions... say we have a union { MyStruct *foo; YourStruct *bar; } Foo; that should be no problem because CStruct->gc_cleanup does not free body->cstruct 16:07
another issue is union { MyStruct foo; YourStruct bar; } Foo; I suppose... but perhaps not even that
so I try to do the inlining of unions as the default now to see where we get 16:10
the problem might be when we create these structs/unions in Perl 6 land to pass them off to C... 16:11
jnthn FROGGS: Yeah, something is worrying me, but I can't immediately put my finger on it. Maybe the best way is to try and implement it and see where it hurts... 16:12
brrt afk until this evening 16:17
16:17 brrt left
FROGGS tits, aye :P 16:19
jnthn I was thinking that, but didn't say it :P
*sigh* 16:20
timotimo i don't get it
jnthn "try it to see"
timotimo oh 16:21
jnthn "try it and see" is better English though, so it's a bit forced
FROGGS I never said that I'm good at English :o) 16:26
lol, a single line patch lets me inline unions O.o 16:31
jnthn FROGGS: Heh, just twerked the storage spec? 16:32
uhhhh
*tweaked
FROGGS else if(type == MVM_CSTRUCT_ATTR_CUNION) {
- obj = MVM_nativecall_make_cunion(tc, typeobj, cobj);
+ obj = MVM_nativecall_make_cunion(tc, typeobj, (char *)body->cstruct + repr_data->struct_offsets[slot]);
in CStruct get_attribute 16:33
jnthn did design 6model to cope with inlining compact structs some day :)
timotimo FROGGS: a little status summary for the weekly? :) 16:36
FROGGS timotimo: NativeCall is in rakudo, I think last week it was only announced 16:37
the `long` type is probably new also
timotimo i know
i posted about "long" last week
i meant for the cpp branch and unions
FROGGS ahh, and nativesiveof() is there 16:38
timotimo good
FROGGS unions kinda work, and will probably land this week, when we know more about inlined unions/structs
timotimo good
FROGGS cpp is doing good
you can map classes, call their new method, and then call other methods on the instance 16:39
g++ only so far, though it should work with clang too
this won't land in the next two weeks at least
but I want to get the typed Pointer in place this week 16:41
16:43 Ven joined
FROGGS ===SORRY!=== 16:43
A types pointer can only hold integers, numbers, strings, CStructs, CPointers or CArrays (not Onion)
hehe, I laugh me head off!
jnthn hah :) 16:44
17:41 FROGGS[mobile] joined
dalek arVM/union: 01dfa8b | FROGGS++ | src/6model/reprs/CStruct.c:
treat CUnions as inlined by default
19:12
arVM/union: babb3ac | FROGGS++ | src/core/nativecall.c:
allow to nativecast from CPointer to CUnion
20:07 brrt joined 20:27 kjs_ joined
brrt can i say lua is weird 20:32
jnthn m: say 'lua is weird' 20:33
camelia rakudo-moar 0966e9: OUTPUTĀ«lua is weirdā¤Ā»
jnthn Apparently.
brrt :-) 20:35
FROGGS why so? 20:36
brrt it's almost, but not quite, a conventional programming language 20:38
nwc10 nutrimatic code? :-)
brrt right :-)
apparantly #foo is 'the length of array foo'
FROGGS well, $#foo in P5 is something similar :o) 20:39
brrt true 20:40
21:44 dalek joined
avuserow today I learned that IBM offers access to POWER7/8 machines running a variety of OSes for no charge, intended for use with porting and testing applications on those architectures: www-304.ibm.com/partnerworld/wps/se...t-platform 22:02
wanted to make sure that you guys knew about it, since it seems a useful resource for moarvm portability
FROGGS aye 22:04
damn, I want to play with these machines now :o) 22:05
jnthn avuserow++ # thanks for pointing it out 22:16
FROGGS m: sub foo(int32) { }; foo(my $ = int32) # jnthn: do you know why that fails? 22:19
camelia rakudo-moar 0966e9: OUTPUTĀ«Cannot unbox a type objectā¤ in sub foo at /tmp/KLmCgh8xWY:1ā¤ in block <unit> at /tmp/KLmCgh8xWY:1ā¤ā¤Ā»
FROGGS m: sub foo(int32) { }; foo(int32) # even that
camelia rakudo-moar 0966e9: OUTPUTĀ«Cannot unbox a type objectā¤ in block <unit> at /tmp/2HKqJK9TwD:1ā¤ā¤Ā»
jnthn FROGGS: For the exact reason it says.
FROGGS but... this was working :o( 22:20
jnthn A native can't store an undefined value.
Moar had a bug a while ago where we didn't check in the arg binder if we got a non-concrete object
It then went ahead and read junk memory
22:21 timotimo joined
FROGGS hmmm 22:21
jnthn Which sometimes caused a SEGV, and sometimes just gave you junk in the arg.
22:22 dalek joined
jnthn Urgh. Latest Moar fails 3 NQP tests on Windows 22:23
All I/O related
FROGGS okay, easy fix is easy 22:26
jnthn For your issue, or mine? :)
FROGGS for mine 22:27
:P
I mean, my mine :o)
jnthn Something is really busted here :/
Build of nom hangs in CORE.setting compilation
FROGGS eww 22:28
jnthn oh wait, I compiled nom Rakudo on native-ref NQP 22:29
NQP master is bust on the same I/O tests
timotimo hum 22:30
jnthn Hang happens on NQP master too
FROGGS does it hang while copying a file? (in the tests) 22:31
jnthn No hangs in the tests 22:32
Just SEGV
Hmmm. 22:33
FROGGS I'm testing now too on windows
jnthn Hang on 22:34
I think we did a libuv bump since I last built on this box
And so I had a dirty tree
FROGGS ohh 22:35
yes, that was me
jnthn Will know soon if it helps
We do have a new warning on msvc thanks to the bump
FROGGS my libuv is also not clean
jnthn yeah, seems to help
FROGGS is that the 'different levels of indirection' message? 22:36
jnthn It scrolleth away
Will look again in a moment
Yeah, more CORE.setting build is happy agian too 22:37
Phew!
FROGGS :o)
timotimo phew
jnthn Though by a LONG way the worst build time I've seen us having for ages :(
FROGGS but I think the libuv bump was important
jnthn Yes
FROGGS we are now using their 1.0.0
22:41 kjs_ joined
timotimo i wonder how much the build time is influenced by new features in the core setting? 22:42
TimToady pretty sure it wasn't my change, which compiled about the same; after I git pulled I lost a second or so 22:45
jnthn FROGGS: Yes, it's that warning.
timotimo i'll start building a bare-bones "second pass" for spesh now 22:46
should set removal and other post-inline things happen before or after unused log guards are thrown out? 22:47
jnthn Hmm
Good question. Not sure.
Not sure it matter 22:48
*matters
ffs, getting dynasm to not spit out a busted .c file with bogus escape sequences is quite a pain :/ 22:50
timotimo probably doesn't. if it does, we'll probably see it later 22:51
:( 22:56
dalek arVM: 7df4fda | jnthn++ | src/jit/emit_x64.dasc:
Mostly quiet MSVC warnings when compiling JIT.
23:04
jnthn Ah, they changed what uv_thread_self returns... 23:07
lizmat re CORE.setting build time: does that factor in building NativeCall also ? 23:21
$ time perl6 --target=mbc --output=lib/NativeCall.pm.moarvm lib/NativeCall.pm 23:22
real0m1.575s
user0m1.488s
sys0m0.074s
that's good for 1.5 seconds just by itself
23:23 vendethiel joined
dalek arVM: 6121d2b | jnthn++ | src/ (4 files):
Fix getting current thread ID from the OS.

Not sure if what we got on Windows before for this was especially valid; recent libuv changes showed up a warning that made it clear that something certainly wasn't right now. This fixes the warnings, hopefully without breaking anything off Windows.
23:24
jnthn lizmat: I was measuring for the whole Rakudo build 23:25
lizmat so adding NativeCall added 1.5 seconds to the build
does that explain the slowdown that you saw ?
jnthn Not entirely, but partly 23:27
lizmat Test.pm got a bit bigger recently as well...
jnthn Just a bit sad that I had us on the cusp of hitting 60s on my box at one point, and now we're around 72s. 23:29
lizmat for me: real0m51.750s user0m50.276s sys0m1.119s 23:31
jnthn Well, fixed a few Moar warning annoyances and got my native-ref branches rebased on top of latest NQP/Rakudo. So, ready to dive back in. But...sleep for now. :) 23:47
o/ 23:48
lizmat good night, jnthn 23:49
will do the same shortly
23:52 vendethiel joined