Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-04-07

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

All times shown according to UTC.

Time Nick Message
00:25 btyler joined #moarvm
01:07 benabik joined #moarvm
01:47 ilbot3 joined #moarvm
01:47 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
05:39 lue nqp: my $a := subst("\x[10FFFB,10FFFC,10FFFD]", /\s/, "_", :global); say($a)  # this appears to be the reason, except for the part where \x10FFFD is untouched in the actual code :/
05:39 camelia nqp-moarvm: OUTPUT«___␤»
05:39 camelia ..nqp-jvm, nqp-parrot: OUTPUT«􏿻􏿼􏿽␤»
05:41 lue whoops, meant that for #perl6, though I suppose it's somewhat relevant here too :)
05:46 lue Those codepoints, by the way, are seen by MoarVM as belonging to the categories Co, Cn, and Zl, respectively. They should rather all be Co.
07:00 zakharyas joined #moarvm
07:02 jnthn lue: TimToady knows most about the Unicode lookups in Moar, so probably has the best idea how to fix it. :)
07:10 jnthn I think I mighta figured out a good way to make lexotic (return) a load cheaper while sleeping last night...
07:10 jnthn Will have to give it a go this evening, after teaching :)
07:14 brrt joined #moarvm
07:16 brrt hi #moarvm
07:21 jnthn o/ brrt
07:21 jnthn How's things?
07:21 brrt tired from the weekend
07:21 brrt otherwise ok :-)
07:22 jnthn :)
07:22 jnthn Had time to glance over spesh? :)
07:23 brrt glance, yes
07:23 brrt fully-comprehend… not really, no :-)
07:23 jnthn src/spesh/graph.h is the key to it all really
07:23 brrt uhuh
07:23 brrt quick sidenote
07:24 brrt the notion of a 'buffer' (or variable-length-realloced-growing-array) leaks all over MVM
07:25 brrt would it be sensible to have a struct MVMBuffer { union { void * v; MVMObject * o; MVMCollectable * c; MVMString * s; } u; MVMuint32 alloc; MVMuint32 num }
07:25 jnthn It may
07:26 jnthn Though note that different places have different growth strategies, and care differently about if the space that gets allocated is zeroed, and so on.
07:26 brrt true enough
07:27 jnthn It's one of those re-use/loose coupling trade-offs, and I tend to call things way more in the loose coupling direction than most folks.
07:27 brrt sure, its fair :-)
07:27 brrt could always propose a fix and a pull request and see if it cleans things up
07:27 jnthn I could imagine there are opportunities for re-use though
07:27 jnthn Sure
07:28 jnthn Well, re-use within a subsystem is fine
07:28 jnthn I work hard to keep them decoupled...
07:28 jnthn ok, time to teach folks how not to screw up web dev too hard. :)
07:28 jnthn bbl
07:28 brrt good luck
09:07 camelia joined #moarvm
09:20 lizmat joined #moarvm
10:35 jnthn brrt: Looks like your proposal was accepted, so now hopefully we get the slots :)
10:36 jnthn brrt: But need to find a backup/second mentor, it seems.
10:36 jnthn Anybody want to volunteer? ;)
10:39 LLamaRider joined #moarvm
10:43 JimmyZ me?
10:51 jnthn Mebbe.
10:52 * jnthn guesses it's still possible to sign up...
11:18 brrt …. oh really? :-o
11:18 brrt awesome
11:19 brrt that is so much awesome :-D
11:19 brrt here's hoping for the slots anyway
11:50 tadzik jnthn: is that public knowledge?
11:50 moritz jnthn: sheesh, we're not supposed to talk about that until the slots are firmly allocated and proposals are actually accepted
11:50 moritz but we do need a backup mentor, that's no secret, afaict
11:50 moritz I've asked timotimo in private message also
11:51 moritz JimmyZ: I think signing up as a mentor should still be possible
11:54 JimmyZ Yes
11:57 jnthn moritz: I explicitly said "hopefully we get the slots"
11:58 moritz jnthn: I know
11:59 jnthn The decidedly public-facing issue of "needs a second mentor" was in the same darn sentence of the supposedly private "this looks acceptable". Not to mention "needs a second mentor" kinda implies "this looks hopeful". :/
12:01 * moritz will rest the case
12:02 moritz erm
12:02 moritz grammar is hard
12:02 moritz let's go JITting :-)
12:04 nwc10 neuralise the logs
12:05 * brrt will be such hush about it
12:06 colomon joined #moarvm
12:06 lizmat fwiw, moritz has the technology to neuralise the perlgeek.de logs :-)
12:07 tadzik https://img.4plebs.org/boards/pol/image/1395/70/1395700228653.jpg
12:07 nwc10 lizmat: to quote one of my daughter's favourite phrases "I knew that already", but I guess it's not that well known to everyone here
12:09 brrt neuralise?
12:10 nwc10 I suppose it should be an American spelling: http://en.wikipedia.org/wiki/Neuralyzer
12:10 * moritz nukes stuff from outer orbit
12:10 moritz ... but not the logs, today :-)
13:01 colomon joined #moarvm
13:34 avar joined #moarvm
13:47 benabik joined #moarvm
13:54 vendethiel joined #moarvm
13:59 jnap joined #moarvm
14:03 btyler joined #moarvm
14:04 vendethiel joined #moarvm
14:12 vendethiel joined #moarvm
14:36 jnap1 joined #moarvm
14:48 timotimo o/
15:03 jnap joined #moarvm
15:08 brrt hi timotimo!
15:08 timotimo do i still need to sign up as backup mentor?
15:08 timotimo if so, where do i do it?
15:09 jnap joined #moarvm
15:11 brrt i have no idea, but iirc - i was a somewhat-lousy backup mentor for parrot last year - the organisation manager must send you a link
15:11 brrt so #soc-help on irc.perl.org should be the right address
15:11 timotimo thanks
15:12 brrt :-) no, thank you
15:39 LLamaRider joined #moarvm
15:39 jnthn ++timotimo
16:43 benabik joined #moarvm
17:47 dalek MoarVM/spesh: be7b454 | jonathan++ | src/core/callsite.c:
17:47 dalek MoarVM/spesh: Fix read-after-free in callsite interning.
17:47 dalek MoarVM/spesh: review: https://github.com/MoarVM/MoarVM/commit/be7b454e36
17:47 dalek MoarVM/spesh: 2560514 | jonathan++ | src/ (6 files):
17:47 dalek MoarVM/spesh: Change the way lexotic is handled.
17:47 dalek MoarVM/spesh:
17:47 dalek MoarVM/spesh: Make it not imply a frame reference, at the cost of a little more work
17:47 dalek MoarVM/spesh: at return time. Then also avoid allocating one per frame that needs it.
17:47 dalek MoarVM/spesh: This leads to a 10% saving on "for 1..1000000 { $i++ }" in Rakudo; we
17:47 dalek MoarVM/spesh: can likely also add a spesh op to make obtaining a lexotic cheaper
17:47 dalek MoarVM/spesh: still.
17:47 dalek MoarVM/spesh: review: https://github.com/MoarVM/MoarVM/commit/2560514155
17:47 jnthn Time for some dinner &
17:58 timotimo \o/
17:58 timotimo that sounds lovely
18:58 jnthn Yeah, it was tasty :P
18:58 timotimo i've got friends over and we'll make pancakes
18:58 jnthn ooh :)
18:59 jnthn But I had an imperial IPA... :)
19:04 benabik joined #moarvm
19:37 dalek MoarVM/spesh: 3ddae6a | jonathan++ | src/spesh/facts.c:
19:37 dalek MoarVM/spesh: Fix fact propagation accidently copying usages.
19:37 dalek MoarVM/spesh: review: https://github.com/MoarVM/MoarVM/commit/3ddae6a3bd
19:38 brrt joined #moarvm
19:38 jnthn ...and thus failing to kill some things.
19:44 jnap joined #moarvm
19:46 brrt what, you're already starting on deopt?
19:48 jnap1 joined #moarvm
19:50 timotimo we already have some deopt
19:51 brrt wow
19:52 * brrt thinks his project is getting smaller by the day
19:52 jnthn See src/spesh/deopt.c
19:52 jnthn brrt: There's still plenty of hard problems to solve for JIT :)
19:53 brrt i think so :-)
19:53 brrt still
19:53 brrt this is all going faster than i had expected
19:54 tadzik welcome to #moarvm. Meet jnthn
19:55 tadzik :P
19:58 brrt :-)
19:58 timotimo :D
20:00 brrt ok, that looks understandable enough
20:03 bonsaikitten joined #moarvm
20:05 jnthn_ joined #moarvm
20:05 cxreg2 joined #moarvm
20:06 chipdude_ joined #moarvm
20:10 lue I must be reading unicode.c wrong, because by my interpretation a property lookup on 0x10FFFB generates the index 109358 for a 43829-element array.
20:19 woolfy joined #moarvm
20:26 hoelzro concurrency stuff in MoarVM is a WIP, right?
20:26 hoelzro because I just tried using it, and it did not go well =/
20:27 jnthn hoelzro: what did you try to do?
20:27 jnthn It does typically explode at exit.
20:28 hoelzro ah ha
20:28 hoelzro ok, that's not new to you then
20:28 hoelzro hang on
20:28 hoelzro gisting
20:30 hoelzro jnthn: https://gist.github.com/hoelzro/10046325
20:30 timotimo rob o/
20:30 hoelzro ahoy timo!
20:30 timotimo yes, that's known
20:30 timotimo apparently the VM tears itself down in the main thread while other threads still seem to think it should continue existing
20:30 timotimo but, as you can see, it worked :)
20:31 hoelzro sort of
20:31 timotimo oh, huh
20:31 timotimo it gave two different results? %)
20:31 hoelzro the contents of $a and $b vary between executions
20:31 hoelzro yeah =S
20:31 hoelzro I'm guessing that two threads are fighting
20:31 jnthn wtf...
20:31 jnthn Yeah, that should not happen.
20:32 * jnthn puts on his "stuff to investigate on Friday" list
20:32 jnthn Well, or Thu evening. :)
20:33 timotimo jnthn: you'll be tuitless until then?
20:34 lizmat jnthn: hoelzro's bug reminds me of the intermittent lock problem
20:34 lizmat t/spec/S17-concurrency/lock.t
20:34 jnthn timotimo: Not tuitless exactly, but generally when I'm teaching I just don't have the concentration to take on such things in the evening after it.
20:34 lizmat not ok 7 - Condition variable worked
20:34 lizmat #      got: 'ale,porter'
20:34 lizmat # expected: 'ale,porter,stout'
20:34 lizmat # log = ale porter stout
20:35 lizmat in other words: when the check is done, the element pushed $c.wait is *not* in the array yet
20:35 lizmat yet, if we do a diag if the check fails, it *is* in the array
20:36 lizmat which to me means, that thread #1 may still be running *after* the join
20:37 jnthn r: class A { method m() { say nqp::iscont(%_) } }; A.m
20:38 camelia rakudo-parrot b428e8, rakudo-jvm b428e8, rakudo-moar b428e8: OUTPUT«1␤»
20:38 jnthn r: class A { method m(*%h) { say nqp::iscont(%h) } }; A.m
20:38 camelia rakudo-parrot b428e8, rakudo-jvm b428e8, rakudo-moar b428e8: OUTPUT«0␤»
20:38 jnthn holy s..
20:39 tadzik :D
20:39 jnthn That's only one pointless scalar creation every single method call...
20:39 timotimo oh!
20:40 timotimo optimization opportunity \o/
20:40 tadzik that's plenty of scalars...
20:41 tadzik oh
20:41 tadzik I HAVE to draw that
20:41 tadzik it won't be gore this time, I promise
20:41 timotimo plenty of scalars?
20:41 jnthn WITH BLOOD. BLEEDING SCALARS.
20:44 tadzik http://i.imgur.com/gb5Hzwf.png
20:44 tadzik it's cute this time <#
20:45 jnthn aww :)
20:46 benabik Can also reuse the image for alot of cash (well, USD at least)
20:46 tadzik :D
20:53 lizmat jnthn: another error message from lock.t:
20:53 lizmat ok 7 - Condition variable worked
20:53 lizmat Abort trap: 6
20:55 lizmat adding some debug code makes the test problem go away :-(
20:56 lizmat bingo!
20:56 lizmat #      got: 'ale,porter'
20:56 lizmat # expected: 'ale,porter,stout'
20:56 lizmat # log = ale porter stout, now = Instant:1396904172.879234 = Instant:1396904172.872281
20:57 lizmat I've added a $now1 = now at the end of thread 1, and a $now2 = now after the join of the first thread
20:57 lizmat the now from *within* the thread is *after* the now of after the join
21:07 lizmat ok 7 - Condition variable worked
21:07 lizmat moar(99247,0x7fff7df2e310) malloc: *** error for object 0x7f8b13d9c8c0: pointer being freed was not allocated
21:07 lizmat *** set a breakpoint in malloc_error_break to debug
21:07 lizmat Abort trap: 6
21:08 dalek MoarVM/spesh: df0f6a4 | jonathan++ | src/spesh/args.c:
21:08 dalek MoarVM/spesh: Specialize empty named slurpy args.
21:08 dalek MoarVM/spesh: review: https://github.com/MoarVM/MoarVM/commit/df0f6a436e
21:09 lue joined #moarvm
21:10 lizmat jnthn: made it into a proper text, and put the test in roast
21:10 timotimo jnthn: should i wait for something special before running a full benchmark with rakudo + spesh?
21:10 lizmat after running this ~ 40 times, I got this bingo:
21:10 lizmat not ok 7 - Condition variable worked
21:10 lizmat #      got: 'ale,porter'
21:10 lizmat # expected: 'ale,porter,stout'
21:10 lizmat # log = ale porter stout, thread was running *after* join
21:11 lizmat So I think there is something definitely wrong with .join
21:11 lizmat as in Thread.join
21:11 jnthn lizmat: whoa...
21:11 jnthn odd
21:11 jnthn timotimo: Just pushing something else now
21:11 timotimo oooh :3
21:12 hoelzro also, I ran the p6docs on a recent Moar: 270 MB
21:12 hoelzro way to go, Moar team!
21:13 hoelzro that's 1/3 of what it took only 3 months ago!
21:16 jnthn o.O
21:16 jnthn Wow :)
21:21 timotimo hoelzro: did you compare speed, too?
21:21 hoelzro 15 minutes, at the moment
21:21 hoelzro which is slower
21:21 hoelzro but I don't know if more files have been added
21:21 hoelzro I'll check that
21:24 timotimo oh, hmm
21:51 brrt left #moarvm
22:11 colomon joined #moarvm
22:15 jnthn timotimo: OK, I'm gonna sleep now, so you can benchmark ;)
22:16 timotimo ok
22:16 timotimo i already benchmarked, but i'll do it again with the newest commit
22:17 jnthn timotimo: ooh, got the graphs from the one you did?
22:44 jnap joined #moarvm
22:49 harrow joined #moarvm
22:54 timo` joined #moarvm
23:51 timo joined #moarvm

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