[00:00] *** reportable6 left
[00:01] *** reportable6 joined
[01:10] *** evalable6 left
[01:10] *** linkable6 left
[01:11] *** evalable6 joined
[01:12] *** linkable6 joined
[04:45] *** squashable6 left
[04:45] *** linkable6 left
[04:45] *** nativecallable6 left
[04:45] *** notable6 left
[04:45] *** quotable6 left
[04:45] *** unicodable6 left
[04:45] *** reportable6 left
[04:45] *** bloatable6 left
[04:45] *** sourceable6 left
[04:45] *** greppable6 left
[04:45] *** bisectable6 left
[04:45] *** releasable6 left
[04:45] *** committable6 left
[04:45] *** statisfiable6 left
[04:45] *** benchable6 left
[04:45] *** evalable6 left
[04:45] *** tellable6 left
[04:45] *** coverable6 left
[04:45] *** shareable6 left
[04:45] *** statisfiable6 joined
[04:46] *** unicodable6 joined
[04:46] *** evalable6 joined
[04:46] *** linkable6 joined
[04:46] *** coverable6 joined
[04:46] *** committable6 joined
[04:46] *** squashable6 joined
[04:47] *** bisectable6 joined
[04:47] *** tellable6 joined
[04:47] *** shareable6 joined
[04:47] *** bloatable6 joined
[04:47] *** notable6 joined
[04:47] *** nativecallable6 joined
[04:47] *** reportable6 joined
[04:47] *** greppable6 joined
[04:47] *** benchable6 joined
[04:47] *** releasable6 joined
[04:48] *** quotable6 joined
[04:48] *** sourceable6 joined
[05:48] *** squashable6 left
[05:48] *** bisectable6 left
[05:48] *** linkable6 left
[05:48] *** bloatable6 left
[05:48] *** sourceable6 left
[05:48] *** releasable6 left
[05:48] *** quotable6 left
[05:48] *** evalable6 left
[05:48] *** greppable6 left
[05:48] *** benchable6 left
[05:48] *** unicodable6 left
[05:48] *** coverable6 left
[05:48] *** nativecallable6 left
[05:48] *** statisfiable6 left
[05:48] *** reportable6 left
[05:48] *** committable6 left
[05:48] *** notable6 left
[05:48] *** benchable6 joined
[05:49] *** reportable6 joined
[05:49] *** committable6 joined
[05:49] *** sourceable6 joined
[05:49] *** releasable6 joined
[05:50] *** bloatable6 joined
[05:50] *** squashable6 joined
[05:50] *** nativecallable6 joined
[05:50] *** statisfiable6 joined
[05:50] *** quotable6 joined
[05:50] *** notable6 joined
[05:50] *** unicodable6 joined
[05:51] *** greppable6 joined
[05:51] *** linkable6 joined
[05:51] *** bisectable6 joined
[05:51] *** evalable6 joined
[05:51] *** coverable6 joined
[06:00] *** reportable6 left
[06:01] *** reportable6 joined
[06:21] *** kjp left
[06:25] *** kjp joined
[07:13] *** kjp left
[07:13] *** kjp joined
[07:45] *** sena_kun joined
[08:45] *** linkable6 left
[08:45] *** evalable6 left
[08:48] *** linkable6 joined
[08:48] *** evalable6 joined
[09:41] <Geth> ¦ rakudo/main: 26d9a2ef9b | (Elizabeth Mattijsen)++ | 4 files

[09:41] <Geth> ¦ rakudo/main: RakuAST: add pod declarator support for parameters

[09:41] <Geth> ¦ rakudo/main: 

[09:41] <Geth> ¦ rakudo/main: Implemented at the RakuAST class level (deparsing, .raku + tests).

[09:41] <Geth> ¦ rakudo/main: This was rather more involved due to Raku's syntax, so this had to

[09:41] <Geth> ¦ rakudo/main: be hacked into the Signature deparsing.

[09:41] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/26d9a2ef9b

[09:41] <lizmat> I think I got all of the pod declarator cases covered now

[09:53] *** linkable6 left
[09:53] *** evalable6 left
[09:54] *** linkable6 joined
[09:54] *** evalable6 joined
[10:02] <nine> nqp::istype($!type.IMPL-TARGET-TYPE, RakuAST::Type::Definedness)

[10:02] <nine> There's a lot about types in a compiler...

