01:14
japhb joined
02:03
pyrimidi_ joined
02:25
pyrimidine joined
02:48
ilbot3 joined
03:15
pyrimidi_ joined
04:31
pyrimidine joined
06:13
sivoais joined
06:39
pyrimidi_ joined
08:02
pyrimidine joined
08:34
domidumont joined
08:39
domidumont joined
09:14
domidumont joined
|
|||
dalek | arVM/even-moar-jit: df718f4 | brrt++ | / (6 files): Implement register naming macro This enables syntax like MVM_JIT_REG(RSP) to expand to MVM_JIT_ARCH_X64_RSP, which is used in the MVM_JIT_REGISTER_REQUIRE macro. |
09:56 | |
10:29
brrt joined
|
|||
brrt | good * #moarvm | 10:30 | |
lizmat | brrt o/ | ||
brrt | \o lizmat | ||
dalek | arVM/even-moar-jit: 9ccafc7 | brrt++ | / (8 files): Allow for 'definition' tiles Definition tiles don't need an emit function but can operate as placeholders in the tiling process and as declarations of specific registers. |
10:41 | |
brrt | .... the additive effect of incremental change never ceases to amaze me | 10:47 | |
timotimo | "how did this accumulate so much cruft? ... oh." | 10:48 | |
on the way to my parents, i drove by a city called Kruft | 10:49 | ||
dalek | arVM/even-moar-jit: e9d55ff | brrt++ | src/jit/x64/tile (3 files): Make more definitions out of tiles These 'tiles' had void implementations, anyway. |
10:52 | |
timotimo | documentation void if tile removed | 10:53 | |
sorry. implementation void if tile removed* | |||
brrt | it can also be used to uncruft ;-) | ||
vendethiel | .oO( why did you name that file tiles.list and not tiles.lisp ) :P |
11:00 | |
timotimo | hey ven | 11:01 | |
the moment lisp-like stuff gets mentioned, you appear! ;) | |||
brrt | if i named it tiles.lisp, people would assume it could do cons, car, cdr, and lambda | 11:07 | |
and it can't do any of those :-P | |||
timotimo | hehe | ||
fair enough | |||
brrt | (wouldn't be difficult to write, by the way.....) | 11:08 | |
timotimo | we could implement car and cdr to get the first and second half of a machine word :P | ||
brrt | well, 32 bit pointers, 64 bit words... | ||
we're kidding, right, but in seriousness | 11:13 | ||
i think LISP is probably simpler to write in assembly than it is in C | |||
timotimo | :D | 11:14 | |
dalek | arVM/even-moar-jit: a374a93 | brrt++ | / (4 files): Parse register annotations on tiles Required some additional flexibility in tile keyword syntax. Also rename the array of tile templates from tile_rules to tile_templates. |
11:25 | |
arVM/even-moar-jit: 694ff78 | brrt++ | docs/jit/plan.org: Update plan.org |
11:33 | ||
brrt | it needs a tiny bit of thought to use the register requirements | 11:34 | |
the good bit is: | |||
timotimo | beh, the org renderer github uses doesn't show the difference between DONE and TODO | ||
brrt | i can now (define (tc) reg:r14) and it will be correctly parsed as a 'void' tile (no emit function) that defines register r14 | ||
oh, that sucks | 11:35 | ||
org is such a nice format and such a nice tool | |||
timotimo | i hear fantastic things about it all the time | ||
one of my profs at uni used org to make all of his website | |||
though i believe slides and such were all latex beamer | 11:36 | ||
brrt | which is something you can make org export to ;-) | ||
org exports to latex, to opendocument, to 'text', to a bunch of other things | |||
timotimo | fair enough :) | 11:37 | |
brrt | i started using it after my thesis supervisor was using it. it was the only thing he was using emacs for, i was using emacs for anything but that, something had to change | ||
the next commit will hopefully remove the special-case logic in register.c to deal with TC/CU/STACK/LOCAL | 11:38 | ||
timotimo | :D | ||
brrt | seriously, i can't recommend it enough | 11:41 | |
timotimo | i wanted to use a vim-org-thing at some point. didn't end up going through with it at all | ||
brrt | oh well :-) not sure if that would make 100% sense since org is also partially awesome because of the whole emacs ecosystem | 11:43 | |
timotimo | nah, it's because i hate getting organized | 11:45 | |
brrt | i'm not organized. it's my projects that become slightly less disorganized | ||
more to the point, it's an excellent way to keep track of project state if you have to interrupt them many times | 11:46 | ||
timotimo | mhm | ||
i know all about interrupting projects many times! | |||
brrt | indeed | 11:50 | |
as do i | |||
for instance, in the GridKit project i'm developing, I know that there's stuff I need to investigate regarding to line lengths. I don't know exactly what, but the org file i maintain does, so that next time i have some time for it, I'll know what to do | 11:51 | ||
timotimo | i should do something similar for all my little perl6-related projects | 11:53 | |
brrt | come over... to the GNU side (muhahaha) | 11:55 | |
12:02
pyrimidine joined
|
|||
lizmat | .tell jnthn as a datapoint: t/spec/S11-modules/nested.t very occasionally flaps (no tests seen) for me (like less then 1/20) | 12:10 | |
yoleaux2 | lizmat: I'll pass your message to jnthn. | ||
13:16
brrt joined
|
|||
brrt | i've killed rakudo settings build again | 13:18 | |
timotimo | oh, oops | 13:22 | |
lizmat | well, that's a starting point :-) | 13:23 | |
brrt | :-) | 13:29 | |
i'll figure out why soon enough | |||
jit-bisect again | |||
so for my next magic trick, i'm thinking of reducing the size of MVMJitExprNode to 32 bits, and write a macro to 'split' 64 bit values into two parts | 13:34 | ||
timotimo | what, car and cdr? :) | 13:35 | |
brrt | now i'm going to call that macro CARCDR. thanks | 13:46 | |
lizmat | timotimo: re sort and having the || nqp::cmp_i($a,$b) in each comparator: does Perl6 guarantee the order of elements considered to be the same ? | 13:49 | |
timotimo | you mean whether or not sort is stable? | 13:54 | |
lizmat | I guess | ||
timotimo | i'm not sure we guarantee that | ||
could randomize considered-same-elements and see if spec tests break | |||
lizmat | I mean: *if* we guarantee that, then maybe we should do that in p6store internally | 13:55 | |
if we don't, then we can simplify the default sort | |||
will spectest | |||
timotimo | there's a known set of sort algorithms that are stable vs ones that are not; it could be warranted to offer a stable-sort or sort :stable to our users for special cases | 13:56 | |
and if the user doesn't specify it, we're free to choose whatever | |||
i hear many will start with quicksort and if the run time seems bad, it'll turn into merge/heap sort on the fly | 13:57 | ||
lizmat | timotimo: non-stable sort has quite a few spectest errors | 14:14 | |
timotimo: do you happen to know if p6sort is used in other places than src/core/*.pm ? | 14:16 | ||
timotimo | i don't think it was | ||
hell, i even (had to?) re-implement sorting for the profiler output | 14:17 | ||
lizmat | afk& | 14:32 | |
15:15
brrt joined
|
|||
brrt | i might want to robustify the bisecter a bit | 15:24 | |
15:26
dogbert17 joined
|
|||
nwc10 | .tell jnthn new ASAN barfage from spectest6: paste.scsys.co.uk/540350 | 16:07 | |
yoleaux2 | nwc10: I'll pass your message to jnthn. | ||
timotimo | uh oh | 16:08 | |
nwc10 | yes, but "new" is probably "new to me" | ||
likely it's not a new cause | |||
timotimo | oh, i didn't put compunit_string_mem_share back in | ||
nwc10 | I rarely run the Perl 6 harness | ||
timotimo | so we have a realloc that's invalidating some internal pointers? | 16:09 | |
nwc10 | I really don't know. | ||
I can play teddy bear | |||
but I can't actually say anythign useful | |||
other than "this might be a really old bug, and it might hit only really rarely" | |||
timotimo | hehe | 16:10 | |
that's kinda strange | 16:16 | ||
16:16
zakharyas joined
|
|||
timotimo | all i can imagine is you hit the exact moment where realloc was happening | 16:17 | |
like, one thread was accessing cu->strings, then it was getting strings[idx] | |||
and in between that, realloc wrote a new address to cu->strings | |||
i know how we can fix this | 16:18 | ||
we can use the "free at safepoint" mechanism for this | |||
16:25
vendethiel- joined
|
|||
timotimo | huh, we realloc to add one single slot every time we add a string ... but it's only needed for inlining across CUs anyway ... | 16:31 | |
maybe we want a "fixed_size_increase_needs_copy" or something | 17:13 | ||
so we don't have to memcpy all the darn time | |||
17:54
FROGGS joined
17:58
Ven joined
|
|||
dalek | arVM/even-moar-jit: 9fc2eeb | brrt++ | src/jit/register.c: Should clear the values array after use This should never break anything, but did anyway, during CORE.setting compilation. Possibly because undefined value reading optimization nonsense. And this fixes it. |
19:08 | |
lizmat | timotimo: do you have any emotional attachment to the p6sort code ? | 20:26 | |
timotimo | i do not | 20:28 | |
lizmat | ok, then I will do some surgery which *may* cause the complete removal of p6sort | 20:29 | |
timotimo | that's fair | 20:31 | |
lizmat | hmmm... if the proto "is nodal", do we need to repeat that on the multi candidates ? | 20:47 | |
timotimo | hm, i don't think so. but it's a good question | 20:48 | |
21:41
domidumont joined
22:45
pyrimidine joined
23:01
geekosaur joined
|