Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_logs/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by AlexDaniel on 12 June 2018.
MasterDuke .ask timotimo can you think of a reason a profile just wouldn't get written? i'm attempting to --profile-compile the rakudo build and it takes a long time (~16m) and finishes without any sort of error, but it never even starts the 'Writing profiler output...' stage 02:40
yoleaux MasterDuke: I'll pass your message to timotimo.
lizmat MasterDuke: fwiw, I've been never been able to do that 02:47
MasterDuke lizmat: i was last able to in september of last year 02:48
i did it for a couple release in a row 2016.12 - 2017.09. but then it stopped working, with various different errors 02:50
fewer errors now, but still no profile
lizmat you were luckier than me 03:25
MasterDuke: BTW, I forgot to explicitely mention your commit bit in the last P6W
it fell through the cracks :-( 03:26
will do it in the next!
MasterDuke i had to use a (free) google vm with the ram increased a lot 03:28
lizmat: no worries 03:30
lizmat hmmmm 04:28
so I just created a new dir with "mi6 new", and all of a sudden the dir contains a subdir "inst#/Users/liz/.perl6/precomp/" 04:29
I guess that's mi6 not handling the home directory spec correctly ? 04:30
or is this a more general artefact ? 04:44
this feels like a potential blocker ?
geekosaur suspect that is a recent change; [20 19:44:22] <Geth> ¦ rakudo: dcd5259a87 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | src/core/CompUnit/RepositoryRegistry.pm6 05:02
samcv MoarVM 2018.06 has now been released 06:09
.tar.gz has also been uploaded as well 06:10
samcv AlexDaniel 06:16
AlexDaniel samcv: yay, thanks 11:43
samcv++
lizmat: oh… huh 11:50
hoelzro: ping ↑
lizmat: can you ticket that? 11:52
hoelzro AlexDaniel: pong 13:17
yeah, that definitely looks related to that change I made =/
AlexDaniel hoelzro: github.com/rakudo/rakudo/pull/1934...-399096218 13:22
hoelzro ah ha 13:23
ok, I'll fix that up real quick
Geth rakudo: cf10780daa | (Rob Hoelz)++ | src/core/CompUnit/RepositoryRegistry.pm6
Use HOME path for CURLI prefix

  ...rather than a "inst#$HOME/.perl6" spec
13:53
hoelzro AlexDaniel: done
lizmat: could you pull the latest and try that mi6 command again, please? 13:54
hoelzro leaves for a bit to walk the dog
AlexDaniel hoelzro++
Geth roast: 9da44bb269 | (Jonathan Worthington)++ | S06-traits/is-copy.t
Test to cover `is copy` in a sub-signature

Got regressed during my Scalar container refactors, but no spectest caught the problem. Therefore, adding one.
13:58
rakudo/rescalar: 68efe75203 | (Jonathan Worthington)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp
Bring a comment up to date with recent changes
14:20
rakudo/rescalar: 70bad89158 | (Jonathan Worthington)++ | src/Perl6/World.nqp
Fix regression in `is copy` in subsignatures

At least, that's what it fixes on the MoarVM backend. For JVM, it probably fixes the much more general `is copy` regression that was observed there.
lizmat hoelzro: yup, that seems to have fixed it! 15:01
AlexDaniel awesome 15:15
Geth rakudo/release/2018.06: d06e70c3de | (Rob Hoelz)++ (committed by Aleks-Daniel Jakimenko-Aleksejev) | src/core/CompUnit/RepositoryRegistry.pm6
Use HOME path for CURLI prefix

  ...rather than a "inst#$HOME/.perl6" spec
15:17
nqp: 62ba16f6cf | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
Add a wantdecont op

Which compiles its child with the want-decont flag set, thus giving the code-gen a hint it may not be able to otherwise figure out.
15:33
Geth rakudo/rescalar: b506292205 | (Jonathan Worthington)++ | src/Perl6/Actions.nqp
Add back compiling return value with want-decont

Which can lead to significantly better code quality in cases where the thing being returned might otherwise compile into a lexical reference.
15:35
hoelzro AlexDaniel: btw, should I have not pushed to master? 15:55
AlexDaniel hoelzro: no, it's ok. So you pushed to master and I cherry-picked into the release branch, no problem with that. If you pushed to the release branch, I would've merged the release branch into master instead, which is arguabbly a tiny bit better but doesn't really matter that much (in that case there's only one commit doing the change + merge, but cherry-picking results in two different commits) 16:04
Geth rakudo/rescalar: ef712dcb12 | (Jonathan Worthington)++ | 2 files
Introduce nqp::p6scalarwithvalue

Which saves the assignment of the default value when we're only going to immediately replace it anyway.
16:24
Geth rakudo/rescalar: 43680f32ce | (Jonathan Worthington)++ | src/Perl6/Actions.nqp
Make sure p6scalarfromvalue will decont
17:22
rakudo/rescalar: db7a77a1d7 | (Jonathan Worthington)++ | src/core/Array.pm6
Further usage of p6scalarwithvalue in Array

Will later do some further audit of the codebase for places where we can also use this.
Geth nqp/truffle: 1d5e31c9fa | (Paweł Murias)++ | 4 files
[truffle] Call executeString when expecting an str
18:41
nqp/truffle: 2ffd9144c1 | (Paweł Murias)++ | 21 files
[truffle] Calling simplest code-refs works

  ./nqp-j nqp-truffle.nqp -e '(sub () {nqp::say("Hello World")})()' works
