🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 6 September 2022.
00:00 reportable6 left 00:01 reportable6 joined 00:03 jpn joined 00:08 jpn left 00:09 jpn joined 00:24 vrurg left, vrurg joined 00:25 jpn left 00:31 abraxxa-home left 01:04 xinming left 01:05 xinming joined
Xliff m: sub a ( say OUTER::&?ROUTINE.name }; sub b { a() }; b() 01:09
camelia ===SORRY!=== Error while compiling <tmp>
Invalid typename 'say' in parameter declaration.
at <tmp>:1
------> sub a ( say⏏ OUTER::&?ROUTINE.name }; sub b { a() };
Xliff m: sub a { say OUTER::&?ROUTINE.name }; sub b { a() }; b()
camelia ===SORRY!=== Error while compiling <tmp>
Undeclared name:
ROUTINE used at line 1. Did you mean 'Routine'?
Xliff m: sub a { say OUTER::a }; sub b { my $a = 42; a() }; b()
camelia Nil
Xliff m: sub a { say $OUTER::a }; sub b { my $a = 42; a() }; b()
camelia Nil
01:10 NemokoschKiwi left 01:22 oodani left 01:24 oodani joined 01:58 razetime joined 02:21 ab5tract left 02:22 ilogger2 left 02:23 ilogger2 joined 02:26 melezhik joined 02:38 melezhik left
jaguart m: sub a { say OUTER::.keys }; sub b { my $x = 42; a() }; b() 03:04
camelia (GLOBALish $=pod EXPORT &b $! ::?PACKAGE !UNIT_MARKER $=finish $?PACKAGE $_ $¢ $/ &a)
jaguart m: sub a { say CALLER::.keys }; sub b { my $x = 42; a() }; b() 03:05
camelia ($¢ $/ $! $x)
jaguart m: sub a { say CALLER::<$x> }; sub b { my $x is dynamic = 42; a() }; b() 03:07
camelia 42
03:26 Kaiepi left 04:00 Homer_Simpson joined
jaguart anyone else having github action failure for TAP v0.3.11 install in Windows VM? 04:30
05:00 evalable6 left, linkable6 left 05:01 xinming left, evalable6 joined 05:02 linkable6 joined 05:03 xinming joined 05:29 xinming left, xinming joined 06:00 reportable6 left 06:03 reportable6 joined 06:21 silug left 06:33 silug joined 07:16 razetime left 08:00 Homer_Simpson left 08:15 jpn joined 08:19 jpn left 08:28 Xliff left 08:54 sena_kun joined 09:03 Sgeo left 10:03 linkable6 left, evalable6 left, squashable6 left, coverable6 left, quotable6 left, benchable6 left, sourceable6 left, shareable6 left, committable6 left, tellable6 left, bloatable6 left, bisectable6 left, nativecallable6 left, releasable6 left, notable6 left, greppable6 left, reportable6 left, unicodable6 left, statisfiable6 left 10:04 coverable6 joined, evalable6 joined, benchable6 joined, notable6 joined, shareable6 joined 10:05 greppable6 joined, linkable6 joined, committable6 joined, tellable6 joined, nativecallable6 joined, statisfiable6 joined, bisectable6 joined, releasable6 joined, sourceable6 joined 10:06 reportable6 joined, bloatable6 joined, unicodable6 joined, squashable6 joined, quotable6 joined 10:32 Kaiepi joined 10:53 jpn joined 11:18 jpn_ joined 11:20 jpn left 12:00 reportable6 left 12:03 reportable6 joined 12:34 Nemokosch joined
Nemokosch how does one get native 'pq' dependency fulfilled (for the DB::Pg module) on Mac? 12:37
tellable6 2022-12-27T21:54:18Z #raku <vrurg> Nemokosch: how could it? Iterables are mutable by definition.
2022-12-31T00:37:58Z #raku <Xliff> Nemokosch: However in the immediate sense, there is a definite need for answers you may not have and someone else does :P\
2022-12-31T14:46:22Z #raku <Voldenet> Nemokosch: C vulnerabilities just didn't matter in times before everything was connected to everything else ;)
2023-01-02T14:08:34Z #raku <lizmat> Nemokosch: thanks for the headsup... looks like a restart fixed it :-)
hey Nemokosch, you have a message: gist.github.com/73b5dd46a484807743...bfad98e479
Nemokosch pfff
Voldenet `brew install libpq` maybe 13:02
my constant LIBPQ = NativeLibs::Searcher.at-runtime('pq', 'PQstatus', 5);
this is used to find it 13:03
13:04 jpn_ left
Nemokosch you know, the problem is that I'm posting someone else's question so context is kinda lacking. From what I gather, though DB::Pq itself 'decides' where it looks for this "native dependency" 13:05
and I think one way or another, it looks for something literally called 'pq'
libpq is installed 13:06
my guess was that a well-chosen symlink might do the trick
Voldenet >$*VM.platform-library-name("pq".IO).say 13:08
>"libpq.so".IO
the above is used to resolve the cannon-name in this case 13:09
leont jaguart: would like to know more about that TAP issue 13:10
Nemokosch: this is the moment to promote Net::Postgress, right? ;-) 13:12
Nemokosch Probably 13:13
Well, can you recommend it? :P 13:14
lizmat Nemokosch: leont is the author :-) 13:17
13:17 derpydoo joined
leont I think it's great, not only because it doesn't have the external library but especially because it's actually asynchronous 13:17
13:18 Nemokosch left, Nemokosch joined
leont It's only disadvantage right now is that it doesn't support unix domain sockets, because Raku doesn't support (asynchronous) unix domain sockets yet. 13:18
(I might try fixing that in moarvm, but async moar is a bit hard to get into) 13:19
lizmat wouldn't that require libuv support ? 13:20
leont libuv does support it, but in a weird way 13:21
13:22 razetime joined
leont You use the weirdly named uv_pipe_bind/uv_pipe_connect functions 13:22
lizmat well, if the naming is the only weird thing... 13:23
13:27 jpn joined 13:29 thundergnat joined
leont I suspect an expert can do it really quickly. I probably could do it myself, but I first have to figure out a bunch of stuff about moar 13:49
There's a similar lack of async pipe support, but that's probably a harder one to fix
lizmat leont: your PR ready for merging ? 13:50
thundergnat leont: I also have had a lot of failures with recent CI TAP failures (Almost exclusively for Windows) 13:57
tellable6 2022-11-30T23:27:03Z #raku <guifa> thundergnat: I mean, that's a good example of it, and of course the standard action classes methods are another
thundergnat One of my recent updates I had to re-run the test job 13 times before it passed. 13:58
github.com/thundergnat/String-Spli...6455803271
It doesn't seem like it is specifically a problem with TAP, it just keeps failing to install. 13:59
Eventually, changing nothing, it will install TAP, APP::Prove6 and pass. 14:00
ugexe thundergnat: i've been trying to add a gh action for zef and i've never gotten it to finish the various tests
its similar to what you describe, except there are so many more tests i dont think i'll ever get a lucky run 14:01
thundergnat Yeah. I get it to eventually pass, but it can take anywhere from 3 to 15 reruns of the test job
ugexe none of these problems exists on a local windows vm, or using appveyor
thundergnat Mine don't fail _module testing_, they fail to install TAP. I've tried to get further diagnostics but haven't been successful 14:03
Just "Failed to install TAP. Process completed with exit code 1."
leont The "sometimes it succeeds" it the real mystery here. If it consistently failed at least I'd have an idea. 14:04
14:04 jpn left
leont I did change the newline logic recently, I'm guessing that to be the cause, but that wouldn't explain why it sometimes succeeds. 14:04
thundergnat It is _only_ (for me) under Windows. It installs for Linux first time _every_ time.  First time for Mac maybe 90% of the time. Windows, maybe 5% of the time. 14:06
And reruning the same job under Windows, it eventually loads and passes. But it usually takes 5 to 15 retries. Quite frustrating. 14:07
I don't even think it is specifically a problem with TAP or Prove6. Seems more like weird interactions / timings issues in the github actions CI Windows VM. (Speculation) 14:09
Running / installing them locally has always been trouble free
Don't know if there is even anything that can be done about it but I figured I would say something about it in case there is. 14:11
If nobody reports a problem it _definitely_ won't get fixed. ;-) 14:12
14:12 jpn joined 14:20 thundergnat left 14:23 jgaz joined 14:39 Sgeo joined
leont I see a bunch of tests failing on main, I assume that's not expected 15:08
15:14 ab5tract joined
ab5tract Hey all, hope everyone is doing well! Does anyone know if this behavior (flattening of hashes into pairs by slurpy subs) is to be expected? Seems unfortunate that I need to "scalarize" the container... 15:16
m: sub slurpy(*@a) { for @a { dd $_ } }; slurpy({pair => 1, foo => 2}, ${ as => 1, expected => 2}) 15:17
camelia :pair(1)
:foo(2)
${:as(1), :expected(2)}
Nemokosch hello 15:20
keep in mind that *@a - with the single asterisk - is the flattening slurpy in general
as opposed to the **@ slurpy 15:21
m: sub slurpy(**@a) { for @a { dd $_ } }; slurpy({pair => 1, foo => 2}, { as => 1, expected => 2}) 15:22
camelia ${:foo(2), :pair(1)}
${:as(1), :expected(2)}
Nemokosch aha, seems like this works indeed 15:23
ab5tract Nemokosch: awesome, I had a feeling that would be the answer 16:01
thank you for responding
16:14 linkable6 left, evalable6 left 16:15 evalable6 joined 16:16 linkable6 joined 16:22 razetime left 16:51 mcmillhj joined
mcmillhj I am trying to write a function to merge overlapping Ranges. I typed the function as `sub merge(Range @ranges)` but am having trouble when passing in data from a `map` expression. I know that map returns a `Seq` but how do I properly translate from `Seq` to `Positional`? Small example of what I am trying to do: topaz.github.io/paste/#XQAAAQ 16:54
BjAwAAAAAAAAA5nUhjF5Wcttn1SqJE5qVUJpgaefQ+bUWHNIkNhaaQhE6Zfm7l+4QC6ZOKlfiSh/f1V4nS5zcEZgLbLisIRxy5uQDuW9XjcvktmqwzlKX7pqdtvF7iuKj8QfL0kP94P4pBisCRajtF7jfAlUOIgXRClx4KlA2e6xecHFXuI63YD0jkFVNoq6yC5MjwXT18lz595ZkRDX7hToKZ1JKAXoO+dMaPlO53uTQeKu805QxYZL5DoYJhmfCrVfVB3aVKhRcb5RFhAPiIB/XmCTlBugOVN8xnUrQlfzJK2xZ0LyTDEXfacUucYIvx4VjWIwZxJwSxF4i8RlSB3FYc2jhd
ixSc+JvaiGU95FdRnBX1DqaI27SmOSai+jgSfA7BnRlRNf+Aly9IYRILkKp/QLw0ezOPqtsRNMygWlwAcyCwEapLg9Ma79b11l84xkAa+lQz+jsb/16lQNJNfVkp4r/wTJv/xNoucnx3nNSZ5krcxWAF+yVeJIvKZAglhAwJ5Y5cl4qlskUDafu0xVXGgSIQX10rR8ol2TlwWYcH0MoHn29pRBF/ZkE+uJYh60Hjrwbwsvf55mZDn//18Bn+
16:54 djerius left 16:56 djerius joined 17:02 jpn left, Kaiepi left
ugexe $seq.List ? 17:03
mcmillhj I have tried both `.List ` and `.Array` which implement `Positional` but both show the same error: `Type check failed in binding to parameter '@ranges'; expected Positional[Range] but got Array ([-8..12, 6..10, 12.....)` 17:05
17:11 NemokoschKiwi joined
NemokoschKiwi literals don't work great with typing; they aren't inferred to the tightest type 17:12
m: my Range @ranges = [-8..12, 6..10, 12..14, 14..26]; 17:14
camelia ( no output )
NemokoschKiwi hmmm, not even bad...
17:15 Kaiepi joined
NemokoschKiwi Then we can mangle the question a little bit: is there a way for a map to preserve the typing? 17:16
mcmillhj hmm okay, the real program isn't using literals. This was just how I could reproduce the issue in a small snippet.
NemokoschKiwi Well, you did your best: assigned the literal to a typed variable. It was the map that lost the type, I'm afraid 17:17
m: Seq[Int] $foo; 17:19
camelia ===SORRY!=== Error while compiling <tmp>
Seq cannot be parameterized
at <tmp>:1
------> Seq[Int]⏏ $foo;
NemokoschKiwi well that's quite a problem... why can't it, really
17:20 discord-raku-bot left, discord-raku-bot joined
Nemokosch test test 17:21
*resurrection* 😄 17:22
17:26 discord-raku-bot left, discord-raku-bot joined
NemokoschKiwi mcmillhj: a more "imperative" check is surely possible, like `@ranges where *.all ~~ Range` or something 17:39
on the somewhat longer run, I think it really should be investigated how better typing can be supported for compound types, at least in an opt-in fashion
17:40 sena_kun left 17:41 sena_kun joined 17:47 ab5tract left 17:49 jgaz left 17:54 drakonis left 17:57 xinming left, xinming joined 18:00 reportable6 left 18:03 reportable6 joined 18:04 NemokoschKiwi left 18:28 jpn joined 18:37 jpn left 18:41 jpn joined 18:43 derpydoo left 18:46 jpn left 18:51 mcmillhj left 19:44 ab5tract joined 19:48 jgaz joined 20:12 melezhik joined 20:15 melezhik left 20:22 Xliff joined 20:28 melezhik joined
Xliff I have a token, defined as 'token dc { "::" }'. I want to parse it globally. How can I do this using the "$content ~~ ::('&dc')" form of the call? 20:30
m: token a { 'a' }; "Alpha Malpha Malp".match( &a, :g ).gist.say
camelia ===SORRY!===
Undeclared routine:
a used at line 1

