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.
02:17 epony left 04:02 epony joined 04:08 gugod left
Kaiepi why does $*W.add_object_if_no_sc get called for enum values, but not the enum itself? 05:24
lizmat Files=1275, Tests=108136, 206 wallclock secs (26.53 usr 7.26 sys + 2876.03 cusr 278.92 csys = 3188.74 CPU) 05:41
06:07 zostay_ joined 06:14 ZombieByte joined 06:15 zostay left, tailgate left, zostay_ is now known as zostay 06:22 tailgate joined
Kaiepi m: sub commit-a-sin { my $curlex := $*W.pop_lexpad; $*W.install_lexical_symbol: $*W.cur_lexpad, 'lmao', 'lmao'; $*W.push_lexpad: $curlex }; BEGIN commit-a-sin 06:50
camelia ( no output )
Kaiepi m: sub commit-a-sin { my $curlex := $*W.pop_lexpad; $*W.install_lexical_symbol: $*W.cur_lexpad, 'lmao', 'lmao'; $*W.push_lexpad: $curlex }; { BEGIN commit-a-sin }
camelia ===SORRY!===
Internal error: find_var_decl could not find $_
Kaiepi is this a bug or am i just doing something i'm really not supposed to be doing?
[Tux] just spotted yet another advantage of kebab-style: the '-' never disappears, where the '_' will disappear on *some* fonts* in *some* editors under *some* conditions 07:03
(I just had to use a graphic editor on some old linux box over ssh, with antialiassing and a weird font and I did not understand the code at all. All syntax errors to my eyes till I noticed that all '_' showed as spaces. 07:04
Rakudo version 2019.03.1-648-g865238697 - MoarVM version 2019.05-91-g81e5cbf2a
csv-ip5xs0.695 - 0.731
csv-ip5xs-205.426 - 5.604
csv-parser24.314 - 24.665
csv-test-xs-200.431 - 0.439
test6.828 - 7.221
test-t1.719 - 1.734
test-t --race0.830 - 0.839
test-t-2029.279 - 30.361
test-t-20 --race9.578 - 11.079
07:14
07:15 patrickb joined 07:59 epony left 08:21 robertle_ joined 08:23 epony joined 08:43 squashable6 left 08:47 squashable6 joined
robertle_ after reading perl6.online/2019/06/24/102-insert...in-perl-6/ I am wondering what the time complexity of splice() itself is. I am experimenting, but am getting pretty erratic results, I guess optimization or so wreaks havoc on my tests. I guess it's going to be pretty linear with the size of the array in the general case? 08:52
10:38 BeastieBot joined 11:44 brrt joined
brrt .seen jmerello 11:44
yoleaux I haven't seen jmerello around.
tobs brrt: do you mean 11:55
.seen jmerelo
yoleaux I saw jmerelo 23 Jun 2019 05:30Z in #perl6: <jmerelo> releasable6: status
Kaiepi <Kaiepi> is this a bug or am i just doing something i'm really not supposed to be doing? 11:56
never mind i was doing it wrong
m: sub commit-a-sin { $*W.install_lexical_symbol: $*W.context.blocks[+$*W.context.blocks - 2], 'lmao', 'lmao' }; { BEGIN commit-a-sin }; say lmao 11:57
camelia lmao
Kaiepi thought $*W.push_lexpad took an ast as an argument, it doesn't 12:02
12:30 lucasb joined
brrt thanks tobs 12:37
12:57 pamplemousse joined 13:02 ggoebel left 13:04 pamplemousse left 13:05 pamplemousse joined 13:23 brrt left
lizmat reportable6: 2019-06-17T12:00:00 2019-06-24T00:00:00Z 13:27
reportable6 lizmat, OK, working on it! This may take up to 40 seconds
lizmat, gist.github.com/3062fbed3e6f47e056...6ccfc182f7 13:28
[Coke] team: I hope everyone is having a great day. 13:44
kawaii You too! 13:45
Geth rakudo/master: 6 commits pushed by (Vadim Belman)++ 13:48
lizmat notable6: weekly 13:57
notable6 lizmat, 13 notes: gist.github.com/6e3e47ed0e24d0e710...9865f4c482
lizmat notable6: weekly reset 14:00
notable6 lizmat, Moved existing notes to ā€œweekly_2019-06-24T14:00:41Zā€
14:03 ggoebel joined
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/06/24/...-toolsets/ 14:24
Geth rakudo: vrurg++ created pull request #3019:
Typecheck against nqp::what() not the object itself.
14:28
vrurg lizmat++ 14:29
Geth rakudo: f62cf1bf4f | (Vadim Belman)++ | src/Perl6/World.nqp
Typecheck against nqp::what() not the object itself.
14:36
rakudo: 577265d7ca | niner++ (committed using GitHub Web editor) | src/Perl6/World.nqp
Merge pull request #3019 from vrurg/rakudo_3012

Typecheck against nqp::what() not the object itself.
14:57 ufobat joined 15:13 robertle_ left 15:18 patrickb left 15:46 pamplemousse left, pamplemousse joined 16:11 gugod joined
Kaiepi m: { say MY.WHO.WHICH } 16:14
camelia Cannot call method 'WHICH' on a null object
in block <unit> at <tmp> line 1
Kaiepi m: { say MY.WHO.Map::WHICH } 16:15
camelia Cannot call method 'WHICH' on a null object
in block <unit> at <tmp> line 1
Kaiepi the wrong dispatchee is indeed getting called
PseudoStash.EXISTS-KEY isn't a multi and has this comment: # for some reason we get a ambiguous dispatch error by making this a multi
should PseudoStash.WHICH also not be a multi or would it be a better idea to look deeper into why the error's happening with both these methods? 16:16
16:17 vrurg left
Kaiepi ...ohhh, i see what the problem is lmao 16:47
>method WHICH(PseudoStash:D --> ObjAt:D) { self.Mu::WHICH }
>not method WHICH(PseudoStash:D: --> ObjAt:D) { self.Mu::WHICH }
Geth rakudo: Kaiepi++ created pull request #3020:
Fix PseudoStash.WHICH's signature
16:54
rakudo: 66d92c6219 | (Ben Davies)++ | src/core/PseudoStash.pm6
Fix PseudoStash.WHICH's signature

It included PseudoStash:D as an argument when it's supposed to be the type of the object itself.
Fixes #3018
17:05
synopsebot_ RAKUDO#3018 [closed]: github.com/rakudo/rakudo/issues/3018 Regression in PseudoStash.WHICH
Geth rakudo: e35180dc31 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core/PseudoStash.pm6
Merge pull request #3020 from Kaiepi/pseudostash-which

Fix PseudoStash.WHICH's signature
17:18 pamplemousse left 17:19 pamplemousse joined 17:20 ggoebel left, BeastieBot left 17:29 BeastieBot joined 17:36 ggoebel joined
dogbert17 lizmat: stupid signature question, why isn't this signature Bag:D: ? github.com/rakudo/rakudo/blob/mast...ag.pm6#L71 17:44
17:56 pamplemousse left 18:21 Kaiepi left 18:22 Kaiepi joined, eponym joined 18:23 eponym left 18:42 ZombieByte left
AlexDaniel kawaii: mm, the changelog needs some doing :) 19:00
timotimo dogbert17: yeah, that looks like it wants : there as well 19:02
and MaxHash, too, of course, but i'm sure you already saw that 19:07
lizmat m: dd <a b c>.Bag.BagHash 19:25
camelia ("a"=>1,"c"=>1,"b"=>1).BagHash
lizmat hmmm... how does that work then ?
I guess it took the Any.BagHash variant 19:26
timotimo m: say <a b c>.Bag.^lookup("BagHash").filename
camelia No such method 'filename' for invocant of type 'Method+{is-nodal}'
in block <unit> at <tmp> line 1
timotimo m: say <a b c>.Bag.^lookup("BagHash").file
camelia SETTING::src/core/Any.pm6
timotimo m: say <a b c>.Bag.^lookup("BagHash").line
camelia 454
lizmat yep, that's the one 19:27
dogbert17 dunno, but I'm no signature expert. I did get inspired by kaiepi++ PR above and started to look for suspects
timotimo oh, that's the proto
m: say <a b c>.Bag.^can("BagHash", \())
camelia Too many positionals passed; expected 3 arguments but got 4
in block <unit> at <tmp> line 1
timotimo m: say <a b c>.Bag.^cando("BagHash", \())
camelia No such method 'cando' for invocant of type 'Perl6::Metamodel::ClassHOW+{<anon>}+{<anon>}'. Did you mean 'can'?
in block <unit> at <tmp> line 1
timotimo how do you spell that again ...
lizmat dogbert17: already testing with 3 places fixed 19:28
dogbert17 did you make a fix in Set.pm6 as well?
Geth rakudo: 8969399b31 | (Elizabeth Mattijsen)++ | 2 files
Add a few missing colons, spotted by dogbert++

