🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
Geth rakudo/string-repo-id: c1742f045b | (Nick Logan)++ | 2 files
Ensure path-spec is a Str
02:45
rakudo: ugexe++ created pull request #5621:
Ensure path-spec is a Str
02:49
rakudo/main: c1742f045b | (Nick Logan)++ | 2 files
Ensure path-spec is a Str
06:45
rakudo/main: 233fe99ebe | niner++ (committed using GitHub Web editor) | 2 files
Merge pull request #5621 from rakudo/string-repo-id

Ensure path-spec is a Str
07:51 sena_kun joined 08:02 sena_kun left
Geth rakudo/main: ed1c48a53d | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod
RakuAST: warn about precedence issues with range operator

Warns about |4.. 5 and ~4.. 5
09:33
rakudo/main: dfd2ccdaa2 | (Stefan Seifert)++ | 3 files
RakuAST: promote worries to sorries in scopes where fatal is active

Makes use fatal; { |4.. 5} throw at compile time
rakudo/main: d87bd876ff | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod
RakuAST: warn about precedence issues with reversed range operator

Warns about |4 R.. 5 and ~4 R.. 5
lizmat 1102 for me 10:34
I wonder whether the failing test for me could be related to the fact on Apple silicon we don't have any JIT 10:35
so I wonder what your result would be with the JIT disabled
nine But it passes even for you when run individually and it's still not JITing then 10:39
lizmat hmmm true 10:44
ab5tract I always nuke *.moar before running tests, not sure if that could have anything to do with it.. 10:51
Maybe slowly expanding upwards in the test hierarchy to see if there’s some sort of freaky interdependence on a previous test? 10:52
Though I assume you run spectests concurrently, so dependent ordering shouldn’t really be a thing anyway 10:53
lizmat: I’ll give it a run on my Mac and see what happens 10:54
lizmat is it an Intel or a Apple Silicon Mac ?
*an
ok, this is getting weird: 10:56
t/spec/S26-documentation/07a-tables.rakudo.moar (Wstat: 0 Tests: 77 Failed: 0)
TODO passed: 42
however, if I run it manually it fails that TODOd test 10:57
oops, my bad... it does pass
so, it looks like there's quite a number of test files that pass TODOd tests (and all other tests) but are marked as failures 10:58
at least 3: S26-documentation/07a-tables, S26-documentation/08-formattingcode.t S26-documentation/09-configuration.t 11:02
oops, my bad (again): they are already ok 11:03
they're just listed at the end... which put me on a false trail 11:04
lizmat goes back to hacking on App::Rak and associated modules
Geth rakudo/main: d9037aea5f | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod
RakuAST: fix chaining of smartmatches

In many cases we can compile a smartmatch just like a normal infix. Even more, we have to do so to allow for chaining smart matches.
Fixes 0 ~~ 0 ~~ 0 Fixes 0 ~~ 0 ~~ /0/
11:19
rakudo/main: cd1aae8989 | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod
RakuAST: fix chaining of negated meta operators

Sadly we have to remove the shortcut as it interferes with chaining.
Fixes 3 !> 3 !> 1
rakudo/main: f340f39edd | (Stefan Seifert)++ | src/Raku/ast/circumfix.rakumod
RakuAST: have parentheses break up operator chains

