🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku Set by ChanServ on 14 October 2019. |
|||
00:19
Zero_Dogg left
00:20
Zero_Dogg joined
|
|||
rypervenche | Ahhh, that's what I was wanting to know. Great! Thanks. | 00:36 | |
00:54
__jrjsmrtn__ joined
00:55
_jrjsmrtn left
01:29
Noisytoot left
01:50
Noisytoot joined
01:52
sena_kun joined
01:54
Altai-man_ left
01:55
hungrydonkey left
02:06
satori__ joined
02:08
reach_satori_ left
02:16
cpan-raku left
02:17
cpan-raku joined,
cpan-raku left,
cpan-raku joined
02:28
Xliff joined
02:34
Zero_Dogg left
02:36
_jrjsmrtn joined
02:37
__jrjsmrtn__ left
02:47
Zero_Dogg joined
03:40
wamba joined
03:52
Altai-man_ joined
03:54
sena_kun left
04:37
kst left
04:43
guifa2 joined
05:00
hungrydonkey joined
05:08
hungrydonkey left,
hungryd7 joined
05:10
vrurg left
05:11
vrurg joined
05:14
xinming left
05:16
OpenZen left,
vrurg left
05:18
xinming joined
05:24
andrzejku joined
05:27
yht joined
05:42
wamba left
05:44
vrurg joined,
vrurg left,
vrurg joined
05:45
xinming left
05:46
xinming joined
05:53
sena_kun joined,
andrzejku left
05:54
Altai-man_ left
06:08
aindilis left,
xinming left
06:10
xinming joined
06:16
kensanata joined
06:23
andrzejku joined
06:32
JJMerelo joined
06:33
sno left
07:00
hungrydonkey joined
07:02
hungryd7 left
07:06
sno joined
07:08
rindolf joined
07:09
yht left
07:22
yht joined
07:30
hungryd88 joined
07:32
hungrydonkey left
07:48
dakkar joined
07:51
Altai-man_ joined
07:54
sena_kun left
08:00
aindilis joined
08:12
aindilis left
|
|||
AlexDaniel` | m: my uint8 $x = 255; say $x++ | 08:19 | |
camelia | -1 | ||
AlexDaniel` | -_- | ||
bisect: my uint8 $x = 255; say $x++ | |||
bisectable6 | AlexDaniel`, Will bisect the whole range automagically because no endpoints were provided, hang tight | ||
AlexDaniel`, ¦6c (44 commits): «-1» | |||
AlexDaniel`, Nothing to bisect! | |||
08:21
pecastro joined
|
|||
AlexDaniel` | m: my uint8 $a = 200; my uint8 $b = -50; .say for $a..$b | 08:21 | |
camelia | 200 201 202 203 204 205 206 |
||
08:23
oddp joined
08:33
aindilis joined
08:35
sarna joined
08:36
benaiah left
08:37
benaiah joined
08:44
Sgeo left
08:49
hungryd88 left
08:50
hungrydonkey joined
08:52
JJMerelo left
|
|||
cpan-raku | New module released to CPAN! HelloWorld (1.0.2) by 03PMQS | 08:53 | |
08:53
sena_kun joined
08:56
Altai-man_ left
08:59
markoong joined
09:02
hungryd51 joined
09:05
markong joined,
markoong left
09:06
hungrydonkey left
09:07
hungrydonkey joined
09:10
hungryd51 left
09:18
rindolf left,
hungryd57 joined
09:21
xinming left,
xinming joined
09:22
hungrydonkey left
09:28
antoniogamiz joined,
rbt left
09:29
rbt joined
09:36
yht left
|
|||
antoniogamiz | m: my $string = '<a href="?!^a">b</a>'; my $content; say $string ~~ /href\=\"{$content=$¢}\"/; | 09:41 | |
camelia | Nil | ||
antoniogamiz | m: my $string = '<a href="?!^a">b</a>'; my $content; $string ~~ /href\=\"{$content=$¢}\"/; say $content; | ||
camelia | #<failed match> | ||
antoniogamiz | someone knows why it's failing? | 09:42 | |
timotimo | m: my $string = '<a href="?!^a">b</a>'; my $content; say $string ~~ /href\=\"$<cm>=<-["]>+{$content=$<cm>.Str}\"/; dd $content; | ||
camelia | 「href="?!^a"」 cm => 「?!^a」 Str $content = "?!^a" |
||
antoniogamiz | $<cm> mmmm | ||
timotimo | you're not matching anything, your regex is looking for "" which isn't in the source, so the match fails | ||
stands for "content match" | |||
because i'm too lazy to type | 09:43 | ||
antoniogamiz | makes sense, thanks a lot :) | 09:44 | |
timotimo | YW | 09:51 | |
09:51
Altai-man_ joined
|
|||
timotimo | m: my $string = '<a href="?!^a">b</a>'; $string ~~ /href\=\"$<cm>=<-["]>+\"/; dd $<cm>.Str; | 09:52 | |
camelia | "?!^a" | ||
timotimo | if you don't actually need your $content variable to immediately contain the stuff, you can just use $<cm> after the match and drop the code block inside the regex | 09:53 | |
09:54
sena_kun left
|
|||
antoniogamiz | done :) | 09:54 | |
09:56
softmoth left
09:58
sno left
10:06
rindolf joined
10:18
yht joined
10:35
sno joined
10:41
patrickb joined
10:54
Black_Ribbon left
|
|||
cpan-raku | New module released to CPAN! HelloWorld (1.0.3) by 03PMQS | 11:00 | |
11:00
yht left
11:01
antoniogamiz left
11:08
robertle left
11:28
tejr left
|
|||
cpan-raku | New module released to CPAN! Raku-GitHub-Workflows (1.0.4) by 03PMQS | 11:32 | |
11:35
tejr joined
11:45
tejr left
11:47
bingos is now known as BinGOs
11:49
hungryd57 left,
hungrydonkey joined
11:52
sena_kun joined
11:54
Altai-man_ left
11:58
skaji_ left
11:59
skaji_ joined
12:00
dyske joined,
dyske left
12:01
dyske joined
12:03
dyske left,
vrurg left
12:04
vrurg joined
12:09
vrurg left
12:12
vrurg joined
12:44
petr85 joined
12:48
petr85 left
|
|||
rypervenche | How long does modules.raku.org take to update once a new module is added to it? | 12:54 | |
lizmat | rba ^^ ?? | 12:58 | |
rba | modules.raku.org gets updated every 30 minutes. | 13:02 | |
tellable6 | 2020-06-24T12:09:10Z #raku <patrickb> rba There is a new rakubrew release: Version 12. Can you upload versions 10, 11 and 12 to the website? (rooster.uber.space/patcloud/index....JLQDZcjbf) | 13:03 | |
2020-07-09T08:48:38Z #raku-dev <patrickb> rba: Can you teach me how to deploy changes to rakubrew.org myself and upload releases? I'd really like to be able to do them myself... | |||
patrickb | rba: o/ | ||
rba | patrickb: argh. I will do this ASAP and let you know... | ||
patrickb | v13 is bound to happen soon-ish. I'm still willing to learn how to do this myself. ;-) I have access to the webserver for the other sites, but rakubrew.org doesn't seem to live there... | 13:05 | |
Also the website itself has changes as well. | |||
13:15
tejr joined
13:24
MasterDuke left
13:27
aindilis left,
guifa2 left,
_jrjsmrtn left,
Xliff left,
satori__ left,
gordonfish left,
fling left,
Geth_ left,
veesh left,
raydiak left,
leont_ left,
maggotbrain777 left,
finsternis left,
nebuchadnezzar left,
timlegge left,
[ptc] left,
Bucciarati left,
KotH left
13:28
aindilis joined,
guifa2 joined,
_jrjsmrtn joined,
Xliff joined,
satori__ joined,
gordonfish joined,
fling joined,
Geth_ joined,
veesh joined,
raydiak joined,
leont_ joined,
maggotbrain777 joined,
finsternis joined,
nebuchadnezzar joined,
timlegge joined,
[ptc] joined,
Bucciarati joined,
KotH joined,
gordonfish left
13:38
tatata joined
|
|||
tatata | HeyI am trying to include a file | 13:41 | |
13:41
patrickb25 joined
|
|||
tatata | HeyI am trying to include a file following stackoverflow.com/questions/132626...-in-perl-6 . But it seems to be outdated, can someone help ? | 13:41 | |
13:43
patrickb left
|
|||
guifa2 | tatata: what is the error you are getting by using moritz's solution? | 13:45 | |
13:46
RaycatWhoDat left
13:49
sena_kun left,
aluaces left
|
|||
tatata | guifa2 | 13:50 | |
$ cat main.raku use v6;use lib '.'; # to search for Hello.pm6 in the current diruse Hello;hello;$ cat hello.raku module Hello;sub hello() is export { say 'hello';}$ perl6 main.raku ===SORRY!===Could not find Hello at line 3 in: /home/lesenr1/Work/ligo/src/stages/adt_generator /home/lesenr1/.perl6 /usr/lib/perl6/site | |||
/usr/lib/perl6/vendor /usr/lib/perl6 CompUnit::Repository::AbsolutePath<93867113852400> CompUnit::Repository::NQP<93867090629376> CompUnit::Repository::Perl5<93867090629416> | |||
ouch, | |||
moritz | tatata: if you name the module Hello, you must name the file `Hello.pm` or `Hello.rakumod` | 13:51 | |
tatata | alright | ||
Thanks a lot | |||
moritz | (case matters as well) | ||
you're welcome | 13:52 | ||
13:52
gordonfish joined
13:53
aluaces joined
|
|||
cpan-raku | New module released to CPAN! Set::Equality (0.0.2) by 03ELIZABETH | 13:54 | |
[Coke] | rba: hi! | ||
tatata | Still does not find my module.. also, I had to write `unit module Foo;` instead of just `module Foo;` | 13:59 | |
Xliff | \o | 14:01 | |
tatata | moritz it seems like .pm works but not rakumod | 14:04 | |
codesections | I have discovered an invalid regex that reproducibly causes Rakundo v2020.06 to hang in an infinite loop. As an example: 'any input' ~~ /[a*]*/ | 14:05 | |
moritz | tatata: what version of rakudo are you using? | ||
codesections: yes, that's well known | |||
codesections | ok, thanks, that's what I wanted to know | ||
Saves me the time of opening an issue :) | 14:06 | ||
lizmat | and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2020/07/13/2020-28-bridges-7/ | 14:09 | |
[Coke] was trying to duplicate the LibCurl issue reported on the mailing list. getting this error on zef: | |||
moritz | lizmat++ | ||
[Coke] | $ zef uninstall LibCurl | ||
Failed to get the directory contents of '/Volumes/BUKKIT/Users/coke/p6/share/perl6/site/short/D7B2661931C58BC571BED0D9CF7277DAAB35132A': Failed to open dir: Too many open files | |||
will upddddddate everydaaaaaaaaaaaaaaaaaayy | 14:12 | ||
14:12
andrzejku left
|
|||
[Coke] | ... | 14:12 | |
kb issues | |||
lizmat | MBP ? | ||
[Coke] | Yes. | 14:13 | |
lizmat | been there, done that :-( | ||
14:13
rindolf left,
aluaces left,
sena_kun joined
|
|||
lizmat | Apple is doing their utmost to ensure my next notebook will not be an Apple :-( | 14:13 | |
[Coke] | mac mini | 14:14 | |
every few days the bt keyboard goes batshit crazy | |||
14:18
rindolf joined
|
|||
cpan-raku | New module released to CPAN! App::Mi6 (1.0.0) by 03SKAJI | 14:19 | |
rba | hi [Coke] | 14:22 | |
timotimo | oh hey rba :) | ||
rba | hi timotimo | ||
[Coke] | rba: had some tickets on rakudo.org that I think you're the person for? | 14:23 | |
site not getting updated, missing updated info on infrastructure. | |||
timotimo | what if i threw my ssh public key your way, rba? :3 | ||
rba is feeling to get "attacked" from multiple sides ... :-) | 14:24 | ||
sure | |||
[Coke] | sorry! | ||
rba was to long not showing up in irc... | |||
timotimo | i kind of don't know how things are currently set up, and i think i don't have access to anything, or if i do i have already forgotten | 14:25 | |
rba | [Coke]: You mean github.com/perl6/rakudo.org/issues...3534057860 ? | 14:26 | |
cpan-raku | New module released to CPAN! WriteOnceHash (0.0.4) by 03ELIZABETH | 14:27 | |
14:27
sarna left
|
|||
rba | timotimo: you like to get access to lavm-perl6infra-1? | 14:27 | |
14:28
andrzejku joined
|
|||
rba | timotimo: What do you need? | 14:28 | |
[Coke] | rba - yup, those. | 14:29 | |
(there are other tickets, but those are the two I tagged you on) if timo has access to poke at things, that will also be great. | 14:31 | ||
I am happy to volunteer a key, but I won't be able to be a regular admin or anything. | |||
timotimo | 0i'm currently on my laptop and can't reach my desktop, but i can offer my laptop's key and use that to add my desktop's key later | 14:33 | |
cpan-raku | New module released to CPAN! EERPG (0.0.1) by 03ELIZABETH | 14:34 | |
tadzik | so, metacpan doesn't show these, modules.perl6.org doesn't show these, how I look them up except for github? :) | 14:35 | |
timotimo | tadzik: m.r.o will show them, it just takes a moment or two to regenerate | ||
tadzik | heh | 14:36 | |
rba | timotimo: I have copied the keys from the backup of p6c.org at installation. In case the key "timo@schmetterling" is still in your hands you can try to login using: ssh -p2222 akudo.org@lavm-perl6infra-1.atikon.io | ||
14:36
dataangel left
|
|||
tadzik | I read that as "a month or two" | 14:36 | |
timotimo | cool | ||
14:36
dataangel joined
|
|||
timotimo | ah, yes, i am logged in | 14:36 | |
rba | timotimo: Is this what you needed? | 14:37 | |
timotimo | is that where all our websites are hosted now? | ||
rba | [Coke]: A small push updated the rakudo.org again: github.com/perl6/rakudo.org/issues/45 | 14:38 | |
timotimo: Yes. | |||
timotimo | i see /home has folders for many perl6.org as well as raku.org folders | ||
[Coke] | rba++ | ||
rba | timotimo: Most if the services I've duplicated at the rename. While the housekeeping didn't happen yet... | ||
timotimo | i wonder if i should get a "timo" unix user from which i could sudo to do server changes | 14:39 | |
rba | timotimo: When you see through the home, which of those you like to get access to? | 14:40 | |
timotimo | i guess everything that ends in .org | 14:41 | |
rba | So far there is commands in the sudo for rakudo.org and docs.raku.org | ||
14:42
xinming left
|
|||
timotimo | you mean stuff in the sudoers file? stuff those users can do without being asked for a password? | 14:42 | |
rba | timotimo: Exactly. Mainly become the website user and restart nginx. | 14:43 | |
timotimo: And edit the nginx config file for the domain. | 14:44 | ||
timotimo: Or do you like to get involved in admin completely? | 14:45 | ||
14:45
tatata left
|
|||
timotimo | i think i could try at least :) | 14:45 | |
14:45
skids joined
|
|||
rba | timotimo: Username "timo"? | 14:46 | |
14:46
xinming joined
|
|||
timotimo | yes please | 14:47 | |
guifa2 | lizmat++ | 14:48 | |
patrickb25 | rba++ timotimo++ | ||
rba: rakubrew.org isn't hosted on lavm-perl6infra-1.atikon.io is it? | 14:49 | ||
rba | patrickb25: rakubrew.org is separted (and redundant :-)) | ||
patrickb25 | That's what I remembered :-) | 14:50 | |
rba | patrickb25: My open task is to give access from a "jumphost" to the rangeros runhosts. As soon this is done and documents you will get access to ti. | 14:54 | |
s/ti/it/ | |||
patrickb25 | rba++ :-D | ||
rba | timotimo: please try to login with user timo. | 14:55 | |
timotimo | i'm logged in, can i change my password? :) | ||
rba | timotimo: handle with care you got root rights using sudo... | ||
timotimo | only after i've obtained or changed my password :D | ||
rba | sure the timo user is yours. | ||
timotimo | well, passwd asks for the current password, which i don't think i haev | 14:56 | |
rba | Will set and send you pvt | ||
timotimo | OK | ||
i mean, putting it in a 600-modded file in my home directory is better than sending it over irc | 14:57 | ||
rba | timotimo: Sure. Yet you have to change it anyway... | 14:58 | |
timotimo | well, yeah, but if someone knows my username and just reads a few lines up for the hostname, they could quickly jump in and steal the account | 14:59 | |
assuming they can get our privmsg | |||
rba | last + logs doen's show something unexpected. an attacker must have been very quick to hide his trace though. Yet you're right anyway... | 15:01 | |
timotimo: Be careful with changing nginx config and restart as nginx is serving all the sites... | 15:02 | ||
timotimo: Whenever I have a time I like to continue my work to get websites ecapsulated in docker containers and run them on two hosts. Yet I will let you know before something is production ready... | 15:04 | ||
rypervenche | "nginx -t" first to make sure the config is safe to reload, and then a reload would probably be better than a restart. | 15:05 | |
rba | rypervenche: agreed | ||
timotimo | good | 15:13 | |
are any of the dockered websites on this server? can it be used to put sites up for testing after they work locally? | |||
15:27
patrickb25 left
15:31
squashable6 left
15:32
patrickb joined
15:33
squashable6 joined
15:36
softmoth joined
15:42
kensanata left
15:46
abraxxa left,
abraxxa1 joined
15:48
softmoth_ joined
15:49
softmoth left,
sena_kun left
15:51
abraxxa1 left,
abraxxa joined
16:03
andrzejku left
|
|||
rypervenche | If I want to have a Class attribute be created from other attributes when I great the instance, what tool would I use for that? BUILD? Or not even? E.g., I have Str $.date and Str $.time attributes and would like to automatically combine them into a DateTime $.datetime . | 16:13 | |
I know I could do that combining outside of the Class, but I'm curious how to do it inside of it. | 16:14 | ||
jnthn | class Foo { has DateTime $.datetime; submethod TWEAK(Str :$date!, Str :$time!) { $!datetime = ...whatever logic here... } } | 16:15 | |
rypervenche | Ahhhh, TWEAK, that's what it was. Thank you. I knew I had seen the solution before. | 16:16 | |
16:21
aluaces joined
16:35
sena_kun joined
16:40
molaf joined
16:42
dakkar left,
xinming left
16:45
xinming joined
17:03
sftp joined
17:04
sftp left
17:07
sftp joined
17:10
cpan-raku left,
softmoth_ left
17:11
cpan-raku joined,
cpan-raku left,
cpan-raku joined,
softmoth joined
17:15
xinming left
17:16
xinming joined
17:31
Sgeo joined
17:35
defaultxr joined
17:41
xinming left,
xinming joined
17:44
Manifest0 left
17:46
Manifest0 joined
17:53
sena_kun left
18:02
hungrydonkey left
18:06
andrzejku joined,
sena_kun joined
|
|||
xinming | termbin.com/1hov <--- Is there roadmap for this bug to be fixed? :-) | 18:21 | |
I found it last year, then I got busy with other things, When I try to reread the doc, and find code snippets, and find this bug still exists. :-) | 18:22 | ||
18:28
_jrjsmrtn left,
Sgeo left,
__jrjsmrtn__ joined
|
|||
[Coke] | xinming: that snippet doesn't show the results or the expected results | 18:29 | |
Do you know if a ticket was opened? | |||
18:31
bocaneri left,
Sgeo joined
|
|||
[Coke] | what's the bug? the missing , in the first @a definition means there are two elements there. | 18:32 | |
(is it that the two item list in the resulting @a has x and y, not y and z? | 18:33 | ||
18:35
sena_kun left
|
|||
cpan-raku | New module released to CPAN! LibXML (0.5.6) by 03WARRINGD | 18:35 | |
vrurg | weekly: vrurg.github.io/arfb-publication/0...ning-raku/ | 18:36 | |
notable6 | vrurg, Noted! (weekly) | ||
xinming | [Coke]: It just needs to be clarified, that for @a, the second pair doesn't have comma, then, it'll parsed as 2 elements, | 18:37 | |
[Coke]: where the @b parsed correctly | |||
[Coke]: IIRC, I asked to add an warning in this case. as when we are in a large array with structure like this, We'll have subtle bug which is a bit hard to track | 18:38 | ||
guifa2 | xinming: remember that any line that terminates in } "counts" as a bracket followed by a semi colon | 18:47 | |
m: @a = (1,2,3;4,5,6;7,8,9); @a.say | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '@a' is not declared at <tmp>:1 ------> 3<BOL>7⏏5@a = (1,2,3;4,5,6;7,8,9); @a.say |
||
guifa2 | m: my @a = (1,2,3;4,5,6;7,8,9); @a.say | ||
camelia | [(1 2 3) (4 5 6) (7 8 9)] | ||
guifa2 | ah, you were talking not about a subtle bug in Raku, but in the program that leaves off the comma | 18:48 | |
nm | |||
18:50
sena_kun joined
18:57
molaf left
19:01
softmoth left
19:04
sena_kun left
19:05
sena_kun joined
19:11
sena_kun left
|
|||
xinming | guifa2: Yes, No matter wether we consider it as a "bug", I think we need to give warnings about people for this. | 19:17 | |
abraxxa | vrurg: great article! thanks! | 19:20 | |
I wonder if types like Int are also different in 6.c and 6.d scope and a comparison would return false? | 19:26 | ||
like in the Grammar example | |||
lizmat | they are the same | ||
Grammar is really one of the few that are currently different between versions | 19:27 | ||
abraxxa | but it could happen and introduce quite bad breakages? | ||
lizmat | PseudoStash is another one | ||
19:28
MasterDuke joined
|
|||
abraxxa | lizmat: just reading the weekly, such things as the fix for order of files loading, do these fixes include added tests to Roast? | 19:31 | |
19:32
sena_kun joined
|
|||
lizmat | abraxxa: note the "tests needed" tag in github.com/rakudo/rakudo/issues/3783 | 19:32 | |
:) | |||
abraxxa | I didn't mean this specific fix but more generally if the Roast test suite for 6.c and 6.d is extended in the -errata branches with tests for things found where obviously no test existed? | 19:34 | |
and as Raku can't parse and execute Perl 5 code, why are .pm files searched at all? | 19:35 | ||
lizmat | historically, .pm files were allowed and a "use v6" inside them, would make them Perl 6 modules | 19:36 | |
that's all leftover from the time where Perl 6 was to be the successor of Perl 5 | 19:37 | ||
abraxxa | I would have broken with that when the rename happened | 19:38 | |
even pm6 | |||
lizmat | we need pm6 as there are still quite a few modules out there with the .pm6 extension | ||
abraxxa | renaming files shouldn't be that hard | 19:39 | |
lizmat | I guess, with a "use v6.e.PREVIEW" active, we could remove .pm as an option | ||
abraxxa | yeah | ||
lizmat | but we currently have no way to implement that, we need the newdisp branch to have landed for that | ||
abraxxa | is the loading code not in a setting? | 19:40 | |
lizmat | yes, it is | ||
well, most of it | |||
it's called from World.nqp | |||
abraxxa | which should be renamed to World.nqr :) | ||
ShimmerFairy | The extensions from the era of "We're gonna replace Perl 5, right guys?!" I feel can be dropped by this point (using them instead of .pm6 etc. was uncool for years before the Raku rename), but the Perl 6-esque extensions are gonna have to be supported for a long time yet. | 19:43 | |
raydiak wonders if App::Pray should be renamed...to...Rray? | 19:47 | ||
lizmat | abraxxa: we've been over this: there will be no rename of NQP or the .nqp extension | 19:48 | |
we'll just de-emphasize it being an acronym | |||
ShimmerFairy | NQP, after all, is still not quite Perl :) | ||
19:52
abraxxa left
19:53
abraxxa joined
|
|||
abraxxa | twitter.com/cpan_author/status/128...2437941248 | 19:53 | |
can someone with a twitter account give him a better answer please? | |||
I've asked the same thing in the past an remember that there is a way to say: set it to its default value | 19:54 | ||
using a Type requires to know the type of the variable or attribute and if it changes replace it everywhere | |||
Geth_ | ¦ problem-solving: lizmat assigned to rba Issue pl6anet.org is a name that does not reflect Raku github.com/Raku/problem-solving/issues/212 | 19:55 | |
lizmat | abraxxa : doesn't jnthn's answer cover it ? | 19:59 | |
ShimmerFairy: indeed :-) | |||
20:00
ShimmerFairy left
|
|||
abraxxa | lizmat: why can it be used with the automatically generated accessor method but not the manuelly written by him? Because of the method type definition? | 20:00 | |
lizmat | yup, if the method had been written as: method x() is raw { $!x }, it would have worked | 20:02 | |
because that's what the autp-generated accessor really is | |||
abraxxa | i see, thanks! | ||
so Nil was the thing you need to assign to reset the var to its default value? | |||
lizmat | if the attribute does not have "is rw", then the accessor is defined without the "is raw" | 20:03 | |
yes | |||
m: my $a is default(42) = 666; say $a; $a = Nil; say $a | |||
camelia | 666 42 |
||
20:09
andrzejku left
|
|||
defaultxr | hello. dumb noob question: i'm used to late-binding languages that allow me to do stuff like $*SCHEDULER.cue({ &thing(); }, every => 1); and then redefine &thing and have the new definition called the next time the schedule runs that cancellation. however, simply redefining &thing doesn't seem to work in Raku; the scheduler just continues calling the function as it was defined when i cued the | 20:09 | |
cancellation. what would be the best way of doing this in Raku? | |||
20:09
molaf joined
|
|||
lizmat | when you pass &thing, it is pass by value | 20:10 | |
so changing &thing afterwards, won't help | 20:11 | ||
however, what you *could* do is make &thing a wrapper that looks at an atomicint lexical variable | |||
and decides which actual code to actually call | 20:12 | ||
or if you want to get fully flexible, have &thing look at a outer lexical which you can change with cas() to be some other code to execute | |||
20:12
ShimmerFairy joined
|
|||
lizmat | defaultxr: hope that made sense? | 20:13 | |
defaultxr | i'm still extremely new to Raku so i'm not familiar with the things you mentioned, but i think they will point me in the right direction :) i'll check the docs for them and see what i come up with, thanks! | 20:14 | |
Xliff | defaultxr: Do you know the things that &thing can be set to at compile time? | 20:15 | |
rypervenche | Where would I look in the docs to see what "::CLASS:U:" means? (I understand the U/D bit, but not sure about the :: syntax around it) | 20:16 | |
defaultxr | Xliff, nope. i want to be able to change &thing to anything at any time | ||
Xliff | m: my $f; sub a { say 'a'; }; sub b { say 'b'; }; my $f = &a; $*SCHEDULER.cue({ $f() }, every => 1); Promise.in(5).then({ exit }); Promise.in(2).then({ $f = &b }) | 20:20 | |
camelia | Potential difficulties: Redeclaration of symbol '$f'. at <tmp>:1 ------> 3 { say 'a'; }; sub b { say 'b'; }; my $f7⏏5 = &a; $*SCHEDULER.cue({ $f() }, every = a |
||
Xliff | m: my $f; sub a { say 'a'; }; sub b { say 'b'; }; $f = &a; $*SCHEDULER.cue({ $f() }, every => 1); Promise.in(5).then({ exit }); Promise.in(2).then({ $f = &b }) | ||
camelia | a | ||
Xliff | m: my $f; sub a { say 'a'; }; sub b { say 'b'; }; $f = &a; $*SCHEDULER.cue({ $f() }, every => 1); Promise.in(5).then({ exit }); Promise.in(2).then({ $f = &b }); sleep 6; | ||
camelia | a a a b b b |
||
Xliff | ^^^ | ||
defaultxr | rad, that is indeed what i'm looking for! 😎 thanks Xliff! | 20:22 | |
Xliff | yw | ||
lizmat | Xliff: of course, that is not threadsafe | 20:24 | |
that's why I mentioned either using cas() or an atomicint to indicate what you really want to execute | |||
20:24
kensanata joined
|
|||
defaultxr | lizmat, do you mean even just evaluating $f = &a; while the cancellation is running is not safe? or do you mean like if i were to do anything more crazy with threads, i.e. changing $f from multiple different threads? | 20:29 | |
for now i'm just doing the former | |||
20:29
_jrjsmrtn joined
20:30
sena_kun left
|
|||
defaultxr | i.e. i'm just doing $f = &a by entering it in the repl, not from any code running elsewhere | 20:30 | |
lizmat | the chance is minimal, but yeah: if the cued code would read the scalar half-way the assignment, there's no telling what could happen | ||
20:31
__jrjsmrtn__ left
|
|||
lizmat | now, in practice, for testing and such, it's ok to do it like that | 20:31 | |
and possibly for production in *that* particular case (assigning to a scalar) safe enough to give you an outdated value | |||
but anything more complex like that, e.g. pushing or popping from an array, would not be advisable | 20:32 | ||
defaultxr | ah, ok, gotcha. yeah i'm just playing around right now, but i'll keep that in mind when start to do anything more serious :) thanks again to both of you | 20:33 | |
lizmat | defaultxr: what decides to change the code to be executed? | ||
maybe you're better off with a react { whenever { } } structure | |||
the whenever will guarantee you there will only be *one* thread running that code at any time | |||
defaultxr | the user decides (i.e. just me right now). i'm basically just playing around with the idea of doing some live coding music type stuff in raku, and i want to have a function that is constantly running, i.e. to generate a rhythm, but can be modified without needing to manually stop and restart the cancellation | 20:35 | |
if that makes sense | |||
i'll look into react and whatever too | 20:36 | ||
Xliff | lizmat: Hence my first answer. Since he said he didn't know what he wanted to run, I figured I'd give him an answer. | ||
lizmat | Xliff++ | 20:39 | |
Xliff | defaultxr: If you know all of the potential subroutines for $f at compile time, then you could do something like this: | ||
m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; $f = &a; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); default { c(); }; }; }, every => 1); | 20:40 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3}; when 1 { b(); default { c(); }; }; }7⏏5, every => 1); |
||
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; $f = &a; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); default { c(); }; }; }, every => 1); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3 }; when 1 { b(); default { c(); }; }; }7⏏5, every => 1); |
||
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; $f = &a; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); default { c(); }; }; }; }, every => 1); | 20:41 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: c used at line 1 |
||
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; sub c { say 'wtf?'; }; $f = &a; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); default { c(); }; }; }; }, every => 1); | ||
camelia | This type cannot unbox to a native integer: P6opaque, Sub in block <unit> at <tmp> line 1 |
||
[Coke] | you can't set an atomic int to a sub. | 20:42 | |
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; sub c { say 'wtf?'; }; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); default { c(); }; }; }; }, every => 1); | ||
camelia | ( no output ) | ||
[Coke] | ... there you go | ||
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; sub c { say 'wtf?'; }; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); default { c(); }; }; }; }, every => 1); sleep 2; $f = 1; sleep 2; $f = 'a'; sleep 2 | ||
camelia | a This type cannot unbox to a native integer: P6opaque, Str in block <unit> at <tmp> line 1 a b wtf? b wtf? b wtf? |
||
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; sub c { say 'wtf?'; }; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); default { c(); }; }; }; }, every => 1); sleep 2; $f = 1; sleep 2; $f = 42; sleep 2 | 20:43 | |
camelia | a a a b wtf? |
||
Xliff | ^^ threadsafe | ||
But you have to be able to at least know all the potential outcomes for f. Although with that setup, you can keep adding on until you are satisfied. | 20:44 | ||
[Coke] | Xliff++ | ||
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; sub c { say 'wtf?'; }; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); }; default { c(); }; }; }, every => 1); sleep 2; $f = 1; sleep 2; $f = 42; sleep 2 | 20:45 | |
camelia | a a a b wtf? wtf? |
||
Xliff | m: my atomicint $f = 0; sub a { say 'a'; }; sub b { say 'b'; }; sub c { say 'wtf?'; }; $*SCHEDULER.cue({ given $f { when 0 { a(); }; when 1 { b(); }; default { c(); }; }; }, every => 1); sleep 2; $f = 1; sleep 3; $f = 42; sleep 2 | 20:46 | |
guifa2 | defaultxr: It looks like no one answered your ::?CLASS question. That's a compile-time variable, see: docs.raku.org/language/variables#i...::%3FCLASS | ||
camelia | a a a b b wtf? wtf? |
||
defaultxr | guifa2, i think you mean rypervenche | 20:47 | |
guifa2 | err yup | ||
rypervenche: ^^ | |||
rypervenche | Hmm. Why is it ::CLASS:U: in this case instead of ::?CLASS:U: and why the extra : at the end? | 20:48 | |
20:48
cpage_ joined
|
|||
defaultxr | and thanks Xliff, though i won't know all of the potential outcomes in advance since what i'm trying to do involves improvisation/trial and error in real time | 20:48 | |
20:49
sena_kun joined
|
|||
[Coke] | in a signature, trailing : indicates the "self" | 20:49 | |
in a *method* signature, I mean | |||
rypervenche | For example, FCO has it in his code here: github.com/FCO/Red/blob/master/doc...lationship | ||
20:52
cpage left,
cpage_ is now known as cpage
|
|||
[Coke] | so, the method as defined must be called on an undefined object | 20:54 | |
(in java, that'd be a static method, e.g.) | |||
and the ::CLASS:D: is an instsance method. | 20:55 | ||
guifa2 | oh | 20:56 | |
duh | |||
yuplushi | is there a currated list of "best perl6/raku" youtube talks? | ||
guifa2 | rypervenche: ::CLASS is actually a type capture | ||
It's just the most common is ::T | |||
20:57
lostmywindows joined
|
|||
lizmat | yuplushi: no, there isn't to my knowledge | 20:57 | |
but a few months ago, someone made quite a few ones | |||
[Coke] | guifa2: ah, good call, yes. | 20:58 | |
rypervenche | guifa2: Hmm, ok thanks. I'll have to do some reading to wrap my mind around type captures. | ||
yuplushi | maybe i should make a list, even filtering out the p5 talks would make it easier to browse them | 20:59 | |
guifa2 | rypervenche: basically, type capture says "I don't know what type I'm going to get, but whatever I get, I need to use it again elsewhere" | ||
yuplushi: tbh, if .author eqv $jnthn | $lizmat, it'll be awesome, but those don't tend to be intro video types (if that's what you're looking for). A curated list in a wiki or doc page would actually be pretty cool esp with a quick summary | |||
[Coke] | (given that it's in a method definition, when invoked it'll have to be something of that type or a subtype) | 21:00 | |
guifa2 | rypervenche: so imagine I want a function to do something to two variables, but I want to make sure they're the same type (eg Int and Int, or Str and Str) | ||
you could do a giant list of multis, but those aren't very extendable. | |||
[Coke] | er, -in the definition *and* it's the self: parameter) | ||
guifa2 | You could do sub foo ($a, $b where $b.WHAT == $a.WHAT) { … } | 21:01 | |
but the cleanest way is sub foo (::TYPE $a, TYPE $b) { … } | |||
TYPE gets set to whatever $a's type is, and then becomes a constraint on $b | |||
rypervenche | Ahhhh. | 21:02 | |
lizmat | yuplushi : maybe www.youtube.com/channel/UCDkz-__gl...LexukpG0DA is a good start | ||
guifa2 | in the method then, you could also say my TYPE $c := $a, for instance | ||
21:02
kensanata left
|
|||
lostmywindows | not sure if ontopic but will raku/perl6 be available in zeal or other convenient format? | 21:03 | |
21:04
sena_kun left
|
|||
guifa2 | rypervenche: my guess though is that MasterDuke actually meant to say ::?CLASS in that case though :-) | 21:04 | |
21:05
rindolf left
|
|||
lizmat | lostmywindows: I suggest you make an issue in the doc repo | 21:05 | |
rypervenche | SmokeMachine rather. :P | ||
guifa2 is still waking up :-) | 21:07 | ||
yuplushi | lizmat, thanks haven't seen those before | ||
lostmywindows | thanx lizmat | 21:10 | |
21:19
sena_kun joined
|
|||
leont_ | rypervenche: your ticket on YAMLish wasn't quite clear to me | 21:28 | |
21:31
patrickz joined
|
|||
SmokeMachine | I’ve done that wrong!!! I’ll fix that... it should be ::?CLASS:U: | 21:31 | |
21:32
hungrydonkey joined
|
|||
rypervenche | leont_: Take a look at yaml.readthedocs.io/en/latest/example.html and search for "If a block sequence or block mapping is the element of a sequence" | 21:39 | |
I'd never even seen the non-compact version until I used YAMLish. Then I read the spec and learned about the compact and non-compact versions. | 21:40 | ||
SmokeMachine | Fixed | 21:42 | |
leont_ | It's YAML, there are several ways to do everything | 21:45 | |
I mean, there are like 5 syntaxes for strings | |||
21:47
Sgeo left
21:49
skids left,
Sgeo joined
21:50
skids joined
|
|||
raku-bridge | <勉人> how do i assign a unicode compatibility character in raku? > $a = 0xF97E.chr 量 > $a.ord.base(16) 91CF 😕🤔⁉️ | 22:03 | |
ShimmerFairy | Looks like you want to pipe it through NFKD or NFKC normalization | 22:07 | |
m: say 0xF97E.chr.NFKC.Str.ord.base(16) | |||
camelia | 91CF | ||
jnthn | Str means NFG which implies NFC | ||
raku-bridge | <勉人> m: say 0xF97E.chr.NFKD.Str.ord.base(16) | 22:08 | |
evalable6 | 91CF | ||
ShimmerFairy | yeah, the .NFKC (or NFKD) converts the string to a new type of object, which is why the .Str is there to immediately turn it back into a regular everyday Str. | 22:09 | |
22:09
Sgeo left
|
|||
raku-bridge | <勉人> it still doesnt work | 22:09 | |
jnthn | Yes, but Uni => Str coercion means "normalize me" | ||
22:10
Sgeo joined
|
|||
jnthn | You'd have to leave it as a Uni (which of course has a bunch of limitations at the moment) | 22:11 | |
ShimmerFairy | Yeah, dropping the .Str lets you keep the string in its newly-normalized form. | ||
raku-bridge | <勉人> > 0xF97E.chr.NFKD NFKD:0x<91cf> > 0xF97E.chr.NFKC NFKC:0x<91cf> | 22:12 | |
<勉人> doesnt seem to work | |||
jnthn | You can't go via .chr because .chr makes a Str which is normalized | 22:14 | |
m: say Uni.new(0xF97E).NFKD | |||
camelia | NFKD:0x<91cf> | ||
jnthn | huh, what's that doing... | 22:15 | |
raku-bridge | <勉人> m:say Uni.new(0xF97E) | ||
evalable6 | Uni:0x<f97e> | ||
raku-bridge | <勉人> how do i compare this to a string? | 22:16 | |
jnthn | It's been years since I read the spec of what NFKD and NFKC are meant to do, though | ||
22:18
patrickb left
|
|||
jnthn | Well, eq, but again, if you have a Str on the other side then it will have been normalized too | 22:19 | |
raku-bridge | <勉人> womp | ||
22:19
patrickz left
|
|||
jnthn | (Before you even get to doing the comparison) | 22:19 | |
guifa2 . o O ( Str does what's best and logicla 99.9% of the time. That other .1% though… ) | 22:20 | ||
jnthn | Well yes, that's why there's Uni too, for the .1%, though it turns out so few people need this that it's received little implementation attention. | ||
raku-bridge | <勉人> it makes sense. most of the time ud want 量 to match with 量 | 22:21 | |
guifa2 | jnthn: not sure if you saw it, but we finally solved an XML parse bug this week that I reported a year+ ago and it revolved around that .1% | 22:23 | |
raku-bridge | <勉人> i started learning raku 2 weeks ago 🙃 | 22:24 | |
<勉人> the grammars convinced me to change ships | |||
guifa2 | XML content that begin with a combining mark bomb it, because the grammar looking for > won't match in, e.g, >́ . | 22:25 | |
22:25
xinming left
|
|||
guifa2 | 勉人: the grammars are so much fun to work with | 22:25 | |
22:25
xinming joined
|
|||
raku-bridge | <勉人> what was the fix? | 22:26 | |
guifa2 | 勉人: we haven't fixed it yet, just spotted the source of the issue. But JSON::Tiny had the exact same issue where the sequence was QUOTE, COMBINING MARK, text, QUOTE. | 22:27 | |
timotimo | that's interesting I made this fix in jason fast | 22:28 | |
like really long ago | |||
guifa2 | They did a combining-mark-agnostic match on quote, and then in the actions, checked to see if it was made of >1 code point, and if so, attached those code points onto the beginning of the text content | ||
raku-bridge | <勉人> im gonna work a lot with unicode and combining characters, which is why raku was so appealing to me cuz its already built with unicode in mind. | 22:29 | |
guifa2 | 勉人: for the most part, dealing with combining characters just works. It's when you do really weird stuff (like strings that start with combining marks) that you have to take some special care. But it's still not too bad | 22:30 | |
timotimo | yes I would call that having to deal with the switch in languages in the middle of the input | 22:32 | |
raku-bridge | <勉人> > my $s = "̂" ===SORRY!=== Error while compiling: Malformed initializer ------> my $s =:eject: "̂" expecting any of: prefix term i put a combining circumflex between the quotations | 22:33 | |
<勉人> interesting error | 22:34 | ||
<勉人> im not actually looking for a solution on this | |||
timotimo | but there is a solution :D | ||
m: say "\c[COMBINING CIRCUMFLEX]" | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unrecognized character name [COMBINING CIRCUMFLEX] at <tmp>:1 ------> 3say "\c[COMBINING CIRCUMFLEX7⏏5]" |
||
timotimo | (whatever it's actually called) | 22:35 | |
raku-bridge | <勉人> m:say "\c[COMBINING CIRCUMFLEX ACCENT]" | ||
evalable6 | 勉人, rakudo-moar 85320f466: OUTPUT: «̂» | ||
raku-bridge | <勉人> nice | ||
22:36
petr37 joined
|
|||
raku-bridge | <勉人> does anyone here know of any good sources for learning grammars in depth? (other than the book Parsing with Perl 6 Regexes and Grammars cuz i already finished it) | 22:37 | |
guifa2 | Have you looked at the Advent Calendar? There were a few good posts there that helped me out | 22:38 | |
timotimo | yes I love the advent calendar | ||
raku-bridge | <勉人> can i get link please | ||
timotimo | it's almost christmas yet again | ||
raku-bridge | <勉人> perl6advent.wordpress.com/ | 22:39 | |
<勉人> this? | |||
timotimo | that is probably the right one | 22:40 | |
we didn't do anything for the rename yet? | |||
guifa2 | 勉人: Also rakuadventcalendar.wordpress.com/ (for 2020 and onwards). My article was actually on grammar-ish stuff (technically tokens, though) | 22:41 | |
raku-bridge | <勉人> »ö« looks like a fat dude gasping 😆 i cant see a butterfly even if i try | 22:43 | |
guifa2 | »ï« maybe? | 22:45 | |
raku-bridge | <勉人> hhhmmmmmm iii seeee | 22:46 | |
22:46
hungrydonkey left
|
|||
guifa2 | ⸮̡ö̯?̢ | 22:48 | |
raku-bridge | <勉人> 🦋 ƸӜƷ | ||
petr37 | Have Raku something like struct in C ? | ||
guifa2 | petr37: yes, just use a regular old class, they function basically the same | ||
petr37 | Old class? | 22:49 | |
guifa2 | oh sorry, "regular old" is expression meaning "plain and boring" | ||
petr37 | Thanks 😊 | 22:50 | |
guifa2 | so if you had a 2D point structure in C like | ||
struct Point { int x; int y; } | |||
you'd use | |||
class Point { has Int $.x; has Int $.y } | 22:51 | ||
petr37 | Thank you! | 22:52 | |
But why "old"? | |||
timotimo | that's just an english idiom | 22:53 | |
guifa2 needs to come up with a good topic for the Advent calendar | 22:54 | ||
petr37 | Understood 👍 | ||
oddp | guifa2: rationale for why foo:_ is the default instead of foo:D | 22:56 | |
That would be good to know. :) | |||
petr37 | I learn Raku and i like it )) | 22:57 | |
Wonderful language! | |||
22:57
pecastro left
|
|||
guifa2 | oddp: that's above my paygrade haha. But my guess is while it would appear to make more sense in signatures, there are probably times where it makes less sense, and for consistency, :_ was default | 22:59 | |
That or when you use :D or :U, you need to check for definedness, but :_ doesn't require it | |||
oddp | Hm, currently working though some old slides and mailing list entries to found more answers. | 23:01 | |
find* | |||
guifa2 | OOooh | 23:02 | |
Since I'm trying to beef up the localization capabilities | |||
I could do a post that ends up saying Merry Christmas (or Happy Advent) in lots of different languages and show how to do that using the main intl modules | 23:03 | ||
petr37 | Merry Christmas - Счастливого Рождества (Russian) )) | 23:05 | |
23:09
sena_kun left
23:11
petr37 left
23:15
hungrydonkey joined,
xinming left
23:16
xinming joined
23:20
petr37 joined
|
|||
ShimmerFairy | jnthn: for what it's worth, I believe my intention for Str/Uni/NFC/etc. was that the literal only difference between them would be how the string internally is normalized, but I don't know where the reality of implementation leaves that idea. | 23:21 | |
timotimo | but with NFG you cannot really access code points | 23:23 | |
I wonder how the API would look for that | |||
23:23
petr37 left
23:24
petr37 joined
|
|||
ShimmerFairy | Well, the non-NFG strings would have a different idea of what a "character" is, e.g. Str.substr(0,3) grabs the first 3 graphemes, NFC.substr(0,3) grabs the first three codepoints. | 23:25 | |
23:25
petr37 left
23:35
raydiak left,
sivoais left,
raydiak joined
23:36
sivoais joined
23:38
oddp left
23:42
leont_ left
23:46
skids left
23:49
vike left
23:52
vike joined
|