🦋 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:08 reportable6 left, jgaz joined 00:10 reportable6 joined 00:28 derpydoo joined 00:40 dextercd left 01:06 jgaz left 01:23 dogbert17 left 01:43 dogbert17 joined
ugexe you can now set `ZEF_INSTALL_TO=...` to set the default `--install-to=...` parameter to zef 01:47
probably useful to people including zef in containers/environments 01:48
02:20 derpydoo left
ugexe A lot of modules that use a Build.[rakumod|pm6|pm] could probably use Distribution::Builder::MakeFromJSON. Updating such distributions could be a good hacktoberfest contribution. see: github.com/ugexe/zef/commit/daf496...5ccc92e102 02:28
nine converted a bunch of these years ago (although never submitted PRs because the implementation in zef wasn't ubiquitous yet) so its certainly possible 02:30
the reason to do this is because its declarative unlike he Build.whatever file way 02:31
one reason being declarative is important is because it can help build more detailed dependency graphs before actually downloading and running code 02:35
02:47 frost joined 03:33 sftp left 03:37 kjp left 03:38 kjp joined 03:54 sftp joined 04:14 bigdata left 04:31 derpydoo joined 04:37 cm joined 05:28 derpydoo left 05:47 dogbert17 left 05:49 dogbert17 joined 06:07 reportable6 left 06:08 reportable6 joined 06:11 razetime joined 06:17 abraxxa joined 06:28 abraxxa left 06:29 abraxxa joined 06:52 eseyman left 07:15 lichtkind joined 07:25 linkable6 left 07:27 linkable6 joined 07:33 Sgeo left 07:39 sena_kun joined 07:49 dakkar joined 08:39 solitario left 08:42 Kernspin joined 08:55 Kernspin left 08:57 Kernspin joined
El_Che ugexe++ 09:20
09:25 sena_kun left 09:43 razetime left 09:44 razetime joined 10:16 sena_kun joined 10:42 frost left 10:58 eseyman joined 11:00 frost joined
lizmat in the words of gfldex: lolibloggedalittle dev.to/lizmat/its-time-to-rak-part-1-30ji :-) 11:36
Nemokosch > It's also possible to could include the pattern to search for and/or the location to search 11:47
sorry, is this the remnant of rewriting a sentence? "possible to could" is beyond my English capabilities
lizmat yeah, that was a remnant, fixed, thanks! 11:52
s/could//
Nemokosch now I hopefully managed to add a comment as well 😄 11:56
lizmat thanks for your kind words :-) 11:58
12:00 evalable6 left, linkable6 left 12:02 linkable6 joined 12:03 evalable6 joined 12:04 frost left 12:06 reportable6 left 12:09 reportable6 joined 12:24 leah2 left 12:25 leah2 joined, leah2 left 12:27 leah2 joined
lizmat reminds people that the Raku Advent Calendar 2022 is coming up, and that it needs writers apart from readers :-) github.com/Raku/advent/blob/master...authors.md 12:35
12:35 leah2 left 12:46 derpydoo joined 12:47 leah2 joined
Geth ecosystem/main: 9f5171d7fe | (Elizabeth Mattijsen)++ | META.list
Digest::HIMAC lives in the zef ecosystem now
13:04
13:12 razetime left 14:12 bisectable6 left, statisfiable6 left, unicodable6 left, evalable6 left, notable6 left, shareable6 left, releasable6 left, sourceable6 left, benchable6 left, nativecallable6 left, reportable6 left, committable6 left, quotable6 left, tellable6 left, squashable6 left, coverable6 left, bloatable6 left, linkable6 left, greppable6 left 14:13 coverable6 joined, linkable6 joined, unicodable6 joined, squashable6 joined, benchable6 joined 14:14 bisectable6 joined, bloatable6 joined, reportable6 joined, shareable6 joined, notable6 joined, statisfiable6 joined, committable6 joined, releasable6 joined 14:15 quotable6 joined, greppable6 joined, tellable6 joined, sourceable6 joined, evalable6 joined, nativecallable6 joined 14:30 merpaderp left, Sgeo joined 14:33 perlbot left 14:34 simcop2387 left 14:35 perlbot joined, xinming left 14:37 xinming joined 14:38 simcop2387 joined, razetime joined 14:51 Guest69 joined 14:54 derpydoo left 15:00 Guest69 left 15:19 samebchase left 15:20 samebchase joined 16:14 abraxxa left 16:35 dakkar left 16:36 habere-et-disper joined 16:47 habere-et-disper left 16:48 leah2 left 17:01 leah2 joined 17:26 jgaz joined
guifa So I'm adding a new method to Timezones::ZoneInfo to calculate when the next DST transition will occur 17:32
in some cases, there might not be one, though (e.g. if someone's using GMT) 17:33
What would be the best return value in this case? Type object, Nil, Empty?
Somehow create a DateTime with an infinity value?
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/10/10/2022-...our-phone/ 17:36
17:38 jgaz left 17:48 cm left 17:49 cm joined, dextercd joined 17:55 samebchase left 17:56 samebchase joined 17:58 Kernspin left, avar left, avar joined 17:59 Kernspin joined
Nemokosch yeeey, the new docs site is coming 🥳 18:01
18:07 reportable6 left 18:09 reportable6 joined 18:13 dextercd left 18:14 sena_kun left 18:20 razetime left 18:24 cm left 18:26 cm joined
leont ugexe: making Build.* more declarative sounds like an excellent idea. I've always been bothered by the current system. 18:27
18:53 sena_kun joined
lucs Which functions/classes help with obtaining and changing file ownership (IO::Path appears to handle only permissions)? 19:36
lizmat lucs: I don't think that's in Raku because that's really OS / filesystem dependent ? 19:40
lucs Hmm... Makes sense.
lizmat having said that 19:41
raku.land/zef:lizmat/path-utils#path-uid is at least for obtaining ? 19:42
lucs It'll get me halfway there :)
I can shell out to change it. 19:44
lizmat you could check if there is a libuv API for what you want: if there is, then there's a chance it can be implemented in Raku
the UID fetching logic *is* in nqp, but not exposed in Raku 19:46
lucs Yep, libuv appears to do it (uv_fs_chown). 19:48
lizmat then either make an issue and/or a PR :-) 19:50
lucs The former at best, sorry :) 19:51
19:53 evalable6 left, linkable6 left 19:54 linkable6 joined, evalable6 joined 20:01 Nemokosch joined, Nemokosch left
Nemokosch hello hello 20:36
modules.raku.org/search/?q=p5 I can see quite a couple of relatively new (updated within a year) modules 20:37
20:38 labster joined
labster Hi folks. I decided to unbreak my module which broke about the time of The Christmas, which is to say a quite a long time. I found something where the behavior changed from 6.b, and having golfed, I'm not sure if this is a bug or not. 20:42
m: my $mt = "fifty-six" ~~ / $<first>=[ \w+ ] '-' $<second>=[ \w+ ] /; dd $mt, $mt<first>.Str, $mt<second>».Str;
camelia Match $mt = Match.new(:orig("fifty-six"), :from(0), :pos(9), :hash(Map.new((:first(Match.new(:orig("fifty-six"), :from(0), :pos(5))),:second(Match.new(:orig("fifty-six"), :from(6), :pos(9)))))))
"fifty"
()
labster That hyperop is resulting in an empty array, not sure why. 20:43
Rog Anyone had this error before when trying to install a module on windows? `[YAMLish] Extracting with plugin Zef::Service::Shell::tar+{<anon|1>} aborted. No such method 'IO' for invocant of type 'Any'...`
I suspect it's failing to locate the `tar` executable
Nemokosch uh oh
Rog I do have it, and it's in my %PATH%
labster m: dd "foo"».Str # this works like I'd expect, just not as a match 20:44
camelia ("foo",)
Nemokosch okay, I think we have an accumulation point here... 20:45
Rog Nevermind, it's not because it can't find tar 20:53
something with YAMLish specifically...
Nemokosch labster: trynna take a look at it 20:55
should check the .list method for Match objects 20:57
20:57 melezhik joined
melezhik . 20:57
Nemokosch <@708833051253407804> found it, documented behavior: docs.raku.org/type/Match#method_list 20:58
> Returns a list of positional submatches. 20:59
Labster You're going to need to explain that how that's documented. Wouldn't it just return a list of a single item? That's what I'd expect.
melezhik I read minutes from the last RSC , on building alpine packages , I wonder if Raku alpine repo could be helpful ? 21:00
El_Che (the raports are rather anemic, difficult to make heads of tails from them) 21:01
Nemokosch I mean, I pointed out both the part and the link
the match object has no captures -> "the list of positional submatches" is empty
Labster right, because there's a new match object. 21:02
Nemokosch how familiar are you with regexes? 21:04
melezhik Or maybe there is something already in mind with that regard ? ...
Labster <@297037173541175296> Extremely familiar. Match objects are a whole other thing. 21:06
Nemokosch I'm pretty sure "positional submatches" refers to captures
21:07 melezhik left
in particular, captures that aren't named 21:07
Labster It does.
labster m: my $mt = "forty-fifty-six" ~~ / [$<first>=[ \w+ ] '-' ]+ $<second>=[ \w+ ] /; dd $mt<first>».Str, $mt<second>».Str; # I just expect parallel constructions to work, and they don't 21:08
camelia ["forty", "fifty"]
()
Nemokosch well then boom, we know why a match to /foo/ has no elements as a list
labster (does camelia work from Discord btw?) 21:09
21:09 melezhik joined
Nemokosch not in this channel 21:10
it does work in other channels
Labster you mean "she" works in other channels 🙂
Nemokosch I only see a raku-bot 😛
Labster #misgenderedrobots
El_Che camelia: say "👋" 21:11
Nemokosch I have to say the behavior is fairly reasonable this case 21:12
$<first> is an Array
why? because it was used inside a +, and produced multiple matches 21:14
unlike $<second>, which is a sole match object
they don't have the same dimension
21:14 derpydoo joined
... it should be easy to fix though 21:14
Labster oh, it's an incredibly easy fix
labster m: my $mt = "fifty-six" ~~ / [$<first>=[ \w+ ] '-' ]+ $<second>=[ \w+ ] /; dd $mt<first>».Str, $mt<second>».Str; # this actually knows if it's potentially an array
camelia ["fifty"]
()
21:15
21:15 melezhik left, melezhik joined
Labster Yep, looks like I'm wrong. Or, rakudo was wrong 10 years ago and let me get away with it 😉 21:16
21:18 tejr left 21:19 melezhik left
Nemokosch I learned something interesting yesterday 21:20
21:23 tejr joined
leont has been meaning to propose a method like snip for a long long time, lizmat++ 21:27
21:30 smol-hors left
Nemokosch so what I was trying to say is that 21:35
modules.raku.org/search/?q=p5 yields quite some, relatively new results
raku.land/?q=p5 barely returns anything
21:54 melezhik joined
melezhik . 21:54
21:58 melezhik left 22:16 sena_kun left
[Coke] (zef install failures on windows) yup 22:17
e.g.: github.com/lizmat/App-Rak/issues/15 22:18
22:32 jgaz joined
guifa m: Instant.new: 2 ** 63 - 1 22:44
camelia Cannot make a Instant object using .new
in block <unit> at <tmp> line 1
guifa m: Instant.from-posix: 2 ** 63 - 1
camelia ( no output )
guifa m: DateTime.new: 2 ** 63 - 1 22:45
camelia ( no output )
guifa Interestingly, this doesn't seem to always work on all versions of Rakudo.
[Coke] based on version or based on system arch? 22:46
22:51 epony left 22:56 epony joined 22:57 HvszrStykp left
guifa unclear … need to do more systematic testing 23:00
but seems like newest versions do okay — just concerned about using that as a constant to be passed to a core data type lol
m: Instant.from-posix(2 ** 63 - 1).DateTime.say 23:02
camelia Cannot unbox 64 bit wide bigint into native integer
in block <unit> at <tmp> line 1
guifa m: Instant.from-posix(2 ** 63 - 28).DateTime.say 23:03
camelia +292277026596-12-04T15:29:40Z
guifa m: Instant.from-posix(2 ** 63 - 27).DateTime.say 23:04
camelia Cannot unbox 64 bit wide bigint into native integer
in block <unit> at <tmp> line 1
guifa [Coke] there we go, still can strigger it on recent versions it seems 23:05
23:12 lichtkind left
guifa oh 23:18
duh
27 is the current number of leapseconds and Instant is leapsecond-aware 23:19
Although the fact that Instant is officially not tied to an epoch is problematic if it's stored as int128, because Instant is used to compared DateTimes which don't have the same limitations 23:22
ugexe that "Cannot create a Zef::Distribution from non-existent path" looks like the Windows path length limitation issue, although I would have expected that to be occuring with all the versions shown in that ticket 23:28
Roq: I wonder if its an incompatible version of the tar command since indeed it sees that it is there. you can poke around by running he code in this synopsis which shows how to extract a file the way zef internals do. Also curious what version of zef you see that error, because I think I may have fixed that (to be a better error message rather) a couple of versions back 23:35
the code in the synopsis i referred to -- github.com/ugexe/zef/blob/main/lib...od#L16-L37
23:38 derpydoo left
ugexe what i suspect that error was is (similar to a previous comment I just made) it hit the windows path limitation when it extracted the file. in an older version of zef such an error would end up causing that "cannot call .IO" error. One way that sometimes works around that is setting TMPDIR to something short similar to what i do for appveyor builds 23:43
github.com/ugexe/zef/blob/3398a89d...yml#L9-L10
non-core tooling should probably start using something that 40 character sha1s though, since they usually end up encoded in paths multiple times between folder names and file names 23:47
less than 40 character sha1s^