Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-07-21

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
03:51 zakharyas joined #moarvm
06:14 domidumont joined #moarvm
06:28 timotimo maybe the "x + substr gets you off-by-one results" bug would be good for jnthn's perl6-day?
06:40 domidumont joined #moarvm
06:42 domidumont joined #moarvm
07:34 brrt joined #moarvm
07:34 brrt good * #moarvm
07:34 brrt tell you what i find reading
07:34 brrt 'to build live ranges from SSA form, the allocator uses the disjoint-set union-find algorithm and makes a single pass over the code'
07:35 brrt 2016 is, for me, the year of the disjoint-set union-find algorithm
07:35 brrt it is honestly the only algorithm in all of gridkit
07:35 brrt merge lines? union-find
07:35 brrt merge stations? union-find
07:35 brrt classify line parameters? union-find
07:36 brrt and now, compute live ranges, with union find
07:36 brrt how is that the single most useful algorithm
07:41 nwc10 So it's important that it's fast? Then to misquote Steve Jobs, there should be an Op for that? :-)
07:41 nwc10 sorry, that joke doesn't *really* work.
07:43 * brrt thinks about that joke a bit
07:43 brrt aha :-)
07:43 brrt oh well, iirc the union-find algorithm runs in very-slightly-above-linear time if you use the proper data structures
07:44 brrt turns out in the future i will be using a macbook for work, so hopefully i'll find moarvm mac bugs a bit faster
07:47 timotimo ... oppan steven style ...
07:50 brrt i wonder if i can get rid of the let-restriction in the expr jit
07:50 brrt (i require variables that are used in two paths of an conditional statement to be 'let' prior to the statement, so that they are evaluated prior to the IF
07:51 brrt so that both branches acquire an already-made variable
07:51 brrt but it shouldn't be that hard to ensure the invariant that a value must be computed prior to its use in a conditional block without this
07:54 brrt timotimo: you once wrote a tool to parse graph.c to exprjit fragments, didn't you
07:54 brrt do you know if that tool still works
08:42 zakharyas joined #moarvm
08:47 timotimo i think it's committed to moar/tools, isn't it?
08:47 timotimo it ought to at least partially work :) :)
08:48 timotimo unless C has changed its syntax a bunch in the last ~year
08:51 timotimo uh oh, i'm getting late to my appointment to get dentistisized
09:30 jnthn moarning, folks
09:31 jnthn Darn, brrt left before I could ask him for some good reading on the disjoint-set union find algo :)
09:33 jnthn oh, right :)
09:35 nwc10 He'll be back :-)
09:36 nwc10 jnthn: somewhere in backlog I pasted some stuff - there's now one spectest failing with ASAN, minimal testcase now attached to its RT ticket.
09:36 nwc10 (the failing spectest is a TODO for an open bug)
09:37 jnthn It's in utf8-c8, yes?
09:37 nwc10 IIRC yes
10:05 timotimo my dentist appointment went very well. also, it seems like i'm one of the lucky few who lack the bacteria that cause caries AKA cavities
10:23 dalek MoarVM: c3762be | jnthn++ | src/strings/ops.c:
10:23 dalek MoarVM: Whitespace cleanup.
10:23 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c3762bed77
10:49 travis-ci joined #moarvm
10:49 travis-ci MoarVM build failed. Jonathan Worthington 'Whitespace cleanup.'
10:49 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/146338841 https://github.com/MoarVM/MoarVM/compare/4a56a65510c7...c3762bed779a
10:49 travis-ci left #moarvm
10:51 jnthn oh rly? :)
10:51 nwc10 NQP fail?
10:52 nwc10 yes, NQP fail
10:53 timotimo hmm, the file ops. we recently got a change for the jvm there
11:06 jnthn m: say ("0" x 3 ~ "1").substr(2)
11:06 camelia rakudo-moar 5af32b: OUTPUT«00␤»
11:08 jnthn nqp: say("0" x 3 ~ "1")
11:08 camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say(\"0\" x "␤   at gen/moar/stage2/NQPHLL.nqp:706  (/home/camelia/rakudo-m-inst-2/share/nqp/lib/NQPHLL.moarvm:panic)␤ from gen/moar/stage2/NQP.nqp:927  (/home/camelia/rakudo-m-inst-2/share/nqp/lib/nqp.moarvm:comp_unit)␤ from gen/mo…»
11:08 jnthn nqp: say(nqp::x("0", 3) ~ "1")
11:08 camelia nqp-moarvm: OUTPUT«0001␤»
11:08 jnthn nqp: say(nqp::substr(nqp::x("0", 3) ~ "1", 2))
11:08 camelia nqp-moarvm: OUTPUT«00␤»
11:12 jnthn nqp: BEGIN { substr('xxxx', 2) }
11:12 camelia nqp-moarvm: OUTPUT«Cannot invoke this object (REPR: Null; VMNull)␤   at <tmp>:1  (<ephemeral file>:)␤ from gen/moar/stage2/NQP.nqp:394  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:)␤ from gen/moar/stage2/NQP.nqp:610  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp…»
11:12 jnthn nqp: BEGIN { nqp::substr('xxxx', 2) }
11:12 camelia nqp-moarvm: ( no output )
11:37 jnthn Hmm, mebbe found it
11:37 jnthn lunch, bbiab
11:51 brrt joined #moarvm
12:10 dalek MoarVM: c01472d | jnthn++ | src/strings/iter.h:
12:10 dalek MoarVM: Fix off-by-one in grapheme iterator.
12:10 dalek MoarVM:
12:10 dalek MoarVM: It failed to consider that we are already reading the next repetition
12:10 dalek MoarVM: by the next time we read another character, and so ended up with a
12:10 dalek MoarVM: repetition appearing to occur one time too many if we used move_to.
12:10 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c01472d7c5
12:35 travis-ci joined #moarvm
12:35 travis-ci MoarVM build failed. Jonathan Worthington 'Fix off-by-one in grapheme iterator.
12:35 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/146360032 https://github.com/MoarVM/MoarVM/compare/c3762bed779a...c01472d7c539
12:35 travis-ci left #moarvm
12:37 dalek MoarVM: 236058a | jnthn++ | src/6model/reprs/Semaphore.c:
12:37 dalek MoarVM: Block/unblock thread for GC on semaphore wait.
12:37 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/236058a6c8
12:53 brrt jnthn: what about disjoint-set union-find?
12:54 brrt implementation with c and an array is straightforward
12:56 jnthn :)
12:57 jnthn Where did you read the think about using it for SSA live ranges? :)
12:57 jnthn *thing
12:58 brrt ehm... 'engineering a compiler'
12:58 brrt all definitions are unioned at their phi nodes
12:59 brrt *all live ranges that spread from definitions are unioned at their phi nodes
13:01 brrt so that means that a register assigned to that live range is used throughout, which ensures that both inputs to the phi node will use the same register
13:02 brrt that solves a bunch of complexity with regards to COPY and IF and DO nodes
13:03 brrt these live ranges can of course be split again if necessary
15:51 lizmat joined #moarvm
16:31 lizmat_ joined #moarvm
16:57 lizmat joined #moarvm
17:56 mtj_ joined #moarvm
18:00 pyrimidine joined #moarvm
18:17 FROGGS joined #moarvm
18:33 lizmat joined #moarvm
18:40 domidumont joined #moarvm
18:42 Ven joined #moarvm
19:20 khagan joined #moarvm
19:43 brrt joined #moarvm
19:44 brrt just had another thougth that should have been obvious
19:44 brrt if live ranges are fully 'unioned'
19:44 brrt then, they can't overlap in any way
19:45 brrt so... my data structure of sets-of-things in a register, well that looks kind of silly now
19:48 brrt looking silly is OK, i guess
19:49 brrt as long as one learns...
19:49 FROGGS aye
19:51 brrt its just that i have to learn while you have to wait? and that isn't really good
19:52 brrt of course unifying the live range of differeent things that are connected via phi nodes comes with problems of itself
19:52 timotimo oh well, we can mangae :)
19:53 brrt i'm sure you can
19:53 brrt i just wan to push the expr jit into the world because (i think) it is really cool
19:53 brrt or can be
19:54 brrt is supposed to be
19:58 timotimo :)
19:59 brrt oh, i guess it's good news, for $future-work i'll be using a macbook, so that may make fixing macbugs a bit easier
20:02 brrt and we'll have a fully awesome expr jit long before python has its
20:02 jnthn :)
20:04 timotimo python already hat psyco :P
20:05 brrt they have pypy, which is another thing entirely
20:05 brrt i think i argued before that efficient high-performance python equals numpy
20:05 brrt imho, R is better for that kind of stuff
20:05 brrt but then, i like R, especially the evil bits
20:06 brrt i could see myself using perl6 on a daily basis if i could port R's best bits
20:07 brrt serious software developers should, by rights, hate R
20:07 brrt R is gloriously messy
21:04 domidumont joined #moarvm
22:22 lizmat joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary