timotimo my brain isn't letting me sleep ... once again 02:27
this dumb idea is milling about in my head:
when we're doing a gen2 collection, we don't actually have to push pointers to pointers into the worklist - if we had two worklists, one of pointers that need updating (because they point to things that can move) and one of pointers that just need visiting (because they're in the gen2 and we're doing a full collection) 02:28
since a check for "is it in the nursery" can be very cheap, because that's just one memory region ... oh, here's where i'm wrong already :)
because multiple threads
but let me finish my thought anyway 02:29
if we decide early on whether something should go into the nursery or gen2 worklist, we could always check the last few pointers in there (align and size to fit cache lines) for duplicates, i.e. "did i recently consider visiting this object for the future?" and perhaps that could take a bunch of load off of the process_worklist sub 02:30
hopefully now that i've gotten this idea out of my system my brain will be satisfied and let me get some rest ~_~
05:28 brrt joined
brrt good * #moarvm 05:31
07:08 zakharyas joined 07:57 domidumont joined 08:01 domidumont joined 08:51 kjs_ joined 09:50 kjs_ joined, domidumont joined
timotimo to clarify, i was expecting you'd see the same bunch of type objects and stables a bunch of times in a row, for example if you have a big and long-lived array, and having the little deduplicating cache could ease memory traffic 10:52
12:10 domidumont joined
[Coke] notes to timotimo that Coke works for an internet of things company! 14:05
(of course, I'm no where near that code :) 14:06
jnthn Is it the one that makes the reminders toaster? :)
[Coke] jnthn: no, the jet engines. 14:08
jnthn That's more cool, but I'm not sure I want one of those in my apartment... :) 14:09
nine I'd totally want a jet engine :) 14:10
jnthn Don't you fly jets? :) 14:11
unmatched} An internet connected jet engine? ... and I thought the blue tooth pee stick was insane....
jnthn Modern planes are chock full of stuff that report ways they're currently breaking/failing back to maint, I thought? 14:12
nine jnthn: no. Though there are sail planes with jet engines :) www.wired.com/2010/08/sailplane-lau...et-engine/
jnthn Ah, sail planes :) 14:14
15:52 kjs_ joined
[Coke] unmatched}: I can't speak to any of the details of $dayjob's IOT, but it's mainly "collect lots of data so you can profile equipment and discover information about it", like "if you do the maintenance at your next window, you'll save money instead of waiting until next thursday". 15:59
I... work on the taxes; nothing exciting like IOT stuff. 16:00
nwc10 so you're on the only guaranunteed "product" line in the entire company? :-/ 16:02
(although the profit centres do need to keep existing to pay for the cost centres)
16:02 kjs_ joined
[Coke] nwc10: it'sā€¦ complicated. 16:03
I will be happy to explain it over beers or equivalents
nwc10 OK. I was rather hoping that it wasn't complicated. Or at least, that it wasn't stressfully complicated. 16:04
ie not "may you live in interesting times"
will happy share beers if our paths cross in the right place 16:05
16:09 zakharyas joined 16:13 brrt joined
[Coke] Closest I get for a while is probably dublin/leeds next month. 16:17
16:18 brrt joined
brrt one of the simpler things to do 16:25
timotimo oh?
nwc10 Guiness and curry
brrt is delay the insertion of stores 16:26
until the end of the bb
anyway, i guess that too
decommute &
16:30 edehont joined
timotimo it feels like there was some missing context to that explanation ... 16:33
16:48 edehont joined 17:28 brrt joined
brrt timotimo: yes, there was 17:28
the issue at hand was that the expr jit inserts just as many stores to stack memory as the regular jit, 'cause it can't determine whether the value will be used at some later point 17:29
so to be safe, it just insert a store-to-memory after everything that corresponds to a moarvm opcode 17:30
i want to get rid of these stores as far as possible, but it is hard as long as we might jump out of the compiled code at any point 17:31
(hence, we need deopt bridges so that the stores can be placed in there, hence, i need you to build them so i can build on them... you see :-)) 17:32
okay, i'm officially very, very, very tired 17:39
17:40 domidumont joined
brrt but, i managed not to break the JIT just yet 17:41
so i'm going to commit
dalek arVM/even-moar-jit: d7aa0d3 | brrt++ | src/core/dynar.h:
Use DYNAR macro arguments only once if possible
17:43
arVM/even-moar-jit: f9fe7ca | brrt++ | / (12 files):
Bikeshedding - rename DYNAR to VECTOR

Vector is probably more common terminology for a resizing array than 'DYNAR', and nearly as short.
arVM/even-moar-jit: c07a09f | brrt++ | / (5 files):
Move tile list editing to tile.c

A bit more sensible that way I hope
timotimo oh crap, i didn't know anybody would ever depend on deopt bridges 18:16
but the deopt bridge stuff will only appear in places where deopting instructions are placed, i.e. where there are guards and deopt annotations 18:25
so everywhere else you can already "be safe", at least exactly as safe as you'll be when deopt bridges exist
19:17 kjs_ joined 19:28 kjs_ joined 20:03 vendethiel joined 20:34 ggoebel joined, brrt joined 20:39 domidumont joined 20:52 kjs_ joined 21:03 Ven joined 21:29 edehont joined 21:56 Ven joined