[10:08] <lizmat> nine: you're saying I should check all classes doing RakuAST::Type::Definedness for declarator pod ?

[10:09] <nine> No, no, no, that's from my work on parameter checks

[10:09] <nine> I just found it funny how often the word "type" can fit into such little code :)

[10:16] <lizmat> typical  :-)

[10:35] <timo1> type, type, type, type, eggs, bacon, and type

[10:55] *** linkable6 left
[10:55] *** evalable6 left
[10:56] *** linkable6 joined
[10:57] *** evalable6 joined
[12:00] *** reportable6 left
[12:02] *** reportable6 joined
[12:45] <Geth> ¦ rakudo/main: cecba5a4c5 | (Elizabeth Mattijsen)++ | 5 files

[12:45] <Geth> ¦ rakudo/main: RakuAST: allow doc blocks in statement lists

[12:45] <Geth> ¦ rakudo/main: 

[12:45] <Geth> ¦ rakudo/main: It is now possible to put RakuAST::Doc::Blocks in statement lists,

[12:45] <Geth> ¦ rakudo/main: and still have them EVAL correctly, as if they're not there.  This

[12:45] <Geth> ¦ rakudo/main: is achieved by checking all of the statement list logic for doc blocks

[12:45] <Geth> ¦ rakudo/main: and omitting them for further handling.

[12:45] <Geth> ¦ rakudo/main: 

[12:45] <Geth> ¦ rakudo/main: <…commit message has 10 more lines…>

[12:45] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/cecba5a4c5

[13:52] *** evalable6 left
[13:52] *** bisectable6 left
[13:52] *** reportable6 left
[13:52] *** nativecallable6 left
[13:52] *** coverable6 left
[13:52] *** statisfiable6 left
[13:52] *** sourceable6 left
[13:52] *** squashable6 left
[13:52] *** releasable6 left
[13:52] *** committable6 left
[13:52] *** notable6 left
[13:52] *** shareable6 left
[13:52] *** bloatable6 left
[13:52] *** linkable6 left
[13:52] *** quotable6 left
[13:52] *** benchable6 left
[13:52] *** greppable6 left
[13:52] *** tellable6 left
[13:52] *** unicodable6 left
[13:52] *** committable6 joined
[13:52] *** squashable6 joined
[13:53] *** benchable6 joined
[13:53] *** unicodable6 joined
[13:53] *** greppable6 joined
[13:53] *** bloatable6 joined
[13:53] *** quotable6 joined
[13:53] *** coverable6 joined
[13:53] *** evalable6 joined
[13:53] *** bisectable6 joined
[13:54] *** statisfiable6 joined
[13:54] *** releasable6 joined
[13:54] *** nativecallable6 joined
[13:54] *** linkable6 joined
[13:54] *** shareable6 joined
[13:54] *** reportable6 joined
[13:54] *** sourceable6 joined
[13:55] *** tellable6 joined
[13:55] *** notable6 joined
[16:09] *** tellable6 left
[16:09] *** reportable6 left
[16:09] *** sourceable6 left
[16:09] *** unicodable6 left
[16:09] *** nativecallable6 left
[16:09] *** quotable6 left
[16:09] *** committable6 left
[16:09] *** shareable6 left
[16:09] *** squashable6 left
[16:09] *** bloatable6 left
[16:09] *** benchable6 left
[16:10] *** bloatable6 joined
[16:10] *** sourceable6 joined
[16:10] *** unicodable6 joined
[16:11] *** shareable6 joined
[16:11] *** tellable6 joined
[16:11] *** squashable6 joined
[16:11] *** reportable6 joined
[16:12] *** committable6 joined
[16:12] *** benchable6 joined
[16:12] *** quotable6 joined
[16:12] *** nativecallable6 joined
[16:38] <Geth> ¦ rakudo/main: e42ecff09f | (Elizabeth Mattijsen)++ | 5 files

[16:38] <Geth> ¦ rakudo/main: RakuAST: some class renaming

[16:38] <Geth> ¦ rakudo/main: 

[16:38] <Geth> ¦ rakudo/main: RakuAST::Doc::Block -> RakuAST::Doc::Formatted

[16:38] <Geth> ¦ rakudo/main: RakuAST::Doc::Basic -> RakuAST::Doc::Block

[16:38] <Geth> ¦ rakudo/main: 

[16:38] <Geth> ¦ rakudo/main: This makes more sense semantically.

[16:38] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/e42ecff09f

