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.
gfldex the new wordpress editor is actually quite nice for dealing with code 09:56
timotimo oh, that's a relief to hear 10:06
|Tux| Rakudo version 2018.12-190-g3d3578b60 - MoarVM version 2018.12-27-g9ce36b6a2
csv-ip5xs0.916 - 0.921
csv-ip5xs-206.777 - 6.978
csv-parser22.684 - 22.713
csv-test-xs-200.436 - 0.439
test6.961 - 7.491
test-t1.788 - 1.841
test-t --race0.845 - 0.853
test-t-2030.294 - 31.344
test-t-20 --race10.062 - 10.248
10:44
lizmat Files=1264, Tests=88013, 374 wallclock secs (19.98 usr 5.90 sys + 2666.50 cusr 223.69 csys = 2916.07 CPU) 11:20
Geth rakudo: c4723cbafa | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6
Tweaks on Parameter.new

  - added "exclude" parameter
   If set to a True value, then the parameter will be excluded from dispatch
   (aka, it will introduce a ";;" in the Signature of which the Parameter is
   to be a part)
... (5 more lines)
11:45
lucasb lizmat: Don't you think kebab-case looks better for those named parameters? :) $is-copy, :$is-rw, :$is-raw 11:57
lizmat yeah, was thinking about that.. 11:57
timotimo why not "offbYoNecAmelcAse"? 11:58
jnthn I think exclude isn't really clear what it's excluding it from. I'd probably just have a :multi-invocant that defaults to true and if you want to make it off you'd :!multi-invocant, which reads rather more nicely 11:59
lizmat tImotImo: not sure what you mean :-) 12:02
timotimo to make it more natural to people coming from other programming languages, maybe we can find out what "double semicolon" means in hebrew
lucasb haha, the PHP meme
lizmat meanwhile it seems I borked some nativecall tests :-(
lucasb ah, right, Paamayim Nekudotayim :) 12:04
timotimo well, that's double colon
lucasb I really thought this was the name of a person :)
timotimo class X::Steve is Exception { method message { "what kind of rapping name is steve" } }
Geth rakudo: e116f3adf7 | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6
More Parameter.new tweaks

  - kebab-case: is_copy -> is-copy, is_raw -> is-raw, is_rw -> is-rw
  - rename: exclude to multi-invocant and reverse the default
   use :!multi-invocant to *not* have the multi-invocant flag set
12:06
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Tweaks on Parameter.new 12:19
travis-ci.org/rakudo/rakudo/builds/478299585 github.com/rakudo/rakudo/compare/3...723cbafa91
lizmat yeah, working on that 12:20
Geth rakudo: 3b9fd81d16 | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6
Only set name if there is a name

Internals test for isnull_s.
12:27
lizmat fixes one part of the nativecall fail issue
jnthn m: my %h; %h<a>[0] = $(1,); my %h2 = %h.deepmap({ $_ }); %h2<a>[0] = $(2,) 12:32
camelia Cannot assign to a readonly variable or a value
in block <unit> at <tmp> line 1
jnthn Bug?
lizmat possibly, deepmap semantics are unclear to me 12:47
travis-ci Rakudo build failed. Elizabeth Mattijsen 'More Parameter.new tweaks 12:52
travis-ci.org/rakudo/rakudo/builds/478307092 github.com/rakudo/rakudo/compare/c...16f3adf7c6
lizmat yeah yeah :-) 12:52
lizmat is afraid she needs some more experienced NativeCall eyes on this 12:54
hmmm... looks like mixing in the "cpp-const" method into the Parameter nukes the $!nomimal_type and changes the $!flags 13:15
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Only set name if there is a name 13:16
travis-ci.org/rakudo/rakudo/builds/478315639 github.com/rakudo/rakudo/compare/e...9fd81d1675
timotimo anything to do with bootstrap issues perhaps? 13:16
lizmat where is "does" for instances handled anyway ? 13:18
doesn't look to be in src/core/traits
timotimo operators.pm? 13:19
pm6*
lizmat perhaps in the Bootstrap 13:20
timotimo operators.pm6 has an infix:does on Mu:D
lizmat check :-) was looking for trait_mod 13:21
timotimo ah
lizmat ah, I probably need to create a BUILD_LEAST_DERIVED as well for Parameter\ 13:22
timotimo it doesn't get one from Mu?
lizmat it probably does, but it's not doing the right thing, I think
it probably runs BUILD again 13:25
yup, providing an empty BUILD_LEAST_DERIVED fixes the problem 13:26
timotimo but what does it do wrong? %) 13:27
lizmat it runs BUILD again without any parameters, losing the type info
Geth rakudo: e463518924 | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6
Bypass standard build process for Parameter.new

  - by having its own .new, no longer need to worry about BUILDPLAN issues
  - now allows for mixing in roles into existing Parameter objects
  - fixes NativeCall breakage
