Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-02-24

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

All times shown according to UTC.

Time Nick Message
00:48 lee_ joined #moarvm
01:17 rurban_ joined #moarvm
07:21 FROGGS joined #moarvm
08:12 FROGGS joined #moarvm
08:28 odc joined #moarvm
11:05 _sri joined #moarvm
11:26 donaldh joined #moarvm
11:31 donaldh joined #moarvm
11:37 lizmat joined #moarvm
11:47 nwc10 good *, #MoarVM
11:47 timotimo hello you! :)
12:55 tgt joined #moarvm
13:28 colomon joined #moarvm
13:35 JimmyZ_ joined #moarvm
13:35 dagurval_ joined #moarvm
13:35 cxreg2 joined #moarvm
13:39 eternaleye_ joined #moarvm
13:46 woolfy1 joined #moarvm
13:48 _sri joined #moarvm
13:48 lue joined #moarvm
14:09 colomon joined #moarvm
14:14 jnap joined #moarvm
14:18 hoelzro is there a tool for dumping moarvm bytecode into some human-readable format?
14:20 timotimo there is moar --dump foo.moarvm
14:20 hoelzro thanks timotimo
14:27 timotimo that reminds me i wanted to build a perl6 script that syntax-highlights and otherwise improves the display of the bytecode dump
14:27 timotimo one thought i had was to put four colored blocks in front of everything that refers to something that comes up again and use the hash of the name to determine the colors)
14:28 timotimo :)
14:29 hoelzro that's a neat idea
14:29 hoelzro I just looked at the dump
14:29 hoelzro and I have no idea where to start on this null object thing =/
14:31 hoelzro is there a place I can put a bounty on a bug? =)
14:31 hoelzro I understand that the moar-conch stuff is cool, but I'd like to see a working URI
14:31 timotimo dunno, but there is gittip, which is kind of the opposite approach :P
14:34 hoelzro heh
14:34 * hoelzro .oO( QuestHub idea: tipping for quests )
17:05 lizmat joined #moarvm
17:05 FROGGS joined #moarvm
17:05 tokuhirom joined #moarvm
17:05 nwc10 joined #moarvm
17:06 colomon joined #moarvm
17:06 eternaleye joined #moarvm
17:06 JimmyZ joined #moarvm
17:06 rurban_ joined #moarvm
17:06 lee_ joined #moarvm
17:29 japhb_ joined #moarvm
17:44 ggoebel1117 joined #moarvm
17:44 ingy1 joined #moarvm
17:48 colomon joined #moarvm
17:59 FROGGS joined #moarvm
18:09 FROGGS hoelzro: you are trying to hunt #121298 down, right?
18:09 FROGGS (RT #121298)
18:09 FROGGS ohh, synopsebot is not here
18:09 FROGGS https://rt.perl.org/Ticket/Display.html?id=121298
18:12 tadzik I should send it here, maybe
18:12 FROGGS please do :o)
18:13 FROGGS tadzik: have you seen the PR to panda btw=
18:13 FROGGS s/=/?/
18:13 tadzik FROGGS: nope. Will look at it tomorrow, going to a concert now
18:14 synopsebot joined #moarvm
18:14 tadzik synopsebot is here :)
18:14 FROGGS \o/
18:14 FROGGS tadzik++
18:39 tgt joined #moarvm
19:03 nwc10 https://www.google-melange.com/gsoc/org2/google/gsoc2014/tpf
19:09 [Coke] \O/!
19:10 timotimo hoelzro: have you tried reverse-debugging yet?
19:12 timotimo or "backwards debugging" or whetver it's called
19:19 FROGGS nwc10: we are on that list??
19:20 nwc10 let me try that again: https://www.google-melange.com/gsoc/org2/google/gsoc2014/tpf
19:23 [Coke] please consider volunteering as a mentor for the moar/perl6 projects.
19:24 FROGGS indeed we are on that list!
19:28 FROGGS done.
19:28 timotimo FROGGS: please take out at least the peephole optimizer idea, too. jnthn said it's a bad idea
19:28 timotimo and i'm not sure the JIT idea was received well as well? but i'm not sure
19:29 FROGGS k
19:29 FROGGS done
19:30 ashwinik_ joined #moarvm
19:44 timotimo the whole string_offset and compare_offset thing confuses me a tiny bit, i have to admit
19:48 timotimo do i really have to subtract the compare_offset of the first string from the compare_offset of the second string?
19:48 timotimo hm, i suppose that makes sense
19:48 timotimo if the compare_offsets are in "rope-string-coordinates"
19:58 timotimo aaw, my fast path is not being hit
20:00 tgt joined #moarvm
20:13 timotimo meeeeeh, somehow strings are getting corrupted or something :(
20:18 tgt joined #moarvm
20:21 masak nwc10++ # tpf
20:24 timotimo valgrind: the 'impossible' happened:
20:24 timotimo Killed by fatal signal
20:30 dalek MoarVM/flatten_fastpath: 40738ed | (Timo Paulssen)++ | src/strings/ops.c:
20:30 dalek MoarVM/flatten_fastpath: implement a fast-path for 2-strand int32 string flattening
20:30 dalek MoarVM/flatten_fastpath: review: https://github.com/MoarVM/MoarVM/commit/40738ed690
20:30 dalek MoarVM/flatten_fastpath: 72a1339 | (Timo Paulssen)++ | src/strings/ops.c:
20:30 dalek MoarVM/flatten_fastpath: fix & precedence and 32bit address calculations
20:30 dalek MoarVM/flatten_fastpath: review: https://github.com/MoarVM/MoarVM/commit/72a1339946
20:48 timotimo jnthn: spectests on flatten_fastpath are clean. should i merge?
20:50 nwc10 I'm only the messenger
20:50 nwc10 and really only "first post"
20:50 timotimo nwc10: huh?
20:50 nwc10 what masak said
20:50 nwc10 "Said"
20:51 timotimo ah
20:55 masak nwc10: I see. still, very nice.
20:55 nwc10 IIRC "blame" mdk and Leto
20:55 jnthn timotimo: Wait for feedback from lue first?
20:55 timotimo will do
20:56 timotimo it's hard to benchmark these things without pushing the commits up first :P
20:56 timotimo that's why i'm trying to teach perl6-bench to do parameterized builds
20:56 timotimo i did a small local test that gave me about 10x faster on ~32000 concats
20:56 nwc10 I found perl6-bench a lot easier to read with the release names. Which I take it are tags
20:57 timotimo yeah, i also want to teach it to alias commits to user-specified names
20:57 nwc10 that would be awesome
20:57 nwc10 the graphs were showing a pleasing speedup for MoarVM for the for tests, I thought
20:58 timotimo i also want a TUI interface to perl6-bench to make running the tests much less hassle-y
21:02 rurban_ I'm also working on some perl6-bench improvements this week. more perl5 implementations
21:02 rurban_ And I don't like the alias test
21:03 timotimo seems like rakudo-m is only 2x slower at concating a string with a single char 32768 times than rakudo-p is
21:04 timotimo as in: appending a single character to the accumulation string at a time
21:05 timotimo oh wow
21:05 timotimo it uses 2 gigabytes of ram for that, though
21:06 jnthn Whee
21:07 jnthn Well, it's 'cus it won't go collecting the buffers until the next GC run.
21:07 timotimo probably :\
21:07 jnthn And the buffers aren't chewing through the nursery itself
21:07 timotimo it doesn't contribute to .. yeah
21:07 jnthn Which normally is a good thing :)
21:07 jnthn Since it means we don't have to collect anything like so often.
21:08 timotimo aye
21:08 jnthn Anyway, there's a lot of things that can help with that.
21:08 nwc10 that reminds me a lot of a parrot GC bug
21:09 nwc10 IIRC it was that Strings didn't trigger GC runs
21:09 nwc10 PMC exhaustion did
21:09 jnthn nwc10: Right. Same thing here.
21:09 nwc10 (and GC runs collected both Strings and PMCs)
21:09 nwc10 or something like that
21:09 nwc10 result was if the code was String heavy, it could chew a lot of resouces
21:09 timotimo mhm
21:10 jnthn Yeah. It's a trade-off.
21:10 jnthn For this particular benchmark, proper ropes can mitigate it.
21:10 timotimo i'm glad it's not something i messed up
21:10 jnthn Heck, if I can ever be convinced to do OSR, then escape analysis can too...
21:10 timotimo that'd be great
21:11 nwc10 OSR?
21:11 timotimo then we could even cheat more heavily
21:11 jnthn In fact, the specializer will be a little unhelpful for a lot of p6bench without OSR...
21:11 jnthn nwc10: "On stack replacement"
21:11 jnthn nwc10: Optimizing code when the callframes are already on the stack.
21:12 jnthn nwc10: Which is...evil. :)
21:12 timotimo we need different benchmarks anyway; the current microbenchmarks are pretty unhelpful in any case
21:12 timotimo except for hunting very specific regressions and performance bugs
21:13 jnthn Well, they serve a purpose, but yeah, we need a broader range, for sure.
21:13 timotimo fo' sho'
21:13 jnthn (I've nothing against OSR, it's just a little fun to implement.)
21:15 timotimo okay, so lue isn't benefiting from the patch very much
21:15 timotimo but the benchmark still is
21:15 timotimo 21s before patch, 1.4s after patch
21:16 jnthn uh, yeah, that's a win :)
21:16 lue I wonder if starting up a new instance of perl6-m for each synopsis is what's causing the most pain in the process...
21:17 timotimo startup time of moarvm-rakudo is pretty excellent. how many synopsis files are you actually working with?
21:17 FROGGS hmmmm, I don't think that matters much
21:18 lue There are 36 synopses in the specs repo (that's counting both S17s)
21:18 timotimo nah, that should contribute about 60 seconds or so :P
21:19 d4l3k_ joined #moarvm
21:25 timotimo jnthn: should i try for a fast path in subst, repeat or join?
21:27 timotimo hm. there is wmemset for wchar_t, but that's 16bit, not 32bit :(
21:28 timotimo so a super fast fastpath for repeat of single characters wouldn't be easy
21:28 timotimo well, except for when we have 8bit strings working properly
21:29 nwc10 does any standard mandate that wchar_t is 16 bit?
21:29 nwc10 I've generally avoided the wide char stuff because it seemed to be under documented and less than reliably portable
21:29 nwc10 I might be wrong
21:29 timotimo fair enough, i should see about that
21:30 timotimo wmemset is specced for C99, though
21:30 timotimo which we don't have, thanks to MSVC
21:31 timotimo seems like on windows it's 16bit, on linux it's 32bit
21:31 timotimo or rather "modern unix-like systems"
21:31 timotimo "The width of wchar_t is compiler-specific and can be as small as 8 bits. Consequently, programs that need to be portable across any C or C++ compiler should not use wchar_t for storing Unicode text. The wchar_t type is intended for storing compiler-defined wide characters, which may be Unicode characters in some compilers."
21:31 timotimo that sucks
21:32 jnthn timotimo: A tight loop and a good compiler might well end up doing simd code-gen anyway.
21:32 timotimo fair enough.
21:44 d4l3k_ joined #moarvm
21:53 timotimo jnthn: what was your opinion on a JIT project for MoarVM GSoC?
21:54 FROGGS my guess is that jnthn++ wants to do it alone :o)
21:54 timotimo well, that or at least do the design decisions himself
21:55 jnthn I don't feel any real need to write the code, but yeah, I need to be in on the design.
21:56 jnthn We need the specializer in place first I think, since JIT will want to re-use lots of that infrastructure.
21:56 [Coke] specializer?
21:57 jnthn [Coke]: Thing that takes bytecode + runtime information and produces specialized bytecode out of it.
21:57 timotimo things like "if this parameter to the function is always a vanilla Str object, we can inline methods and stuff"
21:57 jnthn Right.
22:01 colomon joined #moarvm
23:15 colomon joined #moarvm

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