00:13
lue joined
00:20
woosley joined
00:51
woosley left,
woosley joined
01:54
FROGGS_ joined
02:13
xiaomiao joined
02:47
lue joined
04:54
woolfy joined
05:26
woolfy left
05:28
woosley joined
06:57
lizmat joined
07:00
FROGGS joined
07:03
oetiker joined
07:12
zakharyas joined
07:28
cognominal__ joined
07:29
d4l3k_ joined
07:37
camelia joined
10:19
colomon joined
11:55
dalek joined
|
|||
sergot_ | Where is the code responsible for "throwing" exceptions like "no such method ... for" in moarvm? | 12:31 | |
I mean: how does moarvm call &EXCEPTION(|) (rakudo/src/core/Exception.pm)? | 12:34 | ||
jnthn | It doesn't | 12:35 | |
That's triggered by the exception handler | |||
Throwing an untyped exception is MVM_exception_throw_adhoc(tc, "oh noes"); | |||
sergot_ | So, for "no such method ..." moarvm throws an exception, then it's triggered by nqp? Am I right? | 12:40 | |
jnthn | That one is actually a bit special | 12:46 | |
Because there's a per-HLL way to deal with that particular one | |||
But many internal ones looks like I just showed | |||
sergot_ | next question: are immutable objects "marked" somehow somewhere? :) | 12:59 | |
in MVMContainerSpec maybe | 13:00 | ||
jnthn | What does "immutable" mean? | ||
But generally, no | |||
sergot_ | m: 1 = 2 | ||
camelia | rakudo-moar c382c7: OUTPUTĀ«No such method 'STORE' for invocant of type 'Int'ā¤ in block at /tmp/FKMmbu560a:1ā¤ā¤Ā» | ||
sergot_ | 1 is immutable | ||
jnthn | Ah | 13:01 | |
As in "cannot be assigned to" | |||
sergot_ | that's right | ||
#121534 - I'm working on it | |||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121534 | ||
jnthn | There are two ways assignment works | ||
sergot_ | or.. just trying ;) | ||
jnthn | Either by doing an nqp::assign (scalar containers) OR by calling .STORE (arrays, hashes) | 13:02 | |
= compiles into a p6store when we ain't sure | 13:03 | ||
which is a bunch of the itme | |||
*time | |||
That happens in src/vm/moar/Perl6/Ops.nqp | |||
sergot_ | What about OP(assign):? | 13:04 | |
I can see it throws "Cannot assign to an immutable value" | |||
jnthn | Yeah | 13:05 | |
Typically we don't make it there | |||
See the code in Ops.nqp - it does an iscont and only does assign if that's the case | |||
And if not tries to find a STORE method | |||
FROGGS | and then explodes like we've seen it | 13:06 | |
jnthn | Right. | ||
sergot_ | Thanks, I'll try there. | 13:07 | |
So, this bug can be not connected to moarvm directly, right? | 13:17 | ||
jnthn | No, it's code-gen bug, afaict. | 13:22 | |
I think I'd look to fix it in Ops.nqp | |||
sergot_ | Ok, so, how can I "say" things like that: my $iscont_reg := $*REGALLOC.fresh_i(); | 13:25 | |
this* | 13:26 | ||
timotimo | can spesh do something with the assign/store thing? | 13:43 | |
jnthn | timotimo: Probably already does | 13:44 | |
sergot_: "say"? | |||
jnthn doesn't quite get the question :) | |||
timotimo: It's just a branch on nqp::iscont(...) | 13:45 | ||
timotimo: And should thus fall out of general branch optimization | |||
sergot_ | jnthn: yeah, I use say, but it is more complex, got: cannot stringify this | 13:49 | |
timotimo | cool | ||
jnthn | sergot_: Yeah, MAST nodes don't stringify too well | ||
.dump maybe... | |||
sergot_ | jnthn: yes, thanks :) | 13:51 | |
13:51
brrt joined
13:53
btyler joined
13:55
lizmat joined
|
|||
sergot_ | jnthn: what does "MAST::Local index<15>" mean, and how to get the value? | 14:08 | |
jnthn | It means "register 15" | 14:09 | |
It's just an operand for an op that expects such a register | |||
sergot_ | I have no idea how to debug Ops.nqp then :) | 14:11 | |
jnthn | Yeah. Well, I just suggested on #perl6 maybe we want to just intercept method not found for STORE in bootstrap... | 14:13 | |
sergot_ | Ohh, ok :) | ||
lizmat | working on that | 14:15 | |
sergot_ | Anyway, that was a great "journey through the code". I learnt a lot. | 14:18 | |
jnthn | \o/ | 14:19 | |
14:19
tgt joined
14:42
brrt joined
15:16
lizmat joined
15:17
FROGGS[mobile] joined
15:28
btyler joined
15:30
lizmat joined
15:45
donaldh joined
15:49
cognominal__ joined
16:04
lizmat joined
16:37
FROGGS joined
|
|||
dalek | arVM/loop_labels: 0e3cbd4 | (Tobias Leich)++ | src/core/exceptions.c: code cleanup (whitespace around infix) |
16:50 | |
16:50
rurban_ joined
|
|||
TimToady | masak: ^^^ | 17:30 | |
oops, ww | |||
stupid touchpad... | |||
18:04
brrt joined
|
|||
dalek | arVM/loop_labels: af84d9a | (Tobias Leich)++ | src/ (5 files): make clean that we have a register in FrameHandlers ... and locals in HandlerScope |
18:19 | |
18:24
brrt left
|
|||
dalek | Heuristic branch merge: pushed 21 commits to MoarVM/loop_labels by FROGGS | 18:29 | |
18:30
dalek joined,
lizmat joined
18:36
lizmat joined
18:59
woolfy joined
19:16
woolfy1 joined
19:53
woolfy joined,
woolfy1 joined
20:10
woolfy1 left
20:37
brrt joined
20:47
woolfy joined
20:56
lizmat joined
|
|||
timotimo | nwc10++ # nice work on close-to-the-metal improvements | 21:04 | |
brrt | i've a feeling i should check that out | 21:06 | |
21:14
oetiker joined
|
|||
timotimo | on the mailing list | 21:14 | |
this time it's struct reordering based on the output of git.kernel.org/cgit/devel/pahole/pahole.git/ | |||
21:22
donaldh joined
21:23
woolfy1 joined
21:34
lizmat joined
|
|||
brrt | mailing list? what mailing list? | 21:45 | |
timotimo | i think Perl6-compiler | 21:53 | |
22:35
woolfy1 left
|