Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-02-08

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

All times shown according to UTC.

Time Nick Message
01:27 eternaleye joined #moarvm
02:18 japhb__ .ping
02:18 japhb__ No message bot?  Dang.
02:23 jnap joined #moarvm
03:56 colomon joined #moarvm
08:21 FROGGS joined #moarvm
08:21 FROGGS morning
08:23 hoelzro morning FROGGS
09:06 FROGGS joined #moarvm
09:39 timotimo (that's better now)
09:39 dalek MoarVM/jnthn_bigint_opt: 5a67c94 | (Timo Paulssen)++ | src/math/bigintops.c:
09:39 dalek MoarVM/jnthn_bigint_opt: unb0rk shift-left.
09:39 dalek MoarVM/jnthn_bigint_opt: review: https://github.com/MoarVM/MoarVM/commit/5a67c94856
09:42 timotimo though the bitshifts don't exercise bigints any more now.
09:43 timotimo i think 92500 is the new low for "say 1" i've found
09:43 timotimo i wonder when exactly it reaches that peak
10:00 dalek MoarVM: 49d9109 | (Rob Hoelz)++ | src/ (3 files):
10:00 dalek MoarVM: Implement link op
10:00 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/49d9109894
10:00 dalek MoarVM: bc4fc22 | timo++ | src/ (3 files):
10:00 dalek MoarVM: Merge pull request #76 from hoelzro/op-link
10:00 dalek MoarVM:
10:00 dalek MoarVM: Implement link op
10:00 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/bc4fc2215b
10:04 timotimo okay, so mod is misbehaving with negative RHS
10:09 timotimo to be fair, that's also the case on master, but we fail a few more tests on the bigint_opt branch
10:09 timotimo it seems like we want a different behavior from the normal % operator that C offers?
10:10 timotimo C says 2 % -3 is 2, whereas the test suite expects 3
10:10 timotimo oh, i read that wrong
10:12 timotimo it expects 13 % -4 to be -3, whereas C gives a result of 1
10:12 hoelzro neat
10:12 timotimo -13 % 4 ought to be 3 according to the test suite, but it's -1
10:12 timotimo so what's the rule here?
10:13 hoelzro I'm trying to remember the rules...
10:13 timotimo that would be most helpful :)
10:13 hoelzro because there's modulus, and there's remainder
10:14 hoelzro and they're different wrt negative numbers, iirc
10:14 timotimo libtommath implements a way to get the remainder from a division and has a separate mod function
10:14 timotimo so maybe i ought to use the remainder from the div function there
10:15 timotimo and come up with some extra crazyness on the smallint side
10:16 hoelzro "When either a or n is negative, the naive definition breaks down and programming languages differ in how these values are defined."
10:16 hoelzro =(
10:16 hoelzro C89 doesn't define a result if either side is negative
10:17 timotimo m)
10:17 timotimo so i'd have to implement that based on another operation?
10:17 hoelzro probably?
10:18 timotimo c * b + d == a is the definition of mp_div that i'm using
10:18 timotimo i'm plopping a and b as in a % b and then taking out d instead of c
10:18 timotimo is that the correct interpretation for our perl6 needs?
10:19 timotimo seems like no.
10:20 timotimo i wonder ... did this ever work?
10:21 hoelzro probably not
10:21 timotimo for some reason, it's still regressing as compared to maste
10:21 hoelzro wtf
10:21 hoelzro that's odd
10:21 timotimo even if i throw out the smallint case completely
10:22 timotimo oh
10:22 timotimo i was wrong :)
10:23 hoelzro how so?
10:23 dalek MoarVM/jnthn_bigint_opt: aab5cda | (Timo Paulssen)++ | src/math/bigintops.c:
10:23 dalek MoarVM/jnthn_bigint_opt: throw away our smallint mod calculation for now
10:23 dalek MoarVM/jnthn_bigint_opt: review: https://github.com/MoarVM/MoarVM/commit/aab5cdaca8
10:23 timotimo i *think* it ought to not regress at all by now.
10:23 timotimo aye.
10:23 timotimo jnthn: there are no more spectest failures, but a bunch of functions are still not implemented with a working smallint fastpath
10:23 timotimo ("no more failures than master has" i should say)
10:23 timotimo at what point would you like to merge the branch?
10:29 hoelzro timotimo: wanna go through the review and merge thing again? =)
10:29 timotimo i guess :)
10:30 timotimo that seems pretty straightforward.
10:30 dalek MoarVM: 2133d9d | (Rob Hoelz)++ | src/ (3 files):
10:30 dalek MoarVM: Implement symlink op
10:30 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2133d9d2ea
10:30 dalek MoarVM: 50dfcc1 | timo++ | src/ (3 files):
10:30 dalek MoarVM: Merge pull request #77 from hoelzro/op-symlink
10:30 dalek MoarVM:
10:30 dalek MoarVM: Implement symlink op
10:30 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/50dfcc1d1c
10:30 timotimo getting the file-stuff in moar going correctly is a good thing
10:30 hoelzro \o/
10:31 hoelzro I'm just grepping for NYI =P
10:31 timotimo fair enough :)
10:35 timotimo there's lots of NYI in the unicode database
10:35 hoelzro timotimo: there's one for NQP too
10:35 timotimo TIBETAN MARK NYIS SHAD, TIBETAN MARK NYIS TSHEG SHAD, TIBETAN SIGN RDEL DKAR GNYIS, ...
10:36 hoelzro yeah, I'm ignoring those =P
10:42 timotimo hoelzro: did you see how much memory smallbigint saves on arrays of Ints? :D
10:43 timotimo with 200_000 numbers it goes to 201544maxresident -> 139164maxresident, 0:00.78elapsed -> 0:00.60elapsed
10:46 timotimo for comparison, the same code on parrot takes 646980maxresident and 0:02.19elapsed
10:46 timotimo so ... fuck yeah moarvm :)
10:47 timotimo off to a great start, i'd claim!
10:48 tadzik \o/
10:52 FROGGS \o/
10:52 FROGGS indeed!
10:52 FROGGS tadzik: btw, I made a moar-support branch in panda
10:53 tadzik FROGGS: yeah, I noticed in the backlog, but didn't have a chance to look at it yet
10:53 tadzik FROGGS: does it work? :)
10:53 FROGGS tadzik: not yet
10:53 FROGGS it really needs IO::Socket::INET
10:54 FROGGS for example to fetch its projects.json
10:54 tadzik right
10:54 tadzik well, you can fallback to wget/curl :P
10:54 FROGGS and there is this bug that it does not compile a module, but it works when you do the steps manually
10:54 FROGGS we had that already on parrot
10:54 FROGGS tadzik: ya, I've got a wget hack locally
10:55 timotimo i wonder what's keeping const_i8, const_i16, const_i32 from being implemented
10:56 timotimo would the implementation be anything more than GET_REG(cur_op, 0).i* = GET_I*(cur_op, 2); ?
11:16 timotimo masak: are you planning to unbust macros on moarvm?
11:24 jnthn timotimo: At this point, though, everything that doesn't have a smallint optimized path will force_bigint?
11:24 masak timotimo: I'm planning to get to macros in general, but I want to finish up p6cc first...
11:24 masak timotimo: I didn't know macros were busted on moarvm.
11:24 timotimo jnthn: that's right
11:24 timotimo masak: at least unquoting and another file are aborting
11:25 jnthn timotimo: Aww...I get a load of compile errors.
11:25 timotimo jnthn: i think i can also toss get_bigint now
11:25 timotimo oh no, msvc stuff again? :(
11:26 jnthn timotimo: Ummm
11:27 jnthn timotimo: Yeah, you just declared in a bad place :)
11:27 timotimo i tend to totally forget about that >_>
11:27 timotimo should i go through it or can you do it quickly?
11:27 timotimo moarvm test suite run peaks at a third of the maxresidentk of parrot and takes about 1/2 the wallclock time
11:28 dalek MoarVM/jnthn_bigint_opt: f4641f5 | jnthn++ | src/6model/reprs/P6bigint.c:
11:28 dalek MoarVM/jnthn_bigint_opt: Unbust build on MSVC.
11:28 dalek MoarVM/jnthn_bigint_opt: review: https://github.com/MoarVM/MoarVM/commit/f4641f502e
11:28 dalek MoarVM/jnthn_bigint_opt: b7a4887 | jnthn++ | src/math/bigintops.c:
11:28 dalek MoarVM/jnthn_bigint_opt: Toss now-unused function.
11:28 dalek MoarVM/jnthn_bigint_opt: review: https://github.com/MoarVM/MoarVM/commit/b7a4887839
11:28 timotimo thank you :)
11:28 jnthn uh ;) I think this needs some review:
11:28 jnthn /* write the "is big" flag */
11:28 jnthn writer->write_varint(tc, writer, 1);
11:28 jnthn and
11:28 jnthn /* write the "is small" flag */
11:28 jnthn writer->write_varint(tc, writer, 1);
11:28 timotimo gah! :D
11:28 jnthn such confuse!
11:28 timotimo i wasn't even drunk when i wrote that %)
11:29 jnthn Clearly you shoulda been :P
11:35 timotimo i can fix it if you're not already doing it
11:36 jnthn go ahead
11:37 timotimo done.
11:37 dalek MoarVM/jnthn_bigint_opt: 0296255 | (Timo Paulssen)++ | src/6model/reprs/P6bigint.c:
11:37 dalek MoarVM/jnthn_bigint_opt: fix the small/big flag for P6bigint serialization
11:37 dalek MoarVM/jnthn_bigint_opt: review: https://github.com/MoarVM/MoarVM/commit/0296255796
11:38 timotimo jnthn: if you have an idea how to implement mod properly on top of C's broken mod operator, i'm all ears
11:39 timotimo and for performance reasons, lcm and gcd should get a smallint implementation, since i believe most rats will have nums and denoms in the 32bit range
11:39 jnthn Yeah. I don't think either of these need block a merge though
11:40 jnthn I'm doing a build and spectest run now
11:40 timotimo sounds good :)
11:45 masak timotimo: I don't have tuits to look at it now -- but thanks for letting me know.
11:45 masak timotimo: I do plan to get back on top of macros eventually.
11:45 timotimo i'll look at the exact failure mode
11:46 timotimo maybe it's something very simple?
11:46 timotimo Specified code ref has no outer
11:47 timotimo No such method 'STORE' for invocant of type 'Mu'
11:47 timotimo this is how quasi-blocks fails
11:49 jnthn timotimo: I see lots of new spectest failures. :(
11:49 timotimo you do? :(
11:49 hoelzro timotimo: I haven't seen it!
11:50 jnthn timotimo: Yeah
11:50 jnthn t\spec\S02-literals\numeric.t is the first file with a new failure
11:50 jnthn not ok 16 - very long Num literals
11:50 jnthn # got:      22.2797654333337
11:50 jnthn # expected: 3.141592
11:51 timotimo i get only ok there :(
11:51 jnthn C:\consulting\rakudo>perl6-m -e "say 3.14159265358979323846264338327950288419716939937510e0"
11:51 jnthn 22.2797654333337
11:51 jnthn wtf
11:53 timotimo that ought not be a rat. why does it fail like that?
11:53 jnthn No idea
11:53 jnthn .WHAT on it gives (Num)
11:53 hoelzro are you two on the same OS?
11:53 timotimo no
11:57 hoelzro could that be it?
11:57 hoelzro I'll give it a whirl on my machine
11:57 timotimo thanks
11:57 hoelzro it's the jnthn_bigint_opt branch, right?
11:57 jnthn yeah
11:57 * hoelzro whirls
11:58 timotimo i wonder what's keeping const_i8, const_i16, const_i32 from being implemented / would the implementation be anything more than GET_REG(cur_op, 0).i* = GET_I*(cur_op, 2); ?
11:59 timotimo jnthn: should that always be .i64 = GET_I*, or should the numbers match up there?
12:01 jnthn timotimo: Not sure, which is why it's not implemented yet ;)
12:01 timotimo that'd explain it :)
12:02 timotimo how about the truncate/expand operations? would those just be casts between the integer sizes?
12:02 hoelzro I get a pi-esque value
12:03 FROGGS jnthn: shall we wait for your IO refactor before we start getting socket ops in place?
12:04 jnthn FROGGS: yes
12:04 FROGGS :/
12:04 FROGGS k
12:04 timotimo nap time.
12:05 timotimo jnthn: if you find any other little jobs for me, i can probably do a thing or two :)
12:05 jnthn FROGGS: And now I'm done traveling for a while, I can actually work on this...
12:05 FROGGS ahh, great :o)
12:05 jnthn timotimo: OK...will ponder. And try to fix this thing. :)
12:07 jnthn The problem is showing up in radcalc in Actions.pm, fwiw.
12:11 nwc10 FROGGS: is it easy (and worthwhile) to bodge Panda to use wget/curl to get stuff, to make progress on the next things blocking the ecosystem?
12:11 FROGGS nwc10: if this will work out, then this could be a nice fallback for all backends
12:12 FROGGS nwc10: and using lynx for example should be doable pretty easily
12:13 FROGGS tadzik: shall I work on that?
12:14 tadzik FROGGS: I don't see why not :)
12:14 FROGGS k, will tackle this when I'm done dayjobbing
12:15 * FROGGS does CDD (Comment Driven Development) right now
12:15 JimmyZ evening, long time no see
12:15 FROGGS hi JimmyZ! \o/
12:15 JimmyZ :)
12:17 jnthn o/ JimmyZ
12:17 JimmyZ I just spent The Chinese Lunar New Year
12:18 FROGGS all this time? :o)
12:20 JimmyZ yeah
12:30 hoelzro "cannot stringify this" o_O
12:32 FROGGS "o_O" <-- here you are
12:32 hoelzro heh =)
12:38 hoelzro how can I print an MVMObject's type from within C land?
12:38 jnthn Think I found it...
12:38 hoelzro I get as far as obj->st.WHAT
12:38 jnthn mp_set_long(i, result);
12:38 jnthn hoelzro: There's no good way to do that, really...
12:38 hoelzro I know that's the type object, but I don't know how to ask it for its name
12:38 hoelzro ='(
12:39 jnthn hoelzro: Given it involves a method call like $obj.HOW.name($obj)
12:39 jnthn hoelzro: It involves finding that method, setting up a call to it, and arranging a callback to handle the result.
12:40 hoelzro yikes.
12:40 jnthn Yes, well, we don't do inferior runloops in Moar 'cus those are even mroe painful than making things like this hard.
12:40 hoelzro I want to know *what* can't stringify
12:40 jnthn What're you actually tyring to do?
12:40 hoelzro well
12:41 hoelzro I'm compiling a module (--target=moar)
12:41 jnthn Ah..can you not just shove a .HOW.name(...) at an appropriate point?
12:41 hoelzro jnthn: that's the thing...I only get ""cannot stringify this"
12:41 hoelzro so I don't know what an appropriate point would be
12:44 jnthn Did you add --ll-exception?
12:44 hoelzro hmm
12:44 * hoelzro tries that
12:45 hoelzro ah, thanks!
12:45 hoelzro that's great
12:45 jnthn :)
12:46 jnthn In other news, I think I found the issue with bigint stuff
12:53 hoelzro so perl6-m doesn't seem to be able to compile JSON::Tiny::Grammar
12:54 * hoelzro .oO( is this moar appropriate for #perl6? )
13:02 jnthn How does it fail?
13:02 dalek MoarVM/jnthn_bigint_opt: b78fa4f | jnthn++ | src/math/bigintops.c:
13:02 dalek MoarVM/jnthn_bigint_opt: Fix data loss on platforms with 32-bit long.
13:02 dalek MoarVM/jnthn_bigint_opt: review: https://github.com/MoarVM/MoarVM/commit/b78fa4f5c1
13:02 dalek MoarVM/jnthn_bigint_opt: 426d424 | jnthn++ | src/math/bigintops.c:
13:02 dalek MoarVM/jnthn_bigint_opt: Fix a memory leak.
13:02 dalek MoarVM/jnthn_bigint_opt: review: https://github.com/MoarVM/MoarVM/commit/426d4244ca
13:03 hoelzro jnthn: I'll paste the trace
13:08 hoelzro jnthn: http://pastebin.com/0cyfTwiU
13:11 hoelzro I'm looking at the NQP code where the problem occurs, but now I don't know how to modify it to print useful info =/
13:12 hoelzro oh, there we go
13:13 jnthn --target=moar
13:13 jnthn That should be --target=mbc
13:21 hoelzro ugh
13:21 hoelzro oops
13:21 hoelzro thanks
13:21 jnthn Error wsa still crappy though
13:21 jnthn Feel free to ticket that
13:21 jnthn It's meant ot say "no such stage" or so
13:25 hoelzro here's a moar fun one:
13:26 hoelzro jnthn: http://pastebin.com/FhfbqbfK
13:27 dalek Heuristic branch merge: pushed 40 commits to MoarVM by jnthn
13:27 jnthn o.O
13:28 jnthn Does the file exist?
13:28 jnthn timotimo: merged the branch
13:29 hoelzro jnthn: hmm, apparently not
14:11 dalek MoarVM: 79c084e | jnthn++ | src/core/interp.c:
14:11 dalek MoarVM: Fix mod_n on negatives.
14:11 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/79c084e3b3
14:11 dalek MoarVM: 1f165c8 | jnthn++ | src/ (3 files):
14:11 dalek MoarVM: Implement Num fallback case of pow_I.
14:11 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1f165c8314
14:16 crab2313 joined #moarvm
14:20 jnthn FROGGS: So, now I've time to look: is there something for me to review wrt openpipe?
14:20 FROGGS jnthn: just basic sanity
14:20 FROGGS I did a change to the MVMOSHandle struct, did I miss something?
14:21 FROGGS (like serialization)
14:21 jnthn We dont' serialize those
14:24 jnthn Is there a reason we can't use uv_process_close off Wikndows?
14:24 FROGGS it is not defined I think
14:31 jnthn Ugh...the symlink test added in NQP doesn't detect Windows...and so explodes now.
14:31 jnthn FROGGS: What Rakudo spectests is the openpipe stuff meant to help?
14:32 jnthn ah, I see...
14:32 jnthn FROGGS: Does system.t pass test 1 for you?
14:33 FROGGS hold on
14:33 JimmyZ jnthn: Do you know how to step into moar.dll by using msvc2012 debugger?
14:34 jnthn JimmyZ: Yeah, you need to hack makefile target for moar.dll and add /pdb:$@.pdb to the link line
14:34 FROGGS jnthn: no, it segfaults
14:35 JimmyZ jnthn: thanks
14:35 FROGGS jnthn: and fails when I comment the others
14:36 jnthn FROGGS: Ugh. I guess that wants fixing before we merge openpipe stuff, then...
14:36 FROGGS k
14:36 jnthn FROGGS: On Windows it just comes back with error code 255
14:38 FROGGS interestingly shell() works there
14:40 jnthn afk for a bit
14:45 timotimo hoelzro: did you read that? your symlink test explodes on windows
15:00 timotimo fixing string concatenation to no longer be terribly slow due to gremlins isn't an LHF, is it? :\
15:01 timotimo i suppose i should get my gdb helpers up to snuff, so that they can be of assistance when trying to make ropes work
15:02 timotimo it's very sad to see the performance drop so harshly in the benchmarks including concat
15:07 jnthn timotimo: Not LHF, no.
15:07 jnthn timotimo: Though may be able to get some easy-ish wins.
15:07 jnthn I can take a look maybe.
15:07 jnthn I'll dig into the IO stuff once the openpipe patch is in shape and lands.
15:08 timotimo if the rope is made up of two same-typed ropes, memcpy could be used instead of a for loop with "get codepoint at"
15:12 hoelzro timotimo: nooooo
15:13 hoelzro what's it supposed to do on Windows?
15:13 * timotimo has no idea :)
15:13 timotimo i thought libuv would be able to make symlinks on windows
15:13 timotimo at least on ntfs devices
15:14 jnthn hoelzro: Maybe just skip the test on Windows....
15:14 hoelzro timotimo: I know nothing about symlinks and Windows
15:15 hoelzro iirc, symlinks don't work on Windows
15:16 timotimo oh, i must have been thinking of NTFS Junctions, which is not a symlink, but a hardlink
15:17 hoelzro I could make a PR to skip the test, but it would probably take someone less time without having to worry about merging
15:17 timotimo no, thanks :P
15:18 timotimo i mean
15:18 timotimo no thanks to me doing that :P
15:18 jnthn hoelzro: Do you not have an NQP commit bit?
15:18 hoelzro still not, I think
15:18 * hoelzro tries
15:19 jnthn hoelzro: Added you
15:19 hoelzro cool, thanks!
15:19 hoelzro can I also haz commit bit for Moar?
15:21 jnthn hoelzro: done
15:22 hoelzro great, thanks!
15:22 hoelzro I just need a Rakudo one now =P
15:25 hoelzro ok, test skipped on Windows
15:28 hoelzro jnthn: thanks for the commit bits
15:28 jnthn hoelzro: np; thanks for the patches :)
15:29 jnthn Confirm things look better here
15:29 hoelzro \o/
15:29 hoelzro better++
15:41 timotimo should i implement gcd in terms of the mod operator, or will that give me crap if one of the numbers is negative?
15:41 timotimo actually, can i just remove both signs and put a - if there was only one - in the signs?
15:41 timotimo or something similarly simple?
15:41 nwc10 what would Macgyver^WPerl 5 do?
15:42 timotimo i'd prefer not having to look into perl5's guts, thank you :)
15:42 nwc10 sure, but if you don't want to make the same mistakes...
15:44 nwc10 anyway, I think that there isn't a direct answer for gcd here
15:44 nwc10 but if C's % is ill-defined for negative values (which I think that it is) then you're going to get crap
15:44 nwc10 so make everything positive, and then deal with signs yourself
15:46 timotimo aye.
15:46 timotimo how are the signs expected to work? the way i described?
15:56 timotimo t/spec/S03-operators/gcd.t .................................... Failed 1/16 subtests   ← oh no :(
15:56 nwc10 I don't know the answer to that. Sorry.
15:57 * timotimo looks at the exact failure
15:57 timotimo it would appear it only expects the sign to be restored if it was on the right hand side
15:58 timotimo hm, actually
15:58 timotimo why would the gcd ever be negative?
15:58 timotimo if something is evenly divisible by -3, it's also divisible by 3 and 3 is greater
16:02 timotimo ok 10 - :Punctuation chars# TODO unicode 6.0 punct characters  ←  any reason to leave this fudged?
16:04 timotimo not ok 278 - unicode whitespace (\s)  ← huh.
16:09 timotimo not ok 823 - Rat.Rat yields correct Rat
16:09 timotimo #      got: '301281685344656669 1250'
16:09 timotimo # expected: '301281685344656640 1250'
16:09 timotimo did we use to fail this test? S32-num/rat.rakudo.moar
17:31 masak timotimo: Wikipedia says that gcd is defined to be a positive integer.
17:32 jnthn timotimo: That Rat test passes here on Windows, but does fail in the daily roast, it seems.
17:33 FROGGS hoelzro: you are working with the wip-openpipe branch on moarvm and rakudo, right?
17:37 FROGGS hmmm, run() explodes when C-stringifying the args
17:44 japhb__ FWIW, very much agree re: http://irclog.perlgeek.de/moarvm/2014-02-08#i_8251965 and following -- panda should in general have several ways to talk to the network, and use the sanest one it can.
17:47 lee__ that is how cpanm handles it. falls back to wget/curl, defaults to LWP
17:47 japhb__ jnthn: Why do you use 'tmp[0]' instead of '*tmp' in https://github.com/MoarVM/MoarVM/commit/426d4244ca#diff-da7d01bcfced11bccf24e9234758e807R136
17:49 jnthn japhb__: Insufficient coffee to be consistent with two lines below, I guess... :)
17:53 jnthn p6: say loop (my $i = 0; $i < 10; $i++) { $i }
17:53 camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«[31m===[0mSORRY![31m===[0m␤Word 'loop' interpreted as a listop; please use 'do loop' to introduce the statement control word␤at /tmp/tmpfile:1␤------> [32msay loop[33m⏏[31m (my $i = 0; $i < 10; $i++) …»
17:53 camelia ..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method from in type P6+{infix:sym<⊆>},{infix:sym<≼>},{term:sym<∅>},{infix:sym<∈>},{infix:sym<(elem)>},{infix:sym<∉>},{infix:sym<∋>},{infix:sym<(cont)>},{infix:sym<∌>},{infix:sym<∪>},{infix:sym<(|)…»
17:53 jnthn p6: say do loop (my $i = 0; $i < 10; $i++) { $i }
17:53 camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«False␤»
17:53 camelia ..niecza v24-109-g48a8de3: OUTPUT«Nil␤»
17:54 FROGGS jnthn: do I need to decont the @args? https://github.com/rakudo/rakudo/blob/wip-openpipe/src/core/control.pm#L195
17:55 FROGGS jnthn: because MVM_repr_get_str explodes here https://github.com/MoarVM/MoarVM/blob/master/src/io/procops.c#L227
17:55 jnthn FROGGS: I would, yes
17:55 FROGGS k
18:24 timotimo jnthn: i re-implemented gcd for smallint, that's why i had a failing test
18:35 FROGGS ohh, yeah, run() does work now... pushing in a  bit
18:36 timotimo that's great!
18:42 timotimo jnthn: my gcd implementation of the smallint branch is only very slightly faster, but saves a surprising amount of memory in the maxresidentk department
18:43 timotimo 0:26.95elapsed / 243960maxresident and 0:26.80elapsed / 244000maxresident    ← smallint gcd
18:43 timotimo 0:27.30elapsed / 303704maxresident and 0:27.25elapsed / 303720maxresident    ← bigint gcd
18:43 timotimo for 5..500 X 1..500 -> $a, $b { $a gcd $b }     ← benchmark code
18:44 japhb__ Nice win!
18:44 jnthn Wow :)
18:45 timotimo why would it win us as much, though?
18:45 timotimo unless it's otherwise leaking memory?
18:45 jnthn Well, you can allocate a lot of Int objects in the nursery before you get around to a collection, and we only free the mp_int at that point
18:46 timotimo doesn't store_bigint_result free the mp_int if it fits in a smallint?
18:46 jnthn Should do, yeah...
18:46 timotimo yeah, it does
18:46 jnthn Hm, that is odd.
18:47 * jnthn is hunting various code-gen sub-optimalities.
18:47 timotimo oh, cool! :)
18:48 jnthn Found that the _n -> _i opts in NQP didn't apply to comparators (islt, etc.)
18:49 jnthn so native $i < $n just became a lot shorter after fixing that. :)
18:49 timotimo \o/
18:49 jnthn Now hutning a place we do a box only to throw it away
18:50 timotimo i imagine that'd happen in a bunch of places unless we're very careful
18:52 timotimo i suppose those would help on all backends, too?
18:53 jnthn The native int one was an NQP::Optimizer improvemnet, so it helps all, yes. The box one I'm hunting is Moar-specific.
18:54 timotimo OK
18:57 timotimo since my gcd implementation causes no new spectest failures now, i'll go ahead and push it
18:58 dalek MoarVM: e47fc4d | (Timo Paulssen)++ | src/math/bigintops.c:
18:58 dalek MoarVM: gcd implementation for smallint.
18:58 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e47fc4dad0
19:00 timotimo seems like i'll already have to run a new benchmarking session :3
19:58 dalek MoarVM/wip-openpipe: af96e73 | (Tobias Leich)++ | src/io/procops.c:
19:58 dalek MoarVM/wip-openpipe: make run(), shell() and qqx{} explode less
19:58 dalek MoarVM/wip-openpipe:
19:58 dalek MoarVM/wip-openpipe: Somehow we need to make sure that the calloc()-ed process gets freed when
19:58 dalek MoarVM/wip-openpipe: libuv is done with it.
19:58 dalek MoarVM/wip-openpipe: review: https://github.com/MoarVM/MoarVM/commit/af96e73b12
20:05 timotimo http://t.h8.lv/Perl_6_what_can_you_do_today_fixed_audio.webm ← it does sound a lot better than it did before, but it's still pretty bad
20:21 dalek MoarVM/wip-openpipe: c2b3c94 | (Tobias Leich)++ | src/io/procops.c:
20:21 dalek MoarVM/wip-openpipe: protect objects against movement
20:21 dalek MoarVM/wip-openpipe: review: https://github.com/MoarVM/MoarVM/commit/c2b3c94486
20:22 dalek MoarVM/wip-openpipe: 6d6e388 | (Tobias Leich)++ | src/io/procops.c:
20:22 dalek MoarVM/wip-openpipe: free() before throwing exceptions
20:22 dalek MoarVM/wip-openpipe: review: https://github.com/MoarVM/MoarVM/commit/6d6e388401
21:02 hoelzro FROGGS: you fixed it?
21:02 FROGGS I dunno
21:02 hoelzro I had to leave *right* after I found that bug
21:02 FROGGS I don't know what is wrong on your side
21:03 FROGGS I just tried to make t/spec/S29-os/system.t pass
21:03 hoelzro I'll try it out
21:03 FROGGS cool
21:06 hoelzro that fixed it
21:07 hoelzro every time I try to do something, you beat me to it, FROGGS!
21:08 FROGGS ó.ò
21:08 FROGGS hoelzro: I hope you're not sad or so
21:08 hoelzro no no =)
21:08 hoelzro I'm joking =)
21:08 FROGGS pheeew
21:08 FROGGS :o)
21:08 hoelzro but I was excited to find such a great bug
21:08 FROGGS yeah, I fear there are still some left in :o)
21:08 hoelzro and I had to leave a few minutes later!
21:08 hoelzro FROGGS: well, I'll keep testing =)
21:10 jnthn such bug! much greatness!
21:11 dalek Heuristic branch merge: pushed 67 commits to MoarVM/wip-openpipe by FROGGS
21:12 FROGGS jnthn: I am spectesting wip-openpipe now, but it feels good
21:13 jnthn FROGGS: Does system.t pass?
21:13 FROGGS yes
21:13 jnthn \o/
21:13 FROGGS I'd even like to unskip the first test for jvm...
21:13 * jnthn is wrestling with jvm code-gen at the moment...
21:14 FROGGS kill it!
21:14 FROGGS (with fire perhaps)
21:15 jnthn Well, the real issue is that asm gives shit errors.
22:11 dalek joined #moarvm
22:18 timotimo it wouldn't be efficient enough if it would check for correctness all the time!
22:19 FROGGS jnthn: am I allowed to merge? or are going to do it?
22:21 jnthn FROGGS: Merge...openpipe?
22:21 jnthn FROGGS: Does it pass system.t on Windows also?
22:21 FROGGS jnthn: yes, and yes it does
22:22 jnthn FROGGS: OK. Go for it, I'm doing JVM bits ATM :)
22:22 FROGGS k
22:22 dalek Heuristic branch merge: pushed 31 commits to MoarVM by FROGGS
22:22 timotimo jnthn: should i kick off a new benchmark run for {nqp,rakudo}-{parrot,moar}?
22:23 timotimo or will you have something new for the non-jvm backends soon, too?
22:23 jnthn timotimo: You could. Or maybe wait until tomorrow, when I probably have JVM bind stuff done too?
22:23 jnthn timotimo: No, not today.
22:24 timotimo well, if you're only going to change JVM until tomorrow, i can do a non-jvm benchmark run now :)
22:24 timotimo the jvm part takes by far the longest
22:24 jnthn OK :)
22:58 timotimo i imagine the performance of concat on moarvm causes noticable feelings of slowness on the REPL if you try to print out large-ish results
22:58 jnthn yeah
23:01 * timotimo made it a quest on questhub
23:38 colomon joined #moarvm
23:41 btyler joined #moarvm
23:51 hoelzro I found some odd behavior
23:51 hoelzro a test that passes when not using precompiled modules
23:51 timotimo do tell
23:51 hoelzro but fails when using them
23:52 hoelzro I'll paste the output
23:52 timotimo aaw, those are always bad :(
23:52 timotimo i hope i didn't break serialization recently when i introduced varints
23:53 hoelzro hmm
23:53 hoelzro I'll try an older branch
23:53 hoelzro http://pastebin.com/HtaeMiL5
23:53 timotimo "recently"
23:53 hoelzro how recently?
23:54 timotimo Jan 26, 2014
23:54 timotimo https://github.com/MoarVM/MoarVM/commit/6c829748d89b315ad34eeab57c2427baed1b2f44
23:55 hoelzro and the Makefile: http://pastebin.com/qy99rtzMM
23:55 timotimo "this paste has been removed!"
23:55 hoelzro which?
23:55 timotimo the makefile paste
23:56 hoelzro http://pastebin.com/qy99rtzM
23:56 hoelzro oops
23:56 hoelzro too many Ms
23:56 timotimo heh
23:56 timotimo thank you for spending so much time on checking the star-related modules on moarvm!
23:57 timotimo that's going to make actually doing a star release (maybe even next month?) so much more pleasant
23:57 hoelzro timotimo: I have JSON::Tiny passing atm!
23:57 timotimo \o/
23:58 hoelzro it's also providing me a source of things to do with Moar =P
23:58 timotimo that's great
23:59 hoelzro I'll try building perl6-m with your branch reverting
23:59 hoelzro *reverted

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