13:47
lizmat lucasb: ^^
Geth rakudo: 50e1ec33b4 | (Elizabeth Mattijsen)++ | lib/NativeCall.pm6
Make some NativeCall data structures compile time
13:58
rakudo: 3eeb72762c | (Elizabeth Mattijsen)++ | lib/NativeCall.pm6
Move some constant return values to signature
14:04
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Bypass standard build process for Parameter.new 14:21
travis-ci.org/rakudo/rakudo/builds/478346976 github.com/rakudo/rakudo/compare/3...63518924cd
Geth rakudo: 9cd42b1f91 | (Elizabeth Mattijsen)++ | src/core/Signature.pm6
Concrete Signature objects can also have roles mixed in

Bypass normal object build logic, just as with Parameter
14:38
rakudo: 86557cfd2a | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6
Properly check for Parameter.default type of value

The $SIG_ELEM_DEFAULT_IS_LITERAL bit indicates whether a default value is a direct value, rather than a piece of code that needs to be executed.
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Move some constant return values to signature' 15:23
travis-ci.org/rakudo/rakudo/builds/478355133 github.com/rakudo/rakudo/compare/5...eb72762c67
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Properly check for Parameter.default type of value 15:33
travis-ci.org/rakudo/rakudo/builds/478370360 github.com/rakudo/rakudo/compare/3...557cfd2a6c
patrickb o/ 16:10
yoleaux 10 Jan 2019 21:48Z <timotimo> patrickb: that sounds great already! \o/
10 Jan 2019 22:39Z <jnthn> patrickb: No objections; I'd prefer that than to have things make an assumption that MoarVM is using libuv (there's no plans for it not to any time soon, but better to keep it as an impl detail)
patrickb I have PERL6_HOEME and NQP_HOME env vars working. :-) 16:12
PERL6LIB and -I do the same, right? 16:22
Now on to some testing. 16:26
lizmat .tell AlexDaniel added my changes to the ChangeLog Draft 16:43
yoleaux lizmat: I'll pass your message to AlexDaniel.
AlexDaniel . 16:44
yoleaux 16:43Z <lizmat> AlexDaniel: added my changes to the ChangeLog Draft
AlexDaniel releasable6: status
releasable6 AlexDaniel, Next release in ≈8 days and ≈2 hours. 4 blockers. 98 out of 198 commits logged (⚠ 1 warnings)
AlexDaniel, Details: gist.github.com/745267d0d17cd0062d...765a0e8eef
AlexDaniel lizmat: Thank you!
Geth nqp/master: 8 commits pushed by (Paweł Murias)++
lizmat AlexDaniel: fixed the warning
Geth rakudo: ab8052dde0 | (Elizabeth Mattijsen)++ | 7 files
Make sure .^compose deconts before composing

Fixes R#2602
17:07
synopsebot R#2602 [open]: github.com/rakudo/rakudo/issues/2602 Smartmatch doesn't produce correct result on a run-time created class stored in a Scalar container
Geth rakudo: d6b1bd2ae4 | (Elizabeth Mattijsen)++ | src/core/Signature.pm6
Make Signature.new(arity => ) default to number of parameters

