🦋 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
|