Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:00 vrurg left 00:09 vrurg joined 00:59 MasterDuke joined, MasterDuke left, MasterDuke joined
Geth roast: vrurg++ created pull request #543:
Test for rakudo/rakudo#2169
02:13
synopsebot RAKUDO#2169 [open]: github.com/rakudo/rakudo/issues/2169 [type captures] Assigning Nil to a scalar declared with captured type changes it's container metaclass to GenericHOW
Geth rakudo: c0134d2ab8 | (Vadim Belman)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp
Fix for rakudo/rakudo#2169

ContainerDescriptor $!default gets instantiated alongside with $!of if necessary.
Possible problem: if instantiation will be issued based on ContainerDescriptor.is_generic() return then in cases when $!of is a non-generic value but the default is set to a generic then default won't be instantiated. At this moment such situation is not possible because rakudo dies when `is default` parameter is a generic.
02:14
rakudo: f1c9e8fa7f | (Vadim Belman)++ (committed using GitHub Web editor) | src/Perl6/Metamodel/BOOTSTRAP.nqp
Merge pull request #2731 from vrurg/issue_2169

Fix for rakudo/rakudo#2169
02:18 MasterDuke left 04:24 skids joined 04:36 skids left
gfldex I'm getting the following when building Rakudo HEAD: 05:59
Can't locate object method "note" via package "NQP::Config::Rakudo" at /usr/local/src/rakudo/tools/lib/NQP/Config/Rakudo.pm line 132.
lizmat gfldex: git submodule update 06:47
Files=1262, Tests=107964, 201 wallclock secs (26.90 usr 7.07 sys + 2830.05 cusr 241.17 csys = 3105.19 CPU) 06:48
this is more than 2x as fast as before
not because of changes in Rakudo, but because of 2x as many slightly faster cores
[Tux] new laptop? 07:02
so no more flashing toolbar
Failed to open file /pro/3gl/CPAN/rakudo/tools/templates/moar/moar_core_sources: No such file or directory 07:04
at gen/moar/stage2/NQPCORE.setting:733 (/pro/3gl/CPAN/rakudo/install/bin/../
Geth roast: fea1220886 | (Vadim Belman)++ | S06-signature/type-capture.t
Test for rakudo/rakudo#2169
07:05
roast: bc10cbe9b0 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | S06-signature/type-capture.t
Merge pull request #543 from vrurg/gh_rakudo_2169

Test for rakudo/rakudo#2169
synopsebot RAKUDO#2169 [open]: github.com/rakudo/rakudo/issues/2169 [tests needed][type captures] Assigning Nil to a scalar declared with captured type changes it's container metaclass to GenericHOW
lizmat [Tux]: indeed :-) 07:07
[Tux] tux.nl/Files/20190528090902.png :( 07:09
lizmat git submodule update
are the magic words I have been incantating a lot recently
[Tux] lready done, to no avail
git submodule sync 07:10
git submodule update --init --recursive --remote
lizmat [Tux]: is that a fresh checkout ? 07:13
[Tux] I assume so 07:14
lizmat hmmm.... vrurg ^^^
will check in a moment: am in the middle of needing to reinstall a lot of modules
which seem to be related to recent changes in perl6 configuration, rather than my move to a new MBP 07:15
[Tux] does some reset --hard's 07:18
same thing 07:21
tux.nl/Files/rebuild is what I use to rebuild 07:25
lizmat I just did a fresh checkout in a separate directory, and to my surprise --gen-moar used a Moar that was already installed 07:27
which is not what I expected, by my expectation may be old and incorrect :-)
[Tux] same here
lizmat has no idea 07:30
perhaps moritz has an idea
[Tux] busy with work, but a ping might bring me back
gfldex now I'm getting: cp: cannot create regular file '/usr/local/src/rakudo/install/bin/../bin/perl6': Text file busy 07:42
lizmat yeah, I had trouble with that as well, but I guess this is windows ? 07:43
gfldex Linux dexhome 4.19.0-4-amd64 #1 SMP Debian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux 07:45
it helps to unlink first
lizmat yeah, that's what I did in the end as well 07:46
after which I had to re-install a lot of modules
gfldex does Rakudo mmap?
lizmat MoarVM / liibuv does, afaik 07:47
hmmm.. seems all of my modules get installed under ~/share now
well, I guess that makes sense generally 07:48
timotimo malloc also mmaps 08:04
08:08 patrickb joined
patrickb .tell vrurg It's great to see your PRs getting merged! 08:11
yoleaux patrickb: I'll pass your message to vrurg.
10:04 lizmat_ joined 10:07 lizmat left 10:08 lizmat_ is now known as lizmat
lizmat m: my %h; %h<a> //:= 42; dd %h # why isn't this a thing ? 10:13
camelia 5===SORRY!5=== Error while compiling <tmp>
Preceding context expects a term, but found infix := instead.
at <tmp>:1
------> 3my %h; %h<a> //:=7⏏5 42; dd %h # why isn't this a thing ?
jnthn Binding is too low-level to generally support it in meta-ops 10:40
lizmat we could add "//:=" as a true operator ? :-) 10:45
11:29 ggoebel joined 11:39 robertle_ joined
Guest12727 lizmat: what kind of monster computer have you bought? 11:53
lizmat 2.4GHhz -> 5.0 Ghz 8-core, 32G ram 11:55
Guest12727 very cool 12:01
lizmat it tends to get quite hot when running spectest with TEST_JOBS=16 :-)
Guest12727 I can imagine :-) 12:02
Geth rakudo: 26a309b2c5 | (Elizabeth Mattijsen)++ | lib/MoarVM/Profiler.pm6
A lot of work done on MoarVM::Profiler

  - still a WIP
  - all objects, except the Profile object itself, now are shims around hashes
   - this should make creating a profile faster while reducing memory pressure
  - added documentation about the source format of nqp::mvmendprofile
  - have Type/Thread point back to Profile, and let methods use that
