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