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
|