12:15
Guest12727 lizmat: speaking of WIP, what happened to your sprintf rewrite? 12:19
Geth ¦ problem-solving: AlexDaniel assigned to rba Issue Push access to repositories in perl6 organization github.com/perl6/problem-solving/issues/33 12:20
¦ problem-solving: AlexDaniel assigned to maettu Issue Push access to repositories in perl6 organization github.com/perl6/problem-solving/issues/33
lizmat I guess still waiting on a resolution on github.com/perl6/problem-solving/issues/11
Guest12727 aha, so more input is needed 12:22
lizmat perhaps... I must admit it dropped below my radar for a bit :-) 12:24
Guest12727 could one way forward be to implement some of the flags which are currently NYI 12:25
lizmat well, that's the question I guess: do we provide sprintf() with POSIX functionality at the level of Perl 5 12:26
and do we implement something better / more extended / more extensible and not call that sprintf() ?
or do we pimp sprintf() to become so much more than it is now ? 12:27
Guest12727 IMHO, having a sprintf which is roughly equivalent to what is offered by P5, C, Ruby etc would be a nice starting point 12:28
lizmat well, apart from it being relatively slow and some bugs, we already have that
or do you disagree with that assumption? 12:29
Guest12727 I disagree slightly :), looking at docs.perl6.org/routine/sprintf I get the impression that there's some stuff missing currently but I could ofc be wrong 12:30
lizmat could you please add to the issue what you think is missing ? 12:31
Guest12727 sure 12:32
timotimo ẞprintf
or sprintſ
sþrintf 12:33
spⓡintf
Guest12727 wouldn't it be nice if we managed to support most of what can be found here: pubs.opengroup.org/onlinepubs/7908...rintf.html
lizmat bisectable6: use nqp; nqp::mvmstartprofile({:instrumented}); { Nil for ^10000 }; say nqp::hllize(nqp::mvmendprofile)[1]<call_graph><callees> 12:49
bisectable6 lizmat, Bisecting by output (old=2015.12 new=26a309b) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/30c17bb01ec9098248...bf0041c9e0
lizmat, (2018-09-15) github.com/rakudo/rakudo/commit/8f...b8fff905ae
12:50 pamplemousse joined
lizmat bisectable6: --help 12:50
bisectable6 lizmat, On both starting points (old=2015.12 new=26a309b) the exit code is 1 and the output is identical as well
lizmat, Output on both points: «04===SORRY!04=== Error while compiling /tmp/k9S408Ymox␤Undeclared routine:␤ help used at line 1␤␤»
lizmat bisectable6: help
bisectable6 lizmat, Like this: bisectable6: old=2015.12 new=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # See wiki for more examples: github.com/perl6/whateverable/wiki/Bisectable
lizmat bisectable6: old=2019.03.1 new=HEAD use nqp; nqp::mvmstartprofile({:instrumented}); { Nil for ^10000 }; say nqp::hllize(nqp::mvmendprofile)[1]<call_graph><callees> 12:51
bisectable6 lizmat, On both starting points (old=2019.03.1 new=26a309b) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «(Any)␤»
lizmat grr
bisectable6: old=2019.03.1 new=HEAD use nqp; nqp::mvmstartprofile({:instrumented}); { for ^10000 { my $a = 42 } }; say nqp::hllize(nqp::mvmendprofile)[1]<call_graph><callees> 12:53
bisectable6 lizmat, On both starting points (old=2019.03.1 new=26a309b) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «(Any)␤»
12:54 pamplemousse_ joined 12:57 pamplemousse left, pamplemousse_ is now known as pamplemousse
Geth rakudo: 9203ef2e37 | (Elizabeth Mattijsen)++ | lib/MoarVM/Profiler.pm6
Prevent unnecessary gisting because of sinking
13:04
lizmat can someone please confirm that HEAD currently is creating --profile s with only 1 call ? 13:11
no matter what the code is?
Geth rakudo: f5f4190151 | (Elizabeth Mattijsen)++ | src/core/Array.pm6
Use the current state of reified for Array.Slip

