Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-09-19

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

All times shown according to UTC.

Time Nick Message
00:05 samcv not sure how to include /usr/local/lib in the place the linker looks for the libs
00:05 samcv in our configure files
00:14 ugexe https://github.com/MoarVM/MoarVM/blob/master/build/setup.pm#L462 ?
00:19 samcv ugexe, that doesn't specify a directory though
00:19 samcv idk i need to include /usr/local/lib somehow which is where it puts libffi.so
00:20 ugexe yeah but you can add the name there
00:20 ugexe OS_MINGW32 has libdir => '@bindir@', for instance
00:24 samcv that just adds -l/usr/local/lib
00:25 samcv which isn't a library it's a directory
00:26 ilmari[m] Yes, but after that -lffi will find /usr/local/lib/libffi.so
00:27 geekosaur don't you want -L there not -l ?
00:27 samcv yes i do geekosaur
00:27 samcv that's my point
00:31 ugexe there is ldrpath, ldmiscflags, and others
00:32 ugexe ldrpath => '-L"/@libdir@"',
00:33 samcv hmm that may not be used in probe.pm
00:33 ugexe yeah probably not
00:45 samcv doesn't seem to be responding to CFLAGS env variable either
00:46 samcv LDFLAGS seemed to work
00:46 samcv though it can't find ffi.h
00:47 samcv it's in /usr/local/include
00:48 samcv CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" makes it work
00:49 samcv no clue how to fix it for good though
00:50 samcv make test for rakudo now passes
01:10 MasterDuke would it make sense to use the FSA for a bunch of the string operations?
01:11 MasterDuke a lot of them have what look like short lived allocations
01:18 AlexDaniel samcv: thanks!
01:18 AlexDaniel samcv: … what about https://github.com/perl6/nqp/issues/372 ? :)
01:18 samcv wait what did i do AlexDaniel ?
01:19 AlexDaniel resolved https://github.com/MoarVM/MoarVM/issues/693 :)
01:19 samcv ah the appveyor
01:19 samcv maybe will try that tomorrow
01:28 AlexDaniel samcv: thanks
01:32 samcv will need to be nqp admin to do it though
01:32 travis-ci joined #moarvm
01:32 travis-ci MoarVM build failed. Jonathan Worthington 'Stash native thread ID after GC unblock
01:32 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/276930928 https://github.com/MoarVM/MoarVM/compare/ece0c5f7c4b1...1afedf518854
01:32 travis-ci left #moarvm
01:35 Zoffix samcv: I added you as admin to https://github.com/perl6/nqp , if that's what you meant
01:36 samcv woot
01:36 samcv yeah i will add it then
01:36 zakharyas joined #moarvm
01:38 Zoffix \o/
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
04:29 travis-ci joined #moarvm
04:29 travis-ci MoarVM build failed. Jonathan Worthington 'Make native callback thread finding more robust
04:29 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/276934185 https://github.com/MoarVM/MoarVM/compare/1afedf518854...1959f2ff2ebf
04:29 travis-ci left #moarvm
04:37 Ven`` joined #moarvm
04:55 Geth ¦ MoarVM: 3dea7dff4b | (Samantha McVey)++ | .appveyor.yml
04:55 Geth ¦ MoarVM: Turn build section of Appveyor build off
04:55 Geth ¦ MoarVM:
04:55 Geth ¦ MoarVM: Hopefully avoid "Specify which project or solution file to use
04:55 Geth ¦ MoarVM: because the folder contains more than one project or solution file."
04:55 Geth ¦ MoarVM: error.
04:55 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3dea7dff4b
05:05 samcv is it just me or have travis builds been slowing down
05:05 samcv like a constant slowing down over since i started working on perl6 a year ago
05:53 timotimo i just realized that resuming continuations in other threads will be interesting from the instrumented profiler's perspective
05:53 timotimo since it has one full call graph per thread
05:53 timotimo though conceptually the thread pool that shuffles tasks around between many threads can easily make the distinction between individual threads useless
05:54 timotimo i'll probably have to come up with a good middle-ground between just merging call graphs from every thread into one big blob of data and having them all separate from each other
06:08 committable6 joined #moarvm
06:14 samcv interesting
06:38 travis-ci joined #moarvm
06:38 travis-ci MoarVM build passed. Jonathan Worthington 'Factor out callback thread finding
06:38 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/276940092 https://github.com/MoarVM/MoarVM/compare/1959f2ff2ebf...eeb664ea65e9
06:38 travis-ci left #moarvm
06:40 domidumont joined #moarvm
06:45 leont joined #moarvm
07:11 timotimo https://gist.github.com/timo/080a2e733ad4fbc9d929fe6a5ad051a1  -  the "summary all" output btw
07:16 brrt joined #moarvm
07:19 ilmari[m] joined #moarvm
07:25 Ven`` joined #moarvm
07:29 nine For those who are disappointed by the mere 7 % speedup of csv-ip5xs.pl by JITing native calls, I did a micro benchmark of AssortedIntArgs from t/04-nativecall/02-simple-args.t
07:29 nine For this call I see a 2.5x speedup by JIT compiling :)
07:37 samcv :)
07:42 nine Speedup scales with number of arguments. A single argument gives ~ 2.2x speedup. So it's a pity that p5_call_method with its 9 arguments is not yet JITed. But also means there's lots to be gained still :)
07:44 AelxDnaiel joined #moarvm
07:55 brrt good hi!
07:55 brrt ohai nine
07:55 brrt very cool work!
08:18 krunen joined #moarvm
08:18 krunen joined #moarvm
08:22 krunen joined #moarvm
08:23 krunen joined #moarvm
08:26 robertle joined #moarvm
08:33 domidumont joined #moarvm
08:48 zakharyas joined #moarvm
09:00 jnthn morning o/
09:05 nwc10 correct!
09:05 nine jnthn: have you seen the numbers I posted earlier? May be worth having a look at IO::Socket::Async::SSL perf after all :)
09:10 travis-ci joined #moarvm
09:10 travis-ci MoarVM build passed. Samantha McVey 'Try and enable and build matrix with Appveyor'
09:10 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/277066715 https://github.com/MoarVM/MoarVM/compare/eeb664ea65e9...43d6af05db7a
09:10 travis-ci left #moarvm
09:11 jnthn nine: Yeah, that passes a number of args, so :)
09:11 jnthn Will be interesting to try it out :)
09:12 samcv wow travis is slowww
09:12 jnthn nine: Is it ready for review?
09:39 nine jnthn: think so. I do wonder if I should try to squash the commits. There's a lot of back and forth now in that branch.
09:43 nine jnthn: I'm also a bit unsure about the ops. nativecallinvokejit may want to be renamed to ncinvoke to be closer to the ncinvoke_* variants. Of the latter currently only the ncinvoke_o is really used. The rest may become useful for pushing boxing of results into the HLL code.
09:48 zakharyas joined #moarvm
09:56 jnthn What happens if we don't have the JI
09:57 jnthn T available?
09:57 jnthn I'm guessing the ops fall back to non-JIT?
09:57 jnthn nativeinvoke_o etc may be nice
09:58 jnthn The c is for call, and having call and invoke in the name is a bit funny :)
10:00 nine If the JIT is disabled, we fall back to good old nativecallinvoke. Same as if we don't support a particular argument type.
10:00 jnthn Alright
10:15 benchable6 joined #moarvm
10:15 unicodable6 joined #moarvm
10:48 krunen joined #moarvm
10:55 krunen joined #moarvm
11:38 timo1 joined #moarvm
11:53 travis-ci joined #moarvm
11:53 travis-ci MoarVM build passed. Samantha McVey 'Trigger Appveyor build'
11:53 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/277068958 https://github.com/MoarVM/MoarVM/compare/43d6af05db7a...2824dcf8fc01
11:53 travis-ci left #moarvm
13:17 Geth ¦ MoarVM: 86407034d0 | (Timo Paulssen)++ (committed by Jonathan Worthington) | 3 files
13:17 Geth ¦ MoarVM: Protect parameterization additions with a mutex
13:17 Geth ¦ MoarVM:
13:17 Geth ¦ MoarVM: Partially addresses #554
13:17 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/86407034d0
13:21 nwc10 jnthn++ # bloggage
13:21 nwc10 (I'm behind, it seems)
13:22 jnthn I'm even more behind with bloggage...
13:26 brrt aren't we all :-P
13:30 timotimo i don't have my own blog
13:30 timotimo well, i do have, like, a blog, or something
13:30 timotimo on my website .. which i haven't touched since 2012
13:30 Zoffix write on blogs.perl.org :)
13:30 timotimo not sure i like the place much
13:32 Zoffix write on rakudo.party :)
13:33 timotimo hmm, not sure how to make content that fits well with that page
13:33 timotimo less page, more 'site i guess
13:42 Geth ¦ MoarVM: 3a2990d5e8 | (Jonathan Worthington)++ | src/6model/parametric.c
13:42 Geth ¦ MoarVM: Complete fix for for parametric type races
13:42 Geth ¦ MoarVM:
13:42 Geth ¦ MoarVM: Make sure we really do intern the parameterizations, and do a
13:42 Geth ¦ MoarVM: defensive copy so readers are safe. Should fully fix the issues in
13:42 Geth ¦ MoarVM: issue #554.
13:42 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3a2990d5e8
13:46 jnthn Apparently there was a race in my typing of that commit message..
14:37 dogbert17 sometimes test 11 t/spec/S17-supply/supplier-preserving.t fails with the following message:
14:37 dogbert17 # Failed test 'Close called as expected'  # at t/spec/S17-supply/supplier-preserving.t line 32 # expected: 'xxxxxxxxxx' (len 10) #      got: 'xxxxxxxxx' (len 9)
14:37 dogbert17 is this a known failure ?
14:39 jnthn Yeah, though I didn't figure out what's going on yet
14:40 dogbert17 it seems to appear more often on a loaded system if that's any clue
14:43 jnthn Pretty much all concurrencly-involving bugs do, alas
14:43 jnthn *concurrency
14:45 dogbert17 tried to trip both ASAN and valgrind, but alas, no success
14:48 dogbert17 found a very old RT #123461 which might be relevant
14:48 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=123461
14:49 jnthn btw, the occasinal connection refused error you mentioned a bit ago in a new test in await-nonblocking.t is fixed in one of my Rakudo branches
14:49 committable6 joined #moarvm
14:49 dogbert17 jnthn++
14:50 releasable6 joined #moarvm
14:50 bloatable6 joined #moarvm
14:50 quotable6 joined #moarvm
14:50 squashable6 joined #moarvm
14:51 statisfiable6 joined #moarvm
14:51 dogbert17 the send method has changed a bit since Moritz reported that race condition, so perhaps the issue is no longer relevant, https://github.com/rakudo/rakudo/blob/nom/src/core/Channel.pm#L42
14:54 jnthn May still apply, but don't think it's the issue here
14:54 jnthn Looking at another issue at the moemnt, so will look at that more later
15:05 timo joined #moarvm
15:06 geekosaur joined #moarvm
15:07 brrt joined #moarvm
15:14 ugexe i wonder if libuv update got windows any additional spectest passes. the changelog has a fair bit of windows stuff
15:14 ugexe er wrong buffer :)
15:27 brrt timotimo: could we use the telemetry logger for getting bytecode sizes?
15:41 geekosaur joined #moarvm
15:48 timotimo sure thing
15:56 Geth ¦ MoarVM/use_attribute_st_in_bind_attribute: 3b4b032984 | (Timo Paulssen)++ | src/6model/reprs/P6opaque.c
15:56 Geth ¦ MoarVM/use_attribute_st_in_bind_attribute: use attribute/value st for copy_to, not outer obj st
15:56 Geth ¦ MoarVM/use_attribute_st_in_bind_attribute:
15:56 Geth ¦ MoarVM/use_attribute_st_in_bind_attribute: this caused a segfault when trying to bind a p6bigint
15:56 Geth ¦ MoarVM/use_attribute_st_in_bind_attribute: to a matching attribute in a p6opaque.
15:56 Geth ¦ MoarVM/use_attribute_st_in_bind_attribute: review: https://github.com/MoarVM/MoarVM/commit/3b4b032984
15:57 timotimo brrt, i don't think i have an api for "just put a bit of data into the datastream", so you'll probably have to start and end an interval around the jitting process and attach the information with the interval_id
16:03 geekosaur joined #moarvm
16:30 timotimo oh, i got distracted. nw i'm running the spec test.
16:32 Zoffix :)
16:38 timotimo had a few failures, but those were probably from too-old rakudo
16:54 timotimo only supplier-preserving fails
16:55 timotimo so if someone wants, they can merge this
16:56 Zoffix Can you merge it? :)
16:56 Zoffix I'll do the bumps and write the tests.
16:57 timotimo sure
16:57 Geth ¦ MoarVM: 3b4b032984 | (Timo Paulssen)++ | src/6model/reprs/P6opaque.c
16:57 Geth ¦ MoarVM: use attribute/value st for copy_to, not outer obj st
16:57 Geth ¦ MoarVM:
16:57 Geth ¦ MoarVM: this caused a segfault when trying to bind a p6bigint
16:57 Geth ¦ MoarVM: to a matching attribute in a p6opaque.
16:57 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3b4b032984
16:57 Zoffix timotimo++
17:00 timotimo that was a good catch, Zoffix
17:34 Ven`` joined #moarvm
17:39 domidumont joined #moarvm
18:18 Geth ¦ MoarVM: usev6++ created pull request #695: Fix FreeBSD build
18:18 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/695
18:46 * ilmari discovers the .paramet.{ric,erized} union. cute
18:52 Geth ¦ MoarVM: 5bdb778446 | (Christian Bartolomäus)++ (committed using GitHub Web editor) | build/Makefile.in
18:52 Geth ¦ MoarVM: Fix FreeBSD build
18:52 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5bdb778446
18:52 Geth ¦ MoarVM: 3a2eab52f7 | (Jimmy Zhuo)++ (committed using GitHub Web editor) | build/Makefile.in
18:52 Geth ¦ MoarVM: Merge pull request #695 from usev6/patch-1
18:52 Geth ¦ MoarVM:
18:52 Geth ¦ MoarVM: Fix FreeBSD build
18:52 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3a2eab52f7
18:55 Geth ¦ MoarVM/jit_nativecall: 16 commits pushed by (Stefan Seifert)++
18:55 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/compare/0d162dbf1c...91ad7464d3
18:56 nine jnthn: ops are renamed. Open question is whether we want the twisted commit history or if I should just squash them into 2 commits. Excluding generated code the diff is just: 16 files changed, 329 insertions(+), 25 deletions(-)
19:09 jnthn nine: I guess the 2 squished would be easier to review; otherwise I'll just review the whole diff at once between master and it :)
19:15 nine jnthn: ok, I'll squash. The 2 commits will be implementation of the nativeinvoke_o op and then JITing that call, too.
19:15 jnthn Sounds good :)
19:28 brrt joined #moarvm
19:28 brrt how would that work?
19:41 Geth ¦ MoarVM/jit_nativecall: 2d21965361 | (Stefan Seifert)++ | 19 files
19:41 Geth ¦ MoarVM/jit_nativecall: Compile code for calling native functions.
19:41 Geth ¦ MoarVM/jit_nativecall:
19:41 Geth ¦ MoarVM/jit_nativecall: MVM_nativecall_build builds a JIT graph manually and compiles it. The
19:41 Geth ¦ MoarVM/jit_nativecall: result is attached to the MVMNativeCallBody. For now the new nativeinvoke_*
19:41 Geth ¦ MoarVM/jit_nativecall: ops (mirroring invoke_*) will enter that code. Ideally we will replace the
19:41 Geth ¦ MoarVM/jit_nativecall: whole frame containing the nativeinvoke by JIT compiled code.
19:41 Geth ¦ MoarVM/jit_nativecall:
19:42 Geth ¦ MoarVM/jit_nativecall: <…commit message has 14 more lines…>
19:42 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/2d21965361
19:42 Geth ¦ MoarVM/jit_nativecall: ecdba29f9f | (Stefan Seifert)++ | 5 files
19:42 Geth ¦ MoarVM/jit_nativecall: JIT compile JITed native calls
19:42 Geth ¦ MoarVM/jit_nativecall:
19:42 Geth ¦ MoarVM/jit_nativecall: While we already generated machine code for performing the actual call to the
19:42 Geth ¦ MoarVM/jit_nativecall: C function, we perform all deconting and unboxing of arguments in high level
19:42 Geth ¦ MoarVM/jit_nativecall: code. This is so that spesh can optimize this code to what's actually
19:42 Geth ¦ MoarVM/jit_nativecall: necessary for a given call site.
19:42 Geth ¦ MoarVM/jit_nativecall:
19:42 Geth ¦ MoarVM/jit_nativecall: <…commit message has 14 more lines…>
19:42 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/ecdba29f9f
19:42 samcv jnthn, so i'm ready to start working on my final grant report. any tips
19:42 samcv like what do i need to put in it. just overview of everything i did? or what
19:42 Geth ¦ MoarVM/jit_nativecall: af5bcee85f | (Stefan Seifert)++ | 19 files
19:42 Geth ¦ MoarVM/jit_nativecall: Compile code for calling native functions.
19:42 Geth ¦ MoarVM/jit_nativecall:
19:42 Geth ¦ MoarVM/jit_nativecall: MVM_nativecall_build builds a JIT graph manually and compiles it. The
19:42 Geth ¦ MoarVM/jit_nativecall: result is attached to the MVMNativeCallBody. For now the new nativeinvoke_*
19:42 Geth ¦ MoarVM/jit_nativecall: ops (mirroring invoke_*) will enter that code. Ideally we will replace the
19:42 Geth ¦ MoarVM/jit_nativecall: whole frame containing the nativeinvoke by JIT compiled code.
19:43 Geth ¦ MoarVM/jit_nativecall:
19:43 Geth ¦ MoarVM/jit_nativecall: <…commit message has 14 more lines…>
19:43 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/af5bcee85f
19:43 Geth ¦ MoarVM/jit_nativecall: 1edff49ad8 | (Stefan Seifert)++ | 5 files
19:43 Geth ¦ MoarVM/jit_nativecall: JIT compile JITed native calls
19:43 nine Sorry for the noise. Just rebased again on the current master
19:43 Geth ¦ MoarVM/jit_nativecall:
19:43 Geth ¦ MoarVM/jit_nativecall: While we already generated machine code for performing the actual call to the
19:43 Geth ¦ MoarVM/jit_nativecall: C function, we perform all deconting and unboxing of arguments in high level
19:43 Geth ¦ MoarVM/jit_nativecall: code. This is so that spesh can optimize this code to what's actually
19:43 Geth ¦ MoarVM/jit_nativecall: necessary for a given call site.
19:43 Geth ¦ MoarVM/jit_nativecall:
19:43 Geth ¦ MoarVM/jit_nativecall: <…commit message has 14 more lines…>
19:43 Geth ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/1edff49ad8
19:45 samcv no problem nine
19:45 brrt can i still say i think this work is really cool
19:45 brrt nine++
19:45 samcv our most important platforms are MacOS, Linux, FreeBSD, and what is most important after that
19:46 nine thanks brrt :)
19:46 samcv though alpine probably needs to be considered separate. maybe we can have a build in our matrix do musl builds?
19:47 samcv looks like there's a musl-gcc wrapper and maybe we can use that to be able to test musl
19:55 Geth ¦ MoarVM: patzim++ created pull request #696: Probe for gcc -Werror=* support
19:55 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/696
20:02 jnthn samcv: I don't tend to make them utterly exhaustive, because then it'd be a terribly boring read. I'd reference all the blog posts you did, which people can look to for details, and then focus the report on the improvements that resulted from the grant.
20:02 brrt samcv: windows?
20:02 samcv ok cool
20:02 samcv yeah windows
20:03 samcv sorry i meant to say that. what about after that
20:03 samcv openbsd?
20:03 brrt ehm, are there any other platforms left :-P
20:03 jnthn samcv: If it makes sense, making it easy to cross-reference the final report back to the grant application so it's easy to see that the things in the application were completed is also nice :)
20:03 brrt not solaris anyway
20:03 samcv did we used to support that?
20:04 samcv would be nice to have various vm's and test before each release
20:04 samcv maybe a week or so before we release
20:05 timotimo still no haiku support in libuv, right? :|
20:06 jnthn IMO, the 3 most important platforms are Linux, OSX, and Windows, because by that point we've covered close to 99% of what people will use. The major BSDs come after that. Beyond that I think more important is not OS, but having testing on some big endian platform.
20:08 samcv what is big endian?
20:08 samcv arm?
20:09 jnthn I think arm can be, depending on configuration
20:10 jnthn PPC is
20:10 jnthn bbiab, gotta do my homework :
20:10 jnthn :)
20:16 timotimo hm, i'll probably have to do something about endianness in the heap profiler output
20:16 timotimo currently i just fwrite the things, that's clearly not safe
20:24 lizmat timotimo: why?  as long as the endianness is available as meta information?
20:24 timotimo then i'll have to change the heap analyzer, yeah
20:25 timotimo and it'd be helpful to write a piece of data that makes the endianness obvious
20:25 timotimo also, i'll never support middle endian :
20:25 timotimo :P
20:26 geekosaur we need to ship timotimo a pdp11? :p
20:27 timotimo there is no space in my home
20:29 moritz %*ENV<HOME> ~~ s/^^/ /; # how to create space in your home :-)
20:48 MasterDuke jnthn: thanks for merging the fsa realloc PR. have you looked at the next one?
20:54 MasterDuke speaking of the fsa...
20:55 MasterDuke jnthn, timotimo, etc: would it make sense to use the FSA for a bunch of the string operations?
20:55 timotimo not sure, could be. we definitely keep the size around anyway
20:57 MasterDuke what about for short-lived allocations within a function?
20:58 timotimo within a function, eh?
20:58 timotimo can we somehow figure out that it can fit onto the stack instead?
20:59 timotimo at least the memory blob for the string's contents. not the object itself, because the GC has to manage that
20:59 timotimo hm. that seems like a terrible idea, come to think of it.
21:00 MasterDuke don't think so for the few functions i looked at. i think join has one or two
21:00 timotimo it could be a good idea to try the FSA here and see what performance characteristics it offers
21:04 MasterDuke what's a good way to measure?
21:04 timotimo good question
21:05 timotimo the whole spec test suite is one way, but i expect it to be at least a bit noisy
21:06 MasterDuke you mean time to run the spectest?
21:07 timotimo yeah
21:07 timotimo probably a bad idea, right?
21:11 MasterDuke well, i bet it'll be hard to see anything less than 10%
21:14 timotimo yeah :(
21:35 * timotimo has a little piece of fannkuch benchmark
21:36 timotimo hm, i might be able to get this into benchable
21:37 timotimo my (@l,@r); sub ri(@a,@b){@b.unshift(@a.shift) while @a.elems}; for (1..8).permutations { @l=@$_; repeat { @r=@l.splice(0,@l[0]); ri(@r, @l) } while @l[0] != 1 }
21:37 timotimo m: my (@l,@r); sub ri(@a,@b){@b.unshift(@a.shift) while @a.elems}; for (1..8).permutations { @l=@$_; repeat { @r=@l.splice(0,@l[0]); ri(@r, @l) } while @l[0] != 1 }
21:38 camelia rakudo-moar b66f5e: ( no output )
21:38 timotimo bench: releases my (@l,@r); sub ri(@a,@b){@b.unshift(@a.shift) while @a.elems}; for (1..8).permutations { @l=@$_; repeat { @r=@l.splice(0,@l[0]); ri(@r, @l) } while @l[0] != 1 }
21:38 benchable6 timotimo, starting to benchmark the 23 given commits
21:42 benchable6 timotimo, «hit the total time limit of 240 seconds»
21:43 MasterDuke timotimo: maybe try AlexDaniel's trick of just giving it 2015.12,HEAD
21:45 timotimo right
21:45 timotimo bench: 2015.12,HEAD my (@l,@r); sub ri(@a,@b){@b.unshift(@a.shift) while @a.elems}; for (1..8).permutations { @l=@$_; repeat { @r=@l.splice(0,@l[0]); ri(@r, @l) } while @l[0] != 1 }
21:45 benchable6 timotimo, starting to benchmark the 2 given commits
21:46 benchable6 timotimo, benchmarked the given commits, now zooming in on performance differences
21:46 benchable6 timotimo, ¦2015.12: «10.0083» ¦HEAD: «3.0507»
21:47 timotimo neat.
21:47 timotimo that's quite a bit faster
21:50 timotimo i'd like a bit more detail, though
21:50 timotimo how come it didn't give me any zoom points?
21:50 timotimo bench: 2015.12,2016.12,2017.05,HEAD my (@l,@r); sub ri(@a,@b){@b.unshift(@a.shift) while @a.elems}; for (1..8).permutations { @l=@$_; repeat { @r=@l.splice(0,@l[0]); ri(@r, @l) } while @l[0] != 1 }
21:50 benchable6 timotimo, starting to benchmark the 4 given commits
21:52 benchable6 timotimo, benchmarked the given commits, now zooming in on performance differences
21:54 benchable6 timotimo, https://gist.github.com/5e00c0007f59595fe1b3595572bfb23c
21:54 timotimo LOL
21:55 timotimo that graph is precious
21:55 geekosaur heh
22:17 samcv think i've almost fixed the problem of synthetics changing under concatenation. utf8-c8 synths that is
22:19 samcv \o/ i got it
22:20 jnthn \o/
22:20 jnthn samcv++
22:21 samcv so i added an option to the iterator which iterates a single grapheme, and had an option to pass back utf8 c8 synthetics
22:22 samcv also going to have re_nfg do the same thing as well. even though that wasn't causing this specific problem. i could see it occuring there too
22:24 samcv the normalizer seems to leave them alone. though ideally maybe we'd have a fast path for utf8c8 synths? dunno
22:24 jnthn Sounds wise
22:24 samcv though it working is much more important atm
22:24 samcv nobody wants their utf8c8 strings to become normal ones
22:25 samcv and i'll leave MVM_string_compare the way it is. otherwise i guess utfc8 synths would sort in the allocated order rather than a consistent order
22:27 samcv jnthn, and we want .codes to give 1 code per utfc8 synth or no?
22:29 jnthn I don't care much about that.
22:29 jnthn If it does that's nice I guess
22:30 samcv i just need to change a 0 to a 1
22:30 samcv and it will do that
22:30 jnthn oh
22:30 jnthn Then OK ;)
22:30 samcv ok :)
22:36 samcv jnthn, need to decide how i want utf8c8 synths to sort in the collation algorithm hm
22:36 samcv maybe something based on their number. and sort it as Unassigned
22:36 samcv something to think about
23:10 jnthn Indeed; don't have anything useful to suggest really...
23:10 jnthn Sleep time o/
23:10 japhb Sleep well, jnthn
23:50 AlexDaniel joined #moarvm

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