🦋 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:02 reportable6 joined 00:28 jpn joined 00:32 jpn left 01:11 razetime joined 01:37 Geth left, Geth joined 01:41 Geth left, Geth joined 01:42 razetime left 01:43 razetime joined 02:43 bisectable6 left, coverable6 left, bloatable6 left, statisfiable6 left, quotable6 left, squashable6 left, linkable6 left, shareable6 left, tellable6 left, committable6 left, releasable6 left, reportable6 left, nativecallable6 left, unicodable6 left, benchable6 left, greppable6 left, notable6 left, sourceable6 left, evalable6 left, coverable6 joined, tellable6 joined, sourceable6 joined, shareable6 joined, reportable6 joined, greppable6 joined 02:44 bisectable6 joined, squashable6 joined, bloatable6 joined, releasable6 joined, linkable6 joined 02:45 evalable6 joined, nativecallable6 joined, quotable6 joined, notable6 joined, committable6 joined 02:46 benchable6 joined, statisfiable6 joined, unicodable6 joined 03:46 quotable6 left, nativecallable6 left, bloatable6 left, tellable6 left, linkable6 left, committable6 left, greppable6 left, benchable6 left, reportable6 left, statisfiable6 left, releasable6 left, sourceable6 left, bisectable6 left, shareable6 left, unicodable6 left, evalable6 left, notable6 left, squashable6 left, coverable6 left, shareable6 joined, quotable6 joined, notable6 joined, benchable6 joined 03:47 nativecallable6 joined, statisfiable6 joined, tellable6 joined, coverable6 joined, linkable6 joined 03:48 squashable6 joined, greppable6 joined, unicodable6 joined, bloatable6 joined, sourceable6 joined 03:49 evalable6 joined, bisectable6 joined, committable6 joined, releasable6 joined, reportable6 joined 04:28 razetime left
guifa__ lizmat thank you for working on all of the regex nodes. my polyglot::regex module is looking a million times cleaner 04:29
tellable6 2023-07-22T17:05:34Z #raku-dev <lizmat> guifa are you aware of github.com/edumentab/p6-ecma262regex ?
guifa__ lizmat: I was. I used it to get an idea of how things should work, but it's lacks the trickiest part: captures 04:31
or it has it, but doesn't handle the differences 04:32
so if you fed it (a(b(c))) it would translate it to raku (a(b(c))) 04:33
the problem is that $3 would not yield c, rather Nil
Also, if you do 'abc'.match(rx/(.)+/) in JS, the first match is just a, but in Raku it produces a list of matches 04:34
so really (.)+ should convert to (.).* in Raku 04:35
In either case, some shenanigans are required to ensure that positional captures go left to right. Also, if you naïvely insert named captures, you'll run into problems: Raku ignores named captures for the purpose of positional matches, but in Javascript, all captures are positional, and names are just aliases that point there 04:36
I solved it in my module by inserting applying a role to the $¢, and reporting each capture back to the mothership with its left-to-right id, and then providing a name to positional id relationship. AT-POS and AT-KEY get overriden so its transparent to the user. there may be a more interesting way to do it by searching through the match tree, but I was lazy ^_^ 04:39
04:41 tea3po joined 04:43 tea3po left, tea3po joined 04:44 teatwo left 05:11 razetime joined 05:20 razetime left 05:33 tea3po left, tea3po joined 05:35 siavash joined 05:39 andydude joined 05:54 jpn joined 05:58 jpn left 06:00 reportable6 left 06:02 reportable6 joined 07:02 committable6 left, evalable6 left, bisectable6 left, coverable6 left, notable6 left, releasable6 left, unicodable6 left, statisfiable6 left, squashable6 left, linkable6 left, shareable6 left, sourceable6 left, reportable6 left, nativecallable6 left, benchable6 left, greppable6 left, quotable6 left, bloatable6 left, tellable6 left 07:03 linkable6 joined, evalable6 joined, bloatable6 joined 07:04 sourceable6 joined, releasable6 joined, benchable6 joined, squashable6 joined, bisectable6 joined, unicodable6 joined, committable6 joined 07:05 notable6 joined, quotable6 joined, reportable6 joined, nativecallable6 joined, shareable6 joined, coverable6 joined, greppable6 joined, tellable6 joined, statisfiable6 joined 07:26 jpn joined 07:43 sena_kun joined 07:49 jpn left 07:57 dakkar joined 08:07 jpn joined 08:13 Sgeo left 08:37 andydude left 09:27 jpn left 09:40 jpn joined 09:46 sena_kun left 10:02 razetime joined 11:02 notable6 left, linkable6 left, evalable6 left, evalable6 joined, linkable6 joined 11:03 notable6 joined 11:18 razetime left 11:58 siavash left 12:00 reportable6 left 12:01 reportable6 joined 12:10 jpn left 12:34 jpn joined 12:41 jpn left 12:46 jpn joined
lizmat And yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2023/07/24/2023-30-morevids/ 13:09
El_Che again? RWN is the unforgiving ticking of time 13:10
:)
lizmat: the twitter thing :) 13:11
lizmat hehe :-)
El_Che "I noticed that the Raku developers were deeply in love with Raku and were excited about the possibilities of the future. They had a great energy." <- the parent of the response you cited 13:16
13:31 andydude joined
guifa__ It amazes me the number of people who misunderstood ovid's post re Perl 8 13:32
lizmat well, I think the "had" is a bIt of a meh :-) 13:33
guifa__ I mean he was narrating in the past, I didn't think anything of it. Thanks to him I have another nother side project / challenge 13:34
lizmat If I would post something like "P5P had a great energy" in /r/perl, it would get a lot of hatemail
guifa__ last TPRC I got the challenge to do the polyglot regex module and now because lizmat++ got those nodes, I can really finish it off 13:35
13:35 jpn left
guifa__ this TPRC Ovid challenged me to add in logical programming into it 13:35
13:36 jpn joined 13:40 jpn left
guifa__ I'm thinking something like logic Foo { fact x { cat(tom) }; rule z { animal(X) :- cat(X) } }; Foo.query('animal(X)') # X = tom 13:42
obviously though `rule` doesn't really work though since that's used in grammars
lizmat SmokeMachine might also be interested in that ? 13:43
guifa__ yup, we talked briefly about it 13:45
13:45 jpn joined
nemokosch yeah I'd assume that "they had a great energy" was simply meant to be about the conference, or whatever related to that 13:52
a retrospective on something you were exposed to, kind of thing 13:53
the "no love for Raku" comment gets the post right in my opinion - or at least I misunderstand it the same way 😛 13:54
SmokeMachine lizmat: yes! guifa__ if I can help on that somehow… please let me know…
guifa__: would that make sense to implement the syntax with an interchangeable engine? To make it possible to implement different ones? 13:57
nemokosch the commenter's position was that ultimately, Perl is merely an ubiquitous legacy tool and basically any sort of development that doesn't serve the legacy use case is in vain, moreover harmful 13:58
it's not my business whether that's right or wrong, perhaps it should rather be the community that can decide that 13:59
lizmat a point I made 5 years ago already: www.perl.com/article/an-open-lette...community/
the response was overwhelmingly: how dare you suggest something like that 14:01
Geth ¦ problem-solving: lizmat assigned to codesections Issue It is time to drop the "(formerly Perl 6)" github.com/Raku/problem-solving/issues/377 14:03
¦ problem-solving: lizmat unassigned from codesections Issue It is time to drop the "(formerly Perl 6)" github.com/Raku/problem-solving/issues/377
14:06 Sgeo joined 14:44 teatime joined 14:47 tea3po left 15:12 buffet left 16:03 knarkhov joined
knarkhov Hi, all! Does anyone know what's happened with Tyil's git.tyil.nl/? There were a lot of dependency modules for Rakudo Star, since the repo is down my nightly builds are totally in errors... 16:08
[Coke] .seen tyil 16:09
tellable6 [Coke], I saw tyil 2021-06-20T16:51:00Z in #raku-dev: <tyil> that should be all of the (non-archived) docs
[Coke] Have the modules been taken over by someone else in the community? I'm surprised to see a 3rd party git repo.
El_Che knarkhov: as far as I know someone else took over rakudo star. Anton iirc? 16:10
[Coke] (that is, not gitlab or github)
git.tyil.nl/rakudo-star/ is not the official Star repo, if that's what you're looking for. 16:11
maybe you need to start with github.com/rakudo/star ?
knarkhov I'm building custom RStar distro with specific modules from sources 16:12
[Coke] ok, so Star isn't the problem, it's the dep you have on tyil's repo - can you name one of the repos you're trying to get from there?
knarkhov Tyil had all his modules in one place, and those ones are used in RS repo, but some of them (those in official RS repo have outdated version) 16:13
[Coke] also: please don't call a custom distro "Star", it will cause confusion.
My recommendation would be to update those versions in RS itself. 16:14
nemokosch well, if he never wanted them to live in some more centralized environment then I guess this was set to happen one day 16:15
by the way, the META6 outage also makes Collection fail
knarkhov that's the list: Log, Log-Colored, Hash-Merge, IO-Path-XDG, Config, Config-Parser-toml, Config-Parser-yaml
16:16 jpn left
[Coke] raku.land/?q=log+colored, for example, is listed as living in tyil's repo, and there's no other repo listed. 16:17
knarkhov RS official distro uses this repo as well github.com/rakudo/star/blob/master...odules.txt
as I said a lot of modules are taken from his repo and I'm not sure that we have a mirrors at GH/GL 16:18
[Coke] Sure. if tyil's gone (and their repos are gone), we should remove it from Star. If someone has a clone of that repo, we could theoretically put it into github under community modules, but someone should reach out to tyil. 16:19
nemokosch yes, probably the most luck would be to have a copy lying somewhere around
[Coke] the easy solution: remove those modules from star. 16:20
I wouldn't include any unsupported modules in that distro.
nemokosch then it would basically vanish, reading through the included, well, these are rather distributions than modules 16:22
does this Readline fork really work? github.com/lathropd/perl6-readline 16:23
[Coke] based on that fact that one of these is on cpan, maybe [email@hidden.address] can reach him. 16:25
based on that fact that one of these is on cpan, maybe tyil@cpan.org can reach him.
(also on github.com/Tyil) 16:28
maybe open a star bug and tag him. 16:29
knarkhov I think he is rebuilding his home server rack: www.tyil.nl/post/2023/07/23/my-new...k-mieshu/, looks like some stuff is at migration stage. Hope git will be up again soon 16:30
16:30 jpn joined
nemokosch anyway, this is something to get prepared for, I mean that code like that can fall out at any moment 16:30
knarkhov exactly 16:31
16:35 dakkar left 16:41 knarkhov left, teatwo joined 16:42 jpn left 16:44 teatime left, jpn joined
tonyo ^ that is why fez doesn't allow modules to be deleted after 24h 16:46
not that it would help if AWS went out of business tomorrow
nemokosch but yeah, I guess we convince ourselves that if AWS or Github fails, there will be much bigger problems... 16:48
and consequently that it wouldn't be let happen
16:48 jpn left
[Coke] I have moved from wanting a rack in my home to using a cloud server if it comes up. 16:51
... but mostly it doesn't come up anymore 16:52
(for me)
scullucs How can I tell if/where IO::String is implemented in the Rakudo source repo? (I can "use IO::String", but it's behaving differently today compared to when I was using many months ago.) 16:59
I used to be able to created an instance, then call the eof() method on it, which would return False if there was something left to read in it, but nowadays it appears to always return True. 17:00
*create 17:01
lucs And docs.raku.org appears to know nothing about IO::String.
nemokosch is it really a built-in? 17:08
doesn't seem like that
scullucs True. And indeed in the past I had installed it with zef. 17:12
But the behaviour has changed, so to try to figure out what was going on, I zef-uninstalled it, yet it still can be used.
And just to be sure, I nuked every single .precomp directory I could find. 17:13
nemokosch I can't use IO::String with Rakudo 2023.04
scullucs Hmm... I have 2023.02.
nemokosch run zef list --installed
scullucs Good idea... 17:14
nemokosch in case there is some instance lying around or idk
scullucs .h▸ zef list --installed | grep String ===> Found via inst#/shome/lucs/rakubrew/versions/moar-2023.02/share/perl6/site ===> Found via inst#/shome/lucs/rakubrew/versions/moar-2023.02/share/perl6/core String::CRC32:ver<0.05>:auth<cosimo> String::Utils:ver<0.0.15>:auth<zef:lizmat>
Weird. 17:15
nemokosch don't forget (probably) my biggest "ceterum censeo" with dependency management
scullucs Listening... 17:16
nemokosch that modules are wrapped into distributions
and even though you can only install distributions, and only distributions contain a proper amount of metadata, your dependencies are the underlying modules
so IO::String can be something living in a distribution called my-little-pony and you wouldn't notice 17:17
scullucs Oooh...
nemokosch this is a truly horrendous design
do you have Text::CSV by any chance? 17:18
scullucs Yep.
nemokosch I suspect (based on zef search) that it has an IO::String
scullucs I think you're right.
nemokosch github.com/Tux/CSV/blob/master/META6.json 17:19
there
scullucs I'll test by uninstalling Text::CSV.
nemokosch just how many people need to be bitten by this bullshit for it to be addressed
scullucs Yeah, once that is uninstalled, IO::String can't be 'use'd. 17:20
nemokosch the usual cop(e)-out is "always specify the author and the version, duh"
but then what was the whole purpose of this system, if you basically need to run extra laps to do the reasonable thing (=depend on what is actually installed) 17:21
17:21 observant_meat joined 17:22 [Coke] left
scullucs Heh, here's something "interesting". So I earlier uninstalled IO::String, and just now, Text::CSV, and I do, and get, this: 17:23
nemokosch there is this banal truth that people don't know what they don't know 17:24
scullucs .h▸ zef install IO::String ===> Searching for: IO::String ===> Updating fez mirror: 360.zef.pm/ ===> Updated fez mirror: 360.zef.pm/ ===> Updating rea mirror: raw.githubusercontent.com/Raku/REA.../META.json ===> Updated rea mirror: raw.githubusercontent.com/Raku/REA.../META.json ===> Testing: Text::CSV:ver<0.012>:auth<github:Tux> ===> Testing [OK] for
Text::CSV:ver<0.012>:auth<github:Tux> ===> Installing: Text::CSV:ver<0.012>:auth<github:Tux>
nemokosch higher version number wins 🤡
scullucs Er, but I didn't ask for Text::CSV, eh. 17:25
nemokosch no no. You asked for a module named IO::String
and zef will give you the highest version of that
... which is to be found in Text::CSV 🤡 17:26
scullucs Hmm...
LTA
nemokosch it absolutely doesn't care at this point if there is a distribution named exactly the same way
it's actually pretty dangerous; I'd say dangerous enough to not be allowed to happen implicitly 17:27
one can just hijack any module installed without the :auth<> yadda yadda if they give a sufficiently large version number to the malicious distribution it's in 17:28
And as everyone can see really, people just don't know about this, and they can't anticipate it 17:30
I hope you will never feel safe again after installing something without the :auth<> yadda yadda; you'd be very right with that 17:34
scullucs Okay, I get it. I just looked at the Text::CSV META6.json file, and it indeed "provides" IO::String, thus the conflict.
Right 😦 17:35
nemokosch It's crippling to think that this would be pretty easy to fix from the technical side (I mean, dependencies should just be the distributions) - however, there is the (legitimate) counter-argument that it would (potentially/probably) break the ecosystem into atoms 17:37
and to that I can't say anything still, apart from this shouldn't have ever made it into production 🤷‍♂️ 17:39
scullucs Halfway "solution": at compile time, if more than one non-"auth" qualified Baz::Foo is available when use'ing it, fail to compile and insist that the "auth" (and maybe "version") be specified? 17:42
Er, I meant: "..., if use'ing a non-"auth" qualified Baz::Foo and more than one is available, ..." 17:51
17:55 sena_kun joined 18:00 reportable6 left, reportable6 joined
nemokosch Yeah well, there are two things 18:15
Dependency management and module resolution
Dependency management pretends to be module resolution and that could have been avoided easily 18:16
Module resolution has no easy fix if all modules are stored globally and the names don't have to be unique 18:17
Arguably, both should fail loud and clear when there's ambiguity, though 18:18
Because that's always better than guessing wrong
18:21 knarkhov joined
at that point it's not even sure if the user can recover actually 18:22
18:24 knarkhov left
if the dependency resolution succeeds but then the code complains about the ambiguity in the use statement that's probably hell though 18:25
18:26 observant_meat left
@scullucs oh right, isn't it also funny that zef install IO::String installs Text::CSV but zef uninstall IO::String won't uninstall it? 18:28
18:39 hellwolf left 18:49 jpn joined 18:58 jpn left 19:21 dogbert17 joined 19:34 Zen93 joined, Zen93 left 19:55 jpn joined 19:59 jpn left 20:59 linkable6 left, evalable6 left, benchable6 left, sourceable6 left, unicodable6 left, releasable6 left, greppable6 left, bisectable6 left, nativecallable6 left, bloatable6 left, statisfiable6 left, tellable6 left 21:00 benchable6 joined, sourceable6 joined, releasable6 joined, linkable6 joined 21:01 unicodable6 joined, jpn joined, greppable6 joined, bisectable6 joined 21:02 tellable6 joined, statisfiable6 joined, evalable6 joined, nativecallable6 joined, bloatable6 joined
tbrowder__ lovate 21:06
pls disregard 21:07
i have an IO/String from hoelzro pre 2019 21:09
lizmat: any progress on getting File::Find transferred from tadzik? 21:11
21:13 eroux left 21:17 eroux joined 21:21 jpn left 22:20 sena_kun left 22:28 rf joined
lizmat tbrowder__: I privmsg'd tadzik, no reply yet 22:40
22:49 rf left
nemokosch oh I even sent an email several months ago... 22:53
tbrowder__ lizmat: thank you 23:15
23:17 jpn joined 23:22 jpn left 23:30 teatime joined 23:32 teatwo left