[16:51] <Geth> ¦ rakudo/main: 349050372f | (Elizabeth Mattijsen)++ | 6 files

[16:51] <Geth> ¦ rakudo/main: RakuAST: remove some trailing whitespace

[16:51] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/349050372f

[16:56] <nine> lizmat: main build seems broken: Could not build C3 linearization: ambiguous hierarchy

[16:56] <lizmat> run configure ?

[16:58] <nine> Ah, indeed!

[16:58] <lizmat> *phew*

[17:01] <Geth> ¦ rakudo/main: 4 commits pushed by (Stefan Seifert)++

[17:01] <Geth> ¦ rakudo/main: 1f149b1a45 | RakuAST: fix misparse of type smileys in declarations

[17:01] <Geth> ¦ rakudo/main: 0235a9be71 | RakuAST: port full param type check logic from old frontend

[17:01] <Geth> ¦ rakudo/main: f5dda722e8 | RakuAST: Fix captures or parameterization of types with smileys

[17:01] <Geth> ¦ rakudo/main: 7bcf8d1bd3 | RakuAST: fix sequencing of BEGIN and CHECK handling

[17:01] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/compare/349050372f62...7bcf8d1bd334

[17:11] <lizmat> 748!  :-)

[17:33] *** linkable6 left
[17:33] *** evalable6 left
[17:34] <Geth> ¦ rakudo/main: 83f2cb8f2b | (Elizabeth Mattijsen)++ | src/Raku/ast/statements.rakumod

[17:34] <Geth> ¦ rakudo/main: RakuAST: make setting up $!labels a bit more sane

[17:34] <Geth> ¦ rakudo/main: 

[17:34] <Geth> ¦ rakudo/main: Before, $!labels could be uninitialized, but then that would need to

[17:34] <Geth> ¦ rakudo/main: be checked in a lot of places.  Now, just put an nqp::list in there

[17:34] <Geth> ¦ rakudo/main: if nothing was specified yet.  In the end this should be at least

[17:34] <Geth> ¦ rakudo/main: neutral on number of allocations.

[17:34] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/83f2cb8f2b

[17:35] *** linkable6 joined
[17:35] *** evalable6 joined
[18:00] *** reportable6 left
[18:02] *** reportable6 joined
[18:05] <nine> nine@sphinx:~/rakudo (main =)> rakudo  -e 'multi rt107638(int $a) { "ok" }; multi rt107638(Str $a where 1) { }; rt107638(1)'

[18:05] <nine> nine@sphinx:~/rakudo (main =)> rakudo --optimize=0 -e 'multi rt107638(int $a) { "ok" }; multi rt107638(Str $a where 1) { }; rt107638(1)'

[18:05] <nine> Cannot resolve caller rt107638(1); none of these signatures matches:

[18:06] <nine> I think I've looked at this before... was there a verdict on whether that test is actually correct? I thought multis are a lot stricter about native vs. boxed types. Apparently the optimizer makes them more lenient if the value is a literal.

[18:09] <lizmat> I would expect an ambiguous dispatch for that case, actually ?

[18:13] <nine> m: class Foo { multi method rt107638(int $a) { "ok" }; multi method rt107638(Str $a where 1) { } }; Foo.rt107638(1)

[18:13] <camelia> rakudo-moar 83f2cb8f2: OUTPUT: «Cannot resolve caller rt107638((Foo): 1); none of these signatures matches:␤    (Foo: int $a, *%_)␤    (Foo: Str $a where { ... }, *%_)␤  in block <unit> at <tmp> line 1␤␤»

[18:14] <nine> It only works for multi subs because for those the optimizer tries to find a matching multi candidate and dispatch to that directly. And it's more lenient than the real binder.

[18:17] <nine> But roast commit f8c706da4a7f594c58ddfd697bd0bf79cdcc704d indicates that this is indeed the desired behavior.

[18:18] *** linkable6 left
[18:18] *** linkable6 joined
[18:19] <nine> And rakudo commit 1c0ed61a44420bba728b3da6567e830637c09613 confirms that

[18:23] <nine> Now I wonder if this is something, that should be handled by the AST classes directly, or if it will make a comeback as "optimization". The work itself would look like something you'd find in an optimizer, but the goal is certainly not just an optimization.

[18:25] <lizmat> well, there are more cases like that.  Like doing a QuotedRegex.new with only str literals.  Maybe it should return a StrLiteral instead immediately ?

