04:20
lizmat joined
05:50
domidumont joined
05:55
domidumont joined
06:15
domidumont joined
07:13
brrt joined
|
|||
brrt | good * | 07:17 | |
nwc10 | good *, brrt | 07:18 | |
brrt | ohai nwc10 | ||
i've a new and cunning plan to proceed with the register allocator for even-moar-jit | 07:19 | ||
or rather, a next step | |||
next steps are awesome, because you can do them without puzzling over it | |||
moritz | do tell | ||
brrt | well, it's embarassingly simple | ||
at this point, the register allocator can not insert either spills or loads, yet | 07:20 | ||
its just a register assigner | |||
the next step is a): write a small program that will force spilling and loading (this will throw a NYI) | |||
b): implement spilling and loading for the very simple case we actually need | 07:21 | ||
moritz | that sounds very agile | ||
brrt | i've come to realise that all the useful bits of agile can be summarised as: 'set goals you know how to reach' | 07:22 | |
all the other bits are just ritual | |||
moritz | not quite | ||
brrt | now i can't blame people for rituals | ||
moritz | a big part of agile is "reflect on what you did, and improve" | 07:23 | |
and do it regularly | |||
brrt | fair point | ||
hmmm | |||
that may be one of those steps that is so obvious you might overlook it | |||
nwc10 | www.computerweekly.com/news/4502967...ions-staff -- Whenever an out-of-hours alert occurs, a review will be carried out the following day to see if it was worthwhile waking someone up in the middle of the night to sort out. | ||
brrt | radical | 07:24 | |
how on earth did anyone get /that/ idea | |||
nwc10 | (near the end. I find all of Bob's comments interesting.) | ||
moritz | sounds a bit like Google's SRE approach | ||
nwc10 | I'm also biased because I know him :-) | ||
brrt | :-) | 07:25 | |
question: people are not necessarily smart, but they are not necessarily stupid, either | |||
why are organisations almost universally more stupid than their constituent people | |||
moritz | conflict of interest, communication overhead | 07:27 | |
diakopter | rather we must understand that organizations cannot be stupid, as they are not people | 07:28 | |
moritz | right, but they can show stupid behavior | 07:31 | |
brrt | fair point, they can force stupid behavior on people? | ||
also, i'm not sure if i agree at all | 07:32 | ||
moritz | even if they don't, they can still lead to stupid behavior | 07:33 | |
nwc10 | moritz: I'd add "externalities" to your list. (externalities from one organisational sub-unit to another. eg it costs little for someone *else* to say that X needs to be fixed urgently, or out of hours) | ||
brrt | plenty of organisation-like things have collective behavior, all behavior can be adaptive (smart) or non-adaptive (stupid), hence organiations can be(have) stupid | ||
diakopter | i do think orgs can prevent people from not being stupid | 07:34 | |
moritz | if several people are involved in a process, they might optimize for different things | ||
which leads to behavior that makes sense to everybody involved, and is still stupid from the outside | |||
brrt | externalities are a big thing, yes | ||
i'm specifically referring to collective (external) stupidity | |||
:-) | |||
moritz | quite a bit of good productivity consulting consists of just getting the people in one room that work together on one process/project/customer | 07:35 | |
which can be quite hard in big orgs | |||
once they are in the room and talk about the big picture, it's much easier to see the harmful micro optimizations that occur at each step | 07:36 | ||
brrt | that sounds.. a lot like the 'system optimization' thing that is all the rage in energy and environmental planning | 07:38 | |
moritz | if you're interested in these kinds of dicussion, I can recommend the "Devops Cafe" podcast (now mostly defunct, I'm afraid) | 07:39 | |
they have conversions with lots of devops people, and most of them started quite technical, and are now working on shaping the organizations to be more "devops" | 07:40 | ||
10:59
brrt joined
|
|||
brrt | i'm also thinking of shrinking the size of a MVMJitExprNode to 32 bit | 11:04 | |
and splitting constant pointers into two parts | |||
i think that won't hurt all that much, and will be slightly cleaner since we downcast to a 32 bit value for most of the time | 11:05 | ||
the enum value of a MVMJitExprNode is also 32 bit wide | 11:06 | ||
it is dammingly hard to get the register allocator to allocate more than 8 registers... | 12:32 | ||
jnthn | Does that mean it's doing pretty good already? ;) | 12:41 | |
brrt | well, that is one interpretatation | 12:42 | |
eh | |||
interpretation | |||
i prefer to say that the failure case is not so easy to trigger :-) | 12:43 | ||
\o/ got it | 12:47 | ||
i demonstrate: gist.github.com/bdw/3b4cafe6f23223...69cfff30ef | 12:48 | ||
which will throw 'spill_something NYI' | |||
jnthn | :D | 12:51 | |
Remember to add this as a tset :) | |||
*test | |||
brrt | yes :-) | ||
i don't have a commit bit for nqp, otherwise i'd add it there | 12:52 | ||
jnthn | You don't? | 12:53 | |
brrt | no, don't think i do | ||
i've added a few tests in the jit-test repo | 12:54 | ||
jnthn | Sent you an invite so you can commit to nqp :) | ||
brrt | thanks :-) | ||
timotimo has a headache :| | 12:58 | ||
jnthn is getting one... | 13:00 | ||
Too much meetings/email and too little code for me today :P | |||
timotimo | they are in vogue today, it seems. all my other friends seem to have them as well | ||
the "off-line friends", that is | |||
brrt | is there a way to get the current moar version (and possibly, built branch) from nqp? | 13:15 | |
brrt is still healthy | |||
moritz | brrt: nqp --version should report something | ||
jnthn | m: say nqp::backendconfig() | ||
camelia | rakudo-moar 2c4506: OUTPUT«===SORRY!=== Error while compiling /tmp/8gTJ5RMzBwCould not find nqp::backendconfig, did you forget 'use nqp;' ?at /tmp/8gTJ5RMzBw:1------> say nqp::backendconfig()⏏<EOL>» | ||
jnthn | m: use nqp; say nqp::backendconfig() | ||
camelia | rakudo-moar 2c4506: OUTPUT«{ar => ar, arflags => rcs, arout => , asm => .s, asmout => -o , asmswitch => -S, auxclean => @:, be => 0, bindir => /home/camelia/rakudo-m-inst-1/bin, booltype => _Bool, can_unaligned_int32 => 1, can_unaligned_int64 => 1, can_unaligned_num64 => 1, cancgoto…» | ||
jnthn | I think it's in there somewhere | 13:16 | |
m: use nqp; say nqp::backendconfig()<version> | |||
camelia | rakudo-moar 2c4506: OUTPUT«2016.05» | ||
jnthn | Maybe that one | ||
brrt | hmmmm | 13:18 | |
not the branch, no | |||
jnthn | Ah, yeah, it won't do branch...only sha-1 I guess | 13:19 | |
I think really it's git-describe output | |||
So if you had an annotated tag for example... | 13:20 | ||
brrt | tsall good | 13:32 | |
it wil work this way :-) | |||
pushed, thanks jnthn++ for the commit bit | 13:35 | ||
i have a few more tests | |||
i'll see whether i can add them | |||
14:09
lizmat joined
|
|||
brrt | i'm going to see if anyone is interested in a yapc::eu talk about practical hacking on the expr jit | 14:10 | |
i.e. how to write templates, tiles, optimizations, and stuff like that | |||
a crowdsourced JIT is still my dream, perhaps naive | 14:12 | ||
oh, and timotimo, your graph.c-to-expr converter will feature :-) | 14:13 | ||
lizmat | +1 # count me in :-) | 14:18 | |
brrt | lizmat: great :-D, that's encouraging | 14:25 | |
14:31
JimmyZ joined
15:08
domidumont joined
15:23
domidumont1 joined
15:38
domidumont joined
16:30
EsdMi joined,
EsdMi left
16:40
Util joined
16:42
ggoebel114 joined
19:00
domidumont1 joined
20:29
Ven joined
21:03
synopsebot6 joined
21:32
synopsebot6 joined
22:48
diakopte1 joined
22:53
geekosaur joined
22:59
_longines_ joined
23:32
avar joined
23:38
flaviusb joined
|