Seems to be more sensible than 0
17:35
cfa 👋🏽 17:40
it looks like URI::Encode tests are failing with rakudo HEAD 17:41
AlexDaniel ./bin/blin.p6 --old=2018.10 URI::Encode 17:42
cfa pastebin.com/czyDN9ts for the test log
(also, please let me know whether i should use #perl6 instead---i don't typically chat here) 17:43
lizmat cfa: here is fine :-) 17:43
AlexDaniel cfa: anywhere is fine, another good place is github.com/rakudo/rakudo/issues 17:45
lizmat AlexDaniel: should blin report soon ?
AlexDaniel yes 17:46
cfa sure, can report there too if necessary 17:46
cfa encountered on both linux and macos fwiw 17:46
patrickb I need to push two strings (PERL6_HOME and NQP_HOME) into perl6 land from C. Any pointers on how to do something like this? 17:47
lizmat looking at the test output, it looks like it is encoding alpha chars as wel
lizmat patrickb: you mean, you want them to wind up in %*ENV ? 17:48
cfa lizmat: yeah 17:50
everything seems to be escaped/encoded
patrickb No. I'm currently working on the C based runner to replace our current bash/bat based runners. I want it to be relocatable. I do have valid paths on the C side before even having stated up the VM. But I have no idea how to make them available from within the VM (perl6 land that is).
cfa lizmat: oh, and i should mention that the same test suit passes with 2018.12
lizmat cfa: noted
AlexDaniel cfa: that's fine, blin is already bisecting :)
lizmat patrickb: feels more like a question on the #moarvm channel
patrickb true... 17:51
will go there
Thanks anyways!
AlexDaniel it is github.com/rakudo/rakudo/commit/54...6f7b736104 17:53
lizmat, cfa: ↑
possibly a dup of R#2601 ?
synopsebot R#2601 [open]: github.com/rakudo/rakudo/issues/2601 [regression][⚠ blocker ⚠] Scope flattening causes inner scope to lose value of topic variable
lizmat that would be: more like jnthn ^^^ :-) 17:54
yeah, probably
AlexDaniel cfa: leave a comment there, maybe? :)
cfa on the commit itself?
AlexDaniel no, on github.com/rakudo/rakudo/issues/2601
cfa oh, derp 17:55
missed your second link
AlexDaniel hmm, I wonder what is causing it 17:56
cfa: a golf of the issue can help, I think 17:57
lizmat I think it decided too quickly it can merge blocks, and therefore lose significantly different $_'s
cfa AlexDaniel: yeah, i'll take a look inside at the tests 17:58
AlexDaniel yes, but where exactly? The ticket is about `{ } for …` but no such construct in the source of the module
cfa okay, here's what's happening in the encoding module: 18:06
my $rx = rx/<[a..z]>/; 'abc'.comb.map({ if $rx { 'yes' } else { 'no' } });
that's (no no no) in HEAD, (yes yes yes) in 2018.12
m: my $rx = rx/<[a..z]>/; 'abc'.comb.map({ if $rx { 'yes' } else { 'no' } }); 18:07
camelia ( no output )
cfa m: my $rx = rx/<[a..z]>/; 'abc'.comb.map({ if $rx { 'yes' } else { 'no' } }).say;
camelia (no no no)
AlexDaniel c: 2018.12,HEAD my $rr = rx/<[bc]>/; say "abcd".comb.map({ so $rr }) 18:09
committable6 AlexDaniel, ¦2018.12: «(False True True False)␤» ¦HEAD(d6b1bd2): «(False False False False)␤»
AlexDaniel c: 2018.12,541a4f1628e^,541a4f1628e,HEAD my $rr = rx/<[bc]>/; say "abcd".comb.map({ so $rr })
committable6 AlexDaniel, ¦2018.12: «(False True True False)␤» ¦541a4f1628e^,541a4f1,HEAD(d6b1bd2): «(False False False False)␤»
AlexDaniel huh? why is it saying that on 541a4f1628e^ it's already bad 18:10
bisect: old=2018.12 my $rr = rx/<[bc]>/; say "abcd".comb.map({ so $rr })
bisectable6 AlexDaniel, Bisecting by output (old=2018.12 new=d6b1bd2) because on both starting points the exit code is 0
AlexDaniel, bisect log: gist.github.com/f49870d5058850c11b...61957a6766 18:11
AlexDaniel, (2019-01-03) github.com/rakudo/rakudo/commit/eb...2c4dbcd9b2
AlexDaniel c: 2018.12,eb3917c260bc^,eb3917c260bc,HEAD my $rr = rx/<[bc]>/; say "abcd".comb.map({ so $rr })
committable6 AlexDaniel, ¦2018.12,eb3917c260bc^: «(False True True False)␤» ¦eb3917c,HEAD(d6b1bd2): «(False False False False)␤»
patrickb I think I need to do some path handling in NQP (dirname, add, ...). Is there any documentation on what is available in NQP? 18:13
AlexDaniel patrickb: have you seen github.com/perl6/nqp/blob/master/d...ut-opcodes ? 18:14
that's not exactly what you're asking though :)
patrickb But might be a start. Thanks!
AlexDaniel cfa: so it's jnthn's work for sure, but I'm a bit surprised that the whole module bisected to 541a4f1628e but that snippet bisected to an earlier commit eb3917c260b 18:17
cfa AlexDaniel: interesting 18:22
hopefully that snippet is small enough; i left the conditional in there since there was talk of scoping issues with 4_ 18:23
er, $_
but it seems so exhibits the same error
AlexDaniel c: 541a4f1628e^,541a4f1628e gist.github.com/AlexDaniel/158721b...273fca02ae 18:28
committable6 AlexDaniel, gist.github.com/e35557825aabeffd19...b18c5a28e5
AlexDaniel c: eb3917c260b^,eb3917c260b gist.github.com/AlexDaniel/158721b...273fca02ae 18:28
committable6 AlexDaniel, gist.github.com/98ce16752c6ffe021a...1cb7670fda
AlexDaniel isn't it fun?
cfa :)
back in a bit, meetings
AlexDaniel it seems like the golf is affected by eb3917c260b, but the same commit doesn't break the module itself 18:29
I'll leave a comment on that ticket 18:30
cfa tx
AlexDaniel c: 2018.12,eb3917c260bc^,eb3917c260bc,541a4f1628^,541a4f1628,HEAD my $rx = rx/<[a..z]>/; 'abc'.comb.map({ if $rx { 'yes' } else { 'no' } }).say; 18:35
committable6 AlexDaniel, ¦2018.12,eb3917c260bc^,eb3917c,541a4f1628^: «(yes yes yes)␤» ¦541a4f1,HEAD(d6b1bd2): «(no no no)␤»
AlexDaniel cfa: ah, your golf is a bit better 18:36
cfa AlexDaniel: interesting; thanks for updating that issue 19:01
patrickb .ping nine 20:01
yoleaux There is no ping command; nor can this be construed as a response.
patrickb ping nine
patrickb I now have implemented some logic to determine the paths to /share/perl6/ and /share/nqp/ at runtime. They are required in the ModuleLoader (to determine the search paths, I think this happens very early on) and in RepositoryRegistry (setting the repository locations). Now I don't want to copy that logic. Where would be a good place/time to do them? Where would I stash the results? 20:09
patrickb I somehow got it to work by putting the code at the top in main.nqp (that's about as early as possible :-P) and using bindhllsym. 20:54
japhb patrickb: Does it slow down startup measurably? We'd like to avoid significant extra startup work where we can. That said, maybe take a look at rakudo/src/core/VM.pm6 ? 21:24
patrickb I haven't measured yet. But I guess it's a price we have to pay. 21:25
japhb patrickb: I meant calculating it twice, as opposed to calculating once in the VM and lifting the result up the stack as VM.pm6 does. 21:29
Geth rakudo: d8b7fabe11 | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6
Fix Parameter.perl for slurpy parameters
23:47