[18:25] <lizmat> but I guess that would make manipulation harder  :-(

[18:25] <nine> But that _is_ just an optimization, isn't it?

[18:26] <lizmat> yeah, but suppose the QuotedRegex is from an .AST call, and you'd like to change it before it is getting codegenned

[18:26] <nine> So that is definitely something for a separate optimization pass.

[18:27] <lizmat> m: say Q|"foo"|.AST.statements.head.expression

[18:27] <camelia> rakudo-moar 83f2cb8f2: OUTPUT: «RakuAST::QuotedString.new(␤  segments   => (␤    RakuAST::StrLiteral.new("foo"),␤  )␤)␤»

[18:27] <nine> What I don't like is that currently we require that optimization to correctly compile a Raku program.

[18:27] <lizmat> yeah, that is something that shouldn't be necessary

[18:35] <Geth> ¦ rakudo/main: d3b58a3487 | (Elizabeth Mattijsen)++ | 3 files

[18:35] <Geth> ¦ rakudo/main: RakuAST: renamed StatementList.push -> add-statement

[18:35] <Geth> ¦ rakudo/main: 

[18:35] <Geth> ¦ rakudo/main: The .push is way too general, and in similar cases in other classes,

[18:35] <Geth> ¦ rakudo/main: the method to add stuff is always named "add-foo".  So it seemed

[18:35] <Geth> ¦ rakudo/main: appropriate to do that for this case as well.

[18:35] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/d3b58a3487

[18:37] <lizmat> m: sub a() { 42; LEAVE say "hi" }; say a   # should really be 42

[18:37] <camelia> rakudo-moar 83f2cb8f2: OUTPUT: «WARNINGS for <tmp>:␤hi␤Nil␤Useless use of constant integer 42 in sink context (line 1)␤»

[18:37] <nine> What's the syntax for calling a method of the base class in NQP?

[18:37] <lizmat> "the base class"  ??

[18:37] <nine> Or rather a base class' method

[18:38] <nine> RakuAST::PointyBlock::PRODUCE-META-OBJECT wants to call RakuAST::Block::PRODUCE-META-OBJECT

[18:40] *** guifa_ joined
[18:40] <lizmat> nine: I think you're out of luck there  :-(

[18:41] <lizmat> nextsame and friends are HLL constructs, aren't they?

[18:41] <nine> yes

[18:43] *** guifa left
[18:46] <nine> self.IMPL-PRODUCE-META-OBJECT it is then

[18:46] <lizmat> explain?

[18:47] <nine> A second name for that method

[19:54] *** squashable6 left
[19:55] *** squashable6 joined
[20:05] *** japhb left
[20:06] *** japhb joined
[21:11] *** squashable6 left
[21:11] *** bloatable6 left
[21:11] *** tellable6 left
[21:11] *** quotable6 left
[21:11] *** unicodable6 left
[21:11] *** linkable6 left
[21:11] *** sourceable6 left
[21:11] *** shareable6 left
[21:11] *** releasable6 left
[21:11] *** notable6 left
[21:11] *** reportable6 left
[21:11] *** benchable6 left
[21:11] *** statisfiable6 left
[21:11] *** bisectable6 left
[21:11] *** nativecallable6 left
[21:11] *** committable6 left
[21:11] *** greppable6 left
[21:11] *** releasable6 joined
[21:11] *** committable6 joined
[21:11] *** quotable6 joined
[21:12] *** squashable6 joined
[21:12] *** nativecallable6 joined
[21:12] *** tellable6 joined
[21:12] *** unicodable6 joined
[21:13] *** shareable6 joined
[21:13] *** statisfiable6 joined
[21:13] *** benchable6 joined
[21:13] *** reportable6 joined
[21:13] *** linkable6 joined
[21:13] *** bloatable6 joined
[21:14] *** notable6 joined
[21:14] *** greppable6 joined
[21:14] *** bisectable6 joined
[21:14] *** sourceable6 joined
[21:45] *** sena_kun left
[21:51] <ugexe> can it be called by its full name? like self.ParentClass::method-name(...)? I

[21:59] <lizmat> afaik, that's also a HLL construct

[21:59] <lizmat> it's not called NQP for nothing :-)

[22:11] <lizmat> sleep&

[22:45] *** linkable6 left
[22:45] *** evalable6 left
[22:46] *** evalable6 joined
[22:48] *** linkable6 joined
