00:03
cognome joined
00:36
colomon joined
01:05
colomon joined
01:08
FROGGS_ joined
01:48
ilbot3 joined
02:27
colomon_ joined
08:30
Juerd joined
08:32
kjs_ joined
08:43
Juerd joined
08:52
synopsebot joined
08:53
[Coke] joined,
masak joined,
PerlJam joined
08:55
Util joined
08:56
leont joined
08:57
tadzik joined,
pmichaud joined
08:59
sergot joined
09:02
Ven joined
09:04
Juerd joined,
dalek joined
09:14
kjs_ joined
10:34
kjs_ joined
11:03
Ven joined
|
|||
nine | .tell brrt about that email banning guy. Why don't you agree with his reasoning? | 11:06 | |
FROGGS_ | nine: it feels like the beginning of a beautiful tdwtf :o) | 11:41 | |
nine | FROGGS_: the email thing? I don't know. I'd say the gist is "For some use cases specialized tools are better suited than email." And I tend to agree. Though I would probably not use the hippest cloud services for everything... | 11:44 | |
FROGGS_ | well, I think it is often better to have as few systems as possible | 11:51 | |
nine | Sounds like a good rule of thumb. Like the advise to only have one TODO list for work, private and everything. But email is very bad at managing TODOs so this may be a good area to use something more specialized. | 12:02 | |
12:21
FROGGS[mobile] joined
12:22
zakharyas joined
12:35
ggoebel11111114 joined
13:29
Ven joined
13:31
brrt joined
|
|||
brrt | \o | 13:31 | |
lizmat | brrt o/ | 13:33 | |
any chance of you making it to the APW ? | |||
brrt | hi lizmat :-) | ||
.. no, i don't think so | |||
lizmat | :-( | ||
brrt | yes :-( | 13:34 | |
nine | brrt: About that email banning guy. Why don't you agree with his reasoning? | ||
brrt | it's a real shame, i really had liked to see everybody again | ||
nine: i'm so out of context now | |||
nine | brrt: 21:19 < brrt> this dude is going broke real soon: medium.com/life-at-primeloop/putti...757946d9fe | ||
brrt | oh | 13:35 | |
nine | I was afk for a couple days :) | ||
brrt | because basically, e-mail is pretty much ok as a medium | ||
and you don't fix broken communication patterns by having them go through a california data center | |||
nine | brrt: as I told FROGGS earlier today, I tend to agree with the gist being "For some use cases specialized tools are better suited than email." Though I would probably not use the hippest cloud services for everything... | 13:36 | |
brrt | but the problem is not that the tools are broken | 13:38 | |
nine | For some things at least, email is really not a good tool, like managing TODOs. | 13:39 | |
brrt | i've never encountered a problem where people were communicating badly and tools fixed it | ||
with that, i'd agree | |||
nine | Though incidentally while thinking about this discussion I found ways to mitigate that mostly ;) | ||
brrt | but most communication boils down to 'i should ask $person $question' | ||
how? :-) | |||
todo list managment is another of these hip things that attract much more tooling than could possibly help | 13:41 | ||
nine | Well, what email does not allow is good priorization of tasks and sharing those tasks. But that can be done with one shared IMAP folder for each priority level (we use 5 levels for example in our RT). Done TODOs can be moved to another folder. | ||
brrt | need to know what to do by yourself? write a list | ||
that's basically going a bit further than e-mail is | |||
but yeah, you could do that | |||
nine | But I'd probably still prefer using korganizer's TODO list. Synchronized via IMAP cause it stores the TODOs in ical files in an IMAP folder ;) | 13:42 | |
brrt | it's the same thing with all the people writing specialised data processing tools... while ordinary folks use excel | ||
nine | true | ||
brrt | fwiw, i happen to work (a bit) at a company that buys heavily into these kind of things | 13:43 | |
we used to have IRC chat, but now it has been replaced by slack | 13:44 | ||
before that by hipchat | |||
and slack will be replaced in due course | |||
and all the while the same mistakes continue to be made | |||
timotimo | aaw, i won't be seeing brrt at apw? :( | 14:03 | |
jnthn | timotimo: Will you be making apw? | 14:04 | |
jnthn needs to figure out how he wants to arrive/leave and where to stay, but will be there | 14:05 | ||
timotimo | i think so :) | ||
i've booked a hotel room and liz will be picking me up in karlsruhe with her car | |||
jnthn | cool | 14:06 | |
14:49
kjs_ joined
|
|||
timotimo | i wonder if speshing shift would really give such a big improvement ... | 15:12 | |
shift for iterators, that is | |||
maybe we can introduce an op that only moves the iterator ahead and emit an atpos instruction that can then be spesh'd further | |||
the shift op for iterators has to do some decisions for boxing etc | 15:13 | ||
15:49
leont joined
16:13
kjs_ joined
|
|||
TimToady | timotimo: it would be nice if we could eventually get to a *p++ instruction for batches of known boxhood | 16:43 | |
well, with some test so we don't run off then end of the batch | 16:44 | ||
maybe with a bit of loop unrolling to amortize the test some | 16:45 | ||
getting away from heavy shift is part of the GLR rethink | 16:46 | ||
timotimo | mhm | 16:48 | |
i shall look into that some more | |||
ah. inside spesh, we may keep the object we're iterating over in a regular object register and store the index of the iterator in a native int slot. that'll require escape analysis on the iterator, though | 16:49 | ||
otherwise we can store the index in the iterator object and go directly into the array we're iterating over via an atpos_* operation | |||
TimToady | arguably it is the purpose of iterators to not cheat so they can be fast :) | 16:50 | |
timotimo | mhh | 16:51 | |
TimToady | anyway, we could probably mark some subset of the iterators as well-behaved, or ill-behaved, if we choose the other default | ||
in the absence of escape analysis | |||
timotimo | not exactly sure what you mean by that | 16:52 | |
TimToady | we can sometimes declare things that we don't want the compiler to have to figure out on its own, is all | ||
timotimo | right. though i kind of think it'd be helpful to still be able to pass around iterators | 16:53 | |
if we have a completely inlined frame and no other ops use that iterator, well, that could be different | |||
TimToady | oh, that kind of escape | ||
timotimo | yes | ||
TimToady | hopefully in the general case our boxed pointers end up not much heavier than Go's slice thingies | 16:54 | |
for things that are not in batches | 16:55 | ||
including most of our native arrays and such | |||
timotimo | well, if we turn the shift into a "sp_advancearriter" plus an "atpos_*" | 16:58 | |
that'll directly go to the array index of the iterator (can be jitted well, too) and then directly go at the right position in the array's storage (plus a little bounds check) | 16:59 | ||
though ... i think we have sp_ ops for atpos that don't check bounds | |||
as the advancearriter does a bounds check anyway | |||
that doesn't save us from the user throwing out values from the array in between and us running into possibly a segfault ... | |||
TimToady | certainly we have to track uniformity on some level, and to the extent we do, we can optimize based on that | 17:02 | |
17:03
cognome joined
|
|||
TimToady | arrays of natives arguably may not be sparse, at least by default | 17:03 | |
we don't have to carry the complete generality of boxed types down into unboxed types, almost by definition | 17:04 | ||
if someone goes to the trouble of declaring my int @array[32], then that's exactly what they get | 17:05 | ||
well, modulo uncertainty over the meaning of "int" :) | |||
timotimo | right, we have atpos_o that deals with sparse arrays; i don't think our list_i, list_s and list_n can be sparse actually? | 17:06 | |
TimToady hopes, on the one hand, that they are not sparse, but on the other hand, that they are, so we can rip that out and make them faster... :) | 17:08 | ||
17:08
brrt joined
|
|||
brrt | timotimo: atpos_i isn't all that cheap iirc | 17:09 | |
oh hadn't seen all of the discussion | |||
timotimo | oh? | ||
do we even use nqp::iter on our rakudo-level arrays? | |||
brrt | uhm | 17:10 | |
let me see | |||
TimToady | well, as I said, we'd really like to get to the point where we don't have to do multiplcation on every access, but pointer++ most of the time for very low-level stuff | ||
brrt nods | 17:11 | ||
hmm | 17:12 | ||
doesn't seem like we'e using iter for the for @a -> $x construct | |||
anyway. atpos for mvmarray isn't quite cheap | 17:13 | ||
TimToady | well, when our iterators get fast, we can undo the loop opt | ||
timotimo | how so? | ||
apparently we don't spesh atpos_* for MVMArray yet | 17:14 | ||
ah, MVMArray can have a null in one of its slots and that can mean "there's a hole here | 17:16 | ||
" | |||
17:16
Ven joined
|
|||
brrt | hey, you can't have safety and convenience and speed at the same time | 17:16 | |
timotimo | brrt: atpos is probably "not so cheap" because it has to dispatch per array type? | ||
brrt nods | |||
timotimo | we should be able to spesh that, no? | 17:17 | |
brrt | if you know about it, yes | ||
timotimo | if we have list_i, list_o, list_s, or list_n as the creator or if we have a known type, we do know about it | 17:18 | |
brrt | (:-o new dynasm patch) | 17:19 | |
timotimo | what's new there? | ||
brrt | added support for an instruction that we didn't use so far (but could use one day) | 17:20 | |
timotimo | which one is that? | ||
brrt | shld | 17:21 | |
shift and rotate | |||
timotimo | ah, we don't have a primitive for that in our instruction set, aye? | ||
brrt | not very relevant usually :-) | ||
don't think we do | |||
timotimo | do you think i should go ahead with speshing MVMArray's atpos_*? | 17:22 | |
and afterwards implement the sp_advancearriter op i've mentioned above? | 17:24 | ||
dalek | arVM: 182085e | (Bart Wiegmans)++ | 3rdparty/dynasm: Update DynASM |
17:25 | |
brrt | ... yes, i think that is a good idea | 17:26 | |
although the risk here is that we eagerly move everything into specialized structures that we might want to change | 17:27 | ||
that said, i personally don't have such plans just yet | |||
timotimo | please be more verbose | 17:30 | |
"structures"? | |||
you think the duplication of code between MVMIter's shift and sp_advancearriter would be bad? | 17:33 | ||
brrt | no, sp_advancearriter is ok as far as i'm concerned | 17:34 | |
hmmm | 17:35 | ||
i see no problem with speshing atpos for MVMArray | |||
timotimo | great :) | ||
brrt | well.. there's one tiny tiny tiny thing | ||
timotimo | hehe. | ||
brrt | you can probably use sp_get_* to get the value from the poiner | 17:36 | |
from the object | |||
timotimo | maybe not | ||
the array doesn't only keep a "number of elements" but also an "which index does the first element currently have" number | |||
if we can be certain that the array will not be mutated, we can loop-hoist that | 17:37 | ||
brrt | hmmm | 17:38 | |
timotimo | (another thing for escape analysis) | ||
except we'd have to be certain our sub has been called with a clone of the arrary | 17:39 | ||
such that no other code still has a reference to that object and could modify it, say in a different thread or callback or something | |||
brrt | the start field is not looked at from atpos, though | ||
timotimo: don't worry about that | 17:40 | ||
basically, suppose somebody was concurrently modifying it without proper locks | |||
then they'd be screwed anyway | |||
timotimo | er, hold on | 17:41 | |
brrt | (the solution to concurrency / safety issues: dumb users are dumb :-p) | ||
timotimo | atpos does look at the start value | ||
look for body->start in MVMArray.p | |||
.c* | |||
brrt | oh, you are correct | 17:43 | |
hmm | 17:44 | ||
hmm | 17:45 | ||
timotimo | AFK | 17:52 | |
brrt | :-) | 17:54 | |
dalek | arVM/spesh-array-access: 90f4251 | (Bart Wiegmans)++ | / (6 files): Add sp_atpos_arr opcodes These are direct access opcodes intended to help spesh array access |
18:02 | |
18:10
kjs_ joined
|
|||
brrt | uhm, how do i get facts? | 18:14 | |
MVM_spesh_get_facts, duh | 18:16 | ||
.. darn, that is all wrong | 18:20 | ||
ok, thing is, i think we need a dumber array type | |||
brrt afk for now | 18:24 | ||
18:24
brrt left
|
|||
timotimo | oh | 18:53 | |
how so? | |||
19:34
leont joined
20:29
colomon joined
21:33
Util joined
21:40
lizmat_ joined
22:19
vendethiel joined
22:22
[Coke] joined
22:23
masak joined,
jlaire joined
22:24
cxreg joined
22:27
tadzik joined
|