Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-09-10

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 BenGoldberg joined #perl6-dev
00:51 travis-ci joined #perl6-dev
00:51 travis-ci Rakudo build passed. usev6 'Avoid trailing semicolon for JVM backend
00:51 travis-ci https://travis-ci.org/rakudo/rakudo/builds/273599064 https://github.com/rakudo/rakudo/compare/dd8d0d89a3f4...16f8419a3e94
00:51 travis-ci left #perl6-dev
01:24 geekosaur joined #perl6-dev
01:55 ilbot3 joined #perl6-dev
01:55 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
03:12 travis-ci joined #perl6-dev
03:12 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Oops, need parens + comma inside nqp::stmts
03:12 travis-ci https://travis-ci.org/rakudo/rakudo/builds/273600217 https://github.com/rakudo/rakudo/compare/16f8419a3e94...2762bcc49f25
03:12 travis-ci left #perl6-dev
04:34 skids joined #perl6-dev
04:48 travis-ci joined #perl6-dev
04:48 travis-ci Rakudo build passed. Timo Paulssen 'junction optimizer shall ignore proto and only look at candidates'
04:48 travis-ci https://travis-ci.org/rakudo/rakudo/builds/273604714 https://github.com/rakudo/rakudo/compare/2762bcc49f25...4de858a555fe
04:48 travis-ci left #perl6-dev
07:24 lizmat Files=1223, Tests=67685, 292 wallclock secs (11.05 usr  4.67 sys + 1975.34 cusr 208.96 csys = 2200.02 CPU)
08:26 Geth ¦ rakudo/nom: 76f1d8970e | usev6++ | tools/build/Makefile-JVM.in
08:26 Geth ¦ rakudo/nom: [jvm] Make libdir known in 'sub hll-config'
08:26 Geth ¦ rakudo/nom:
08:26 Geth ¦ rakudo/nom: This lets EvalServer find Perl6::BOOTSTRAP and makes 'make test'
08:26 Geth ¦ rakudo/nom: work again. (At least after 'make install'.)
08:26 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/76f1d8970e
09:05 [TuxCM] joined #perl6-dev
09:19 [Tux] This is Rakudo version 2017.08-104-g76f1d8970 built on MoarVM version 2017.08.1-128-gde6dceda
09:19 [Tux] csv-ip5xs        1.631 -  1.643
09:19 [Tux] test            11.807 - 11.912
09:19 [Tux] test-t           3.669 -  4.129
09:19 [Tux] csv-parser      12.703 - 15.163
09:31 nine Oh...why so slow?
09:37 [Tux] don't know. will run a second time
09:49 [Tux] This is Rakudo version 2017.08-104-g76f1d8970 built on MoarVM version 2017.08.1-128-gde6dceda
09:49 [Tux] csv-ip5xs        1.332 -  1.339
09:49 [Tux] test             9.799 -  9.869
09:49 [Tux] test-t           3.472 -  3.600
09:49 [Tux] csv-parser      10.526 - 10.918
09:49 * [Tux] cannot explain
10:18 samcv i merged my collation stuff :)
10:18 samcv sup [Tux]
10:51 [Tux] re-run again?
10:51 timotimo i wouldn't expect text::csv to use collation
10:52 [Tux] right
10:52 [Tux] and the slowdown isn't as big in the second run
10:52 timotimo but i haven't actually looked to see what exact changes beyond that are in that branch. i think it's very self-contained though
10:52 timotimo oh yeah, i see it now
10:52 timotimo the slowest in the second run was faster than the fastest in the first
10:53 [Tux] running again, just for good measurement
10:56 [Tux] This is Rakudo version 2017.08-104-g76f1d8970 built on MoarVM version 2017.08.1-128-gde6dceda
10:56 [Tux] csv-ip5xs        1.360 -  1.362
10:56 [Tux] test             9.595 -  9.890
10:56 [Tux] test-t           3.508 -  3.536
10:56 [Tux] csv-parser      10.751 - 10.818
10:56 [Tux] have to go now. cu l8r
10:58 timotimo cu tux
11:02 Geth ¦ nqp: 731fcc381c | (Samantha McVey)++ | tools/build/MOAR_REVISION
11:02 Geth ¦ nqp: Bump MoarVM: Unicode Collation Algorithm + other fixes
11:02 Geth ¦ nqp:
11:02 Geth ¦ nqp: Changes: 2017.08.1-128-gde6dced..2017.08.1-150-g0b81969d
11:02 Geth ¦ nqp: 0b81969d Remove unneeded file from UCA implementation
11:02 Geth ¦ nqp: 866623d9 Merge Full Unicode Collation Algorithm Implementation
11:02 Geth ¦ nqp: 088aa0a0 Fix a leak in CArray repr.
11:02 Geth ¦ nqp: 0441e075 Ensure gi->start is set to 0 for flat strings in MVM_string_gi_init
11:02 Geth ¦ nqp: <…commit message has 13 more lines…>
11:02 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/731fcc381c
11:02 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.08.1-128-gde6dced...2017.08.1-150-g0b81969d
11:03 Geth ¦ rakudo/nom: 9b42484a5d | (Samantha McVey)++ | tools/build/NQP_REVISION
11:03 Geth ¦ rakudo/nom: Bump MoarVM: Unicode Collation Algorithm + other fixes
11:03 Geth ¦ rakudo/nom:
11:03 Geth ¦ rakudo/nom: NQP changes: 2017.08-47-g79e6453..2017.08-61-g731fcc381
11:03 Geth ¦ rakudo/nom: 731fcc381 Bump MoarVM: Unicode Collation Algorithm + other fixes
11:03 Geth ¦ rakudo/nom: 91d6538e0 Test passing wrongly typed required native named arguments
11:03 Geth ¦ rakudo/nom: 0e78e6b60 [jvm] When getting a wrong kind of native argument throw an exception instead of trying to coerce
11:03 Geth ¦ rakudo/nom: 8742805cb Add more index* tests to test empty string paths
11:03 Geth ¦ rakudo/nom: <…commit message has 28 more lines…>
11:03 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9b42484a5d
11:03 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.08-47-g79e6453...2017.08-61-g731fcc381
11:03 MasterDuke rough charts of releases -> (time to parse SETTING, lines in SETTING): https://imgur.com/0uJW4U6
11:04 MasterDuke gist of the raw data is here: https://gist.github.com/MasterDuke17/215adbff0f2c3328484b1e290661fb96
11:04 MasterDuke timotimo, jnthn: ^^^
11:04 timotimo can you also make a "time per line" graph?
11:05 jnthn So the setting is at its biggest ever, but the parse time isn't quite at its biggest ever...
11:05 jnthn That's not too bad an outcome, though I am curious about the recent bump
11:09 Skarsnik joined #perl6-dev
11:11 MasterDuke https://imgur.com/JrtKN5E
11:13 jnthn Wow, I like that one more ;)
11:13 samcv MasterDuke, that's just the parse time?
11:13 jnthn Though still curious about the tick up at the end
11:14 MasterDuke samcv: yeah
11:15 MasterDuke unfortunately i haven't been able to profile the parse/build recently because it now requires more than 16gb of ram to --profile-compile the SETTING
11:16 MasterDuke oh, maybe i created a vm on google with their free credit that has enough ram, i should double-check that
11:27 timotimo yeah, --profile-compile is a heinous thing with such a big piece of code
11:28 timotimo the recursive nature of our parser, optimizer, and compiler forces the call graph to have roughly the same shape as the parse tree
11:28 MasterDuke i used to be able to do it on the bisectable server, but not anymore
11:29 jnthn Could probably do with a sampling profiler that just records stack traces at regular time intervals
11:30 jnthn To complement our current one
11:30 jnthn (Both are useful to have, but good at different things)
11:32 Skarsnik I ran out of memory again >< I hate this gumbo crash ;(
11:34 MasterDuke Skarsnik: how much memory do you have? Zoffix++ pointed me toward this free credit to use on a google vm, i think i have 24gb of ram configured for it
11:35 Skarsnik 4Gb, But I think it just don't crash running with efence, I can't get pass 12 iteration normaly and in gdb + efence it stopped at 35 because no memory left to mmap
11:36 timotimo jnthn: i entertained the thought to implement that recently, but i didn't have a good answer for how to interrupt the interpreter regularly for recording, and for how to make the jit also cooperate
11:38 Skarsnik that sucks lol
11:38 Skarsnik root@vps300582:/home/skarsnik# killall gdb
11:38 Skarsnik bash: fork: Cannot allocate memory
11:43 MasterDuke !
11:44 vendethiel- joined #perl6-dev
12:04 MasterDuke perf report of parsing the SETTING: https://gist.github.com/MasterDuke17/ff9945ca89481fe4bf41f9366c9530a3
12:07 timotimo huh, rename_locals, eh?
12:08 timotimo ok, that's in spesh, so it's running off on its own thread anyway
12:09 MasterDuke i also added a report of doing the full build, not just parse
12:11 MasterDuke huh, MVM_string_equal at the top, don't remember seeing that happen before
12:14 Skarsnik that an interesting 'bug' I have
12:16 Skarsnik I get that in the calltrace : from /home/skarsnik/perl6/efence/rakudo/../../benchmark/perl6-gumbo/lib/Gumbo/Parser.pm6 but I did not use this path for this module. I put -I ../perl6-gumbo/lib wich is not in the benchmark dir
12:19 Skarsnik Ho because it use the one in the precomp dir of the xml module ><
12:24 timotimo ~i have a crazy idea, MasterDuke
12:24 MasterDuke i'm intrigued
12:25 timotimo i can set a breakpoint on MVM_string_equal, give gdb the commands "call MVM_dump_backtrace(tc)" and "c" and then output all that to a file
12:25 timotimo that file is going to become humongous, of course
12:26 timotimo i've never properly worked with mkfifo; i could probably make it output that to a fifo and have some compression program read from the fifo and write to disk?
12:26 MasterDuke yep, i've done that before (not for MVM_string_equa)
12:26 timotimo right, i thought i remember having done that once
12:26 timotimo do you remember what that was for?
12:27 MasterDuke or pipe stderr to gzip?
12:27 timotimo oh, right, it goes to stderr
12:27 MasterDuke yeah, you were the one who showed me how to do it. think i was recording where coerce_i was happeninig
12:28 timotimo oooh
12:28 timotimo yeah, we had too many nums in nqp
12:28 timotimo will you do the honors of recording all the MVM_string_equal?
12:29 timotimo i wonder how often it's called indirectly
12:29 timotimo i.e. not immediately from interp.c or from a jitted frame
12:29 MasterDuke i won't be able until late tonight, gonna be afk and traveling for the rest of the day
12:29 timotimo so maybe a "bt" would also be interesting
12:29 timotimo ah
12:29 timotimo safe travels, in that case!
12:29 timotimo i'll try my luck
12:29 MasterDuke i'll do it if i see you haven't already
12:30 MasterDuke thanks
12:31 timotimo cool, it segfaults when i try that :)
12:31 MasterDuke btw, slightly on-topic, any reason the id created by nqp::objectid couldn't be a string?
12:31 timotimo oh
12:31 timotimo dump_backtrace isn't using the gc correctly or something
12:32 timotimo hmm
12:33 timotimo i apparently reached a spot where there's no temproots in the TC yet
12:34 MasterDuke it's usually used as a string in rakudo, and it causes a bunch of coerce_I_s (or something like that), which means a lot of temporary allocations of mp_ints
12:34 MasterDuke i've never seen dump_backtrace segv before
12:38 timotimo yeah, tc->temproots was a null pointer
12:38 timotimo not sure how we managed that, and why it doesn't allocate one for us; perhaps weirdness with how functions called from gdb work
12:40 timotimo okay, now the thread context is a null pointer ... ?!?
13:02 MasterDuke --profile-compile of --target=parse for the SETTING: https://gist.github.com/MasterDuke17/7926d8fc9d377a865540730621e59b03
13:02 dogbert2 joined #perl6-dev
13:08 timotimo unspace is certainly taking a lot of time for not actually being used much or at all in the setting
13:10 timotimo it looks like some kind of compile-time setup for scheduler and awaitable is costing us significant time, too
13:11 timotimo it's literally just the role bodies being pointed out here
13:13 timotimo it's strange that these role bodies both have 590 entries
13:13 timotimo MasterDuke: can you find callers to these frames?
13:20 timotimo what the ... term:sym<name> in the list points at term:sym<nqp::const> for me
13:21 timotimo term:sym<name> is kind of complex, maybe we can find a fast-path or two to put in
13:26 timotimo oh, the lines don't match up because we actually put grammar and friends through a code gen step
13:53 pyrimidine joined #perl6-dev
13:54 Geth ¦ roast: 8d225fe907 | usev6++ | S06-macros/quasi-blocks.t
13:54 Geth ¦ roast: Use same ticket for skipped test
13:54 Geth ¦ roast: review: https://github.com/perl6/roast/commit/8d225fe907
14:01 AlexDaniel Skarsnik: you can try it on whateverable server
14:02 AlexDaniel I'm afraid it only has 6 GB of ram out of 16 available once you start all bots and let them run for a while… but I can put them all down for you :)
14:02 AlexDaniel just let me know
14:05 Geth ¦ roast: 2fc07d161e | usev6++ | 2 files
14:05 Geth ¦ roast: [jvm] Unfuged passing tests
14:05 Geth ¦ roast: review: https://github.com/perl6/roast/commit/2fc07d161e
14:21 robertle joined #perl6-dev
14:34 Skarsnik AlexDaniel, not sure it worth it. I have the feeling it will not crash x)
14:35 pyrimidi_ joined #perl6-dev
14:37 AlexDaniel Skarsnik: oh… so what exactly should I do to make it stop crashing? ;)
14:40 Skarsnik I mean running in efence + gdb it crash before out of memory after 3x iterations instead of just 10-12
14:43 Skarsnik but I think there is something weird in https://github.com/supernovus/exemel/blob/master/lib/XML/Node.pm6 at reparent/remove (called when you append a child on an xml::element)
14:59 Geth ¦ roast: b52bc57ff0 | usev6++ | 5 files
14:59 Geth ¦ roast: [jvm] Unfudge passing tests
14:59 Geth ¦ roast: review: https://github.com/perl6/roast/commit/b52bc57ff0
15:06 llfourn joined #perl6-dev
15:15 smls joined #perl6-dev
15:16 smls I've dug into Rakudo's sources to try and fix an RT, only to realize it probably *can't* be fixed without changing Capture semantics:
15:16 smls https://rt.perl.org/Ticket/Display.html?id=120995
15:17 smls Can a core dev maybe have a look and decide whether to reject the ticked?
15:17 smls *ticket
15:21 timotimo smls: don't forget we also compile signatures in many cases, so changing the code that handles this might not be enough, and in fact could cause "inconsistent bind result" errors
15:28 AlexDaniel smls: well, another option is to mark it as LTA and just leave it there. Who knows, maybe one day…
15:30 smls AlexDaniel: But this way, we'll never get the number of open tickets down... :P
15:30 AlexDaniel smls: don't worry, there are 1500 other tickets to take care of :)
15:31 AlexDaniel squashable6: status
15:31 squashable6 AlexDaniel, Next SQUASHathon in 25 days and ≈18 hours (2017-10-07 UTC-12⌁UTC+14)
15:31 AlexDaniel I'm hoping that this ↑ will make a difference
15:35 AlexDaniel Skarsnik: hey, have you tried building MoarVM with --asan ?
15:37 Skarsnik what dpoes that do?
15:38 pyrimidine joined #perl6-dev
15:39 timotimo it uses the address sanitizer lib to check memory accesses
15:39 AlexDaniel Skarsnik: https://files.progarm.org/2017-09-10-183943_842x649_scrot.png
15:40 Skarsnik this look nice
15:40 AlexDaniel especially because it fails on the first iteration :)
15:41 Skarsnik I fixed this (efence did not like it etheir)
15:41 AlexDaniel timotimo: I guess I should've used --debug also to get pretty backtraces?
15:43 timotimo yeah
15:43 Skarsnik http://www.nyo.fr/~skarsnik/tmp/various-nc-stuff.diff the fix in nc_refresh make it stop crashing on this function
15:43 timotimo and maybe turn off the jit
15:43 timotimo that'll give better stack traces, too
15:44 Skarsnik If I understand correctly this try to get the addr on a field on a cstruct
15:44 Skarsnik but since it add a * too much it get the value I think
15:46 Skarsnik timotimo, do you think that could came from the XML module : https://github.com/supernovus/exemel/blob/master/lib/XML/Node.pm6#L46 I feel it make the gc happy sometime (I had a backtrace that point to this)
15:47 Skarsnik *does not make the gc happy
15:47 timotimo no clue what this does :)
15:47 timotimo i mean internally
15:48 Skarsnik it's called when I use append to add a child to an element
15:49 Skarsnik AlexDaniel, it's a configure option?
15:49 AlexDaniel yes
15:50 Skarsnik hm
15:50 Skarsnik root@vps300582:/home/skarsnik# apt-file search libasan.so
15:50 Skarsnik root@vps300582:/home/skarsnik#
15:52 timotimo your gcc doesn't come with it?
15:53 AlexDaniel it's in testing and unstable for sure
15:53 Skarsnik what the apt-file search give you?
15:55 timotimo i have a package "libasan" that i can install
15:55 timotimo in fedora
15:56 AlexDaniel a bunch of packages: libasan0 libasan1 libasan2 libasan3 libasan4 but also libgcc-5-dev
15:56 Skarsnik Oh it's with gcc 5
15:56 AlexDaniel and libgcc-7-dev also :)
15:58 AlexDaniel Skarsnik: I applied your patch and now it's past 200 iterations without a crash
15:58 Skarsnik change the url to linuxfr.org
15:59 Skarsnik or something bigger like that ^^
15:59 Skarsnik hm probably not available on my stable the libasan
16:00 AlexDaniel ok, that is much slower…
16:01 AlexDaniel and yeah, I see that it is eating more and more memory as it goes
16:01 Skarsnik apt-get -t testing install  libasan4 work
16:01 Skarsnik but this replace lot of stuff x)
16:03 AlexDaniel Skarsnik: crashed on iteration 73 :|
16:04 skids joined #perl6-dev
16:07 Skarsnik well at least it crash x)
16:07 AlexDaniel now it crashed on iteration 74… so it's not stable. Great
16:08 Skarsnik I am curious about something x)
16:10 Geth ¦ roast: d809d5651c | usev6++ | S02-names/pseudo.t
16:10 Geth ¦ roast: Add test for calling CORE::.keys (RT #129092)
16:10 Geth ¦ roast: review: https://github.com/perl6/roast/commit/d809d5651c
16:10 Geth ¦ roast: 7edf26aae4 | usev6++ | S02-names/pseudo.t
16:10 Geth ¦ roast: [jvm] Unskip test for RT #123154
16:10 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=129092
16:10 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=123154
16:10 Geth ¦ roast: review: https://github.com/perl6/roast/commit/7edf26aae4
16:10 Geth ¦ roast: bae1108d8f | usev6++ | S32-hash/perl.t
16:10 Geth ¦ roast: Add test for RT #120656
16:10 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=120656
16:10 Geth ¦ roast: review: https://github.com/perl6/roast/commit/bae1108d8f
16:25 AlexDaniel Skarsnik: but perhaps get your first fix in if it fixes something?
16:26 Skarsnik AlexDaniel, hm what you can try is saving to a xml file the first run to create xml file to load with the xml module and remove gumbo. to see it that came from xml or me not using the module properly
16:26 Skarsnik but the xml take forever to parse stuff xD
16:29 Skarsnik AlexDaniel, maybe, I am not sure. I guess I could do a PR and someone knowing more about this code could validate
17:36 Skarsnik timotimo, do you think it's a leak somewhere? http://www.nyo.fr/~skarsnik/tmp/leakxml.txt the code is like xml-load($somexml) for 1..100; and a call to getstatm each iteration
17:37 Skarsnik data = resident + stack If I remember correctly
17:45 BenGoldberg joined #perl6-dev
18:07 timotimo looks like it plateaus reliably?
18:09 Skarsnik dunno it grows some time
18:10 Skarsnik still it's pretty crazy, 240Mb after the first iteration, then we reach 400Mb+
18:11 timotimo yeah
18:12 timotimo have you considered the heap profiler? :)
18:13 Skarsnik I should give you the code. I am supposed to write a document xD
18:14 timotimo damn :)
18:14 timotimo it's dinner time here first
18:18 Skarsnik http://www.nyo.fr/~skarsnik/tmp/testxml.p6 the xml file is at the same url but any xml doc should do the trick x)
18:21 timotimo ah, that one does it without running, so no threads being created
18:31 Skarsnik timotimo> have you considered the heap profiler? :) I can picture you with a perl 6 book at my front door saying that
18:55 timotimo hah
19:09 lizmat timotimo: I'm looking deeper into converting buildplans to actual code
19:10 lizmat and am looking at https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/BUILDPLAN.nqp#L108
19:10 lizmat and https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/BUILDPLAN.nqp#L122
19:11 lizmat timotimo: it feels to me that every class has BUILDPLAN =:= BUILDALLPLAN
19:11 lizmat since we don't clone in L108 ?
19:11 lizmat hmmm.... scratch that
19:12 timotimo yeah, we go through the buildplan item by item
19:12 timotimo did you check out my old branch that tries to compile stuff
19:13 lizmat timotimo: no, first trying to get a grasp of things  :-)
19:13 timotimo right
19:14 lizmat I wonder if we could same some memory for buildplans if mro[1] is Any, and just alias BUILDALLPLAN with BUILDPLAN ?
19:14 lizmat *save
19:15 timotimo dunno
19:15 timotimo i have a different idea how we could save memory for the buildplans
19:15 lizmat which is ?
19:15 lizmat change the structure of the data ?
19:15 timotimo instead of having lists of lists, we could have one native int array for the opcodes and then just lay all things flat into a single array and just shift as many pieces off of our iterator as every kind needs
19:15 timotimo yes
19:16 lizmat yes, I've been thinking along similar lines
19:16 timotimo cool, that means the idea isn't so bad :)
19:16 lizmat I'm also thinking that maybe we need to be smarter for the "has $.foo = 42" case
19:17 lizmat currently it calls a closure for initialization
19:17 lizmat if we could find out the closure generates a constant value, we could potentially simplify by just putting the value in the opcodes stream
19:17 timotimo ah, you mean if we know we have a literal we should just nqp::clone that
19:18 lizmat or even make it a "is default" value
19:18 timotimo ah, doing that ourselves
19:18 lizmat but yeah, don't call the closure
19:22 timotimo hm, how soon do we create that? probably too soon for the optimizer to have kicked in
19:24 lizmat yeah, before that
19:24 lizmat :-(
19:25 timotimo we should be able to figure something out still
19:34 timotimo and actually it's not too late in the optimizer to go through the buildplan and make it better, we just need to somehow remember the QAST::Block that was used for the is default
19:36 timotimo but maybe it'd be better if the actions themselves would figure things out for us
19:36 lizmat hmmm... so you're saying the optimizer should convert the buildplan to code ?
19:36 lizmat and then lose the buildplan?
19:37 lizmat hmmm... I guess we can't lose the buildplan because of mixins later, right?
19:37 timotimo hm, i'm not sure if the optimizer should be the one to do the code conversion
19:37 timotimo oh, right
19:37 timotimo we need to keep that, yeah
19:38 lizmat so basically we need a step that converts the buiildplan to code
19:38 lizmat possibly on demand ?
19:51 timotimo i don't really like running the compiler at run time
19:52 timotimo it'd be rather nicer if we did it at compile time and serialized the buildplans along with the objects
19:54 lizmat yeah, I agree on further thought
19:57 timotimo i find it bad enough that we start the compiler at run time when we use nativecall
20:19 Geth ¦ rakudo/nom: 7da0c2159e | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/BUILDPLAN.nqp
20:19 Geth ¦ rakudo/nom: Don't copy BUILDALLPLAN if the same as BUILDPLAN
20:19 Geth ¦ rakudo/nom:
20:19 Geth ¦ rakudo/nom: This should save some memory for every class that inherits from Any,
20:19 Geth ¦ rakudo/nom: or mixins into a class that don't add any attributes.
20:19 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7da0c2159e
20:19 robertle joined #perl6-dev
20:22 timotimo should be visible in the CORE.setting.moarvm, too
20:27 robertle_ joined #perl6-dev
20:44 lizmat timotimo: do you have any idea why some of the buildplan code uses @a[+@a] as an alternative to nqp::push ?
20:46 lizmat timotimo: also: sanity check: if a class does not have any attributes of its own, shouldn't we just set it to the buildplan of mro[1] ?
20:47 lizmat ah, no, we *could* have a BUILD or a TWEAK  :)
20:48 lizmat afk&
21:00 timotimo good question, i'd imagine push ought to be faster. perhaps it used to be different waaaay back when?
21:58 dogbert2 joined #perl6-dev
23:02 bisectable6 joined #perl6-dev
23:02 benchable6 joined #perl6-dev
23:05 pyrimidi_ joined #perl6-dev
23:17 MasterDuke joined #perl6-dev
23:25 MasterDuke timotimo, jnthn: i updated my recent gist of a --profile-compile ( https://gist.github.com/MasterDuke17/7926d8fc9d377a865540730621e59b03 ) to include the results from the last time i did it, which are very different. thoughts?
23:27 timotimo huh, the highest exclusive time is about 100x less now
23:27 timotimo yeah, i find this rather surprising
23:27 timotimo but i'll go to sleep now
23:27 MasterDuke yeah, but the total time hasn't changed much
23:28 timotimo is the sum of exclusive times still around the same?
23:28 MasterDuke hopefully inspiration will strike in your dreams
23:28 timotimo i hope so, too
23:28 timotimo i'll also need some inspiration for my grant application :)
23:28 timotimo seeya
23:28 MasterDuke later...
23:34 MasterDuke timotimo: 20170203 - sum(exclusive_time) = 52648660, max(inclusive_time) = 55981891
23:35 MasterDuke timotimo: 20170910 - sum(exclusive_time) = 77029801, max(inclusive_time) = 80924618
23:37 MasterDuke which is pretty much in line with the times i posted earlier
23:38 pyrimidine joined #perl6-dev

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary