🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 25 August 2021.
El_Che www.bleepingcomputer.com/news/secu...s-of-apps/ 08:02
raku does not have a culture of pinning versions nor it's something suggested by the docs. Maybe something to think about 08:03
gfldex He published under MIT and complains that nobody is sharing back … 08:49
Nemokosch xD 09:09
I mean, this tells a lot about the people as well 09:10
"I don't have to share back? Okay, then I won't."
gfldex Sharing back takes time. So one could argue it being a good thing, as it indicates open source is not used by slackers. :-> 09:11
lizmat El_Che: I try to give the good example: all of my modules are version pinned in their dependencies, as far as is possible 09:23
El_Che lizmat: yes, yours. Someone new to raku, wont do that is it's not something that's explicitly encouraged 09:42
lizmat true, but at the moment it's also a hassle, we need to make that easier 09:47
lizmat like, if in the META a dependency is declared on Foo:ver<42>:auth<zef:bar>, any statement "use Foo" of a module in that distribution should automatically use *that* version, and nothing else 09:48
currently you have to keep track, and I know from experience, that is tricky
same for scripts BTW
lizmat starts on a Weekly covering two weeks 09:51
.oO( what was I thinking skipping a week? )
tbrowder hi, i am now motivated to version pin all my deps. and the incident referenced above seems like a good reason for the raku community to push module authors to the Zef repo 11:30
Skarsnik well, like CPAN/PAUSE x) 11:31
tbrowder ?
zef could be modified to report such 11:32
blin also?
Skarsnik I mean with the CPAN, you have to upload a version of your module to/on PAUSE, so there is not really unversionned stuff 11:33
tbrowder hm, i thought the pinning issue was also in the modules deps where the using author should specify the exact version to be used 11:36
Skarsnik Should be only in the Meta, kinda annoying to have to update your code just to update a deps 11:37
tbrowder yep, i agree, my dumb thought was do it in each using rakumod 11:39
tbrowder but i keep seeing some discussion here about is the Meta dep accepted as authoritative for zef--i'm probably confusing it with something else 11:41
moon-child I should also hope that, culturally, the raku community is less prone to such stunts 11:47
js seems to get them about once or twice every year, which is really not that much. And they are huge 11:48
El_Che having to declare versions in de .rakulib files and in META6.json is LTA 12:37
and error-prone
lizmat indeed... and I know from experience 12:39
tbrowder that's where zef could help 13:44
and blin?
ref desired std file extensions, etc. 13:45
will the "t" directory in a module dir become "rakutest" 13:46
El_Che I don't know if zef should do it or put part in the functionality in code 13:56
e.g. what go does when they fixed they module workflow problem (which sucked before):
go mod tidy && go mod vendor
they just use the name in the code file, and the go mod tool writes a go.mod file with the versions 13:57
(granted raku's module plugging system is richer, but just to illustrate the principle) 13:58
(they fixed the different version of the same module dependency problem by seeing each import path as unique, eg "import github.com/nxadm/mylib and "import github.com/nxadm/mylib/v2", with v2 just being a directory 13:59
tbrowder ok, i've been checking zef issues and i think i missed something recently: does test::META actually check for dependencies now? i stopped using it some time ago, but i'll check it now... 14:30
hm, i don't see that it does, so where should module version checks be made! 14:36
.*?
my use of App::Mi6 i think is what made me stop using Test::META since it checks for errors, too. 14:38
i think i understand ugexe's position bettter now. maybe i'm coming late to the dance, but the whole issue sounds like a problem solving one for rsc...i'll see what's there now... 14:42
arg! i see lots of issues, and one or more related to versioning. 14:46
El_Che tbrowder: that's what I mean with "in code": I meant "in core" typo 14:47
tbrowder got it. is there an active effort on that on a branch you know of? 14:49
El_Che I think the idea is rather new 14:50
"new"
tbrowder thnx. i find it difficult to zero in on actual discussion on doco of accepted problem solutions when i do visit raku/problem-solving--layout makes my head hurt...156 open issues doesn't help... 14:57
maybe issue creators should advertise more, ask for votes, maybe rsc should highlight some for active discusion on #raku or #raku-dev, or maybe i'm rip van winkle!! 15:00
El_Che not everyone is as passionate about the same issue (e.g. some people don't care about pinning) 15:02
and even less people can implement it
sjn Didn't we have some Perl 6 (as it was then) hack days some years ago? Maybe worth reviving those again. :-) 15:12
"Raku hacking weekend", via some video conferencing (Jitsi?) where one person starts out giving an example of how to solve a specific class of problems, then others can pick up similar issues and get a little support underways until they're confident... 15:13
sjn wouldn't mind participating in something like that (speaking with both my .pm and my local hackerspace hats on) 15:15
guifa lizmat: so technically, today's issue is of "Raku Fortnightly (not Fornitely #`[getoffourlawn])" ? 15:23
El_Che reflects on how sjn is a born organizer :) 15:29
lizmat ideally, I would like to see in-person hackathons
but given the current situation, I guess an online hackathon would also be helpful
El_Che the bus factor becomes the covid factor 15:30
lizmat inverted, I'd hope? we want R to be as low as possible :-) 15:31
tbrowder any core hackers gonna be at houston in june? 15:51
sjn El_Che: I'm a born suggester of tasks for others. :-P 15:52
lizmat tbrowder: I will not
sjn Houston is far away :-|
(not that I'm a core hacker in any way :-D) 15:53
tbrowder yes, i know, sorry to miss seeing you again ☹️
El_Che sjn: you're the Raku-whisperer 15:55
tonyo sjn: a lot of module/tooling advances came during PTS, i don't think any of us on that side of raku would complain about another hand in the pot 17:49
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/01/10/2022-...-perching/ 18:46
Skarsnik There was the squashzton on WE for while 19:14
MasterDuke lizmat: i'd rather an in-pub hackathon, in-person i suspect it's too dark to read 19:31
lizmat++ for the weekly
lizmat could be in a pub. could be *nudge nudge* 19:32
Nemokosch what does "perching" mean? 19:38
MasterDuke in english? sort of like crouching/sitting/standing on top of something. birds perch on branches. a perch is a place/thing to do that on. so in this context it is a reference to the request for a "python perch", i.e., a place to put python-related raku blog posts 19:42
El_Che I wouldn't mind seeing old friends again 19:47
most ofyou I saw at the yapce in... amsterdam
lizmat yeah :-( too long ago 20:03
El_Che yeah, the time we saw each other at flanders pm were also nice 20:08
we need to make a mental note for after covid
Skarsnik hm, how could I express Raku identifier token (look super complex in STD), I mean accepting Foo-Bar? 20:58
m: grammar Foo {token TOP {<more-ident>+<ident>*}; token more-ident {<ident>+"-"?}}; say Foo.parse("foo-bar"); say Foo.parse("foo-"); 21:05
camelia 「foo-bar」
more-ident => 「foo-」
ident => 「foo」
more-ident => 「bar」
ident => 「bar」
「foo-」
more-ident => 「foo-」
ident => 「foo」
Skarsnik sadly this match foo- x) 21:06
tonyo What're you trying to accomplish skarsnik? 21:19
Skarsnik I am doing a weird slang and I want to accept foo-bar as symbols name for sub 21:21
ugexe <more-ident> matches 'foo-', and <ident>* matches something 0 or more times, so yeah
tonyo Why not just ident ** 1 % '-' 21:22
And be more explicit than ident as ugexe points out
ugexe i would probably just hard code sensible values 21:29
x-1 isnt a value ident afterall
valid^ 21:30
tonyo grammar Foo { token TOP { ^ <id> $ }; token id { (<[a..z0..9]>+) ** 1..2 % "-" }; }; say Foo.parse("id")??"yes"!!"no"; say Foo.parse("id1-id2")??"yes"!!"no"; say Foo.parse("id1-")??"yes"!!"no";
evalable6 yes
yes
no
Skarsnik 1 does not match ident thou
tonyo no but "hello-world" is a valid ident
ugexe ah it doesn't, i thought it would 21:31
Skarsnik ident is alpha + _ I think?
wait, maybe digit are also included 21:32
tonyo oh, then: 21:32
m: grammar Foo { token TOP { ^ <id> $ }; token id { <ident> ** 1..2 % "-" }; }; say Foo.parse("id")??"yes"!!"no"; say Foo.parse("id1-id2")??"yes"!!"no"; say Foo.parse("id1-")??"yes"!!"no";
camelia yes
yes
no
tonyo that will work then ^
Skarsnik <ident>Basic identifier (no support for C<'> or C<->). Same as C« <.alpha> \w* » 21:33
Skarsnik ** Range % is neat ^^ 21:34
Thanks anyways ^^ 21:35
Skarsnik Could be nice if we could tell comma "This class is an action for this grammar, plz complete me method name" x) 21:39
Skarsnik debugging grammar is really not fun :( 22:09
Skarsnik I think I am in grey teritory, chain grammar by inheriting them xD 22:29
Skarsnik Ok, having <ws> mean 2 things in the 2 grammars is not great xD 22:47
tonyo Skarsnik: with grammars it's really hard to depend on something further up 23:00
if you're writing a slang it's better to be explicit
ugexe github.com/ugexe/Perl6-Grammar--HT...m6#L14-L36 23:02
Skarsnik I have a grammar that parse snes asm instruction (and a class that 'assemble' them), Now I am doing a slang to generate Raku subs that returns me bytecode. So I reuse the Asm grammar in the slang. But I defined ws as \h* in the ASM grammar (more easier to work by explicit line) 23:05
guifa Actually, doing roles for adding tokens is pretty standard practice AFAIK 23:24
Skarsnik I think what is mainly missing in Grammar is a good way to express error. Not sure what could be done, maybe having access to more context? like I am an identifier token and it fails to parse for a certain parent I could error? or even knowing what fail in your token could help x) 23:35
Skarsnik like token affection { <identifier> '=' <value> ERROR<!value> { die "Missing value for affection" }} (well you could add it in the action class I guess for this) 23:38