Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-09-16

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

All times shown according to UTC.

Time Nick Message
01:55 ilbot3 joined #moarvm
01:55 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
02:05 markmont joined #moarvm
02:26 AlexDaniel joined #moarvm
02:42 greppable6 joined #moarvm
03:53 Ven`` joined #moarvm
04:19 dogbert17 joined #moarvm
04:20 lizmat_ joined #moarvm
04:21 AlexDaniel joined #moarvm
04:23 moritz joined #moarvm
04:28 eater joined #moarvm
07:25 domidumont joined #moarvm
07:30 domidumont joined #moarvm
09:17 leont joined #moarvm
09:50 nine I won't be able to move all boxing into the HLL code. I'll have to box pointers, structs and carrays before I can give them back to HLL code and for that I'm still gonna need the return type object.
10:03 zakharyas joined #moarvm
10:03 nine I'm slowly moving towards adding a MAST::NativeCall node type.
10:06 nine Native calls don't need to handle named arguments. But they do need the return type object.
10:34 zakharyas1 joined #moarvm
10:53 leont joined #moarvm
10:56 Skarsnik joined #moarvm
11:17 jnthn nine: I'd be OK with a new node type if trying to sqish it into the existing one looks ugly
11:20 MasterDuke_ jnthn: re combining ssize and slots. can/should they be a struct?
11:21 jnthn MasterDuke_: You're thinking a struct that contains ssize and points to slots?
11:21 jnthn e.g. an extra LoI?
11:21 jnthn It may be a good way to go
11:21 jnthn My first thought was "sneak the ssize ahead of the slots in the same memory blog"
11:21 jnthn *blob
11:22 MasterDuke_ that's what i thought first, but then was chatting with timo and someone mentioned it maybe could be a struct
11:22 jnthn But...then I realized we tend to grow arrays by powers of 2, and stuff in userspace will assume powers of 2 are nice for the VM too
11:22 samcv i'm gonna fix `make realclean` so it doesn't error anymore
11:22 jnthn And so we'd then try to allocate space for, say, 8 pointers + 1 for ssize
11:22 samcv figured out the issue
11:23 jnthn Which is 9, which goes in the next bucket and wastes memory
11:23 jnthn More than if we allocated 2 pointers worth for ssize/slots and separately the slots
11:24 jnthn So I think maybe let's go that way
11:24 jnthn It's an extra dereference, but it's nothing worse than dynamic arrays as they show up on, say, JVM, CLR, etc.
11:24 MasterDuke_ ok, so i'll try moving ssize and slots into a struct
11:25 jnthn Plus the FSA means that we don't have any bookkeeping data before/ahead of the 2-pointer struct
11:25 timo huh, now that you point out to me that a struct would force another level of indirection, i'm no longer fond of that idea :|
11:26 jnthn timo: Well, I wasn't either, until I realized how allocating power of 2 + 1 was going to probably be horrible
11:26 timo jnthn, i majorly restructured my grant application and increased the hourly rate quite a bit as a reaction to channel feedback, would you take a minute or two to look over the new version some time today?
11:27 jnthn timo: And lead to cache pollution because of the extra memory unused in the next FSA bucket size up
11:27 jnthn timo: Sure, link?
11:28 MasterDuke_ ssize should become a pointer to MVMuint64 in the new struct?
11:28 jnthn Not a pointer, just a size
11:29 MasterDuke_ you mentioned two pointers?
11:29 jnthn Oh
11:29 jnthn Yeah, sorry. That was confusing, I was assuming 64-bit where ssize is equivalent to 1 pointer :)
11:30 jnthn Didn't mean anything by that really; my point was that if we break power-of-2 boundary expectations of, well, everything, then we're probably going to have a bad time
11:30 MasterDuke_ ah, yeah, that makes sense
11:34 timo https://docs.google.com/document/d/102h_Nlpq4ED-PpJVfy7kggp5LYmpORhsB3E1eeZ3yfI/edit jnthn
11:41 jnthn timo: Are you thinking of the profiler UI gaining a server component, that uses, say, a sqlite DB?
11:42 jnthn A thing that I do miss in the heap snapshot analyzer is a snapshot diff
11:42 jnthn oh, you have it
11:43 jnthn :)
11:43 jnthn oh, and I found the answer to my first question too :)
11:43 timo yeah, just a little server component that can run queries for the frontend
11:44 timo i already made a "summary all" command that builds the summary for all snapshots and displays them in a table, but i couldn't run it yet because ram :D
11:44 timo and my "forget-snapshot" command didn't cause the snapshots to die
11:44 timo and running the heap snapshot profiler on the snapshot analyzer made moar crash in gc
11:45 jnthn It looks like a good grant app, and I'd really love seeing this work happen :)
11:45 jnthn timo++
11:46 timo you think the amount requested is also sensible?
11:47 jnthn I suspect the hourly estimate is a tad on the optimistic side
11:47 timo i rephrased the last bit of the "using a web browser" bit to point out that the launching part can also happen from inside the browser
11:47 jnthn But I haven't spent time costing it out, and you have :)
11:47 jnthn Cool
11:47 timo the estimates are rather rough, and probably too optimistic, but i'm having a hard time justifying an increased cost to myself
11:48 jnthn Estimates are always rough, that's the point :)
11:49 jnthn It's just that too much of our industry treats estimates as promises.
11:50 jnthn Anyway, I'd say the question is, "even if it goes over a bit, will I still be happy with this amount?"
11:52 MasterDuke_ it compiled, but kind of scared to try and run anything...
11:57 timo yeah, in reality i'll surely spend more than 150 hours
11:57 timo i should really bump up the estimate and pay amount. while i shouldn't make the claim outrageous (what my broken brain is telling me) but i shouldn't sell myself so short
11:59 MasterDuke_ this is getting a little interesting to test. a branch off a branch off a branch, and i'm not sure if i need to rebase master into each branch or just the last one...
12:00 timo if you rebase the tip of the last branch onto master, it'll take the whole "path" between your tip and master and turn that into a new series of commits
12:00 timo if the other branches diverge at some point from this new path, you'll want to rebase them onto whatever commit corresponds to their old divergence point on the new series of commits
12:00 timo (a graph on paper would really help here %) )
12:04 MasterDuke_ hm, rakudo built. heh, did i do something right? or something so wrong?
12:04 timo now try pushing onto an array simultaneously from 5 threads
12:08 MasterDuke_ hm, 'double free or corruption (!prev)'
12:09 MasterDuke_ m: my @a; start { @a.push: $++ for ^10 } for ^10; say +@a
12:09 camelia rakudo-moar c3a71a: OUTPUT: «(signal ABRT)*** Error in `/home/camelia/rakudo-m-inst-1/bin/moar': double free or corruption (fasttop): 0x00007f81a0061300 ***␤======= Backtrace: =========␤/lib64/libc.so.6(+0x721af)[0x7f81b6e041af]␤/lib64/libc.so.6(+0x77706)[0x7f81b6e09706]␤/li…»
12:09 MasterDuke_ if i had done it correctly, that shouldn't segv?
12:10 jnthn No. Should lose data but not SEGV.
12:10 * jnthn gets live rock music on his street today
12:10 timo fantastic!
12:11 jnthn Opened the window to listen to it better. But now I can smell bbq sausages :)
12:11 timo oh no, so appetizing
12:12 jnthn I wonder if this is one of those "omg we just harvested grapes and made young wine!" celebrations :)
12:17 jnthn OK, that was the most stereotypical cover band thing to do ever: play the final countdown as your final song. :P
12:17 MasterDuke_ nice
12:19 timo i fondly remember the last time cover bands were in the vicinity
12:19 timo many of those bands totally butchered some good songs
12:19 timo it wasn't great :(
12:28 Skarsnik_ joined #moarvm
12:30 domidumont joined #moarvm
12:32 timo i think i'll send in the latest (and hopefully last) version of my grant application
12:44 Ven`` joined #moarvm
13:03 MasterDuke_ hm, the segv is in the MVM_realloc here: https://github.com/MoarVM/MoarVM/pull/689/files#diff-108ec2b9bd599f70a4c50ef614e0f3a2R368
13:04 MasterDuke_ now to figure out why it's not taking the fsa path...
13:04 MasterDuke_ afk for a while
13:09 nine Ok, compiler is happy again, but running is still a different topic:
13:09 nine Bytecode validation error at offset 90, instruction 16:
13:09 nine expected instruction marked 'a' but got ' '
13:18 timotimo i wonder if we have to change the resizing functions to only read the current size once, for example, so that we don't get outdated sizes at the point where we actually call the realloc
13:18 timotimo nine: that happens when instructions are in between a set of instructions that don't allow other instructions in between
13:18 timotimo i.e. there's a starter and a stopper instruction for the "a" mark and there's instructions that are allowed between those two
13:19 timotimo for example, prepargs, arg_*, invoke_*
13:19 timotimo that's probably what bites you here?
13:22 nine I've got no idea how that could happen though. I'm using the same code as for other invoke ops
13:38 timotimo right, we don't really have a dumper at that point that could tell you what exactly it sees
13:38 timotimo can you output the --target=mast when you compile your code?
14:04 nine That's it: https://gist.github.com/niner/888eb7874caffe1426cba5c01bba970f
14:08 MasterDuke joined #moarvm
14:10 timotimo oh, huh. perhaps it's only visible in the final mbc
14:10 MasterDuke How can get the perl 6 name of the array in vmarray.c for debugging purposes?
14:10 timotimo the only thing we havee is the debug_name from the STABLE, but that's shared between all objects of the same type
14:11 MasterDuke Yeah, that's just giving me NPQArray or BOOTIntArray
14:12 Geth ¦ MoarVM: 238896a50a | (Samantha McVey)++ | build/Makefile.in
14:12 Geth ¦ MoarVM: Fix errors when running `make realclean
14:12 Geth ¦ MoarVM:
14:12 Geth ¦ MoarVM: This was caused by it always trying to run `make distclean` in the libatomic_ops
14:12 Geth ¦ MoarVM: directory, even if the Makefile had already been cleaned up and removed.
14:12 Geth ¦ MoarVM: Only try to run `make distclean` in the libatomic_ops directory when the Makefile
14:12 Geth ¦ MoarVM: exists.
14:12 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/238896a50a
14:13 timotimo i'll be AFK for a bit, but i'd appreciate more proofreads on my application: https://docs.google.com/document/d/102h_Nlpq4ED-PpJVfy7kggp5LYmpORhsB3E1eeZ3yfI/edit# - thanks!
14:13 AlexDaniel joined #moarvm
14:15 vendethiel- joined #moarvm
14:22 KDr2__ joined #moarvm
14:22 nine timotimo: improved debug output gives me this interesting bit: https://gist.github.com/niner/d80444bcad9bcf9386d42b1040d44605
14:24 cognominal joined #moarvm
14:26 MasterDuke Hm, the MVM_CF_USES_FSA flag on the array seems to be getting unset
14:27 dogbert2 joined #moarvm
14:27 dogbert2 when running spec/stresstest the following is logged early in the process: Missing test file: t/spec/S32-str/S32-str/CollationTest_NON_IGNORABLE-0.t
14:31 MasterDuke The GC should preserve that flag, right?
14:36 dogbert2 .seen samcv
14:36 yoleaux I saw samcv 11:22Z in #moarvm: <samcv> figured out the issue
14:37 samcv i was gonna go to bed
14:37 samcv hi dogbert2
14:37 dogbert2 hi, do you see the path error above
14:37 dogbert2 t/spec/S32-str/S32-str/
14:39 samcv hmm ah yes
14:40 samcv fixing
14:40 samcv not sure how that happened :o
14:41 dogbert2 perhaps because it's time to sleep :)
14:43 samcv ok fixed
14:43 samcv good night!
14:44 samcv i'm guessing i must have hit some key before saving the file.. heh
14:44 samcv o/ night
14:44 dogbert2 night
14:50 Skarsnik joined #moarvm
14:52 MasterDuke joined #moarvm
14:52 nine The only place where we emit an extend_i32 at all is in QASTCompilerMAST. But then it should show up in the --target=mast output, shouldn't it?
14:55 bloatable6 joined #moarvm
14:55 coverable6 joined #moarvm
14:55 nativecallable6 joined #moarvm
14:55 releasable6 joined #moarvm
14:55 quotable6 joined #moarvm
14:55 evalable6 joined #moarvm
14:55 bisectable6 joined #moarvm
14:55 committable6 joined #moarvm
14:55 greppable6 joined #moarvm
14:56 unicodable6 joined #moarvm
14:56 benchable6 joined #moarvm
14:56 statisfiable6 joined #moarvm
14:56 squashable6 joined #moarvm
15:21 jnthn nine: Note that extend_i32 is one of the earliest ops, and often getting those run spuriously turns out to be broken management of cur_op (e.g. mis-incrementing it)
15:21 jnthn (So that a regsiter number gets interpreted as as op)
15:25 nine jnthn: oh, that would make sense, given that I pass the result type object as first child of the nativecallinvokejit op, but exclude it from being treated like a normal argument.
15:34 jnthn Turns out the thing going on on my street today is actually some yearly street party thing, though there was still nice wine. :)
15:35 jnthn Found the grilled sausages too. :)
15:50 MasterDuke joined #moarvm
15:53 MasterDuke Any idea why 'my int @a; @a.push(12321) for ^10; say +@a' would show that @a does not have _USING_FSA set in vmarray's push()?
15:55 MasterDuke Given that I'm working off of my branch that uses the FSA in vmarray of course
16:01 zakharyas joined #moarvm
16:08 nine jnthn: LOL it's neither. extend_i32 simply ends up in call_op. You'll never guess why :)
16:08 nine jnthn: unsigned char call_op  = c->op == 0 ? MVM_OP_invoke_v : MVM_OP_ncinvoke_v;
16:08 nine timotimo: ^^^
16:08 MasterDuke joined #moarvm
16:08 nine MVM_OP_ncinvoke_v is 782
16:10 Skarsnik unsigned char x)
16:10 Skarsnik maybe have a type for this? like MVM_OPId
16:10 nine I guess back in 2012 op numbers beyond 256 were unimaginable :)
16:10 timotimo oh, whoops :)
16:11 nine 256 ops ought to be enough for anybody ;)
16:42 leont joined #moarvm
16:42 domidumont joined #moarvm
17:28 Skarsnik_ joined #moarvm
17:33 domidumont joined #moarvm
17:47 zakharyas joined #moarvm
18:02 AlexDaniel FWIW RT #132083 is kinda blocking, so more eyeballs welcome
18:02 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=132083
18:05 dogbert2 joined #moarvm
18:13 leont joined #moarvm
18:39 leedo joined #moarvm
19:06 zakharyas joined #moarvm
19:10 zakharyas joined #moarvm
19:34 zakharyas1 joined #moarvm
19:35 zakharyas joined #moarvm
20:31 leont joined #moarvm
20:42 domidumont joined #moarvm
20:50 jnthn nine: I guess "there won't be any more invoke ops than these" held up as an assumption for quite a lot of years. ;-)
20:52 nine Well in 2012 I was still years away from joining rakudo :)
20:52 jnthn m: my $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say $value == -2147483648;
20:52 camelia rakudo-moar 24d6c6: OUTPUT: «-2147483648␤-2147483648␤False␤»
20:52 jnthn m: my int $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say $value == -2147483648;
20:52 camelia rakudo-moar 24d6c6: OUTPUT: «-2147483648␤-2147483648␤False␤»
20:53 jnthn m: use nqp; my int $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say nqp::eq_i($value, -2147483648)
20:53 camelia rakudo-moar 24d6c6: OUTPUT: «===SORRY!===␤No registered operation handler for 'eq_i'␤»
20:53 jnthn m: use nqp; my int $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say nqp::iseq_i($value, -2147483648)
20:53 camelia rakudo-moar 24d6c6: OUTPUT: «-2147483648␤-2147483648␤1␤»
20:53 jnthn m: use nqp; my int $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say nqp::iseq_I($value, -2147483648)
20:53 camelia rakudo-moar 24d6c6: OUTPUT: «-2147483648␤This representation (NativeRef) cannot unbox to other types (for type IntLexRef)␤  in block <unit> at <tmp> line 1␤␤-2147483648␤»
20:53 jnthn m: use nqp; my $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say nqp::iseq_I($value, -2147483648)
20:53 camelia rakudo-moar 24d6c6: OUTPUT: «-2147483648␤P6opaque: get_boxed_ref could not unbox for the representation '20' of type Scalar␤  in block <unit> at <tmp> line 1␤␤-2147483648␤»
20:54 jnthn m: use nqp; my $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say nqp::iseq_I(nqp::decont($value), -2147483648)
20:54 camelia rakudo-moar 24d6c6: OUTPUT: «-2147483648␤-2147483648␤0␤»
20:54 jnthn m: use nqp; my $value = -0x7FFFFFFF - 1; say $value; say -2147483648; say nqp::iseq_I(nqp::decont($value), nqp::decont($value))
20:54 camelia rakudo-moar 24d6c6: OUTPUT: «-2147483648␤-2147483648␤1␤»
20:55 timotimo we implement iseq_I as cmp_I and result check
20:55 jnthn m: use nqp; say nqp::iseq_I(-2147483648, -0x7FFFFFFF - 1)
20:55 camelia rakudo-moar 24d6c6: OUTPUT: «0␤»
20:55 timotimo might be interesting to see what ti thinks
20:55 jnthn m: use nqp; say nqp::iseq_i(-2147483648, -0x7FFFFFFF - 1)
20:55 camelia rakudo-moar 24d6c6: OUTPUT: «1␤»
20:55 jnthn m: use nqp; say nqp::cmp_I(-2147483648, -0x7FFFFFFF - 1)
20:55 camelia rakudo-moar 24d6c6: OUTPUT: «1␤»
20:56 jnthn m: say (-2147483648).base(16)
20:56 camelia rakudo-moar 24d6c6: OUTPUT: «-80000000␤»
20:56 jnthn m: use nqp; say nqp::cmp_I(-0x80000000, -0x7FFFFFFF - 1)
20:56 camelia rakudo-moar 24d6c6: OUTPUT: «1␤»
20:56 jnthn m: use nqp; say nqp::eq_I(-0x80000000, -0x7FFFFFFF - 1)
20:56 camelia rakudo-moar 24d6c6: OUTPUT: «===SORRY!===␤No registered operation handler for 'eq_I'␤»
20:56 jnthn m: use nqp; say nqp::iseq_I(-0x80000000, -0x7FFFFFFF - 1)
20:56 camelia rakudo-moar 24d6c6: OUTPUT: «0␤»
20:57 jnthn m: use nqp; say nqp::iseq_I(-0x80000000, 0x80000000)
20:57 camelia rakudo-moar 24d6c6: OUTPUT: «0␤»
20:57 jnthn m: use nqp; say nqp::iseq_I(-0x80000000, -0x80000000)
20:57 camelia rakudo-moar 24d6c6: OUTPUT: «1␤»
20:57 jnthn Thing is, I'd expect that substraction to constant-fold...
20:58 timotimo it should, yeah
20:58 timotimo fwiw, i saw the deserialization read a smallbigint of value 2147483648
20:58 timotimo i don't know why it's positive rather than negative, though
21:01 timotimo huh
21:01 timotimo sign extension going berserk?
21:01 timotimo -FFFFFFFF80000000
21:01 timotimo is what i get when i say its .base(16)
21:02 japhb It's wierd to display a base 16 number with the high bit set *and* a negative sign.
21:03 timotimo this one shouldn't have any of the higher bits at all
21:19 leont joined #moarvm
21:25 timotimo forcing the bigint to do the comparison with breaks
21:26 timotimo hm, what was the original test ...
21:27 timotimo m: use nqp; say nqp::iseq_I(-0x80000000, -0x7FFFFFFF - 1)  -  i got this to give 1
21:27 camelia rakudo-moar 24d6c6: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> eq_I(-0x80000000, -0x7FFFFFFF - 1)  -  i⏏ got this to give 1␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        s…»
21:27 timotimo whoops :)
21:29 timotimo found another bit
21:30 Geth ¦ MoarVM: 9c5fed708f | (Timo Paulssen)++ | src/math/bigintops.c
21:30 Geth ¦ MoarVM: store smallint value in 64bit if we negate them later
21:30 Geth ¦ MoarVM:
21:30 Geth ¦ MoarVM: as we might otherwise overflow.
21:30 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9c5fed708f
21:59 Skarsnik_ joined #moarvm
22:27 MasterDuke joined #moarvm
22:32 MasterDuke what is this telling me? https://gist.github.com/MasterDuke17/8e42fcfe428924efed80de98f9847f10
22:33 timotimo i'd say while trying to allocate malloc stumbled upon an entry in the heap that doesn't make sense
22:33 timotimo i.e. something wrote garbage onto parts of its management data?
22:35 MasterDuke fwiw, that code causes that failure almost always with moar master HEAD, but takes many many tries to get the same failure with my unified + fsa branch (which now also passes a rakudo spectest)
22:36 timotimo that's promising alreadý
22:36 MasterDuke heh, that's a very fancy 'y'
22:37 timotimo oops?
22:37 timotimo not sure how i reached the combiner for that
22:38 MasterDuke btw, this is where my branch stands now, if you feel inspired to look it over. https://github.com/MasterDuke17/MoarVM/tree/use_single_storage_for_array_ssize_and_slots
22:39 MasterDuke but afk for a bit
22:41 timotimo i bet ubsan would have been able to figure this out
22:41 timotimo the 32bit negating thingie
23:22 jnthn timotimo++ # fixing the bug
23:22 jnthn I'm too tired to cut the release right now, alas
23:23 jnthn .tell AlexDaniel if there are no remaining blockers for release, .tell me and I'll cut the release tomorrow
23:23 yoleaux jnthn: I'll pass your message to AlexDaniel.
23:23 AlexDaniel okay, thanks
23:23 yoleaux 23:23Z <jnthn> AlexDaniel: if there are no remaining blockers for release, .tell me and I'll cut the release tomorrow
23:23 jnthn Oh, you're still about :)
23:24 AlexDaniel I'm looking at RT #132030 right now
23:24 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=132030
23:24 AlexDaniel it's kinda alright, but I'm seeing some kind of weirdness here
23:24 AlexDaniel possibly in Test.pm, maybe somewhere else. Not sure yet
23:25 timotimo it's obscene how much faster python is at calculating permutations
23:25 AlexDaniel timotimo: how much?
23:27 timotimo i wasn't patient enough to let it terminate
23:28 timotimo oh, it only takes 35 seconds
23:29 timotimo python takes 2.5 seconds
23:29 AlexDaniel timotimo: what if it's a regression? What about throwing some code into benchable?
23:30 timotimo yeah, let's ask benchable
23:30 AlexDaniel not the one which takes 35 seconds, but something smaller
23:30 timotimo of course
23:30 timotimo benchable6: releases for permutations(10) { }
23:30 benchable6 timotimo, starting to benchmark the 22 given commits
23:31 AlexDaniel honestly I got very lazy with these bots
23:31 timotimo not sure what you mean?
23:31 AlexDaniel my brain doesn't want to think before I get some results from them
23:32 AlexDaniel “is this result right or wrong?” – well who cares, let's first see if it was different in the past…
23:32 AlexDaniel and if it was, what commit changed it and what's the commit message there…
23:33 timotimo right
23:33 timotimo when do we get a web interface where the whateverables show what they're currently doing, exactly :)
23:35 AlexDaniel ^ see, it's crunching something
23:35 timotimo hmpf
23:35 benchable6 joined #moarvm
23:35 AlexDaniel benchable6: I see you were smart enough to reply when you were offline
23:35 benchable6 AlexDaniel, ¦I: «Cannot find this revision (did you mean “all”?)»
23:35 AlexDaniel benchable6: releases for permutations(8) { }
23:35 benchable6 AlexDaniel, starting to benchmark the 22 given commits
23:36 AlexDaniel benchable really needs some love
23:36 MasterDuke jnthn: sim_stack_push is in 2nd spot on a perf record of stage parse (8.4%). any quick wins possible there?
23:37 benchable6 AlexDaniel, benchmarked the given commits, now zooming in on performance differences
23:37 timotimo that's part of spesh
23:38 timotimo since spesh is running off in its own thread, it's not as performance critical
23:38 MasterDuke oh right, i guess i need to find some one to just record the one thread
23:38 timotimo is benchable okay?
23:38 MasterDuke s/one/way
23:38 AlexDaniel timotimo: the first step would be self-served gists… it actually takes a few seconds to upload stuff
23:39 timotimo oh, huh.
23:39 AlexDaniel timotimo: in fact, I think right now it's simply uploading the graph
23:39 AlexDaniel oh… maybe not
23:39 benchable6 AlexDaniel, «hit the total time limit of 240 seconds»
23:39 AlexDaniel :|
23:40 AlexDaniel benchable6: 2015.12,HEAD for permutations(8) { }
23:40 benchable6 AlexDaniel, starting to benchmark the 2 given commits
23:40 benchable6 AlexDaniel, benchmarked the given commits, now zooming in on performance differences
23:42 benchable6 AlexDaniel, https://gist.github.com/ed59308b3ee4028154d97f95cbde1bf1
23:42 AlexDaniel hah :D
23:43 timotimo yeah, we're the fastest we've ever been
23:43 timotimo plus/minus a bit of noise
23:43 AlexDaniel \o/ yaaay
23:43 AlexDaniel ;)
23:52 samcv what is it testing though?
23:52 samcv just for permutations?
23:53 timotimo hopefully the for loop itself isn't a very big overhead
23:53 AlexDaniel benchable6: 2015.12,HEAD for permutations(9) { } # because why not
23:53 benchable6 AlexDaniel, starting to benchmark the 2 given commits
23:54 benchable6 AlexDaniel, benchmarked the given commits, now zooming in on performance differences
23:55 AlexDaniel .seen azawawi
23:55 yoleaux I saw azawawi 27 May 2017 12:50Z in #perl6: <azawawi> jnthn: in Graphics::PLplot im aiming on providing Raw (native) and cooked with sugar API :)
23:58 benchable6 AlexDaniel, «hit the total time limit of 240 seconds»
23:58 AlexDaniel :(
23:58 timotimo :|
23:58 timotimo c: 2015.12,HEAD my $iter = Rakudo::Iterator.Permutations(8); while $iter.pull-one !=:= IterationEnd { }
23:58 committable6 timotimo, https://gist.github.com/3dac4b3fc9175999bf33100c8fef4aed
23:58 timotimo ah, yes
23:59 timotimo c: 2016.12,HEAD my $iter = Rakudo::Iterator.Permutations(8, 1); while $iter.pull-one !=:= IterationEnd { }
23:59 committable6 timotimo, ¦2016.12: «Could not find symbol '&Iterator'␤  in block <unit> at /tmp/IA0e2t8il2 line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/IA0e2t8il2 line 1␤ «exit code = 1»» ¦HEAD(488ca6f): «»
23:59 timotimo i wonder when it started living in that file
23:59 timotimo c: 2017.04,HEAD my $iter = Rakudo::Iterator.Permutations(8, 1); while $iter.pull-one !=:= IterationEnd { }
23:59 committable6 timotimo, ¦2017.04,HEAD(488ca6f): «»
23:59 timotimo c: 2017.02,HEAD my $iter = Rakudo::Iterator.Permutations(8, 1); while $iter.pull-one !=:= IterationEnd { }
23:59 committable6 timotimo, ¦2017.02,HEAD(488ca6f): «»
23:59 timotimo c: 2017.01,HEAD my $iter = Rakudo::Iterator.Permutations(8, 1); while $iter.pull-one !=:= IterationEnd { }
23:59 committable6 timotimo, ¦2017.01,HEAD(488ca6f): «»
23:59 timotimo benchable6: 2017.01,HEAD my $iter = Rakudo::Iterator.Permutations(8, 1); while $iter.pull-one !=:= IterationEnd { }
23:59 benchable6 timotimo, starting to benchmark the 2 given commits
23:59 benchable6 timotimo, benchmarked the given commits, now zooming in on performance differences
23:59 benchable6 timotimo, ¦2017.01: «0.2186» ¦HEAD: «0.1974»

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