Fixes R#2930
13:23
synopsebot R#2930 [open]: github.com/rakudo/rakudo/issues/2930 Arrays coerced to Slip can be pushed to after which values appear in the Slip
13:28 skids joined
Geth roast: b6c1d7646a | (Elizabeth Mattijsen)++ | S07-slip/slip.t
Add tests for R#2930
13:29
synopsebot R#2930 [open]: github.com/rakudo/rakudo/issues/2930 Arrays coerced to Slip can be pushed to after which values appear in the Slip
vrurg [Tux]: Are you still having issues with moar_core_sources? 14:09
yoleaux 08:11Z <patrickb> vrurg: It's great to see your PRs getting merged!
14:17 pamplemousse left, pamplemousse joined
vrurg .tell [Tux] please, make a ticket if you still having issues with the build. BTW, in your script you use config.status – I'm sorry, but this one is somewhat broken now, gets overwritten after make. I only realized it late yesterday, got no time to fix. 14:24
yoleaux vrurg: I'll pass your message to [Tux].
Geth rakudo: ca7408e9fa | (Elizabeth Mattijsen)++ | src/core/Any.pm6
Multi-level EXISTS-POS should check for Failures

Fixes R#2929
14:29
synopsebot R#2929 [open]: github.com/rakudo/rakudo/issues/2929 @a[-1;0]:exists returns True
vrurg .tell lizmat picking up of moar/nqp from PATH is aimed at beginners who might have pre-installed packages. It is only used if there is no --prefix or --with-nqp/with-moar are used.
yoleaux vrurg: I'll pass your message to lizmat.
Geth roast: 4e732c620b | (Elizabeth Mattijsen)++ | S32-basics/xxPOS.t
Add tests for R#2929
14:35
synopsebot R#2929 [open]: github.com/rakudo/rakudo/issues/2929 @a[-1;0]:exists returns True
15:12 robertle_ left
Guest12727 m: printf(q/%1$d:%2$.*3$d:%4$.*3$d/, 17, 10, 2, 33) 15:16
camelia Directive 1$d:%2$.*3$d:%4$.*3$d is not valid in sprintf format sequence %1$d:%2$.*3$d:%4$.*3$d
in block <unit> at <tmp> line 1
15:19 patrickb left
lizmat Guest12727: I already implemented that in my version 15:27
Geth rakudo: c9a78928fe | (Elizabeth Mattijsen)++ | src/core/Any.pm6
Fix copy-pastos, spotted by Harm te Hennepe++
16:52
timotimo ooooh 16:54
lizmat oooh... ? 16:55
timotimo good catch 16:56
[Tux] vrurg. I'm ready to change my command list. What I posted is what I was told over time
yoleaux 14:24Z <vrurg> [Tux]: please, make a ticket if you still having issues with the build. BTW, in your script you use config.status – I'm sorry, but this one is somewhat broken now, gets overwritten after make. I only realized it late yesterday, got no time to fix.
lizmat yup!
17:24 leont joined 18:30 vrurg left
Geth roast: 2fd82d3710 | (Elizabeth Mattijsen)++ | S09-multidim/XX-POS-on-undimensioned.t
Add some more 2/3 dimensional array tests

