🦋 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/main: c5599481c0 | (Stefan Seifert)++ | 3 files
RakuAST: support .= initializers
09:52
lizmat nine: looks like this borked t/12-rakuast/var.rakutest 10:40
constant foo = "bar"
No such method 'IMPL-COMPILE-TIME-VALUE' for invocant of type
'RakuAST::StrLiteral'
investigating
Ah, it looks like the initializer now *must* be a RakuAST::Initializer 10:43
and cannot be something as simple as a StrLiteral ?
hmmm... that's odd: StrLiteral -> Literal -> CompileTimeValue 10:45
m: say Q|constant foo = "bar"|.AST.DEPARSE 10:57
camelia constant foo = = "bar"
lizmat nine: ^^ I think codegenning constants with Initializer::Assign is wrong ?
I mean, shouldn't that be at least Initializer::Bind ? 10:59
Geth rakudo/main: be633ca0c3 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: add .rake/deparse support for RakuAST::Initializer::CallAssign
11:21
tbrowder__ note i just changed a windows.yml test for one of my many failing windows modules to use rakudo version 2022.07 and it's now passing. 11:33
Geth rakudo/main: c843b6f996 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: adapt tests/deparsing to new reality

with regards to constant initializers
12:22
tbrowder__ i think the TAP problem needs some serious love--it's bad publicity for Raku. i hang out a lot on the debian users list and pitch Raku when i can. i get lots of push back when i say it's ready for production. bad testing for windows on github doesn't help. 12:25
lizmat tbrowder__: I can only agree... but we don't have enough people doing Windows :-( 12:50
Geth rakudo/main: e08b201dd3 | (Elizabeth Mattijsen)++ | 3 files
RakuAST: add .raku support for RakuAST::RuleDeclaration

This one is a little more troublesome, as it needs to remove the RakuAST::Regex::WithSigspace entries from the tree before an actual
  .raku representation can be made.
This also adds a RakuAST::Regex::QuantifiedAtom.replace-atom method as the atom can also have a RakuAST::Regex::WithSigspace in it.
Also make sure RakuAST::Regex::WithSigspace correctly deparses with an additional space behind it.
12:59
lizmat aka: the subtle difference between "rule foo { \d+ }" and "rule foo { \d + }" 13:00
nine: this just handles the .raku: still to do is to *add* the RakuAST::Regex::WithSigspace for rules in RakuAST module space, rather than in grammar/action space 13:02
afk&
tbrowder__ lizmat: is it possible, for windows only as an interim solution, to change TAP to have a mode where it execute tests sequentially or else test in another way? 13:06
just in case parallelism is the problem?
lizmat TEST_JOBS=1
tbrowder__ ah, right! i’ll see if i can fudge a yml file. thnx 13:08
lizmat really afk& 13:10
tbrowder__ ok, i have a windows.yml file that uses TEST_JOBS=1 (in yaml / github workflows format) that works. 14:00
next problem is how to get the same job to add system requirements for windows? example: linux prereqs for PDF::Lite requires libfreetype6-dev. how do i put that in a workflow for windows? 14:03
ah, i see docs on github... 14:13
choclatey may be the answer 14:16
nine4 Apparently PDF::Lite doesn't declare that dependency on libfreetype6 at all 15:10
tbrowder__ yes, that's one problem, issue was filed some days ago. 15:50
i just released a module "Windows::Test" i will use as a test bed for Win64 testing and asking anyone to give me a link to a module that fails using it. i want to see if i can modify the github windows vm to override some testing problems. 15:53
Geth rakudo/main: 591157170d | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Raku.pm6
RakuAST: the atoms collector doesn't need to be dynamic
16:18
Geth rakudo/main: 3b0adfa43d | (Elizabeth Mattijsen)++ | 5 files
RakuAST: rework deparsing of regexes

Since a trailing space on an atom can have meaning when :sigspace is active, we cannot deparse regexes always with spaces around them. This is a conservative approach that may change in the future if we've found another way to make sure that the semantics of a deparsed regular expression does not differ from the AST.
This required a lot of changes with tests.
17:47
Geth rakudo/main: 837a2eb87b | (Elizabeth Mattijsen)++ | 3 files
RakuAST: Adhere to the convention that .replace-xxx returns Nil
18:20
ugexe I won’t make it back home for like 15 more minutes; dunno if I’ll catch the end of the rsc meeting or not 19:03
nevermind, its an hour later today so ill be there 19:29
Geth rakudo/lizmat-do: 3da9a5a728 | (Elizabeth Mattijsen)++ | 2 files
Introduce Any.do(&)

Similar to Kotlin's apply, and basically the same as Supply.do already does, but now for any value. Calls the given Callable with the invocant as the topic. Usually executed for its side-effects.
   $ raku -e 'my $a = 42; dd a.do: { .say; .Num }'
   42
   42e0
Inspired by a conversation with jnthn
20:49
rakudo: lizmat++ created pull request #5234:
Introduce Any.do(&)
japhb lizmat: Does that work for undefined and non-concrete values as well? (I was thinking "How is this different from a usage perspective from 'do with a', but then remembered that the latter construction wouldn't do undefineds.) 20:53
gfldex m: my $a; $a.&{ .say; .Num }; 21:05
camelia (Any)
No such method 'Num' for invocant of type 'Any'. Did you mean 'sum'?
in block <unit> at <tmp> line 1
gfldex m: my $a = 42; $a.&{ .say; .Num };
camelia 42
gfldex Do we really need do? :->
gfldex .oO( With this PR, it's do-able in Raku! ) 21:06
Nemokosch yes, it already existed.. 21:48
Geth rakudo/lizmat-do: cbd3c8fed5 | (Elizabeth Mattijsen)++ | 3 files
Got the semantics wrong: supposed to return the invocant

Also, make this a s.e feature.
22:36
lizmat 5.e :-(
sleep&