00:19
jnap1 joined
01:02
FROGGS_ joined
01:21
colomon joined
01:36
jnap joined
01:59
donaldh_ joined
02:25
donaldh joined
02:51
jnap joined
03:52
jnap joined
04:53
jnap joined
05:04
lue joined
05:54
jnap joined
06:54
jnap joined
08:06
lue joined,
donaldh joined,
FROGGS_ joined,
dalek joined,
lizmat joined,
hoelzro joined,
cognominal__ joined,
ashleydev joined,
cxreg joined,
odc joined,
flussence joined,
_sri joined,
timotimo joined,
brother joined,
bcode joined,
tadzik joined,
Util joined,
camelia joined,
sergot joined,
japhb joined,
jnthn joined,
xiaomiao joined,
retupmoca joined,
ChanServ joined,
nwc10 joined,
masak joined,
lee_ joined,
JimmyZ joined,
dagurval_ joined,
avar joined,
ingy joined,
moritz joined,
BinGOs joined,
colomon joined,
daxim joined,
woolfy joined,
[Coke] joined,
synopsebot joined
08:11
camelia joined,
ggoebel111113 joined,
harrow joined,
tokuhirom joined,
TimToady joined
08:56
jnap joined
|
|||
nwc10 | jnthn: botherit, in that I'd forgotten where the Moar-on-Pi error was | 09:31 | |
it's an "index out of range" during NQP | |||
however, gcc is 4.6 (and valgrind is 3.7.0 | |||
so I'm dist-upgrading to debian testing to get a vaguely current toolchain | 09:32 | ||
09:57
jnap joined
|
|||
jnthn | nwc10++ # portability stuffs | 10:15 | |
nwc10 | jnthn: which filled / | 10:17 | |
so xkcd.com/349/ | |||
(have discovered apt-get autoclean) | |||
have second working SD card. Going to use this, etc | 10:18 | ||
but need to do some setup first | |||
for which it turns out that it's fairly useful to have a satellite receiver which is actually running linux | 10:19 | ||
even if (grumble) it can't do ext4 | |||
10:57
jnap joined
|
|||
jnthn | Interesting thing that might tempt somebody: you can use the spesh graph building infrastructure for more than just that. One other application is to instrument the code for profiling. | 11:01 | |
That's probably how we should build profiling support into MoarVM. | |||
FROGGS_ | cool!! | 11:22 | |
timotimo might like that idea :o) | |||
jnthn is doing the next round of spesh work and it's tricky | |||
timotimo | hmmm | ||
11:58
jnap joined
12:59
jnap joined
|
|||
timotimo | jnthn: can i has a flag that i can set on the vm instance that causes moarvm to shut down and clean up when a gc is hit? | 13:17 | |
jnthn | That sounds like a weird thing to want... | 13:18 | |
What're you trying to achieve? | 13:19 | ||
FROGGS_ | hehe | ||
timotimo | have a moarvm in-process and have a way to stop it | ||
when it's infinilooping, for example | |||
making it a separate process makes it simpler to kill, but then i have to think about ipc, instead of just exposing a few C functions to NativeCall | 13:22 | ||
14:00
jnap joined
|
|||
dalek | arVM/spesh_trace: 2938e6d | jnthn++ | src/ (2 files): Add slots related to logging things we saw. |
14:10 | |
arVM/spesh_trace: 5170681 | jnthn++ | / (11 files): Re-organize spesh to have log/specialize phases. When we first decide to specialize, we now only go so far as creating argument guards. There is a place for logging instructions to be added (though none are being yet). This information will then be available when we reach specialize time, to guide specialization. |
|||
timotimo | ah, so it'll be a bit more like pypys tracing jit | 14:13 | |
where they run the code that's been considered hot once while looking really closely, logging everything, tracing through the whole interpreter | |||
jnthn | Well, sorta-ish-kinda :) | 14:14 | |
We don't trace through the interpreter or log everything. Just some interesting things we can't figure out otherwise. | |||
But yeah, it should gets us various benefits :) | 14:15 | ||
timotimo | ah, ok | 14:19 | |
yay :) | |||
14:25
donaldh joined
|
|||
dalek | arVM/spesh_trace: 91b5df6 | jnthn++ | src/core/interp.c: Implement sp_log op. |
14:49 | |
arVM/spesh_trace: e720acd | jnthn++ | src/spesh/ (3 files): Start inserting logging instructions. |
|||
15:00
jnap joined
|
|||
JimmyZ wonders what spesh trace is about | 15:14 | ||
timotimo | jnthn explained it a bit above | 15:21 | |
dalek | arVM/spesh_trace: 009fb08 | jnthn++ | src/6model/reprs/MVMStaticFrame.c: Correct log slot marking. |
15:33 | |
arVM/spesh_trace: 1d10c99 | jnthn++ | src/core/interp.c: Fix scoped/lifetimed lexical lookup opts. |
|||
arVM/spesh_trace: 031f7ed | jnthn++ | src/spesh/candidate.c: Add missing write barrier after spesh. |
|||
jnthn | The goal is partly to allow spesh to benefit Rakudo more, but also this is part of preparing the way for inlining. | ||
JimmyZ | That's very nice | 15:42 | |
jnthn | Yes. A bit tricky, though :P | 15:43 | |
16:01
jnap joined
|
|||
dalek | arVM/spesh_trace: 2b08076 | jnthn++ | src/spesh/optimize.c: getlexstatic_o optimization. |
16:31 | |
arVM/spesh_trace: f4ba822 | jnthn++ | src/spesh/c (2 files): Be more careful with no-handler frames. |
|||
arVM/spesh_trace: 5b9af98 | jnthn++ | src/spesh/codegen.c: Better error on handler fixup failure. |
|||
timotimo | jnthn: i'm not sure i understand how that getlexstatic_o thing is supposed to work; would it turn redundant getlexes into a cheap operation like accessing a local? | 16:33 | |
but only if it's still the same object? | |||
jnthn | timotimo: When you do $a + $b, if we didn't override the +, it's the same one every time. | 16:34 | |
The other op that I added that we don't use yet is for type variables | |||
Where if we specialized on the invocant type then ::?CLASS (used for attribute lookups) can be considered static | 16:35 | ||
timotimo | ooooh | ||
that does sound good | |||
jnthn | Sadly, we get some Rakudo test fails with this and the NQP patches I just pash | 16:36 | |
timotimo | does it do things yet? | ||
jnthn | But it seems it's a silly thing | ||
timotimo | ah, ok | ||
jnthn | It's somehow failing to re-compute frame handler addresses. | ||
Despite the dump showing annotations in the right place. | |||
bbl & | 16:37 | ||
timotimo | that's probably sanity tests then? | 16:38 | |
17:02
jnap joined
18:03
jnap joined
|
|||
nwc10 | how could I run the NQP tests using the stage 0 NQP? | 18:18 | |
oh, do I even need to? -e0 fails the same way | 18:19 | ||
timotimo | oh, that sounds bad | 18:30 | |
18:31
zakharyas joined
|
|||
nwc10 | it's very strange. -e0 fails within a couple of seconds | 18:34 | |
the first command that the NQP build runs takes 90 seconds | |||
most curious. I have a long long value of 4294967296 | 18:40 | ||
which I suspect should be 0 | |||
timotimo | huh? | 18:41 | |
nwc10 | "live debugging" | ||
it will hopefully all make more sense soon | |||
19:04
jnap joined
|
|||
nwc10 | OK, this is whacko that I didn't know about | 19:09 | |
sizeof(int64_t) = 8 __alignof__(int64_t) = 8 | |||
yet if I have an int64_t in a structure, the alignment is only 4 | 19:10 | ||
this is x86 | |||
it's a WTF moment | |||
19:12
benabik joined
|
|||
timotimo | the what now? | 19:15 | |
nwc10 | alignment mismatch | ||
jnthn: what code where writes to index in a MAST::Local? C code or NQP code? | 19:16 | ||
I can't spot any assignment in C | 19:17 | ||
FROGGS_ | must be nqp | ||
timotimo | where does the alignment mismatch come from? | ||
nwc10 | that is the question I'm figuring out | 19:18 | |
but I suspect that it's a bad assumption about C ABI alignment in strucutres | |||
japhb | jnthn: Is there an update to gist.github.com/jnthn/11126125 or is that the current way you'd write that? I'm starting to think about turning pieces of that into helper routines, and want to make sure I'm working off current thinking .... | 19:22 | |
lizmat | japhb: afaik, that is still current thinking | 19:28 | |
japhb | lizmat: Have there been any changes in async I/O or the concurrency primitives since then? | 19:29 | |
Hmmm, looks like you've been doing some Supply work | 19:30 | ||
lizmat | hehe, yes :-) | 19:33 | |
ingy | moarning | ||
FROGGS_ | hi ingy | 19:34 | |
lizmat | ingy FROGGS_ /o | ||
FROGGS_ | o\ | ||
ingy | hi all! | 19:35 | |
lizmat | japhb: perhaps this discussion should be on #perl6 ? | ||
japhb | lizmat: Sure. I'm beginning to have a problem with #perl6, so it's no longer default for me, but you're right, it's more on topic there. | 19:36 | |
timotimo | too much text in #perl6? | 19:40 | |
FROGGS_ | timotimo: yeah, it is very hard sometimes... | 19:44 | |
japhb | timotimo: Yeah. Just way too much to simultaneously be there and actually get hacking done. | 19:46 | |
12 hours of day job + 3 kids + #perl6 + hacking > capacity | |||
timotimo | i see | ||
japhb | I'd love to turn the SNR on #perl6 up a few notches (by reducing noise). But it's civil as always, I don't want to break the community. | 19:47 | |
BTW, I came to this conclusion when I just tried to keep up with #perl6 for a while -- and realized I hadn't done any good hacking done in *months*. | 19:49 | ||
Sigh, sorry for turning this into #perl6-meta for half an hour. :-( | |||
FROGGS_ | *g* | 19:51 | |
20:02
zakharyas joined
20:04
jnap joined
20:37
woolfy joined
|
|||
jnthn back | 21:01 | ||
lizmat | jnthn o/ | ||
jnthn | japhb: It's the current way, but .then will likely get a 2-arg version for a keep and break closure. | ||
lizmat | hmmm... intriguing thought | 21:02 | |
jnthn | japhb: My expectation is that most users will be using modules built out of IO::Socket::Async rather than using it directly. | ||
japhb: So I'm not really inclined to see it sugared greatly. | |||
lizmat: Not sure if 2-arg version is best way, but I think we want to somehow avoid the if $res.status == Kept { ... } boilerplate. | 21:03 | ||
lizmat | yup | ||
21:05
jnap joined
21:17
cognominal__ joined
21:39
jnap joined
|
|||
jnthn | nwc10: I suspect P6opaque.c is the place that may be making the bad ABI assumption, though I don't immediately see it... | 22:10 | |
22:11
zakharyas joined
22:40
jnap joined
23:40
jnap joined
|