00:30 jnap joined 01:05 colomon_ joined 01:12 FROGGS_ joined 06:12 flussence joined 06:23 itz joined 06:27 mj41 joined 06:28 itz_ joined 06:45 itz joined
sergot o/ 06:46
nwc10 \o 07:23
jnthn: ASAN barf :-( 07:29
paste.scsys.co.uk/420105
jnthn: what valgrind said: paste.scsys.co.uk/420110 07:37
07:45 donaldh joined
nwc10 and t/spec/S32-list/uniq.rakudo.moar looks to be unreliable. flappy SEGV 07:50
diakopter nwc10: is Sandpit like the Sarlacc Pit? 07:51
nwc10 it isn't meant to be. It gets deleted every so often (eg when I fill the disk) 07:54
but that's a reasonable question
diakopter it's a whimsical, rhetorical, fanciful, farcical question :p 07:56
sergot How does NativeCall work with C++? 08:08
08:09 zakharyas joined 08:13 Ven joined
donaldh sergot: I imagine it will need some sugar to do name mangling at the very least. 08:15
sergot hmm
donaldh: is it possible to bind e.g. Qt without this? 08:16
donaldh I don't know. I haven't tried.
nwc10 jnthn: I have 3 coredumps. I don't seem to have enough info in them to get the command lines, but I think I got three tests exiting with 139 (ie SEGV + coredump) 08:17
jnthn: all 3 are in the same place, it's the same as the valgrind output pasted above, and it's the same even if I disable the fixed-size allocator
sergot: I suspect that no-one has tried
sergot Ok, so I'll try :) 08:18
actually, doing this right now 08:19
we'll see
donaldh sergot: the dyncall C++ example suggests that it is necessary to calculate vtable offsets when doing method calls 08:48
sergot: see MoarVM/3rdparty/dyncall/test/plain_c++/test_main.cc
08:51 JimmyZ joined
sergot donaldh++: thanks 08:56
09:08 odc joined 09:17 Ven joined, donaldh joined, pmichaud joined, tadzik joined 09:23 moritz joined 09:30 _sri joined, ingy joined 09:38 nebuchad` joined 09:46 lizmat_ joined 09:47 bonsaikitten joined, Juerd_ joined 09:48 oetiker_ joined 09:51 jnthn joined 09:58 cxreg2 joined 10:03 tokuhirom_ joined 10:07 Ven joined 10:10 camelia joined 10:11 timotimo joined 10:12 harrow joined 10:23 colomon_ joined 10:25 jnthn_ joined 10:26 japhb_ joined 10:35 donaldh joined 10:38 Ven joined 10:51 brother| joined, btyler_ joined, cxreg joined, hoelzro_ joined, sergot_ joined, jnthn joined 10:57 betterworld joined 11:02 mj41 joined 11:03 timotimo joined
lizmat re: t/spec/S32-list/uniq.t : it reliably segfaults when run with make, but works ok when run with perl6 (and .rakudo.moar) 11:04
11:19 cognome_ joined 11:21 synopsebot joined, avuserow_ joined 11:26 oetiker joined 11:28 [Coke]_ joined 11:29 carlin joined, diakopte1 joined 11:52 gcifuentes joined
timotimo sergot_: if you're interested in Qt, there's things i've been briefly investigating in the past 11:55
there's the stuff the pyside people came up with, which is Shiboken + GeneratorRunner + ApiExtractor
and there's something called "SMOKE", which is kind of like library that gives you access to a "database" with all kinds of info for the API 11:56
sergot_ timotimo: you suggest to implement this in p6? 12:19
is it alright?
timotimo i am a fan of Qt. if we had Qt for perl6, i would be pretty happy. but i'm quite intimidated by the scope of that project 12:20
also, trying to ask for the pros and cons of shiboken vs SMOKE has lead me nowhere at all 12:21
the only answer i got to my question is "i prefer SIP, but why would you want to build another binding?", which isn't helpful, because SIP is python only.
sergot_ timotimo: I'm a fan of Qt too! :) 12:27
It would be great to have Qt5 bindings 12:29
flussence Qt5 would be great; I've been thinking about doing EFL bindings (it's C, so it should be straightforward, right?), but I'm not sure how much use it'd be. 13:44
timotimo i have not used EFL yet, but i hear it's pretty rad 13:45
14:47 jlaire joined
japhb I'd be really quite happy to have NativeCall able to work with C++ libraries, because Google has OMGALOTOFTHEM. 14:59
And frankly my favorite language for writing C++ would easily by Perl.
*be
japhb has been writing code in a lot of languages that make him go >.< lately 15:00
15:05 donaldh joined
[Coke] japhb: I know that feel. I want to be able to write Java in Perl 6 instead of ColdFusion. :) 15:09
japhb my experience in Android training this week has been "If I didn't have a good IDE, I'd go insane." 15:26
But I'd rather just program it in Perl 6 than Java+XML
jnthn Aside from the concurrency erruptions, are there specific things anybody has that I should be working on? :) 16:00
hoelzro japhb: I'd love to see Perl 6 on Android 16:06
I think that it lacks invokedynamic, though, which we need, iirc
TimToady jnthn: NFG? :P 16:07
jnthn :P 16:08
Yeah, I should probably dig into that some time soon
Native arrays too...
I was more meaning "blocking bugs" :)
TimToady well, native arrays is a blocking bug for NFG, imho 16:09
jnthn If I do it, I'll be putting 'em directly into the VM...
Not least 'cus I already shoved a chunk of the abstractions in, in preparation for that. 16:10
TimToady
.oO("the VM")
jnthn Then at some point do a JVM port
Of the rope-y thing too 16:11
Since we suffer a bunch of N**2 issues there also.
NFG on Parrot can be Somebody Elses Problem.
Much like concurrency.
TimToady well, if our native arrays are properly implemented and optimized, we oughta be able to write at least a prototype NFG in P6
jnthn Yes, but really it wants integrating into the decode stream abstraction, which would be a bit tricky 16:12
(That is the thing that deals with bytes/codepoints hanging over buffer boundaries)
(Which is easy enough to get wrong that I really, really don't want to deal with it in more than one place. :)) 16:13
TimToady which is why you're dealing with it in two places?
(two VMs?)
jnthn On the JVM I don't have to deal with it. 16:14
('cus it's already in their class lib)
TimToady they do grapheme clusters over boundaries? 16:15
or just codepoints?
jnthn No, just the codepoints part at present, but I suspect a little subclassing might get me a neat enough solution.
TimToady well, native arrays would be really cool anyway, esp if they come in shapes :) 16:16
jnthn Yeah; I really need to read the shapes patches.
TimToady though of course shapes is just an abstraction over a flat array
jnthn Also I want to make sure we can avoid the resize checks easily on sized things, and JIT accesses to them well. 16:17
TimToady until we get shapes hooked up, we have no way of declaring something fixed size in P6 16:18
jnthn *nod*
TimToady (without cheating)
jnthn I know there's been a bunch of work on lols; how far does that go with shapes so far?
TimToady does nothing on the repr end of things
it's all about subscripting
m: my @a := (<a b c>; <d e f>; <g h i>); say @a[*;1] 16:19
camelia rakudo-moar dd580d: OUTPUTĀ«b e hā¤Ā»
jnthn OK, but no decl bits?
TimToady m: my @a[5;5] 16:20
jnthn As in, no my @a[3;3]; stuff yet?
camelia rakudo-moar dd580d: OUTPUTĀ«===SORRY!=== Error while compiling /tmp/aZYc0Fcw6Yā¤Shaped variable declarations not yet implemented. Sorry. ā¤at /tmp/aZYc0Fcw6Y:1ā¤------> my @a[5;5]ā<EOL>ā¤Ā»
jnthn OK
I didn't follow the Mouq++ and your++ patches so well as I probably shoulda...
(YAPC prep, YAPC, jetlag, settling into $foreign-assignment)
TimToady well, Mouq++ did all the subscript stuff; I just did the lollipop literals 16:21
jnthn OK...so shapes are to come...
TimToady that's the shape of things to come, yeah 16:22
Mouq++ and I are both scared of reprs :)
jnthn I suspect this is the point we start to do the array vs Array distinction... :) 16:23
jnthn wonders if putting a size on means "not lazy"... 16:24
s/size/shape/
TimToady well, unlike 'my @a;', I think 'my @a[stuff];' implies allocation
jnthn *nod*
TimToady so 'my @[stuff]' is anonymous shaped
16:25 cognome joined
jnthn Can a thing with a shape *ever* be lazy? 16:25
TimToady if a dimension is specified as *
then it's supposed to be resizeable at least 16:26
but I dunno about lazy
maybe we restrict it to leaves
jnthn If we could decide "not lazy", we could just say shape implies array rather than Array
TimToady well, or Matrix, or matrix, or something
jnthn Hmm...in that case I guess we'd get array or Array or so :)
TimToady s/or/of/ 16:27
nwc10 jnthn: it would be nice if you coul figure out why that Rakudo commit exposed ASAN barfage 16:37
seems to be 1 bug, causing 3 tests to be unhappy/SEGV
and I have no clue 16:38
jnthn nwc10: Do you have it handy? Could you try it with MVM_SPESH_OSR_DISABLE=1?
nwc10 ASAN barf still with that
no barf with MVM_SPESH_DISABLE=1 16:39
(yes, I had it handy)
jnthn What about INLINE?
(MVM_SPESH_INLINE_DISABLE)
But darn, from the trace I expected OSR...
nwc10 MVM_SPESH_INLINE_DISABLE=1 no barf 16:40
jnthn Hmmmm
You lceared MVM_SPESH_DISABLE first, I presume?
*cleared
nwc10 I did them on the command line, so "yes", but have checked that my environment is clear (which it is)
right now only t/spec/integration/99problems-51-to-60.t fails with ASAN, but I think at a fractionlly earlier MoarVM revision t/spec/integration/99problems-11-to-20.t and t/spec/S32-list/uniq.rakudo.moar also failed 16:42
and all 3 SEGV with a non-ASAN debugging build
jnthn Yeah, not at all sure what's going on with it... 17:05
Well, mebbe I can make it panic... 17:07
17:08 itz_ joined 17:19 donaldh joined
nwc10 gah bollocks. PPC bust 17:21
NQP stage 0 fail
jnthn Balls. 17:23
nwc10 or do I strictly mean Power?
yes, Balls.
lets see if I can figure out how
TimToady PowerBall?
nwc10 PowerBallsUp right now
OK, 2014.05 is looking better 17:24
jnthn wonders if git bollocks is an option
uh
git bissect
nwc10 I have 2 repositories to bisect.
jnthn ugh
nwc10 yes, been there
at least it's only 2, not 3
jnthn and one has sub-repos which is, uh...what I said :P
s/repos/modules/
nwc10 I suspect it's a little endian wrongness in a union again
jnthn ah
nwc10 this is a guess, of course 17:25
jnthn *sigh* I really dunno what's going on with that inline issue
17:25 itz joined
jnthn I thought I'd got an idea...but no... 17:25
nwc10 jnthn: drink beer, tackle other things, sleep?
jnthn Also failing to reproduce it on any of those test files here...
I am kinda tempted to put in an env var to disable the frame cache... 17:26
So we can at least eliminate (or blame) that
nwc10: If you could try gist.github.com/jnthn/a874b51f963049ae794c it'd also let us eliminate a possible issue 17:27
17:31 itz_ joined
nwc10 had rebuilt with debugging to use valgrind 17:31
with that patch, valgrnd still unhappy
so, no, that's not it
jnthn Grr 17:34
Does it panic with gist.github.com/jnthn/5d262012b7745ae40fc5 ?
'cus it doesn't here... 17:35
nwc10 applied that on top of previous patch
ok 8 - built a balanced binary tree with 3 items 17:36
FAIL
that isn't a panic, but that's different and no valgrind barfage
jnthn Oh, it *does* panic? 17:38
The FAIL is the panic message I put
nwc10 oh, OK, then yes, successful FAIL
jnthn OK, so why the heck does that not happen locally for me on the same test... 17:39
Either we should be getting the wrong size in there consistently, or getting it right consistently... 17:40
nwc10 I do not know, but I don't know what OS specific things or environment size thingsmight have changed it
jnthn I am struggling to imagine any that might... :/
nwc10 drink beer and sleep on it? 17:41
jnthn Yeah :)
jnthn also needs to remember how he tunneled all his traffic via Europe last time he was in China. 17:48
A few days of the moronic great firewall is quite enough. 17:49
carlin you can use putty to make a SOCKS proxy to an ssh server 17:59
nwc10 if you can get to the ssh server 18:00
carlin true 18:01
18:01 lizmat_ joined
TimToady jnthn: I believe you still have a login on wall.org, if you want to set up something there 18:01
jnthn TimToady: I've one in europe I used last time :) 18:03
nwc10 bother 18:04
c92d1a4cd5340d787ab5f8f42348573f99738c37 breaks Big Endian
may save a tiny bit of ram on bytecodes by using const_i64_16
reasonable change I think, but must have missed something
jnthn nwc10: Not only RAM, but unaligned reads.
nwc10 good point 18:05
those things. I forgot those things
18:31 brrt joined
brrt \o 18:31
jnthn: i don't know if you've found the reason for the gc asan angriness yet, however i do have some reason to believe the JIT may be involved 18:32
as in, i still haven't explained why getcodeobj is broken
jnthn brrt: Ah...
nwc10: ^^ try with MVM_JIT_DISABLE ;)
brrt yeah, and mea culpa obviously :-) i'll try to figure out what's wrong 18:33
how's china, btw? 18:35
nwc10 jnthn: try what? PPC on Moar master from 2 months ago?
nine I get a "Internal error: Unwound entire stack and missed handler" when running a callback from Perl 5 and this callback tries to execute a method call on a Perl 6 object. Any ideas what might go wrong there?
brrt ppc has no JIT
jnthn nwc10: No, sorry, the other bug
nwc10: (The ASAN-detected one) 18:36
My gut feeling says "it's not the JIT", but could to check...
brrt hmm 18:37
jnthn brrt: China is going well, overall. All is well with work, found some great food... Having my internets harmonized is a little annoying, though... :)
brrt my gut feeling doesn't trust the JIT one bit
as in, firewall issues, or just connectivity
jnthn Great Firewall
nine Error occurs in: github.com/niner/Inline-Perl5/comm...406474R132 18:38
brrt that's annoying
can you still use ssh and stuff like that?
nwc10 jnthn: MVM_JIT_DISABLE=1 makes no difference. Not the JIT 18:39
jnthn OK, "good". That woulda been weird
brrt hmm 18:40
i suppose so
then getcodeobj is probably something else 18:45
jnthn brrt: You know that getcodeobj can lazily trigger deserialization? 18:46
brrt no
i did not know that
nwc10 tests seeming fix for PPC bug
jnthn OK. You, uh, maybe need to know that. ;)
nwc10++
brrt nwc10++ indeed :-) /me is very curious 18:47
ok, what difference does that make? (the fact that getcodeobj may trigger deserialization?)
jnthn That if you access it and it's null, you may need to do something 18:49
nwc10 brrt: it's a bug from a commit from 2 months ago that broke NQP on PPC
it's nothing to do with JITs
brrt ah i see 18:50
jnthn brrt: How do you JIT it? 18:51
Calling MVM_frame_get_code_object?
brrt euh, let me see how timotimo did it, he wrote the actual patch 18:52
jnthn OK. The func above is the correct way 18:53
brrt gist.github.com/bdw/ce249b2ba2849d4f17e6 18:55
yeah, thats basically what he did
it seemed good to me
dalek arVM: 1ded4a3 | jonathan++ | src/core/op (2 files):
getlexouter is not inlinable.

Otherwise we break the "doesn't access non-static outer lexicals" invariant on inlining.
19:00
jnthn Which we might be able to lift with further analysis, but argh brane. :) 19:01
brrt :-)
TimToady so, I should probably get rid of my default there
FROGGS o/
TimToady or we should optimize default away if it's the last thing 19:02
well, maybe not in a CATCH...
jnthn I think Moar does know enough about outers and stuff to make smarter decisoins here. 19:04
brrt is only slightly annoyed at a blog saying 'it is like gc but without the expense (reference counting)' 19:05
:-o (moarvm+asan now only takes 84s for stage parse on my machine) 19:07
which is fast
19:08 Ven joined
jnthn Folks are really great at forgetting that decrementing a refcount is O(data-structure-size) if you get go of the root of an aggregate... 19:08
*let go
Not to mention that maintaining the counts when there are threads involved is an atomic operation. 19:09
And then a bunch of analysis to elide them.
brrt yeah, and as i keep saying 19:10
threads
i.e. when you have multiple threads, refcount updates must be atomic or synchronissed
jnthn You can coalesce the refcount updates to some degree if you're clever about it 19:11
But yeah...it's no free lunch.
It *does* win you timeliness. 19:12
brrt anyway, applying that patch results in dying in the rakudo sanity tests
which is awesome because that's precisely what i need
brrt nods
which is probably why it's a good fit for UI thingies
jnthn But tbh I've found my timely things are greatly fewer than my other objects, and I don't mind calling them out with some resource management construct (like using in C#) 19:13
nwc10 jnthn: first fix for PPC is paste.scsys.co.uk/420304
not even tested on x86_64 yet
may introduce casting warnings
jnthn OK 19:14
I'm heading to bed soon, so will look at it tomorrow
nwc10 anyway, I merely "think" that it should work
If I've guessed "understanding" correctly, then the previous commit should only have changed to i16 on the new bytestream 19:15
not the facts
jnthn The patch looks legit. 19:16
nwc10 all the best mistakes do too 19:17
jnthn ;)
brrt bloody asan 19:18
nwc10 keeping programmers honest?
brrt but not telling me why it's broken 19:19
:-)
(i'm complaining because i can't seem to get a stacktrace. a segv i can deal with myself)
nwc10 put a breakpoint on __asan_report_error ? 19:21
brrt or start the script with gdb 19:23
remind me to fix the create-moar-runner.pl script to take a debugger as an argument
TimToady keeps wondering why MVM_exception_throw_adhoc doesn't include a backtrace 19:29
brrt it should show a backtrace?
TimToady there's nothing quite so disgusting as getting "Cannot look up attributes in a type object" with no locational information at all
brrt hmm 19:30
it should be able to show a backtrace
TimToady and there are 13 places with the identical message 19:31
brrt what i usually do is run the thing under gdb and catch MVM_exception_throw_adhoc 19:36
however, that doesn't always work
brrt is afk for tonigh 19:37
t
19:37 brrt left 19:57 Ven joined 20:04 Ven joined 20:05 cognome joined 20:46 Ven joined 21:03 itz joined 21:41 ggoebel111119 joined 21:48 itz_ joined
nine How can I call a method whose name is in $name on object $obj? 21:49
diakopte1 $obj.$name() I think 21:50
or at least $obj."$name"()
nine Ah yes, $obj."$name"() works, thanks. 21:51
diakopte1 yeah I forgot $obj.$var() means execute the (hopefully executable) object in $var with $obj as its invocant 21:56
same as $var($obj:) iirc 21:57
22:03 cognome joined 22:11 _sri joined, ingy joined 22:36 cognome joined 22:46 cognome_ joined 23:16 avuserow_ joined 23:37 itz joined 23:51 itz_ joined 23:58 itz joined