🦋 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 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 8 June 2022. |
|||
00:08
reportable6 left
00:09
reportable6 joined
00:39
KvL left,
KvL joined
00:55
Sankalp left
00:56
Sankalp joined
01:50
frost joined
02:27
frost left
02:30
frost joined
02:59
simcop2387 left
03:02
simcop2387 joined
04:02
sourceable6 left,
releasable6 left,
bisectable6 left,
greppable6 left,
reportable6 left,
benchable6 left,
notable6 left,
bloatable6 left,
coverable6 left,
unicodable6 left,
tellable6 left,
quotable6 left,
committable6 left,
linkable6 left,
nativecallable6 left,
evalable6 left,
shareable6 left,
statisfiable6 left,
shareable6 joined,
coverable6 joined,
bisectable6 joined,
tellable6 joined,
committable6 joined
04:03
sourceable6 joined,
bloatable6 joined,
evalable6 joined,
unicodable6 joined,
statisfiable6 joined
04:04
greppable6 joined,
benchable6 joined,
linkable6 joined,
quotable6 joined,
releasable6 joined,
nativecallable6 joined
04:05
reportable6 joined,
notable6 joined
05:03
mexen joined
|
|||
sjn | is there a way to create character classes based on the content of previous captures in a regex? | 05:15 | |
e.g. m/( <[abc]> )( <[abc] - [$1]> )/; | 05:18 | ||
interpolated character class set operations | 05:25 | ||
06:03
evalable6 left,
linkable6 left,
linkable6 joined
06:04
evalable6 joined
06:08
reportable6 left
06:10
reportable6 joined
07:10
evalable6 left,
linkable6 left,
linkable6 joined
07:11
evalable6 joined
07:24
Sgeo left
07:32
Woodi_ is now known as Woodi
07:36
[Coke]_ joined
07:37
[Coke] left
|
|||
MasterDuke | nope, not without using EVAL | 08:14 | |
08:14
dakkar joined
|
|||
Nemokosch | regexes are sort of underpowered once you want to generate them | 08:18 | |
Bumped into this just a week ago or so | |||
Praise for RakuAST as usual | |||
Pray* | |||
08:33
dg left
08:39
dg joined
09:39
committable6 left,
nativecallable6 left,
quotable6 left,
shareable6 left,
greppable6 left,
coverable6 left,
unicodable6 left,
evalable6 left,
sourceable6 left,
reportable6 left,
statisfiable6 left,
tellable6 left,
notable6 left,
bloatable6 left,
benchable6 left,
linkable6 left,
bisectable6 left,
releasable6 left,
coverable6 joined,
nativecallable6 joined
09:40
reportable6 joined,
committable6 joined,
tellable6 joined,
notable6 joined,
shareable6 joined,
greppable6 joined,
statisfiable6 joined,
evalable6 joined,
benchable6 joined
09:41
releasable6 joined,
quotable6 joined,
linkable6 joined,
bisectable6 joined
09:42
bloatable6 joined,
sourceable6 joined,
unicodable6 joined
|
|||
lizmat | weekly: www.facebook.com/wgavdijk/posts/pf...jcb9CWhrsl | 09:49 | |
notable6 | lizmat, Noted! (weekly) | ||
El_Che | (link is not accessible without login in) | 10:26 | |
sienet_ja_LSD[m] uploaded an image: (138KiB) < libera.ems.host/_matrix/media/r0/d.../image.png > | 10:28 | ||
here's most of it | |||
El_Che | thx :) | 10:29 | |
lizmat | sienet_ja_LSD[m]++ | 10:42 | |
10:42
linkable6 left,
evalable6 left
10:43
evalable6 joined
10:44
linkable6 joined
|
|||
lizmat | weekly: wendyga.wordpress.com/2022/06/16/we-will-raku/ | 10:45 | |
notable6 | lizmat, Noted! (weekly) | ||
11:44
linkable6 left,
evalable6 left,
notable6 left
11:45
notable6 joined,
evalable6 joined,
linkable6 joined
12:06
reportable6 left,
[Coke]_ is now known as [Coke]
12:08
reportable6 joined
|
|||
SmokeMachine | m: my @a = <a b c>; say $_, " -> ", ?m/(@a)<{@a.grep: { $_ ne $0 }}>/ for <ab bc ca aa bb cc> # son: not exactly what you want, but would that work? | 12:15 | |
camelia | ab -> True bc -> True ca -> True aa -> False bb -> False cc -> False |
||
SmokeMachine | m: say $_, " -> ", so m/( <[abc]> )( <[abc]> ) <?{$1 ne $0}>/ for <ab bc ca aa bb cc> # sjn or this | 12:24 | |
camelia | ab -> True bc -> True ca -> True aa -> False bb -> False cc -> False |
||
SmokeMachine | m: say $_, " -> ", so m/(<[abc]>) ** 2 <?{infix:<ne>(|$0)}>/ for <ab bc ca aa bb cc> # or | 12:28 | |
camelia | ab -> True bc -> True ca -> True aa -> False bb -> False cc -> False |
||
SmokeMachine | sjn: ☝️ | 12:29 | |
12:34
lichtkind joined
13:23
Kaiepi joined
13:24
jgaz joined
13:29
morte_ joined
|
|||
[Coke] forgot he wrote github.com/coke/raku-cal to have 'cal' on windows. wow, that is old and needs some updating. | 13:31 | ||
(needs to switch to app-as-shim-for-lib model and add a META6.json) | |||
dakkar | uh… I didn't know you could put a pair inside a «» | 13:39 | |
m: say qq:ww{:a(1) b}.map: { $^a.WHAT }; | 13:40 | ||
camelia | ((Pair) (Str)) | ||
dakkar | m: say qq:w{:a(1) b}.map: { $^a.WHAT }; | ||
camelia | ((Str) (Str)) | ||
dakkar | docs.raku.org/language/quoting doesn't say anything about that… docbug? | ||
m: say qq:ww{:a(1)}.map: { $^a.WHAT } | 13:45 | ||
camelia | ((Pair)) | ||
dakkar | m: say qq:ww{:a(1)} | ||
camelia | |||
dakkar | uh… why is it not printed? | 13:46 | |
m: say qq:ww{:a(1) b} | |||
camelia | (a => 1 b) | ||
dakkar | is there a special case for list-contaning-one-pair in `say` or `gist`? | ||
does it get interpreted as a named argument?? | 13:47 | ||
(roast does specify that qqww recognises pairs, in `S02-literals/quoting.t`) | 13:49 | ||
13:57
morte_ left
13:58
jgaz left
14:12
ocomporto left
|
|||
dakkar | uh… | 14:18 | |
m: say «:a(1)» | |||
camelia | a => 1 | ||
dakkar | m: say Q:qq:ww:v{:a(1)} | ||
camelia | a => 1 | ||
dakkar | m: say qq:ww:v{:a(1)} | ||
camelia | a => 1 | ||
dakkar | m: say Q:qq:ww{:a(1)} | ||
camelia | |||
dakkar | ☝ I'm confused | ||
why does `say` behave differently depending on the `:v` adverb to `Q`? | 14:20 | ||
14:24
frost left
14:38
vrurg_ is now known as vrurg,
Sgeo joined
|
|||
[Coke] | :v is documented as "convert (value) to allomorph if possible" | 14:49 | |
ugexe | m: say Q:qq:ww{:a(1),} | 14:50 | |
camelia | (a => 1 ,) | ||
ugexe | docs.raku.org/syntax/Single%20Argument%20Rule | 14:51 | |
[Coke] | ordering seems to matter, :v:ww vs. :ww:v | 14:52 | |
m: say qq:v:ww{:a(1)} | 14:53 | ||
camelia | (a 1) | ||
[Coke] | m: say qq:v{:a(1)} | ||
camelia | :a(1) | ||
dakkar | ugexe: I'm not sure how single-argument applies without an iterator… | ||
[Coke]: that last one produces a string, as expected | 14:54 | ||
[Coke] | for this kind of debugging, 'dd' may be more instructive than say | ||
dakkar | tried that, didn't help | ||
ugexe | well that would depend on the signatures of all the functions that end up getting called | ||
dakkar | ugexe: proto say(|), multi say(\x), multi say(|) | 14:56 | |
github.com/rakudo/rakudo/blob/mast...#L109-L123 | 14:57 | ||
ugexe | is say really the only function used? | 14:58 | |
dakkar | how would I check that? | ||
ugexe | i.e. Q v etc don't end up calling any functions? | ||
dakkar | m: my @a=qq:ww:v{:a(1)}; dd @a | 14:59 | |
camelia | Array @a = [:a(1)] | ||
dakkar | m: my @a=qq:ww{:a(1)}; dd @a | ||
camelia | Array @a = [:a(1)] | ||
dakkar | I *think* that means the difference is in `say`, but I don't know how to check better | ||
15:01
morte_ joined
|
|||
[Coke] | you know say calls '.gist', yes? | 15:01 | |
dakkar | yes | 15:02 | |
m: print qq:ww{:a(1)}.gist | |||
camelia | a => 1 | ||
dakkar | then again… | ||
m: print qq:ww:v{:a(1)} | 15:03 | ||
camelia | a 1 | ||
dakkar | m: print qq:ww{:a(1)} | ||
camelia | ( no output ) | ||
dakkar | *something* is up | ||
it may well be correct and specced, but I'm not sure where to look | |||
m: print qq:ww{:a(1)}.gist | |||
camelia | a => 1 | ||
dakkar | m: print qq:ww:v{:a(1)}.gist | ||
camelia | a => 1 | ||
ugexe | i'm not suggesting its correct or specced, just that it seems like single arg rule might be behind it | 15:04 | |
dakkar | maybe? why would `:v` (make allomorphs) affect that? | ||
ugexe | i dunno, presumably :v calls some function to turn a thing into an allomorph? | 15:05 | |
dakkar | (my starting assumption is "I'm missing something", not "stuff is broken" 😁) | ||
ugexe: but the weirdness only happens when the result of the quoting is used as arglist for a different call… | 15:06 | ||
should I open an issue? even if it turn out to be correct behaviour, it may still lead to some doc changes | 15:07 | ||
m: print (qq:ww:v{:a(1)}) | 15:09 | ||
camelia | a 1 | ||
dakkar | m: print (qq:ww{:a(1)}) | ||
camelia | a 1 | ||
dakkar | still a single argument, but gets printed | 15:10 | |
m: print qq:ww{:a(1)} | |||
camelia | ( no output ) | ||
dakkar | hmmm | 15:12 | |
m: sub x(|c) { dd c }; x qq:ww{:a(1)}; x qq:ww:v{:a(1)} | |||
camelia | \(:a(1)) \("a" => 1) |
||
dakkar | I don't understand what I'm seeing | ||
m: sub x(|c) { dd c }; x qq:ww{:a(1)}; x qq:ww:v{:a(1)}; x (qq:ww{:a(1)}) | 15:13 | ||
camelia | \(:a(1)) \("a" => 1) \("a" => 1) |
||
dakkar opens an issue | 15:15 | ||
Nemokosch | hello | 15:16 | |
do you have an idea when 6.e can be ready? | |||
or what will it include, even | 15:17 | ||
15:20
jgaz joined
15:24
Altai-man left
15:25
sena_kun joined
|
|||
dakkar | github.com/rakudo/rakudo/issues/4958 let's see what other people say | 15:26 | |
15:51
johnjaye left
|
|||
gfldex | <@297037173541175296> the plan is to have it released with or shortly after RakuAST. That plan might be changed, tho. You can have a peek at: github.com/rakudo/rakudo/tree/master/src/core.e | 16:10 | |
16:10
jgaz left
|
|||
Nemokosch | umm... what to see here? 😅 | 16:14 | |
16:28
sena_kun left
16:30
sena_kun joined
16:32
dakkar left
16:52
eseyman left
16:53
eseyman joined
16:55
Kaiepi left
|
|||
xinming | m: my %h = :a, :b, :c; my @a = <a b>; %h{@a}.raku.say; | 17:02 | |
camelia | (Bool::True, Bool::True) | ||
xinming | In this case, How can we also return a Hash rather than a List please? | 17:03 | |
moritz | m: my %h = :a, :b, :c; my @a = <a b>; %h{@a}:kv | ||
camelia | ( no output ) | ||
moritz | m: my %h = :a, :b, :c; my @a = <a b>; say %h{@a}:kv | ||
camelia | (a True b True) | ||
xinming | thx | ||
moritz | m: my %h = :a, :b, :c; my @a = <a b>; say %h{@a}:pairs | ||
camelia | Cannot resolve caller postcircumfix:<{ }>(Hash:D, Array:D, :pairs); none of these signatures matches: (\SELF, Mu \key) (\SELF, Mu \key, Mu \ASSIGN) (\SELF, Mu \key, Mu :$BIND! is raw) (\SELF, Mu \key, Bool(Any) :$delete!) … |
||
moritz | m: my %h = :a, :b, :c; my @a = <a b>; say %h{@a}:p | ||
camelia | (a => True b => True) | ||
xinming | thanks | ||
moritz | list of pairs, not hash, but that's just one coercion away | ||
you're welcome | |||
17:05
jgaz joined
17:24
Kaiepi joined
17:38
kawaii left
18:07
reportable6 left
|
|||
[Coke] | lizmat: anyone on RSC looking into replacing the perl6-users mailing list? | 18:08 | |
18:09
reportable6 joined
|
|||
lizmat | [Coke]: no, not at the moment | 18:41 | |
volunteers welcome | |||
[Coke] | might be worth asking if the folks supporting the perl* mailing lists can help; There wasn't interest in previous years, but now that we're one happy YAS... | 18:49 | |
19:09
evalable6 left,
linkable6 left
19:10
evalable6 joined
19:11
linkable6 joined
19:15
morte_ left
19:20
MasterDuke left
|
|||
drakonis | what does YAS stand for? | 19:23 | |
lizmat | Yet Another Society | 19:33 | |
the official name of The Perl Foundation and the Raku Foundation | |||
TPF and RF are so-called "doing business as" names | |||
19:34
MasterDuke joined
|
|||
drakonis | i see | 19:54 | |
lizmat | or "dba's" for short | ||
drakonis | will the upcoming perl/raku conference will be recorded? | ||
guifa | drakonis that's the plan, but it won't be livestreamed | 20:01 | |
drakonis | i see, alright then. | ||
20:06
morte_ joined
20:07
p6steve joined
|
|||
guifa | (the goal is to try to really go all in on the idea of an in-person conference. I'm really looking forward to it) | 20:10 | |
drakonis | it'll be quite nice, nonetheless | 20:12 | |
guifa | I've just got to finish up my talks. I'm a masochist and ended up agreeing to do three of them lol | 20:13 | |
drakonis | good job! | 20:14 | |
that said | |||
coerce protocol talk? | 20:15 | ||
guifa | for the new COERCE method that vrurg added to core | ||
drakonis | oh, neat. | ||
how new is that one? | 20:16 | ||
guifa | I think it the PR was committed late last year maybe? | ||
drakonis | oh, neat. | ||
p6steve | a coerce talk is great - the raku approach to gradual typing and coercion is quite cool... we know it but many don't | 20:18 | |
drakonis | indeed it is | ||
p6steve | also nice to hear the subtleties, trade offs and design approach (no pressure) | ||
drakonis | i got into a perl discussion earlier today and rperl was brought up | 20:19 | |
it seems like such a weird thing | |||
coleman | I would be interested in a mailing list for Raku | 20:20 | |
drakonis | it is very much a half measure towards bringing raku and perl together | ||
lizmat | rperl? | ||
drakonis | but it has the ability to output executable binaries | ||
rperl.org/ | |||
lizmat | bringing perl and raku together ? | ||
yeah, I know about rprel | |||
that page does not mention raku | 20:21 | ||
drakonis | it was written before the rename | ||
p6steve | never heard of it - they (rperl.org) do "making perl run faster" -- no mention of raku | ||
drakonis | back when it was perl 6 | ||
it is part of a thing called perl11 i guess | |||
lizmat | yeah, it parses a subset of Perl and generates C++ code | ||
drakonis | it is more like nqp then | 20:22 | |
p6steve | no mention of perl6 or raku | ||
lizmat | perl11 is a pipe dream of the developer of rperl | ||
drakonis | yes it is | ||
rperl.org/the_book_of_rperl.html | |||
it is a strange pipe dream | |||
p6steve | tobacco? | 20:23 | |
drakonis | this is not helpful documentation | ||
no | |||
hallucinogenic drug fueled trips | |||
the documentation on cpan is a lot better | |||
vrurg | rperl is mosly about producing binaries. Not even bytecode, by binaries as such. | ||
drakonis | i'm interested only in the binaries bit but in raku | 20:24 | |
which has been stalled for some time | |||
metacpan.org/release/WBRASWELL/RPe...earning.pm | |||
vrurg | It makes me feel weird because either it's Perl with all its power; or it's C or Rust for the performance. But castrated Perl?? | ||
drakonis | that sounds accurate | 20:25 | |
sienet_ja_LSD[m] | I would use rperl if the documentation was better | ||
drakonis | metacpan.org/release/WBRASWELL/RPe...b/RPerl.pm | ||
the documentation is ugly and the cpan docs are serviceable | |||
it looks a lot like a half-measure since it has a lot of hardcoded stuff that looks like it came from raku | |||
sienet_ja_LSD[m] | I was supposed to do some OO project with it, but I couln't do it | 20:26 | |
lizmat | for all practical purposes, rperl appears to be stalled for almost 2 years now? | ||
drakonis | so it is. | ||
El_Che | I don't think it went further than esoteric perl being interesting but not used at large | 20:28 | |
sienet_ja_LSD[m] | maybe I'll try it again if I'll play around with the examples | ||
drakonis | it is more interesting to use raku anyways | ||
github.com/wbraswell/rperl/tree/master/docs this has some silly bits | |||
in special the modes | 20:29 | ||
rperl.org/the_low_magic_perl_commandments.html this bit in particular though | 20:30 | ||
it seems to suffer a lot from perl collapsing under the weight of its age | 20:31 | ||
guifa | the author of that page is … eccentric. | 20:32 | |
drakonis | i'm... aware... | 20:33 | |
p6steve | yes, raku is a great lifeboat for perl nuggets - i am really impressed by metacpan.org/pod/FFI::Platypus - and trying to rekindle in Dan::Polars | ||
El_Che | trying to get C performance in a safe language is kind of the Holy Grail :) | 20:34 | |
p6steve | err - no its Rust | ||
El_Che | nah | ||
drakonis | i wonder why rperl has a operator for crypt lol | ||
p6steve | not fast? not safe? | ||
El_Che | it came and it did not take over the world, and not for lack of attention | ||
drakonis | rust has been eating up some marketshare | 20:35 | |
it takes time to displace the existing options | |||
El_Che | slowly | ||
p6steve | yeah - I've spent weeks knee deep in rust and it's hard | ||
drakonis | since you can't replace C or C++ with it overnight | ||
then there are spaces that it needs a lot of investment to break into | |||
El_Che | p6steve: I like the simplicity of Go | 20:36 | |
drakonis | like the data science space | ||
El_Che | p6steve: so did most devops people so it took that space where it was not intended to | ||
p6steve | you cant replace [Perl|Python|Ruby|PHP] (with raku) overnight either | ||
guifa | As with all things, there are trade offs | ||
drakonis | indeed not. | ||
El_Che | it's a different comparison | 20:37 | |
drakonis | you can however write something useful that will slowly eat up the marketshare at the edges | ||
wrt replacing the common scripting languages | |||
El_Che | there is stuff where perl and co still beat raku | ||
drakonis | except usability and long term flexibility | ||
20:37
moon-child left
|
|||
El_Che | there are advantages, but people care about different things | 20:38 | |
ans like p6steve implied, there is inertia | |||
drakonis | and inertia is truly a powerful thing | 20:39 | |
p6steve | El_Che: then try Occam! | 20:40 | |
El_Che | 's razor | ||
:) | 20:41 | ||
when and if I had the time I would like to pick up some rust | |||
drakonis | occam, eh? | ||
p6steve | El_Che: can always work on Dan::Polars ... | ||
El_Che | having a look | 20:42 | |
p6steve | sadly a bit early | ||
El_Che | p6steve: you're into data science :) | ||
p6steve | learning as I go | 20:43 | |
yes occam: if it can fail, it will fail | |||
El_Che | the rust integration looks more promising to me than inlining python | 20:44 | |
python (and perl and ruby) are terrible to deploy | |||
(that's why go took devops from python) | |||
so maintaining several stacks of languages is not something I would like to do | |||
but on the other hand, I don't see people porting Panda :) | 20:45 | ||
p6steve | we need Python for some level of feature completeness, interop for newcomers/compatibity and workflows to eg plotting | ||
BUT rust/pandas/arrow2 is a good match for raku (fast, lazy, better API) | |||
rust is nice to deploy as a lib | 20:46 | ||
just a pig to code | 20:47 | ||
El_Che | so nativecall is lipstick :) | 20:48 | |
p6steve | the notion with Pandas is just EVAL anything that looks like df.pl.XXX() ... so just have to maintain as a proxy | ||
well Polars Python binding uses maturin - we have nativecall :: rust FFI and nothing in between | 20:51 | ||
no - raku is the lipstick! | 20:52 | ||
drakonis | lipstick on a pig, eyyyy | 20:56 | |
20:58
jgaz left
|
|||
p6steve | El_Che: do consider helping on Dan::Polars - it has the right levels of abstration and performance to be awesome | 20:59 | |
El_Che: and you can add rust to your CV | 21:00 | ||
drakonis | how long until rakuast is merged into the main branch? | 21:02 | |
also, how long until the opposite happens? | |||
El_Che | p6steve: I am not in that field | ||
p6steve | El_Che: ;-) | 21:52 | |
21:58
evalable6 left,
linkable6 left
22:00
evalable6 joined
22:01
linkable6 joined
22:07
morte_ left
|
|||
Geth | ecosystem: f1858bec0e | (Elizabeth Mattijsen)++ | META.list Remove Spreadsheet::XLSX It lives in the zef ecosystem now |
22:47 | |
kybr | i'm trying the code here: docs.raku.org/type/IO::Notificatio...watch-path ;; except, i am using a different file (not syslog) and updating manually. I only see a couple of events come out of the tap. Is this expected behaviour? | 22:52 | |
that is, saving the watched file seems to produce a file-renamed event and a file-changed event after the first update, but subsequent manually updates to the file produce no events. | 22:54 | ||
23:07
evalable6 left,
linkable6 left
23:10
evalable6 joined,
linkable6 joined
|