dalek arVM/6pe: bccbeac | jnthn++ | docs/6model-parametric-extensions.markdown:
Start documenting the parametric 6model design.
11:18
arVM/6pe: 3bcab71 | jnthn++ | / (6 files):
Stub parametricity-related ops.
arVM/6pe: 0ae9e8e | jnthn++ | src/6model/6model.h:
STable extensions for parametricity.
arVM/6pe: 2fc3940 | jnthn++ | src/gc/collect.c:
GC marking for STable parametricity bits.
jnthn (Rebase, sorry for noise :))
nwc10 Today "Spesh" ... www.bbc.co.uk/news/blogs-magazine-m...r-30795336 14:25
brrt what 14:26
jnthn That stuff must taste like crap... 14:27
nwc10 I was unware that said beverage had said nickname
it does.
brrt jnthn: i had the exact same thought
jnthn wasn't aware of it either
brrt also, that is such terrible hypocrisy, to blame one beer out of all for alcoholism
nwc10 IIRC we refered to it as "punishment juice" or something like that, when using it as a forfeit in a drinking game 14:28
(but this was 20 years ago)
tadzik hmm, they say it's 4.5 alcohol units, so 0.5 more than daily dosage
jnthn "dosage" :D
nwc10 :-)
tadzik and the solution is watering it down? Rather than, hmm, let's see, making cans smaller?
jnthn "My doctor told me to drink 4 units a day..." 14:29
brrt rather than not selling alcohol to obvious alcoholics?
tadzik I don't see how my choice of words is any other than spot on :P
brrt :-P 14:30
anyway, now that we're all here. create a new structure for repr ops compilation, *or*, extend c call structure for repr ops compilation 14:31
jnthn Some of my favorite beers are in the 9%-10% range, but I'm pretty sure they're not a cheap way to get drunk...
brrt first one is simpler btw, except that i have to replicate windows / posix argument inconsistency
jnthn And the folks I know who drink them are responsible. So singling out high-volume thing is also silly...
brrt: I was wondering if the second one was easier in that you get to re-use the windows/posix argument handling bits. 14:32
[Coke] imgur.com/gallery/CJfnAL7 - a little nicer than the ones I have!
jnthn brrt: And also 'cus it can be handled in graph.c entirely that way
brrt jnthn, yeah that's mostly the argument for it
well..... doing it specially is much more efficient
since i'll only have to do stable unpacking once
jnthn More efficient how?
In the generated code, or...? 14:33
brrt yes
jnthn Hmm
brrt maybe not much
but still quite a bit
jnthn Why do you have to do STable unpacking?
brrt ehm, consider one of the simplest cases, elems
jnthn If we're resolving the call to a C function then it only needs to be dereferenced once...
To pass to the appropriate elems function 14:34
[Coke]: Wow!
brrt i have to resolve the repr, the repr function, the object, the stable of the object, and the object body of the object 14:35
it's: REPR(obj)->elems(tc, STABLE(obj), obj, OBJECT_BODY(obj));
that's four separate obj loads right there
jnthn Yes but I was suggesting to do this in the case where we *know* the type of obj!
Meaning that by the time we have machine code, the indirection is all gone. 14:36
brrt true, in which case we have 3 of them :-)
jnthn So you use the type in graph.c to get the elems function
brrt right, then it is simpler
you still can't do all in graph.c since you still have to take the STABLE and the OBJECT_BODY of the obj 14:37
jnthn I wonder if it'd be possible to have C function call flags that indicate "STable of" and "body of", and to do a quick check when producing the machine code to avoid the multiple memory accesses...
brrt heuristically, yes, but it'd be complicated 14:38
you'd have to reorder loads
jnthn Well, the heuristic only has to catch the REPR API calls
And those are rather regular
The other way to do it would be to have a REPR_THREESOME C call flag. 14:39
brrt and then you'd have to have a way to refer to the notion of obj being in the 4th argument or the 3rd, and then to emit code that loads these from there
hmmm
that.... would be possible
jnthn Which expands to STABLE(o), o, OBJECT_BODY(o)
brrt not sure if that makes things much simpler 14:40
jnthn Yeah, depends how messy it makes the C call code-gen vs the duplication we'd get from a new JIT graph node type. 14:41
brrt wonders about just that 14:42
jnthn My gut suspects the complication of re-use is less code/pain than the complexity of a new node type, givne the similarities. 14:47
*given
brrt i can try both, of course 14:49
jnthn True. :) 14:50
brrt what we really need, of course, is something of an expression compiler 21:39
brrt wow very netsplit 21:55
brrt single core windows 8.1 is a guarantee to be unhappy it seems 22:14
jnthn
.oO( I thought Windows 8 was generally such a guarantee... )
22:16
brrt 8.1 is ok 22:30
it has a little desktop mode that allows you to mostly ignore the tablet like thingy
importantly, you can choose the system background colour during setup 22:32
leedo_ i always thought white on blue was an odd choice for a Windows setup screen 22:35
since I immediately am reminded of the BSOD
brrt which is why i use yellow 22:36