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
|