Fixes ($x =:= $x) ~~ Bool
nine And that's 1106
lizmat 1104 for me: t/spec/S02-names-vars/names.t flapped 11:27
running again 11:28
it unflapped 11:32
so 1105 for me 11:33
11:42 MasterDuke left
lizmat Meh, can't synthetically create a whatevercode yet 11:52
nine What do you mean? 12:01
lizmat m: say Q|*.Str|.AST 12:04
camelia RakuAST::StatementList.new(
RakuAST::Statement::Expression.new(
expression => RakuAST::ApplyPostfix.new(
operand => RakuAST::WhateverCode::Argument.new,
postfix => RakuAST::Call::Method.new(
name => RakuAST::Name.fr…
lizmat operand => RakuAST::WhateverCode::Argument.new
nine That looks correct?
lizmat it needs more info to when *not* generated from the grammar 12:05
aka: the .raku representation is incomplete, but I don't know how to make that complete
nine Oh, you mean something like assembling a curried expression completely manually? 12:07
lizmat yes
nine What's the point? Currying is just a syntactic shortcut. It exists because typing { $_.Str } is boring, so we can just write *.Str instead. If you're creating an AST, you'll have to type a lot anyway, so you may as well create that RakuAST::Block the curried expression represents 12:08
lizmat well, that's what I'm doing now :-) 12:10
and actually, it's not a lot of typing, it is a lot of copy-pasting 12:11
thanks to .AST
nine Oh darn....seems like I'm gonna have to implement "Useless use" warnings now 12:22
That goes about as badly as I expected :D 13:58
But surprisingly the prep work actually already makes a test file pass. 14:16
Prep work being propagating sink information into expressions
lizmat oooh... didn't realize we weren't doing that already 14:17
nine No, only statements so far as that's what we need to know whether to generate a p6sink op 14:18
15:05 dawids joined
Geth rakudo/main: bac1ee8f61 | (Stefan Seifert)++ | src/Raku/ast/expressions.rakumod
RakuAST: fix short-circuiting of ^^ and xor

Xor is different to other iffy infixes in that it can only short-circuit a possible third argument when chaining. Thus we must not compile chained xor as a set of nested calls to infix:<xor> and instead have to compile it to an xor op with all operands. Furthermore to get a Nil as falsey result, we need to add that as an additional argument.
Fixes 1 ^^ 2 ^^ say "no!"
15:15
rakudo/main: c3c6e4585f | (Stefan Seifert)++ | 2 files
RakuAST: propagate sink context into expressions

Will be used for "Useless use of ... in sink context" warnings.
rakudo/main: 4cfc790075 | (Stefan Seifert)++ | src/Raku/ast/literals.rakumod
RakuAST: warn about literals being used in sink context
lizmat 1107! 15:31
16:26 sena_kun joined
nine 11081109 16:27
Geth rakudo/main: 10297c640e | (Stefan Seifert)++ | src/Raku/Grammar.nqp
RakuAST: fix exceptions thrown by the grammar missing additional info

While the <.foo: ...> syntax may be more eye pleasing, it's not actually possible to pass named arguments with this syntax. Instead those args are silently swallowed. Switch to {self.foo: ...} instead.
rakudo/main: bc16b3c246 | (Stefan Seifert)++ | src/Raku/Actions.nqp
RakuAST: throw proper error when adverbing things that can't be adverbed

Fixes 3 :foo to throw the correct exception
rakudo/main: 191787bb4d | (Stefan Seifert)++ | src/Raku/Grammar.nqp
RakuAST: throw proper error when trying to meta the ternary operator

Fixes: 1 R?? 2 !! 3
nine 1109 16:28
lizmat confirmed minus 1 :-) 17:24
nine Wow....got a test that reproducably segfaults 17:28
lizmat nice! 17:29
jdv love a segfault. i got perl to kick one sans xs recently. good times.
much easier with raku, unfortunately. 17:30
nine A frame without a static frame 17:33
lizmat
.oO( I was not properly framed! )
17:40
jdv shame 17:42
nine Shortest segfault in quite a while: RAKUDO_RAKUAST=1 ./rakudo-m -e '() ~~ :()' 17:53
jdv thats an impressive golf of a segfault 17:55
17:56 dawids left
lizmat confirmed 17:56
on Apple Silicon
nine Smartmatch (p6invokeunder to be precise) assumes hat a Signature always has a $!code object. Apparently the old compiler adds a stub there. 17:59
I meant p6isbindable 18:00
Geth rakudo/main: f6b628f346 | (Stefan Seifert)++ | src/Raku/ast/signature.rakumod
RakuAST: fix segfault trying to smartmatch a signature

p6isbindable requires a Signature to have an associated code object
18:54
21:55 sena_kun left 23:12 MasterDuke joined