github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:46 statisfiable6 joined
samcv ok so apparently gradle on travis is broken. and it sets JAVA_HOME in the /usr/bin/gradle to overwrite yours... 00:52
but only the ubuntu one 00:53
01:46 MasterDuke joined 05:58 releasable6 joined 07:17 domidumont joined 07:24 domidumont left 07:25 domidumont joined 07:48 brrt joined 07:58 brrt left 08:06 brrt joined
brrt I can offer to translate markdown to asciidoc :-) 08:15
either by hand or by script
not like markdown is such a difficult syntax after all 08:16
samcv brrt: well i can convert it fine on my computer 08:53
but the goal was people could write it in whatever their choice was
brrt: also, how would you make coerce_ui into expr jit op 08:54
GET_REG(cur_op, 0).i64 = (MVMint64)GET_REG(cur_op, 2).u64;
jnthn I think that'd probably just be equivalent to a set at machine level 09:05
samcv like (template: set (copy $1)) ?
jnthn Since I think signed/unsigned is just about how the bits are interpreted, not a representation chance
samcv yeah uint and int i believe just copy the bits
jnthn Yeah, then "what set does" I guess :) 09:06
samcv so it copies $1 and puts it in $0?
even though it doesn't specify the $0 register anywhere?
jnthn I think results are handled automatically, the exception being ! templates that take care of their own storing 09:08
samcv ah yeah
jnthn (Disclaimer: I've barely written any templates yet :))
Though I should probably add some for my new guard ops, if nobody is beating me to it :)
Geth MoarVM: samcv++ created pull request #883:
Add expr jit templates for atkey_i/n/s/u coerce_iu/ui decont_u
09:15
samcv i see this op not getting jitted: scwbdisable
looks like it should be pretty simple: GET_REG(cur_op, 0).i64 = ++tc->sc_wb_disable_depth; if anyone wants to do it 09:16
i gotta go to bed now. night o/
timotimo gnite samcv
jnthn 'night o/ 09:20
brrt yyeah, as long as they're equally sized, there's nothing to be done 09:25
good night samcv
re: markdown, having a total free-for-all in formats is awesome, but not essential, and not nearly as beneficial as having published documentation in the first place 09:26
so as far as I care we convert everything to a single format, asciidoc if necessary, and stick to that 09:27
jnthn Dunno, writing docs is enough work already. Given I wrote all the Cro docs in Markdown instead of learning Pod6, the chances of me learning asciidoc beyond cargo-culting what I see ain't that high. :-) 09:29
otoh that's how I "learned" Markdown too... :)
timotimo learn from broken implementations \o/ 09:30
nwc10 good *, #moarvm 09:40
09:43 brrt left 09:44 zakharyas joined
jnthn o/ nwc10 09:44
10:39 lizmat joined 10:43 lizmat left 10:47 brrt joined
brrt hmm. anyway, a markdown-to-asciidoc converter would be easy enough, i've written plenty markdown parsers in the past 10:50
the trick is not to assume that it is a regular parseable langauge
11:06 lizmat joined 11:17 MasterDuke left 13:11 lizmat left 13:36 AlexDaniel joined 13:51 brrt left 14:02 zakharyas left 14:03 zakharyas joined 14:07 zakharyas left 15:06 domidumont left
Geth MoarVM: W4anD0eR96++ created pull request #884:
NQP does not support parrot any more
15:07
MoarVM: 73d646c672 | 陈梓立++ (committed using GitHub Web editor) | README.markdown
NQP does not support parrot any more
15:09
MoarVM: 1049e09a99 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | README.markdown
Merge pull request #884 from W4anD0eR96/patch-1

NQP does not support parrot any more
MoarVM: 1ed8c64c40 | (Jonathan Worthington)++ | 9 files
Add sp_speshresolve, rewrite to it in spesh

If we cannot rewrite speshresolve to a single resolution in the specialization, then rewrite it to sp_speshresolve instead. This op:
  * Will lookup and store at the correct offset, rather than the offset
   in the specialized code (which in the best case would just mean lost
... (6 more lines)
15:38
MoarVM: ec4c63e0b6 | (Jonathan Worthington)++ | 2 files
Mark speshresolve as :noinline

Just In Case, but it should always be rewritten into sp_speshresolve anyway, which does make it inline-safe.
15:42 brrt joined
jnthn Next challenge: figure out how to JIT sp_speshresolve :) 15:43
It's a form of invoke. Given prepargs lacks a template, I wonder if that means exprjit doesn't yet do those
Hm, though it's also invokish in that it may actually not invoke. 15:46
brrt I'll need to check as to what it actually does 15:50
but as long as it's properly annotated so that variables are correctly flushed before, being invokish isn't really a problem anymore?
jnthn brrt: speshresolve is code-gen'd with a prepargs + args + final instruction
Well, speshresolve *is* that final instruction
brrt oh, i see
hmmmm
jnthn But it's basically a call that might actually not really call and just get its answer right out of the guard set 15:51
In the best case, we never have to JIT this because we rewrite it to the result
Plus a guard or three
But sometimes we may need to JIT it
brrt right
hmmm
yeah, then it's not for the expr jit yet 15:52
jnthn My first thought was "well, we get to re-use the existing invoke handling mechanism, to setup callsite and args"
brrt i mean, expr jit could do it, but it's not that interesting (I think), the advantage is pretty small
uhuh
jnthn But now I'm looking at it and wondering if that's quite true or if it twists the invoke node type a bit too far :)
brrt i think it ought to be doable 15:53
maybe even sane
jnthn Yeah, looking again, there's a lot to share
Trying to spot where the handling of "return from the JITted code upon call" is happening 15:54
brrt MVM_frame_invoke
jnthn oh, MVM_jit_code_trampoline? 15:56
So if I don't end up calling that, we won't leave the JITted code?
brrt correct
this is the nicest thing (imho) about the whole jit-stack-walker thing 15:57
jnthn Yeah, that makes it more fitting to use the invoke node then :)
Geth MoarVM: W4anD0eR96++ created pull request #885:
Clean outdated mention of Parrot
15:59
MoarVM: 210d27ff9d | 陈梓立++ | 3 files
Clean outdated mention of Parrot

