Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2017-02-01

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

All times shown according to UTC.

Time Nick Message
01:07 pyrimidine joined #moarvm
01:52 pyrimidine joined #moarvm
02:15 MasterDuke timotimo: i just rebuilt moar/nqp/rakudo with jnthn++
02:15 MasterDuke 's latest changes
02:16 timotimo ah, good!
02:16 timotimo will be interesting to see if things improve
02:16 MasterDuke and now the rakudo version with natives is noticeably faster
02:17 timotimo lovely!
02:17 timotimo what code were we talking about again?
02:17 timotimo i was thinking of whateverable and memory leaks and such
02:17 MasterDuke 'use nqp; sub a() { nqp::stmts((my $f := nqp::open("small_compile.sql", "r")), (my str $l), (my int $s = 0), nqp::while(($l = nqp::readlinefh($f)), ++$s), $s) }; say(a())'
02:18 MasterDuke where small_compile.sql is 1m lines
02:18 timotimo can you give percentage improvements or something?
02:19 MasterDuke the pure nqp version was the same, the rakudo version with native is now just slightly slower than the nqp version
02:19 MasterDuke when before it was almost twice as slow
02:19 timotimo how slight we talking?
02:20 MasterDuke oh, maybe slightly faster
02:20 * MasterDuke double checks which commands were run
02:21 MasterDuke no, the nqp version is about 50ms faster on average
02:21 MasterDuke 1620 vs 1670
02:22 timotimo that sounds quite good
02:22 timotimo so 1.6s to slurp up an 1m line file line-by-line
02:25 MasterDuke yep. though perl5 does the same thing in 190
02:26 timotimo oof
02:26 timotimo with utf8, too?
02:26 timotimo or does perl5 read it as ascii?
02:27 MasterDuke it reads as ascii, let me try again with utf8
02:28 MasterDuke utf8 is 1165
02:28 timotimo we're quite close, then
02:28 MasterDuke so we're only 0.5s off? not terrible
02:28 timotimo how is ascii with perl6? probably rather slow
02:30 MasterDuke 1250
02:31 MasterDuke so ~ 0.4s faster than utf8
02:32 MasterDuke though this is with essentially writing nqp in perl6
02:32 MasterDuke oh, and actually all those non-perl5 times include profiling
02:33 MasterDuke uh, some of them do
02:33 timotimo the difference through profiling is stronger when you invoke stuff and allocate stuff
02:36 timotimo unless you mean perf
02:36 timotimo in which case the overhead is almost negligible
02:36 MasterDuke the naive perl6 version, 'my int $s = 0; ++$s for "small_compile.sql".IO.lines; say $s', takes 3875 in contrast to writing nqp in perl6
02:36 MasterDuke no, i was doing --profile
02:37 timotimo ok
02:41 MasterDuke ah, that's not exactly the same naive perl6 i tested yesterday, that was 'sub a() { my $s = 0; ++$s for "small_compile.sql".IO.lines; $s }; say(a())', but even it is 4200 instead of 4700, so ~0.5s faster
02:41 MasterDuke jnthn++
02:46 MasterDuke and making $s an int brings it down another 350ms
02:46 timotimo nice
02:48 ilbot3 joined #moarvm
02:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
03:02 MasterDuke and FWIW, this 'sub a() { my $f = open "small_compile.sql"; my $l; my int $s = 0; while $l = $f.get { ++$s }; return $s }; say(a())' was 2870
03:03 MasterDuke but this 'sub a() { my $f = open "small_compile.sql"; my int $s = 0; while $f.get -> $l { ++$s }; return $s }; say(a())' was 3340
03:12 agentzh joined #moarvm
05:13 KDr2 joined #moarvm
05:31 geekosaur joined #moarvm
06:34 brrt joined #moarvm
06:53 domidumont joined #moarvm
06:59 domidumont joined #moarvm
07:20 brrt merging the data section support is going to be one hell of a job
07:46 brrt joined #moarvm
07:48 brrt https://blog.pyston.org/2017/01/31/pyston-0-6-1-released-and-future-plans/
07:48 brrt (hard not to think 'another one bytes the dust')
07:58 nwc10 I wonder if dropbox will now be looking at grumpy
07:59 nwc10 and also "Dropbox has increasingly been writing its performance-sensitive code in other languages, such as Go"
08:00 brrt grumpy, that was the python-to-go-compiler
08:00 brrt wasn't it?
08:00 nwc10 yes
08:00 nwc10 there's sort of two parts to my two lines (in my head at least) hence the "also"
08:01 brrt well, ehm, hmmm, i'm not sure how to interpret that
08:01 nwc10 1) looks like their Python 2 EOL strategey is "not Python"
08:01 arnsholt I strongly suspect that speed and CPython compatibility (in particular extensions) are almost diametrically opposed
08:01 * brrt nods
08:01 * brrt nods enthusiastically
08:01 brrt counterpoint: SciPY
08:01 nwc10 2) I wonder if the arrival of Grumpy makes them more interested in that approach for the Python they do have
08:02 nwc10 yes, roughly what I was thinking - does a sweet spot between "more speed" and "enough compatibilitly" even exit?
08:02 nwc10 er, exist
08:02 arnsholt Isn't SciPy mostly a wrapper over NumPy, which plugs into LAPACK/BLAS/whatever?
08:03 nwc10 Hacker News is brutal: https://news.ycombinator.com/item?id=13534992
08:03 brrt oh, i've mostly stopped reading it
08:03 nwc10 read that. there are just two comments. Both polite.
08:03 brrt ah, seen
08:03 brrt :-)
08:03 brrt reasonably polite, yes
08:03 nwc10 yes, well
08:04 brrt meanwhile, we're still sloughing on with MoarVM....
08:04 nwc10 polite words. not polite concepts
08:04 brrt to be fair
08:04 brrt I'd move to go if I was them
08:04 brrt it is an amazing tool, if not the most elegant language
08:10 brrt to be also fair, I'm sometimes kind of amazed of how far our little community has come
08:18 samcv nqp: say(nqp::unicmp_s('a', 'B', 7, 0, 0,0))
08:18 camelia nqp-moarvm: OUTPUT«1␤»
08:18 samcv m: use nqp; say(nqp::unicmp_s('a', 'B', 7, 0, 0,0))
08:18 camelia rakudo-moar 951a44: OUTPUT«This type cannot unbox to a native integer: P6opaque, Str␤  in block <unit> at <tmp> line 1␤␤»
08:18 samcv for some reason this tries to unbox into the incorrect type
08:18 samcv it tries to unbox the strings into integers and the 7 into a string
08:19 samcv and i'm not sure why the hell
08:19 samcv it does this. anybody know more about this type of thing?
08:28 Geth ¦ MoarVM/jit-data-section: 2c2374c01f | (Bart Wiegmans)++ | 2 files
08:28 Geth ¦ MoarVM/jit-data-section: Add data section for JIT code
08:28 Geth ¦ MoarVM/jit-data-section:
08:28 Geth ¦ MoarVM/jit-data-section: This enables us to store (function) pointers and the like in a separate
08:28 Geth ¦ MoarVM/jit-data-section: section rather than having to shuffle them in via constant
08:28 Geth ¦ MoarVM/jit-data-section: expressions (ie. movabs). Expected to be a code-size saving, might
08:28 Geth ¦ MoarVM/jit-data-section: eventually be used to canonicalize pointers and make JIT code
08:28 Geth ¦ MoarVM/jit-data-section: serializable.
08:28 Geth ¦ MoarVM/jit-data-section: review: https://github.com/MoarVM/MoarVM/commit/2c2374c01f
08:28 Geth ¦ MoarVM/jit-data-section: 2d81976c6c | (Bart Wiegmans)++ | 7 files
08:28 Geth ¦ MoarVM/jit-data-section: Emit data node for extop 'fake' registers
08:28 Geth ¦ MoarVM/jit-data-section:
08:28 Geth ¦ MoarVM/jit-data-section: This should plug a minor memory leak from malloc()-ing 'fake' registers
08:28 Geth ¦ MoarVM/jit-data-section: used for extop support. Introduces a MVM_JIT_DATA node type.
08:28 Geth ¦ MoarVM/jit-data-section: review: https://github.com/MoarVM/MoarVM/commit/2d81976c6c
08:28 brrt PR coming up
08:32 Geth ¦ MoarVM: bdw++ created pull request #516: Add data section for JIT compiled code
08:32 Geth ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/516
08:49 zakharyas joined #moarvm
09:38 domidumont joined #moarvm
10:03 jnthn brrt++
10:03 jnthn Will look at that later when my @other-task are cut down a bit :)
10:04 brrt sure :-)
10:04 brrt NB: i want to do more advanced stuff, like having a table of pointers and supporting serialization / linking
10:05 brrt but, not really necessary for now
10:05 jnthn *nod*
10:05 jnthn There's always opportunity to do more stuff... :)
10:06 brrt infinite amounts of work, if you want it
10:13 samcv hi jnthn
10:13 jnthn hi, samcv
10:13 samcv when you have the time can yo usee what i wrote above?
10:13 samcv about 1 hour ago
10:13 jnthn About the op oddity? I've no immediate idea :S
10:13 samcv yeah
10:13 samcv :\
10:14 samcv i *thought* it worked fine before
10:14 jnthn I assume the oplist entry is correct?
10:14 jnthn 'cus that's what the NQP mapping uses for its types
10:17 samcv this is in MVM or in nqp?
10:17 samcv ah looks like mvm
10:17 samcv w(int64) r(str) r(str) r(int64) r(int64) r(int64) :pure
10:17 samcv that looks right to me
10:19 jnthn Then your call looks wrong, I think? 'cus you passed 4 ints at the end?
10:19 jnthn nqp::unicmp_s('a', 'B', 7, 0, 0,0)
10:20 jnthn Is that final 0 meant to be there?
10:20 samcv heh
10:21 samcv m: use nqp; say(nqp::unicmp_s('a', 'B', 7, 0, 0)
10:21 camelia rakudo-moar 951a44: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> qp; say(nqp::unicmp_s('a', 'B', 7, 0, 0)⏏<EOL>␤»
10:21 samcv m: use nqp; say(nqp::unicmp_s('a', 'B', 7, 0, 0))
10:21 camelia rakudo-moar 951a44: OUTPUT«-1␤»
10:21 samcv aha!
10:21 samcv very good
10:35 agentzh joined #moarvm
12:28 domidumont joined #moarvm
13:00 pyrimidi_ joined #moarvm
13:01 dogbert17_ joined #moarvm
13:02 geekosaur joined #moarvm
13:26 pyrimidine joined #moarvm
13:41 timotimo IMO "make clean" should also clean 3rdparty folders
13:42 travis-ci joined #moarvm
13:42 travis-ci MoarVM build errored. Jonathan Worthington 'Refuse to form an NFA with a zeroed to-state.
13:42 travis-ci https://travis-ci.org/MoarVM/MoarVM/builds/197052674 https://github.com/MoarVM/MoarVM/compare/8f9de6fd068c...70d4bd53e62a
13:42 travis-ci left #moarvm
13:46 KDr2 joined #moarvm
13:48 brrt make realclean does, i think
13:49 timotimo oh
13:49 brrt 'git submodule foreach git clean -xdf' is what i usually do
13:50 timotimo hehe.
13:50 timotimo so .. how did it happen that suddenly the code threw sigill?
13:50 timotimo oh!
13:50 timotimo i have a theory
13:51 brrt hmmmm
13:51 brrt is it JIT related\
13:51 timotimo no
13:51 timotimo i think my exclusion patterns for syncthing aren't good enough
13:52 timotimo so perhaps it synchronised some .a files
13:52 timotimo i'm pretty sure i'm excluding .o files
14:00 ggoebel joined #moarvm
14:05 domidumont joined #moarvm
14:37 agentzh joined #moarvm
16:11 pyrimidine joined #moarvm
16:14 brrt joined #moarvm
16:41 pyrimidine joined #moarvm
16:52 domidumont joined #moarvm
16:53 agentzh joined #moarvm
17:00 pyrimidine joined #moarvm
17:22 zakharyas joined #moarvm
17:29 geekosaur joined #moarvm
17:32 pyrimidine joined #moarvm
18:00 pyrimidine joined #moarvm
18:16 pyrimidine joined #moarvm
18:27 pyrimidine joined #moarvm
18:42 Geth joined #moarvm
18:52 pyrimidine joined #moarvm
19:00 agentzh joined #moarvm
19:07 FROGGS joined #moarvm
19:20 pyrimidine joined #moarvm
19:50 pyrimidine joined #moarvm
19:54 agentzh joined #moarvm
20:01 FROGGS joined #moarvm
20:18 pyrimidine joined #moarvm
20:51 pyrimidine joined #moarvm
21:09 agentzh joined #moarvm
21:36 agentzh joined #moarvm
22:15 MasterDuke joined #moarvm
22:51 pyrimidine joined #moarvm
23:02 ggoebel joined #moarvm

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