github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
Geth MoarVM: d40bac9f0a | (Jeremy Studer)++ (committed by Bart Wiegmans) | src/jit/x64/emit.dasc
Use arithmetic right shift in JIT of brshift_i

The arithmetic right shift will preserve the sign of the integer by ensuring that new bits shifted in match the initial sign bit.
10:20
MoarVM: 0c2b13a233 | (Jeremy Studer)++ (committed by Bart Wiegmans) | 6 files
Add exprjit integer multiplication op

  +1 template
Only adding a tile that takes two registers for now, as that is the only way the op is being used currently.
10:22
MoarVM: 43c5cd4aa7 | (Jeremy Studer)++ (committed by Bart Wiegmans) | docs/jit/overview.org
Add mul exprjit op to documentation
brrt good * 10:28
I've taken it on myself to start merging or closing branches
lizmat brrt++ 10:30
timotimo that's brave 10:40
releasable6: status 10:41
releasable6 timotimo, Next release will happen when it's ready. 2 blockers. 80 out of 169 commits logged (⚠ 1 warnings)
timotimo, Details: gist.github.com/10352423573b198456...cb19a6d392
AlexDani` brave indeed :D 10:50
dogbert11 what cool features/opts will these branches add? 11:03
brrt meh, I just let everyone panic when it's broken again 11:28
:-D
in seriousness, we should probably want a not-too-large backlog of PRs
timotimo true, i've made a couple in the recent past, too, that should probably be merged, dropped, or re-done 11:29
brrt yes 11:31
github.com/MoarVM/MoarVM/pull/979 - this one 11:32
Geth MoarVM/master: 5 commits pushed by (Jeremy Studer)++, (Bart Wiegmans)++ 11:39
timotimo that's on hold until our post-inlining optimization pass can be replaced by the regular one 11:43
nine brrt: do you have an idea what was wrong with these? github.com/MoarVM/MoarVM/commit/db...7ab57a1615 11:44
brrt nope, not me 11:45
I feel like that should be safe
brrt maybe it's to do with the extend / trunc business 11:46
as in, they may not be wrong per se, but they may expose wrongness in how we handle truncation and extending
I don't know. I'm theorizing
nine: do you have an example of what was going wrong with them? 11:53
nine brrt: you may be right. I've reverted my patch and am building rakudo currently. So far no issue. I remember compilation breaking with those templates present. 11:54
brrt here's hoping it works 11:59
nine Looking good :) 12:02
brrt \o/ 12:04
Geth MoarVM: 8c67e1697e | (Stefan Seifert)++ | src/jit/core_templates.expr
Revert "Remove broken expr JIT templates"

This reverts commit db23381f695d5e477052d0973ed1107ab57a1615.
Apparently these templates were actually victims - probably of the broken trunc templates.
13:14
timotimo here's an interesting thing 14:01
timing-attack resistant string comparison
hm, we might be able to do that with eqat
lizmat nine: does the revert imply that we have a borked Moar on master Rakudo ? 14:14
dogbert11 using some trickery it was finally possible to repro the 'Deuplicate label' bug, this time on a 64 bit system 14:23
looks like this: gist.github.com/dogbert17/c42ad0f8...3bda3e3ce5 14:24
brrt \o 21:19
any big fallout from my recent merges?
lizmat no spectest fallout, even without nine's revert 21:25
brrt :-) 21:34
that's good to hear
I'm thinking of buying a new laptop. Any advice? 21:35
It's not going to be a macbook
jnthn Are there laptops other than macbooks and thinkpads? :P
lizmat brrt: I have no idea...
timotimo i've been drooling over the google pixel slate, but it's not available in germany, and possibly not in the netherlands either, and i'm not sure if it's the kind you would want 21:37
jnthn I guess by now nearly everything is SSD, and the only other advice is "no, the amount of RAM you think is enough never will be" :)
timotimo oh yes, get 32 gigs, or you'll regret it
well, ok, i'm currently stuck with 4 gigs, so even 8 would be a relief ... 21:38
lizmat is stuck at 16G :-) 21:40
brrt thinkpads are kind of expensive... 21:41
most laptops are still 8G
timotimo do you have any specific requirements? like, if you want to do cuda/openCL/machine learning you'll definitely want a discrete gpu in there, but probably not :) 21:44
brrt I have a project for which I want to apply some machine learning... but I don't want to have to install nvidia drivers 21:47
timotimo i guess that's fair 21:48
can always rent a gpu vm somewhere
brrt i need a bunch of memory for java work that I'm doing 21:49
I'm always oscillating between 'java makes sense and is alright' and 'I hate everything about java'
for instance, much of the JVM is sanely designed
Actually, the only real problem I have is that people treat it like a nicer C++, whereas it's really a less-nice perl that runs a bit faster 21:50
timotimo i've got a 2d cellular automaton piece of code that currently just replaces each cell's value with the value of the cell to the bottom-right of it, and that gives me between 75 and 115 frames per second for a 320x240 cells grid (including rendering) 21:51
brrt is that perl6?
timotimo yes 21:52
brrt that's not so bad
timotimo otherwise it'd be a lot faster ;)
brrt hehehehe
timotimo also, it's rather verbose code
now i want to have "for every row, change which direction it takes the value from)
s/\)$/"/
but the "super clever way" didn't do it :|
brrt I sometimes wonder, in a very unofficial capacity at that, what a vm would look like that was designed to use a JIT from the ground up 21:53
things I'd do:
- have an assembly-language intepreter
timotimo oh lord
this is amazing
brrt - have much smaller string ops, and put much more responsibility on the caller for their usability
btw, what's the super clever way 21:54
timotimo my $interested := ($up-left, $up-mid, $up-right, ...).pick
i had to use my $interested := ($up-left, $up-mid, $up-right, ...)[^8 .pick] instead
that could perhaps be considered a bug 21:55
that it deconts somewhere in there
brrt the reason an assembly-language inteprreter is nice is that it allows you to sync the representation for the JIT and the interpreter
which is otherwise really hard
timotimo uploading a gif right now 21:56
i.imgur.com/pvsQLPg.gifv 21:57
brrt that's pretty cool 22:07
timotimo i've just made it cooler, but also surprised myself 22:08
i.imgur.com/N6PUFa4.gifv 22:10
oh, i know what's going wrong 22:11
since i'm immediately rewriting the current cell's value, if things are trying to move down-right, they'll just immediately always read the earlier value and it just propagates through the entire cell 22:13
same with downwards or rightwards
i'll have to double-buffer these rows
uploading the workingv ersion 22:28
i.imgur.com/uy3Kves.gifv 22:37
i forgot to actually put the link here
timotimo cool, pulling that list of variables out of the loop makes it a bunch faster, even though it only does it every 80 rows * columns 23:15
not an absolute bunch
just a little bunch
removing the printing of time for both steps made it faster, or at least it feels like it 23:55
a "perf record" for some reason outputs a whole lot of MVM_interp_run 23:56