This appears to be not tested at all. So add a few tests for some more security. This probably needs a data-driven makeover.
18:49
19:00 pamplemousse left, pamplemousse joined
Geth rakudo: ffc47aaeb9 | (Elizabeth Mattijsen)++ | src/core/Attribute.pm6
Don't use .? dispatch in attribute composition

This code gets called often enough in the compilation of the setting to warrant its optimzation. This saves about 1 second of parse time for yours truly.
19:26
19:46 robertle left
Geth rakudo: 2b0ac401af | (Elizabeth Mattijsen)++ | 3 files
Don't bother with .? dispatch inside try blocks

Since apparently don't care about the result if we can't get it, we don't need to be careful about calling a potentially non-existing method.
19:53
rakudo: 7b10a428a5 | (Elizabeth Mattijsen)++ | 5 files
Replace .?method by nqp::can(foo,"method") && foo.method

In the possibly hotter code paths. This saves one method call, and in some cases an hllization of 0/1.
19:57 b2gills left 20:07 b2gills joined 20:10 ufobat__ joined 20:14 ufobat_ left
Geth nqp: ce1092bbd8 | (Elizabeth Mattijsen)++ | docs/ops.markdown
Document the structure returned by mvmendprofile
20:18
jnthn lizmat: Umm.... .?method is rewritten into a spesh plugin typically
20:19 pamplemousse_ joined
lizmat jnthn: does that handle .VAR.?name ? 20:19
jnthn Apparently, given that the commit that was linked saying it broke it was in the spesh plugin? :)
lizmat jnthn: do you mean to say that the method dispatch:<.?> shoulnd'
*shouldn't be called at all ? 20:20
jnthn Correct
Well, except for in cases like >>.?foo if things like that work, since those are a bit too complex to deal with otherwise 20:21
But a plain .?foo should
lizmat well, it *does* get called during setting compilation at the moment
in the attribute composition case, a lot
jnthn Ah, but probably 'cus that's BEGIN time and hasn't been through the optimizer yet? 20:22
20:22 pamplemousse left
lizmat I dunno... but it appeared to save about a second in parse time of the setting for me 20:26
but perhaps that was noise after all :-(
[Tux] .tell vrurg I changed the config.status calls with perl calls as stored in those files. Still fails. No time to dig, not time to file ticket: Im on holiday the next two weeks and $work claimed all time for this week 20:28
yoleaux [Tux]: I'll pass your message to vrurg.
[Tux] '/pro/bin/perl' -I'/pro/3gl/CPAN/rakudo/tools/lib' -I'/pro/3gl/CPAN/rakudo/3rdparty/nqp-configure/lib' '/pro/3gl/CPAN/rakudo/tools/build/check-nqp-version.pl' '/pro/3gl/CPAN/rakudo/install/bin/nqp-m' 20:29
'/pro/3gl/CPAN/rakudo/install/bin/nqp-m' '/pro/3gl/CPAN/rakudo/tools/build/gen-cat.nqp' moar -f '/pro/3gl/CPAN/rakudo/tools/templates/moar/moar_core_sources' > 'gen/moar/CORE.setting'
Failed to open file /pro/3gl/CPAN/rakudo/tools/templates/moar/moar_core_sources: No such file or directory
at gen/moar/stage2/NQPCORE.setting:733 (/pro/3gl/CPAN/rakudo/install/bin/../share/nqp/lib/NQPCORE.setting.moarvm:open)
20:29 skids left 20:30 lizmat_ joined 20:33 pamplemousse__ joined, lizmat__ joined 20:34 lizmat left 20:35 lizmat_ left, lizmat__ is now known as lizmat 20:36 pamplemousse_ left 20:37 pamplemousse__ left 20:42 pamplemousse joined
Geth nqp: d849a0e217 | (Elizabeth Mattijsen)++ | docs/ops.markdown
Fix copy-pasto
20:42
rakudo: a32ad594fd | (Elizabeth Mattijsen)++ | lib/MoarVM/Profiler.pm6
Point to the documentation in the nqp repo
20:45
20:53 lucasb joined 20:54 skids joined
lizmat bisectable6: old=2019.03.1 new=HEAD use nqp; nqp::mvmstartprofile({:instrumented}); { for ^10000 { my $a = 42 } }; say nqp::hllize(nqp::mvmendprofile)[1]<call_graph><callees> 20:56
bisectable6 lizmat, On both starting points (old=2019.03.1 new=a32ad59) the exit code is 0 and the output is identical as well
lizmat, Output on both points: «(Any)␤»
lizmat bisectable6: use nqp; nqp::mvmstartprofile({:instrumented}); { for ^10000 { my $a = 42 } }; say nqp::hllize(nqp::mvmendprofile)[1]<call_graph><callees> 20:57
bisectable6 lizmat, Bisecting by output (old=2015.12 new=a32ad59) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/e2bf87d7c0c1d701a3...cbf358c12d
lizmat, (2018-09-15) github.com/rakudo/rakudo/commit/8f...b8fff905ae
lizmat bisectable6: use nqp; nqp::mvmstartprofile({:instrumented}); { for ^10000 { my $a = 42 } }; say nqp::hllize(nqp::mvmendprofile)[1]<call_graph>.keys 20:58
bisectable6 lizmat, Bisecting by output (old=2015.12 new=a32ad59) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/167de8025a5dda46e2...d7e1da9206
lizmat, (2018-09-15) github.com/rakudo/rakudo/commit/8f...b8fff905ae
lizmat bisectable6: use nqp; nqp::mvmstartprofile({:instrumented}); { for ^10000 { my $a = 42 } }; say nqp::hllize(nqp::mvmendprofile)[1]<call_graph>.sort.keys 20:59
bisectable6 lizmat, Bisecting by output (old=2015.12 new=a32ad59) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/a14db3c2e50ef61768...3c8ac622bd
lizmat, (2016-10-31) github.com/rakudo/rakudo/commit/d5...116e84f2d8
21:01 skids left 21:12 pamplemousse left 22:05 b2gills left, b2gills joined 22:18 leont left 22:30 MasterDuke joined, pamplemousse joined 22:33 MasterDuke left 22:42 pamplemousse left 23:52 lucasb left