Other potential difficulties:
Useless declaration of a has-scoped method in mainline (did you mean 'my token a'?)
at <tmp>:1
------> token ⏏a { 'a' }; "Alph…
Xliff m: my token a { 'a' }; "Alpha Malpha Malp".match( &a, :g ).gist.say
camelia (「a」 「a」 「a」 「a」)
Xliff Ohhh.
m: my token a { 'a' }; "Alpha Malpha Malp".match( ::('a'), :g ).gist.say
camelia No such symbol 'a'
in block <unit> at <tmp> line 1
Xliff m: my token a { 'a' }; "Alpha Malpha Malp".match( ::('&a'), :g ).gist.say
m: my token a { 'a' }; "Alpha Malpha Malp".match( ::('&a'), :g ).gist.say 20:31
camelia (「a」 「a」 「a」 「a」)
Xliff Nifty!
20:31 melezhik left 20:45 jpn joined 20:57 WickedTortoise joined 21:00 jpn left 21:01 jpn joined 21:09 jpn left 21:25 linkable6 left, abraxxa-home joined 21:26 linkable6 joined 21:50 Kaiepi left 21:55 derpydoo joined 21:59 abraxxa-home left 22:00 jpn joined 22:06 jgaz left 22:17 xinming left 22:18 xinming joined 22:36 Kaiepi joined
jaguart leont: I see others reporting the same - Install [FAIL] for TAP - here's all I have... github.com/jaguart/Grok/actions/ru...#step:5:17 22:45
22:45 vrurg left
leont This is annoying. Why doesn't zef install have a verbose mode, so we'd actually have an idea what's going on 22:47
22:48 vrurg joined
jaguart wondering if its the old too-long-filename problem... 22:50
just running it more times - mostly it's a TAP install fail - but once was Archive Not Found 22:51
I'll see if I can get the --verbose flag going 22:52
22:55 jpn left
jaguart lol no failure with --verbose :) - it knows I'm watching... a heisenbug 22:56
Nemokosch zef install does have a verbose mode and indeed I can confirm: it often DOES install when you have --verbose on 22:58
having said that, by now, TAP has definitely developed negative connotations for me
jaguart ok - even with --verbose, no more info on TAP install failure... going for --debug 23:05
I've isolated TAP install into its own step with debug: github.com/jaguart/Grok/actions/ru...6525402330 23:13
because - was wondering if fail was due to something in the chain... 23:14
leont That does sound like it's a zef problem, but doesn't actually explain anything
jaguart I will try a few other things... open to suggestions? 23:15
ugexe typically '===> Install [FAIL] ' means a precompilation failure from rakudo
it could indeed be the path-too-long issue that arises with certain precompilation file names that get generated 23:16
jaguart can you see any clues here? github.com/jaguart/Grok/actions/ru...6525482776 23:19
ugexe fwiw i've had no luck getting raku github actions working reliably on windows despite everything i've tried working fine on appveyor and on local windows vms 23:20
leont: zef outputs whatever information it gets from the result of CompUnit::Repository::Installation.install(...) when ran with --debug. i'm kind of guessing its a compile error during install but usually the stderr message gets printed for that (but maybe doens't always get flushed) 23:24
leont --verbose and --debug don't show up on «zef install --help», that had me confused 23:26
ugexe jaguart: for that last link that looks like it could be the path link thing. i use github.com/ugexe/zef/blob/9779091b...yml#L9-L10 to get around that issue by shaving off some of the temporary path length
jaguart Here's a failed run with all the guff: github.com/jaguart/Grok/actions/ru...6525547817
ab5tract how do I get the IO location of the script, rather than the $*CWD? 23:27
ugexe $*PROGRAM
ab5tract thanksu ugexe!
ugexe jaguart: actually maybe not. the path length issue results in saying it cant find files that should exist i think 23:28
jaguart longest paths in the logs are only 130 chars
so well < the 254 limits 23:29
ab5tract hmmm, that actually won't be what I want... use case: loading a sound file from the package directory. IIUC, the script file will be installed into ~/.raku/bin, which is I guess where $*PROGRAM will point to 23:30
jaguart ab5tract: are you looking for docs.raku.org/language/variables#%?RESOURCES 23:32
ab5tract jaguart: that's exactly what I need 23:33
23:34 sena_kun left
jaguart ugexe: I'm stymied on the TAP install - though it is a good case as it fails almost consistently. Let me know if you think there is anything else I can try 23:35
leont It's a relatively big module (with many classes), maybe something chokes on that? 23:36
ugexe something else i'd try is installing it with the following flags: `--/prove --/tap --raku-test` (i.e. only use the tester that does `raku -I. t/*.t`) just to rule our attempting to load TAP prior to install isn't somehow affecting it 23:37
jaguart umm: --/tap ? 23:40
ugexe sorry, --/tap-harness
if you want to rule out zef you could install tap::harness by cloning its repo, changing into that directory, and running something like `raku -e 'CompUnit::RepositoryRegistry.repository-for-name("site").install(Distribution::Path.new($*CWD))'` 23:41
jaguart ok - lets try zef options first...
ugexe note that won't help with the test failure part though
jaguart same fail with: zef install --debug TAP --force-test --/prove --raku-test --/tap-harness 23:43
github.com/jaguart/Grok/actions/ru...6525700597
ugexe i figured up an appveyor run that will try to install TAP ci.appveyor.com/project/ugexe/zef/...s/45831355 23:44
s/figured/fired/
jaguart this is like distributed TV watching... 23:47
ugexe its gonna build rakudo from source so it'll take a minute 23:48
23:48 CosmicTortoise joined 23:51 WickedTortoise left 23:54 ab5tract left
ugexe ci.appveyor.com/project/ugexe/zef/...1355#L1291 23:59
it installed fine there