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
|