nqp/truffle: ae931c0610 | (Paweł Murias)++ | README.pod
[truffle] Add some helpfull links to learning about Truffle
19:01
nqp/truffle: 5fe4c8d99b | (Paweł Murias)++ | README.pod
[truffle] Describe how stuff is compiled
19:09
pmurias found out that the truffle backend had a first contributor 22 days ago and he didn't notice :( 19:11
Geth roast: cb4945616d | (Will "Coke" Coleda)++ | S05-capture/match-object.t
tie back to RT
19:35
Geth rakudo/release/2018.06: cccf3c7200 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Log all changes (+ announcement)

Deliberately not logged: 38a9204a c23ee248 16d3d6f6 b0890f21 26f00334 4bbb87f5 27e8dab9 8a62e5e0 91ae5efc caf0f568 01a37364 b0a54f92 7183ac10 af645c9f 2234b61d 398c270e c5d14062 fbdfe8c8 61ca55d8 6648e0d6 0180dfa6 847d3d60 154d9855 0666f6a8 ee48f191 4b28f2cd c6a61f56 65dccd8d bdbfee55 6663a6d4 74067127
23:05
rakudo/release/2018.06: a3f07d4f45 | (Aleks-Daniel Jakimenko-Aleksejev)++ | docs/release_guide.pod
Actual date, claim next release
AlexDaniel R#1946 23:31
synopsebot_ R#1946 [open]: github.com/rakudo/rakudo/issues/1946 %(), @(), $() are evil/weird
AlexDaniel how come %() isn't just an empty hash? 23:32
“Use %() as a shorthand for %($/) to flatten as a hash”
why
greppable6: \%\(\) 23:33
greppable6 AlexDaniel, Sorry kid, that's not my department.
jnthn I think that's been around in Perl 6 longer than I have, so would probably have to ask TimToady why :) 23:33
AlexDaniel greppable6: \%\(\) 23:34
greppable6 AlexDaniel, No! It wasn't me! It was the one-armed man! Backtrace: gist.github.com/75a25d6cd2a1f2082b...17bdbac81f
AlexDaniel ah come on
perlpilot seems like %() and @() being lazy ways at $/ should be excised. IMHO
jnthn m: 'blah blah' ~~ /$<foo>=\w+ . $<bar>=\w+/; say %$/ 23:35
camelia Map.new((bar => 「blah」, foo => 「blah」))
jnthn There's already a totally regular 3-char way to two out of the 3
(%() => %$/ and @() => @$/) 23:36
So in terms of brevity there's no really argument for those two 23:37
perlpilot Then $() should go too because it would be the odd one out :)
jnthn As for $() I can't right off remember a time when I wanted a shorter way to write $/.ast // ~$/ :)
Generally, either I expected an AST or I wanted the matched string. 23:38
So I'm not inclined to consider $() very useful either 23:39
I quite happily use {...} for hashes in a lot of cases, always write {] over %() for the empty hash literal, and can't imagine myself doing otherwise. But I understand others prefer %(...) consistently, and letting %() mean the empty hash rather than %$/ to help with that feels like the better use of that syntax. 23:42
AlexDaniel how to change that though? If anybody is using %() on purpose right now, changing the behavior is possibly not the best idea
deprecate in v6.d and reallow in v6.e? Complicated…
jnthn It'll take years.
But yeah, something like that
jnthn It's a syntactic construct, so it's easy to switch over the current language version in the compiler. 23:43
AlexDaniel so {} is not an empty block but an empty hash, and %() is not an empty hash but %$/. Fascinating 23:45
jnthn Well, {...} never claimed to always be a block; it's long been (and always will be) both a way to write a hash and a way to write a block. 23:49
perlpilot AlexDaniel, an empty block looks like this: {;}
jnthn I'd prefer %() to mean an empty hash, though :)
AlexDaniel perlpilot: that's not empty, it has a semicolon in it!
:)
jnthn Wanting an empty hash is rather more common than wanting an empty block, so the {} case isn't much to worry about, IMO 23:50
AlexDaniel not true
I flipped the table a few times because of this :)
one example is in sake files
jnthn I like the name of that, because "for goodness sake" is what I say half the time when doing anything with build systems anyway :P 23:51
AlexDaniel when you'd write something like:
task ‘foo’ => <bar baz>, {;}
jnthn Why doesn't it just let you know pass a block there?
s/know//
oops 23:52
s/know/not/
But yeah, if there's an API that is designed to want empty blocks, I guess it can bite.
geekosaur wonders how long before someone comes up with a slang including "pass" >.> 23:53
AlexDaniel it does fail with “Cannot resolve caller task(Str, Hash); none of these signatures match:”
but my point is that wanting an empty block is fairly common 23:54
the block probably has to be optional there, so that you can literally pass nothing
well ok, wanting an empty hash is probably *more* common :) 23:55
perlpilot probably? :)
AlexDaniel quotable6: Beware_of_empty 23:56
quotable6 AlexDaniel, OK, working on it! This may take up to three minutes (4582161 messages to process)
jnthn perlpilot: Certainly in my experience, but I never used sake :) 23:57
quotable6 AlexDaniel, Found nothing!
AlexDaniel quotable6: ‘empty block’ 23:57
quotable6 AlexDaniel, OK, working on it! This may take up to three minutes (4582161 messages to process)
AlexDaniel, Sorry kid, that's not my department. 23:58
AlexDaniel this is really weird, some things are not working until I restart the bots… 23:59
AlexDaniel quotable6: ‘empty block’ 23:59
quotable6 AlexDaniel, OK, working on it! This may take up to three minutes (4582161 messages to process)