There were no issues because of this, as the Any variant did the right thing, albeit much less efficiently
lizmat dogbert17: where in Set ? 19:29
dogbert17 src/core/Set.pm6: multi method grabpairs(Set:D $count?) {
lizmat good catch!
dogbert17 that's all I found but my search was a bit sloppy so there might possibly be more 19:30
lizmat m: say <a b c>.Set.grabpairs
camelia Parameter '$count' of routine 'grabpairs' must be an object instance of type 'Set', not a type object of type 'Set'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
lizmat it dies, which it should :-) 19:31
$ 6 'say <a b c>.Set.grabpairs' 19:32
Cannot call 'grabpairs' on an immutable 'Set'
but that is better ^^ :-)
dogbert17 Iaha
*aha
Geth rakudo: 9b639961c0 | (Elizabeth Mattijsen)++ | src/core/Set.pm6
Another missing colon, spotted by dogbert++
19:33
dogbert17 perhaps AlexDaniel has a bot which can check the Rakudop codebase :)
AlexDaniel not yet :) 19:34
dogbert17: git grep?
:)
dogbert17 I used normal grep which might not have been optimal 19:35
kawaii AlexDaniel: yes I noticed, pretty big gap so lots to do, probably make a start on that tomorrow with your guidance? Not 100% sure which commits deserve their own changelog entries and such - will need to run those by you
I gather that there is a tool which can do some of this work for me IIRC
AlexDaniel kawaii: I usually start by removing some junk ā€“ reverted commits, merge commits, other stuff 19:36
commits that touch comments only, whitespace, tests, etc.
then I move the stuff that needs to be changelogged into the categories 19:37
and finally I reword the commit messages so that they're consistent
usually all that is done in like 5 passes or soā€¦ I'm really slow at it
would've been easier if I was a native speaker :) 19:38
lizmat dogbert17: thanks for the spots! I haven't been able to spot any others 19:44
dogbert17 thanks for looking, perhaps we got all of them 19:45
lizmat hopefully, yes :-)
dogbert17 btw, is timotimo still lurking around :) 19:46
lizmat he said he was going to afk for a bit
Kaiepi m: say Mix.new('a' => 1).^lookup('MixHash').file 19:47
camelia SETTING::src/core/Any.pm6
Kaiepi another one
dogbert17 ah, I'll catch him a bit later then 19:49
lizmat Kaiepi: I think I just fixed that one 19:50
Kaiepi oh
i just ran egrep on src/core and am going through all the files for any missing colons 19:51
lizmat did you just do git pull ?
Kaiepi not since my commit was merged
lizmat then you should :-) 19:52
Kaiepi doesn't look like there's anything apart from that that's the same kind of error 19:56
there is this though 19:57
m: IterationBuffer.push: 1
camelia (signal SEGV)
Kaiepi m: IterationBuffer.elems
camelia elems requires a concrete object (got a IterationBuffer type object instead)
in block <unit> at <tmp> line 1
lizmat interesting...
Kaiepi m: IterationBuffer.append: IterationBuffer.new
camelia elems requires a concrete object (got a IterationBuffer type object instead)
in block <unit> at <tmp> line 1
Kaiepi they're missing an IterationBuffer:D: at the beginning
lizmat m: class A is repr("VMArray") { }.push: 1 19:58
camelia Cannot modify an immutable 'A' type object
in block <unit> at <tmp> line 1
lizmat m: (class A is repr("VMArray") { }).push: 1 19:59
camelia Cannot modify an immutable 'A' type object
in block <unit> at <tmp> line 1
lizmat hhmmm
Kaiepi: if you're to add signatures / multis there, you should keep track that it doesn't affect performance too much :-) 20:00
Kaiepi m: use nqp; nqp::push(class A is repr('VMArray') {}, 1)
camelia (signal SEGV)
kawaii AlexDaniel: we should probably pick a commit to pin 2019.06 to then, as people will continue to commit well past us prepping the release
lizmat "This type is engineered for performance over friendliness, and should not be encountered in normal use of Perl 6. Do NOT add any checks and validation to methods in here. They need to remain trivially inlineable for performance reasons. 20:01
AlexDaniel you mean start a release branch
not really until most of the blockers are fixed
MasterDuke lizmat: hm, but maybe we can still prevent a segv? 20:02
Kaiepi how can i test the performance of iterationbuffer? if changing the signature reduces it, i could see if i could make a fix for nqp::push in moarvm 20:03
doubt there'd be much more to it than an IS_CONCRETE check or something along those lines 20:04
MasterDuke a backtrace of that segv if anyone is interested gist.github.com/MasterDuke17/6a369...e611286c1e
lizmat Kaiepi: whatever is done, I think jnthn would need to greenlight it
Kaiepi bastille% perl6 -Mnqp -e 'nqp::push(IterationBuffer, 1)' 20:08
MVMArray: push expected a concrete object with MVMArray representation
in block <unit> at -e line 1
yeah it's just an IS_CONCRETE check
lizmat Kaiepi: so how come it segfaults in Perl 6, but not in nqp ?
Geth roast: a178a561aa | (Elizabeth Mattijsen)++ | 6 files
Add tests for inter-QuantHash coercions
20:09
Kaiepi wdym lizmat? it doesn't 20:11
bastille% nqp -e 'nqp::push(NQPArray, 1)'
zsh: bus error (core dumped) nqp -e 'nqp::push(NQPArray, 1)'
oh wait
lizmat m: IterationBuffer.push: 1 20:13
camelia (signal SEGV)
Kaiepi thought it didn't have the REPR for a sec, but it does
so it doesn't work in nqp either
m: nqp::push(class :: {}, 1)
camelia 5===SORRY!5=== Error while compiling <tmp>
Could not find nqp::push, did you forget 'use nqp;' ?
at <tmp>:1
------> 3nqp::push(class :: {}, 1)7ā5<EOL>
Kaiepi m: use nqp; nqp::push(class :: {}, 1)
camelia This type (<anon|1>) does not support positional operations
in block <unit> at <tmp> line 1
Kaiepi hm there's more than just nqp::push that could use a check like that 20:19
m: nqp::atpos(IterationBuffer, 0) 20:20
camelia 5===SORRY!5=== Error while compiling <tmp>
Could not find nqp::atpos, did you forget 'use nqp;' ?
at <tmp>:1
------> 3nqp::atpos(IterationBuffer, 0)7ā5<EOL>
Kaiepi m: use nqp; nqp::atpos(IterationBuffer, 0)
camelia ( no output )
Kaiepi or not
ok good thing i checked how/whether the other ops check it or not, i wrote it the wrong way originally 20:25
lizmat m: use nqp; nqp::say(~nqp::atpos(IterationBuffer, 0))
camelia Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu)
in block <unit> at <tmp> line 1
lizmat m: use nqp; nqp::say(nqp::atpos(IterationBuffer, 0))
camelia Cannot unbox a type object (VMNull) to a str.
in block <unit> at <tmp> line 1
lizmat wonders what ASAN would have to say to that ^^^ 20:26
m: use nqp; nqp::say(nqp::atpos(IterationBuffer, 1))
camelia Cannot unbox a type object (VMNull) to a str.
in block <unit> at <tmp> line 1
lizmat m: use nqp; nqp::atpos(IterationBuffer, 1)
camelia ( no output )
lizmat m: use nqp; nqp::atpos(IterationBuffer, 9999)
camelia ( no output )
lizmat yikes
Kaiepi m: use nqp; nqp::bindpos(IterationBuffer, 0, 1) 20:27
camelia (signal SEGV)
Kaiepi another one
lizmat, that just returns VMNull, it doesn't do anything scary 20:28
lizmat for *any* index value ? 20:29
Kaiepi if the object it's called on isn't concrete, yes 20:30
i'm more worried about this
m: nqp::atpos_i(IterationBuffer, 9999)
camelia 5===SORRY!5=== Error while compiling <tmp>
Could not find nqp::atpos_i, did you forget 'use nqp;' ?
at <tmp>:1
------> 3nqp::atpos_i(IterationBuffer, 9999)7ā5<EOL>
Kaiepi m: use nqp; nqp::atpos_i(IterationBuffer, 9999)
camelia MVMArray: atpos expected object register
in block <unit> at <tmp> line 1
Kaiepi ok good it doesn't do anything too bad, though it could use a clearer error message for this case 20:31
m: use nqp; nqp::pop(IterationBuffer) 20:33
camelia (signal SEGV)
Kaiepi m: use nqp; nqp::shift(IterationBuffer) 20:34
camelia (signal SEGV)
Kaiepi m: use nqp; nqp::unshift(IterationBuffer, 0)
camelia (signal SEGV)
Kaiepi ok this is bad 20:35
m: use nqp; nqp::splice(IterationBuffer, IterationBuffer, 0, 1)
camelia Unable to allocate an array of 18446744069414588416 elements
in block <unit> at <tmp> line 1
Kaiepi hm... adding concreteness checks to the array ops that were missing them causes some of feeds' spec tests to fail 21:07
btw what's the status on my feed parallelization pullreq? 21:10
lizmat Kaiepi: I thought that wasn't ready yet ? 21:15
Kaiepi i'm not entirely sure what needs to be done, i remember there was some disagreement over how to implement it or something 21:16
jnthn I thought I'd answered at least the lang design parts of the feed thing on problem-solving; if I missed something let me know what :) 21:21
yoleaux 23 Jun 2019 15:04Z <patrickb> jnthn: I think the install location of perl6.moarvm did not change. It was and is installed to ${RAKUDO_PREFIX}/share/perl6/runtime/perl6.moarvm. Do you still hit a problem with this?
Kaiepi oh, feed tests don't actually fail with my changes to moarvm, i just forgot to switch back to master after working on the feeds pullreq 21:27
Geth nqp: cc13c5ec77 | (Timo Paulssen)++ | src/vm/moar/HLL/Backend.nqp
make sure confprog with empty strings read ok
22:00
lizmat weekly: wakelift.de/2019/05/22/close-look-...-profiler/ 22:19
notable6 lizmat, Noted!
23:00 ggoebel left 23:53 ggoebel joined