🦋 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
nemokosch I think it's a pretty big deal that regex can be nested in regex, and anyway, feature creep: does Raku always need to beat down everyone in terms of features? Does it really have to be more Perl than Perl itself? 00:01
The problem already has a clear and sufficiently concise solution, I'm fairly certain this is what people care about
00:03 ab5tract joined, wayland left 00:37 ab5tract left, wayland joined, wayland is now known as wayland76 00:43 razetime joined
wayland76 Hi all, I have a few questions: 00:47
- Is there a way I can get a list of all operators that operate on a Supplier
- Is there a Receiver or Consumer that matches the Supplier 00:48
- Is it possible to get a list of all descendants of Supplier? If it includes all the modules in zef that's a bonus, but if it's just the core ones, that's OK too.
guifa I don't think there's any operators designed to work on Suppliers per se. Probably just listy/setty and truthy ones would be of any use 00:50
wayland76 OK, good to know I haven't just missed something obvious :) . Thanks! 00:51
guifa Parent classes are unaware of their children as a general rule (I think I one time made it as a design-by-contract thing for a very weird purpose, but that was it and I eventually found a better way around) 00:52
the receiver is a Tap 00:53
it's always generated by a Supply (different from a Supplier) 00:54
wayland76 Is there a Tap object, or is it just the .tap function on the Supply? 00:55
SmokeMachine wayland76: you could iterate over something like this and test if it’s an Supply: github.com/FCO/Test-Fuzz/blob/mast...es/classes
m: Supply.new-from-list(1,2,3).tap.^name.say 00:56
camelia No such method 'new-from-list' for invocant of type 'Supply'
in block <unit> at <tmp> line 1
00:57
SmokeMachine m: Supply.from-list(1,2,3).tap.^name.say
camelia Tap
SmokeMachine wayland76: 👆
wayland76 Oh, cool! Thanks! :) 00:58
SmokeMachine m: say <int Int StrInt Rat Str>.grep: Numeric 00:59
camelia ()
SmokeMachine m: say <int Int StrInt Rat Str>.grep: Num
camelia ()
SmokeMachine m: say <int Int StrInt Rat Str>.grep: { ::($_) ~~ Numeric } 01:00
camelia (int Int Rat)
guifa It's an actual Tap class, but there's no way to create it on its own
guifa wonders if there's a way to know how many times a token gets called in a backtrack process 01:01
I'm currently hacking together something hideous using some heuristics based on orig/pos which I guess in principle would work but means if you ran the outer regex twice on the same string things would be optimized which may not be desired if there's a sideeffect block 01:02
wayland76 Yeah, I see -- it's not really a receiver per se (still useful though). That's OK though. My questions were mainly directed at answering the question "Is my current project duplicating work that already exists?".
Thanks a lot for all your help! :) 01:06
SmokeMachine wayland76: and is it? 01:07
wayland76 No. I'm trying to make something that's somewhere out in the direction of either shell chaining (unix | and tee, etc) or like nodered, where we can assemble various ... let's call them DataFlow objects (like a Supplier, but potentially with passthrough), and then we can feed data into the network of objects and it'll come out the other end processed. 01:10
Nothing that can't already be done, but I'm trying to make it a simpler syntax (much like Slang::SQL) 01:11
01:11 rf joined
SmokeMachine I’ve been playing with something like that to create a shell… not very evolved, but it it could help: github.com/FCO/RakuSH 01:13
wayland76 Yeah, I'd been thinking about creating a shell, but came to the conclusion that what we probably really need on that front is a rewrite of the core Unix utilities :). 01:17
SmokeMachine Oh! I’m also toying with that idea… currently I’m working on my own cron… 01:18
wayland76 For example, imagine that a) many commands (such as ls/list) had an "--output" option that would let you choose between human-only (like your output at that URL), half-human (like standard unix output, but guaranteeing no whitespace in any field), and things like yaml and json. 01:19
And you could use the same set of options on most commands, because they were all from the same library.
SmokeMachine (My module I just released (github.com/FCO/MergeOrderedSeqs) is for using on that…
wayland76 Oh, nice! 01:20
tonyo librasteve: when did you upload the versions you filed a bug for on raku.land? 01:23
SmokeMachine So, my rakushell idea is similar to that, but you don’t need to specify —outiput, it always returns Raku objects. But if you print that object (and it’s a repl) it will format its data to a human read… but it’s an object, another function can get that and it will have all data there, not needing to parse it… 01:24
wayland76: 👆
wayland76 Handy! 01:25
guifa gist.github.com/alabamenhu/d2bffa6...e52a53380b 01:30
seems like I can only have rudimentary access to backtrack (e.g. check within my token and if the match fails, try less). I get called again only when the pos changes 01:31
SmokeMachine wayland76: for my cron, the idea is to use this (github.com/FCO/Configuration) to have configuration defined in raku, and make it possible to have rules like: `.run-at: :10hours, :week-days(Mon, Wed, Fri), { shell “ls -la” }` ( to run ls -la every Monday, Wednesday and Friday at 10:00. Each rule will create a lazy list with the next runes, I’ll merge all that in a single lazy list and iterate over it with a promise.at 01:32
next run…
wayland76 It has runes? I'm interested! :p 01:38
Huh, interesting idea. 01:40
Where does the official Raku grammar live these days? 01:45
MasterDuke github.com/rakudo/rakudo/blob/main...rammar.nqp for the current grammar. github.com/rakudo/rakudo/blob/main...rammar.nqp for the WIP RakuAST grammar 01:48
wayland76 Oh, OK. Thanks!
Very handy :) 01:57
02:11 linkable6 left, evalable6 left 02:12 linkable6 joined 02:13 evalable6 joined 02:30 guifa left 03:15 rf left 03:46 razetime left 03:49 wayland76 left 03:51 wayland76 joined
wayland76 Another question: I want to make something that turns my slang code into Raku code as summarised at gist.github.com/wayland/bba0457159...7ac1bf61bb . I'm struggling to figure out which part of the grammar I should tap into. It seems similar to sigil/twigil, but different enough that I don't think I can just tap into them directly. Thoughts? 04:11
04:27 razetime joined 05:27 quotable6 left, tellable6 left, sourceable6 left, benchable6 left, notable6 left, coverable6 left, committable6 left, nativecallable6 left, statisfiable6 left, bisectable6 left, reportable6 left, greppable6 left, evalable6 left, shareable6 left, releasable6 left, unicodable6 left, linkable6 left, bloatable6 left, squashable6 left 05:28 notable6 joined, bisectable6 joined, nativecallable6 joined, committable6 joined, evalable6 joined, coverable6 joined 05:29 shareable6 joined, quotable6 joined, linkable6 joined, statisfiable6 joined, releasable6 joined, unicodable6 joined, greppable6 joined, tellable6 joined 05:30 sourceable6 joined, bloatable6 joined, reportable6 joined, squashable6 joined, benchable6 joined 05:45 siavash joined 06:00 reportable6 left 06:03 reportable6 joined 07:03 linkable6 left, evalable6 left 07:04 evalable6 joined 07:05 linkable6 joined 07:06 abraxxa joined 07:38 cm_ joined, cm left, siavash left, cm_ is now known as cm 07:40 siavash joined
librasteve tonyo: I fez uploaded them yesterday afternoon (UK time) ... but by 8pm they were unremovable 07:41
tonyo: probably didn't help that I mis-spelled the module name first time (ie they may not be the same name)
07:59 jpn joined
SmokeMachine wayland76: wouldn't a prefix be enough for that? 08:03
m: sub prefix:<↑File>($full-filename) { say $full-filename }; ↑File "blablabla" # wayland76 👈
camelia blablabla
08:08 Sgeo left 08:09 dakkar joined
wayland76 SmokeMachine: Hmm. But I'd also like ↑Query to do the same for a database query (DataFlow::Source::Query), and the like, and not have to redeclare it for each object. 08:12
But I'll play with them, and see what I get.
08:14 tea3po left, tea3po joined
wayland76 Thanks! 08:15
08:32 razetime left 08:56 razetime joined
nemokosch RE where is the Raku grammar - I was thinking about creating a sort of reference grammar; one that uses some universal tool, or is at least quite pure and stateless, at the obvious cost of doing some recursive multi-pass parsing 09:30
there isn't really a formal description of the grammar so the intention would be clearly to mitigate that 09:31
wayland76 It'd be handy if the rules had somewhat similar names to the actual grammar, so that we could use it as a reference in writing slangs :) . 09:34
lizmat FWIW, in RakuAST, I'm working on making the Raku grammar more public and API-documentable 09:36
e.g. by kebab-casing and better naming
vendethiel Is STD more readable? (As in, less performance focused) 09:43
Though that’s a bit old by now
lizmat yeah, that misses a *lot* 09:49
all of the supply / react / whenever / start stuff afaik
nemokosch Yeah I came across STD recently (the benefits of working with the raku.org sources eh) but I frankly had no idea where to even look. 09:53
It seemed essentially like a bunch of Perl scripts that somehow generate some content
lizmat fwiw, the legacy Raku grammar is at src/Perl6/Grammar.nqp 09:54
the RakuAST one is at: src/Raku/Grammar.nqp
nemokosch yes sure, it's just not the kind of grammar you can (easily) show and explain to someone who is interested in the formal grammar of the language 09:56
09:56 linkable6 left, evalable6 left
lizmat true, but am working on making it more readable and document it more (as soon as I grok a section enough) :-) 09:57
09:58 linkable6 joined
nemokosch lizmat++ 09:58
09:58 gordonfish left, bd3i left 09:59 evalable6 joined, Altreus left 10:00 jjatria left, JRaspass left
wayland76 lizmat: Is the rewrite likely to break slangs such as Slang::SQL? 10:01
lizmat yes, but for many other reasons as well
basically all of the Slang:: modules will probably need a RakuAST version
wayland76 Sure, I was just wondering whether the Slang people would have to do a rewrite :) .
10:02 Scotteh_ left
lizmat I think most of the Slang:: modules will move to raku-community-modules 10:02
except if they're still under active development 10:03
nemokosch I think a lot of people get this "write-only language" stuff wrong, both from people who say and people who argue against it 10:08
(it wouldn't even be me if I didn't say both sides have it wrong lol)
I'm fairly convinced that Raku code is, or at least can be, in the vast majority of cases, pleasant to look at 10:10
10:11 gordonfish joined
in practice, it is the TIMTOWTDI-ness itself that creates the asymmetry 10:11
10:11 Scotteh joined 10:12 bd3i joined, Altreus joined
that somebody who writes code only needs to know "one way to do it" but somebody who reads code quite possibly needs to know all of them 10:12
10:14 jjatria joined, JRaspass joined
wayland76 Haha, yep :) . I'm reminded for some reason of the quote "FORTRAN programmers can write FORTRAN in any language" :) 10:14
librasteve I agree - raku gives you the tools to write very clean code - but does not try to force a certain style
so it leaves the responsibility with the coder to write clean code
"with great power comes great responsibility" -yoda? 10:15
wayland76 Hey, just wanted to say good work to all the people who've put the hard work in to get Raku to the stage it is now. Last time I looked in, things like eg. macros just plain weren't available. Now they are at least somewhat. Thanks!
lizmat spiderman
nemokosch I'm also thinking if this can be mitigated/exploited by a certain style of code management. Like, if the work mostly took place in little, relatively isolated teams and they deployed relatively independent, easily replacable components 10:16
lizmat well, that trend already exists: at former $work each team is basically the product owner of a micro-service 10:17
how they do that micro-service, is up to them
wayland76 The power/responsibility quote even has its own Wikipedia page! en.wikipedia.org/wiki/With_great_p...onsibility
librasteve and you kind of have dialects already - like functional, OO, concurrent 10:18
nemokosch so yeah, I wonder if this "write-only" and "programming in the small" stuff can be answered with "you might have a point but here is the alternative workflow where we can actually win big time" 10:21
with distributed services, what needs to be shared is not libraries, code, internal conventions but communication protocols 10:22
10:24 razetime left 10:31 razetime joined 10:32 timo left 10:34 tankf33der left 10:37 timo joined 10:42 teatwo joined 10:43 tea3po left 10:45 Geth left, Geth joined, RakuIRCLogger left, RakuIRCLogger joined 11:00 Scotteh left, Scotteh joined 11:09 JRaspass left, jjatria left, Scotteh left 11:10 Altreus left 11:15 Altreus joined 11:16 Scotteh joined 11:21 JRaspass joined 11:27 jjatria joined
can multi candidates be exported one-by-one? 11:30
11:30 destroycomputers left 11:31 destroycomputers joined
lizmat afaik yes 11:32
*but* you don't need to if you're also exporting the proto 11:33
then you only need to export the proto
nemokosch thanks
so... @rcmlz we are at topic 11:34
Geth raku.org: a37f02c270 | (Elizabeth Mattijsen)++ | source/community/irc/index.html
Point to ouw own IRC logs
11:38
11:42 razetime left 11:47 siavash2 joined 11:48 razetime joined 11:50 siavash left 12:00 reportable6 left, reportable6 joined, hellwolf left 12:05 sftp left, a3r0 left, tbrowder__ left, avar left, tib left, BinGOs left, rba left, dpk left, leont left, sftp joined, a3r0 joined, tbrowder__ joined, avar joined, tib joined, BinGOs joined, rba joined, dpk joined, leont joined
Geth planet.raku.org: a7d2527d1a | (Elizabeth Mattijsen)++ | perlanetrc
Remove dupe
12:06
12:17 JRaspass left, Scotteh left, Altreus left, jjatria left 12:22 Scotteh joined 12:29 jjatria joined, Altreus joined 12:34 JRaspass joined 12:36 siavash2 left 12:37 jpn left 12:56 ab5tract joined 12:57 jpn joined 13:02 jpn left 13:06 jpn joined 13:22 JRaspass left 13:24 Scotteh left 13:29 Scotteh joined 13:33 JRaspass joined 13:45 rypervenche left 13:50 razetime left 14:01 rypervenche joined 14:03 razetime joined 14:07 linkable6 left 14:08 linkable6 joined 14:23 bd3i left 14:24 bd3i joined 14:41 lizmat_ joined 14:43 lizmat left 14:46 lizmat_ left, lizmat joined
librasteve .tell tonyo: I fez uploaded them yesterday afternoon (UK time) ... but by 8pm they were unremovable 15:28
.tell tonyo: probably didn't help that I mis-spelled the module name first time (ie they may not be the same name) 15:29
15:46 linkable6 left, evalable6 left 15:47 MoC joined 15:48 linkable6 joined 15:49 evalable6 joined 15:54 simcop2387 left, perlbot left 15:56 razetime left 16:00 perlbot joined
tonyo librasteve: there's a bug where i seem to be getting the times in different timezones..i'd've guessed they were all the same and that remove feature is going to get some love on the next release where it doesn't try to check locally and let the server handle the timezone conversions etc 16:00
16:01 simcop2387 joined 16:40 dakkar left
librasteve thanks for the help - i still see them on raku.land … will they just evaporate or do i need to redo fez remove ?? 17:03
17:15 wayland76 left, wayland joined 17:21 abraxxa left 17:31 ab5tract left
tonyo you'll need to re-run it, let me review what i have in fez and see if i can push - you may still be able to remove them 17:50
librasteve: you can try it again with fez v53 (just published) 17:56
18:00 reportable6 left 18:02 reportable6 joined
librasteve nope - looks like the same issues (using v53) 18:52
gist.github.com/librasteve/0471933...55f88b6e81 18:53
tonyo Fez::Util::Date doesn't exist anymore, that looks like a corrupt install 19:00
19:02 linkable6 left, evalable6 left 19:03 linkable6 joined, evalable6 joined
librasteve okayyy - so I did a zef uninstall fez then a zef install fez and get the same think 19:04
s/k/g/ 19:05
DockerWorld/raku-App-Ralc > zef uninstall Fez::Util::Date !!!> Found no matching candidates to uninstall
Welcome to Rakudo™ v2023.06. Implementing the Raku® Programming Language v6.d. Built on MoarVM version 2023.06. 19:07
on macos fwiw
better if install direct from gh 19:08
DockerWorld/raku-App-Ralc > zef install github.com/tony-o/raku-fez.git ===> Testing: fez:ver<53>:auth<zef:tony-o>:api<0> ===> Testing [OK] for fez:ver<53>:auth<zef:tony-o>:api<0> ===> Installing: fez:ver<53>:auth<zef:tony-o>:api<0> 1 bin/ script [fez] installed to: /Users/stephenroe/.rakubrew/versions/moar-2023.06/share/perl6/site/bin DockerWorld/raku-App-Ralc > fez remove
'App:Ralc:ver<0.0.2>:auth<zef:librasteve>' >>= Request received, if it is past the 24 hour window for removing modules then the module will remain in the ecosystem and indexed =<< FATAL: Error processing request
guess this is now working but we are now beyond the windows 19:09
quite ironic really
24 hours is quite a tight window for error / regret - why not limit that to modules that claim v1 or higher? 19:11
and more like 72 hours for real updates
19:13 squashable6 left, squashable6 joined 19:30 TieUpYourCamel left 19:32 TieUpYourCamel joined
tonyo librasteve: v53 didn't index one second 19:51
librasteve sorry - not sure I understand ... 19:56
[really appeciate your help!!] 19:57
20:01 jpn left
tonyo i was logged in under one of my test auths 20:06
20:08 guifa joined 20:14 teatwo left 20:15 teatwo joined, ab5tract joined, teatwo left 20:16 teatwo joined 20:21 teatwo left, teatwo joined 20:27 ab5tract left
librasteve off to bed 20:33
20:36 jpn joined
nemokosch nighties 20:38
20:44 jpn left 20:56 jpn joined
tonyo librasteve: v54 should not block you from sending the request anymore, sorry for the inconvenience 21:13
(regarding the current uploads)
21:18 MoC left 21:34 ab5tract joined 21:37 jpn left
SmokeMachine any suggestion/critics about this (github.com/FCO/RakuCron/blob/main/...kuconfig)? This is a cron-like being written in Raku and configured in Raku... 21:43
librasteve ... small glass of port ... 21:54
then v0.0.1 of the two offending items is gone with v54 21:55
on the other
DockerWorld/raku-App-Ralc > fez remove 'App:Racl:ver<0.0.1>:auth<zef:librasteve>' >>= Request received, if it is past the 24 hour window for removing modules then the module will remain in the ecosystem and indexed =<< FATAL: Error processing request
since that really is > 24 hours by now, maybe some admin intervention needed?? 21:56
anyway thing I will rename ralc (raku-calc) to crag(calculator using raku grammars) 22:01
lizmat :-) 22:12
if that isn't built for a 100 year language, I don't know what is :-) 22:20
22:34 Vyrus left 22:35 Sgeo joined 22:36 Vyrus joined 22:55 jpn joined 22:59 jpn left 23:10 wayland left 23:33 jpn joined 23:38 jpn left 23:59 guifa__ joined