github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
Geth MoarVM: f8743c1127 | (Daniel Green)++ | src/core/coerce.c
Add type to exception if a thing can't be coerced
01:57
brrt \o 09:18
jnthn o/ brrt 09:20
brrt ohai jnthn 09:23
do you have anything you're working on recently? 09:27
jnthn Was making the EA be PEA :) 09:28
brrt I saw that you're going to Riga for perlcon eu
what's the difference between those?
jnthn Though last week I had family visiting and took them on a trip to Olomouc, plus had some customers visiting, so didn't really get to touch any of it.
P = Partial, so we can handle things only escapsing on some code-paths 09:29
nwc10 that's short enough to be a URL. Who needs a blog post? :-)
timotimo escapsism 09:31
i'm finally putting an interpreter into moarvm so we can run code in it
nwc10 Ook? 09:32
timotimo Oog, oog!
nwc10 ./r
aha. ther'es my focus
brrt I see 09:35
Okay, that's fairly cool. It's a speculative optimization then :-)
brrt I had one of those 'ideas' today 14:07
timotimo i'm glad i'm not the only one who gets those
brrt Actually, this is a backport of an idea that I had in another context
I can improve the register allocator in steps
More specifically, I can assign to each live range, the register set of permissible registers 14:08
a register set is a 32 bit number
so that's cheap
timotimo look, what is this strange output: 14:11
this is the name of the frame we're running from
run-the-program
thank you for your attention
i wonder if it has anything to do with the program that has "log = sf.name" in it
brrt timotimo: where is it output from? 14:12
jnthn :) 14:13
timotimo compile_confprog.p6 14:16
Geth MoarVM/configurable-subsystems: c872509718 | (Timo Paulssen)++ | 6 files
with lots and lots of hacks, the first useful program!

it just outputs the name of the current staticframe.
14:22
brrt timotimo++ 14:29
timotimo the validator is currently very forgiving when it comes to registers being written to/read from with different kinds of operators declared for the ops, though 14:30
Geth MoarVM/more-pea: 21 commits pushed by (Jonathan Worthington)++
review: github.com/MoarVM/MoarVM/compare/8...1d48d0a600
14:36
timotimo 21 commits sounds like a rebase
jnthn It was :) 14:40
timotimo a fresh base to have great new stuff put onto it
today it turns out that my understanding of "characters outside the BMP must be turned into backslash sequences of UTF16 surrogate pairs" was actually wrong (for json, that is) 14:41
that is only for *if* you *want* to escape a character that happens to be outside of BMP
you can just use literal utf8 data inside strings if you want 14:42
Geth MoarVM/more-pea: de5ce1c801 | (Jonathan Worthington)++ | src/spesh/pea.c
A little more detail in the PEA debug output
14:58
japhb timotimo: What's the reference on that? I was always under that impression as well (needing to transform characters outside the BMP for JSON), but I admit I have just trusted received wisdom, not read the specs myself. 15:34
Geth MoarVM/more-pea: 665194d2bb | (Jonathan Worthington)++ | 3 files
Implement sp_takewrite_bi op and JIT it

This is used when we have a big integer in a register and we need to materialize.
15:53
MoarVM/more-pea: f60c70c1e9 | (Jonathan Worthington)++ | 2 files
Smarter heuristics around bigints in PEA

We benefit from the lowering sufficiently to go ahead and apply PEA.
Geth MoarVM/more-pea: 08c2cdc3fa | (Jonathan Worthington)++ | src/core/vector.h
Remove duplicate macro definition
17:26
MoarVM/more-pea: 45690cba0b | (Jonathan Worthington)++ | 2 files
Only bind used attributes in materialization

Otherwise, we can write values into attributes that would otherwise vivify. This also prepares the way for more proper handling of the attribute vivification in general, which we decidedly cheat on at the moment.
nwc10 jnthn: NQP master doesn't like that more-pea - it bombs out with a "MoarVM oops: Malformed DU chain: writer sp_fastcreate of 3(2) in BB 14 is incorrect 17:42
jnthn I'll get. 17:44
*bet
Still a few missing pieces before it works "in theory" :) 17:45
Let alone in practice.
Geth MoarVM/more-pea: bed960afdb | (Jonathan Worthington)++ | src/spesh/pea.c
Refactor in preparation for handling attr viv

For now, always bail saying that we cannot handle it. This is the hook for us to put in proper hanlding.
17:46
MoarVM/more-pea: 4b5080fb03 | (Jonathan Worthington)++ | src/spesh/pea.c
Handle no-vivify case of attribute viv reading

In this case, we can simply turn it into a register access, like any other attribute read op.
17:57
jnthn dinner time & 18:00