There is 2 mention of Parrot.
1. docs/reveal.md 2. src/6model/reprs/SCRef.h
Both of them talking about history instead of outdated info. Thus no reason for removing them.
16:24
MoarVM: ca9c63fea4 | (Zoffix Znet)++ (committed using GitHub Web editor) | 2 files
Merge pull request #885 from W4anD0eR96/parrot-doc-remove

Clean outdated mention of Parrot
16:27 lizmat joined
jnthn Yay, I think I jut it 17:07
nwc10 "you what?" 17:08
Geth MoarVM/jit-sp_speshresolve: 0b7f26ce57 | (Jonathan Worthington)++ | 5 files
JIT-compile sp_speshresolve
17:09
jnthn brrt: If you'd be so kind to glance over ^ to see if I did anything really silly, that'd be appreciated :) 17:10
brrt huh, that reminds me, i need to kill the reentry label 17:28
yeah, i'll look :-)
17:36 zakharyas joined
brrt jnthn: there's a minor issue with regards to the call of spesh_resolve_jit 17:47
I can fix that for you, but not tonight
17:56 zakharyas left 18:08 brrt left 18:25 robertle joined
samcv ctxouter would be nice to exprjit too 20:21
Geth MoarVM: 91e97b747b | (Samantha McVey)++ | src/jit/core_templates.expr
Add expr jit templates for atkey_i/n/s/u coerce_iu/ui decont_u
20:24
MoarVM: bedb5381ba | (Samantha McVey)++ (committed using GitHub Web editor) | src/jit/core_templates.expr
Merge pull request #883 from samcv/moreexprjits

Add expr jit templates for atkey_i/n/s/u coerce_iu/ui decont_u
20:29 brrt joined
samcv brrt: we don't have a way to throw in exprjit or do we? 20:37
jnthn I'd guess throwing is involved enough that we'd call a C function to do it 20:44
samcv i'm trying to eliminate some malloc's from our bigint ops 20:47
20:52 Ven`` joined
samcv gets a 10% speed improvement on coerce_sI :) 21:07
Geth MoarVM: 353940a83b | (Samantha McVey)++ | src/math/bigintops.c
Get rid of lots of mallocs in coerce_sI

This avoids mallocing in MVM_bigint_from_str if we just end up storing the value as a smallint. It also avoids mallocing in MVM_coerce_sI when creating a cstring version of the input string. We can shortcut and use the faster grapheme iterator since decode will fail with synthetics anyway.
21:14
MoarVM: e9b1b73b1a | (Samantha McVey)++ | src/math/bigintops.c
Get rid of some malloc's in MVM_bigint_to_str

Use alloca for small things to avoid a malloc.
MoarVM: 93eac13d35 | (Samantha McVey)++ | src/strings/ascii.c
In MVM_string_ascii_encode_substr only free if non-null

Only call MVM_free if we have a replacement to free.
21:15
21:29 Ven`` left
brrt samcv: I think I have a throw_adhoc macro. or I have it stashed in some branch 21:36
timotimo there's one in unsafe.expr
is that under source control?
brrt yes
timotimo but we don't have working strings, right?
brrt ... no. I do have that in the jit-expr-refactor branch though 21:37
samcv++ - but can I give one advice; make a version of MVM_string_ascii_encode that takes an output buffer and a length 21:40
that alone would save so many allocations
samcv yeah i was considering that 21:42
probably will add after looking more places it's used
brrt :-) 21:43
also, if you have that, the allocating variant can just call out to the buffer-taking variant 21:44
maybe same for utf8 encode
Geth MoarVM/jit-sp_speshresolve: 1fe14d3c46 | (Bart Wiegmans)++ | src/jit/x64/emit.dasc
[JIT] Define ARG5 and ARG6 on windows

Windows has only 4 arguments in general purpose registers (as opposed to POSIX which has 6). Any other arguments are passed on the stack. Define the names of ARG5 and ARG6 to be the appropriate stack locations, and make sure to introduce intermediates where necessary.
22:02
MoarVM/jit-expr-refactor: 5 commits pushed by (Bart Wiegmans)++ 22:04
brrt ^ rebase, nothing new 22:05
22:16 brrt left 22:48 MasterDuke joined