🦋 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:01
MilkmanDan joined
00:02
thundergnat joined
|
|||
thundergnat | rypervenche: There isn't really a UInt type. Just constraining to non negative should be sufficient. (There's uint, but that's a native type) | 00:04 | |
m: subset Non-negative where { $_ ~~ Int|Rat and $_ >= 0 }; sub test (Non-negative $t) { dd $t }; .&test for 1/2, 2, '3'; | |||
camelia | 0.5 2 Constraint type check failed in binding to parameter '$t'; expected Non-negative but got Str ("3") in sub test at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
thundergnat | Although it doesn't seem to complain about UInt. | 00:05 | |
m: subset Non-negative where { $_ ~~ UInt|Rat and $_ >= 0 }; sub test (Non-negative $t) { dd $t }; .&test for 1/2, 2, '3'; | |||
camelia | 0.5 2 Constraint type check failed in binding to parameter '$t'; expected Non-negative but got Str ("3") in sub test at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
guifa | rypervenche: I would do subset NonnegativeRat where { $^i > 0 && $^i ~~ Int | Rat } | ||
rypervenche | guifa: You're really loving those positional arguments, huh? | 00:09 | |
guifa | ha I guess the i-for-integer is strong with me | 00:10 | |
00:15
sena_kun joined
00:16
MilkmanDan left,
Altai-man left
00:21
MilkmanDan joined
|
|||
rypervenche | Nice, got my little script working. :) That took a while, but the end result is a lot shorter and cleaner than it was when I started. repl.it/@rypervenche/Dollar-dollar...#main.raku | 00:21 | |
Not quite happy with how I have to use those variable names for the decontainerizing, so I'll have to figure out a better way to do that. | 00:22 | ||
codesections | rypervenche: That does look pretty short/clean, thanks for sharing :) Which variable names do you not like? | 00:48 | |
rypervenche | codesections: The :$key and :$variable that I have to use or the decont doesn't work. I need to go through my history, I think someone gave me another possible way to do it. | 00:49 | |
Since my sorting of the baghash creates a sequence of pairs. | 00:50 | ||
codesections | You could just do .key and .value in the body of the for loop | 00:52 | |
which doesn't really save anything there, but gets rid of the declaration | 00:53 | ||
01:04
Kaiepi left
01:05
Kaiepi joined
01:06
vike left
01:08
vike joined
01:16
jmcgnh joined
01:34
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:35
epony left
01:37
epony joined,
Doc_Holliwood left
01:45
molaf left
01:49
defaultxr joined
01:58
molaf joined
|
|||
rypervenche | Ooh, that's cool. I never knew how $_ worked with multiple variables like that. | 02:00 | |
Err no, it's my misinterpretation of it. Still a single item. Got it. | 02:01 | ||
I think that was my problem. I was seeing it as two things instead of a single pair. | 02:02 | ||
02:06
Manifest0 left,
Manifest0 joined
02:42
gnufr33dom joined
02:46
vrurg_ left
02:50
MilkmanDan left,
MilkmanDan joined
02:51
vrurg joined
03:03
nicholatian left,
nicholatian joined
03:04
a3r0 left,
karupanerura left,
a3r0 joined,
marcusr left
03:05
skids left,
dataangel left,
dataangel joined,
skids joined
03:06
karupanerura joined
03:08
zacts joined
03:09
marcusr joined
03:14
Altai-man joined
03:16
MilkmanDan left,
vrurg left
03:17
sena_kun left,
vrurg joined
03:26
bdju left,
bdju joined
04:08
Kaiepi left
04:09
Kaiepi joined
04:10
aborazmeh left
04:13
Kaiepi left,
Kaiepi joined
04:27
MilkmanDan joined
04:35
tejr left
04:47
tejr joined
|
|||
raku-bridge | <stu002> Is there a shorthand notation for multiple "does" mixins? E.g. for class A does B does C does D something like class A does (A, B, C) ? | 04:48 | |
04:49
cpage left
04:59
leont joined
05:15
sena_kun joined,
gnufr33dom left
05:17
Altai-man left,
skids left
05:20
bocaneri joined
05:21
zacts left,
gnufr33dom joined
05:25
Doc_Holliwood joined
05:28
zacts joined
05:35
lucasb left
06:00
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:02
cpan-raku left
06:03
cpan-raku joined,
cpan-raku left,
cpan-raku joined
06:06
Sgeo left
06:18
MilkmanDan left
06:20
gnufr33dom left
06:25
gnufr33dom joined
|
|||
Geth | advent: Leont++ created pull request #59: Add article for RFC22 |
06:33 | |
06:35
aborazmeh left
06:43
stoned75 joined
|
|||
Geth | advent: cc578b3021 | (Leon Timmermans)++ | 20th/articles/rfc22.md Add article for RFC22 |
06:50 | |
advent: 7172ad1470 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 20th/articles/rfc22.md Merge pull request #59 from Leont/rfc22 Add article for RFC22 |
|||
06:51
kensanata joined
06:52
zacts left,
ensamvarg3 joined
|
|||
leont | Confused now, he gave review comments and then merged it | 07:08 | |
07:14
Altai-man joined
07:16
sena_kun left
07:29
rindolf joined
07:31
dolmen joined
07:38
dakkar joined
08:03
oddp joined
08:04
aborazmeh joined,
aborazmeh left,
aborazmeh joined
08:29
MilkmanDan joined
|
|||
kensanata | Sounds like "good enough to merge but I'd love to see these minor points addressed in future patches"? | 08:33 | |
tellable6 | 2020-06-25T22:40:08Z #raku <AlexDaniel> kensanata: if you're on a debian derivative, any reason you can't use rakudo that is packaged in the repos? | ||
2020-06-25T22:42:52Z #raku <AlexDaniel> kensanata: ah, I've read your last message. Rakudo 2018.12 is not bad at all, but you can easily have 2020.05.1 from unstable | |||
kensanata | Hah. | 08:34 | |
08:43
dolmen left
08:46
dolmen joined
08:52
oddp left
08:53
rockxloose left
08:54
rockxloose joined
08:56
aborazmeh left
09:05
kensanata left,
kensanata joined
09:09
dolmen left
09:13
dolmen joined
09:15
sena_kun joined
09:17
Altai-man left
09:18
Prince213 joined
09:34
patrickb joined
09:35
Black_Ribbon left
09:39
Prince213 left
09:55
tejr left
09:57
thundergnat left
10:02
tejr joined
10:04
Prince213 joined
10:05
Doc_Holliwood left
10:06
stux|RC left
10:09
stux|RC joined
10:14
JJMerelo joined
|
|||
kensanata | I'm looking at my old Perl6+Cro project and can't get stuff install anymore. When I run zef install . I'm getting the error "Could not find Oddmuse::Storage::File::Test in: ... file#/home/alex/src/oddmuse6" which is true, since it's in in the lib/ subdirectory. How do I tell zef that? | 10:20 | |
In my Makefile, I have a test target that runs prove6 -l -j=$(jobs) t – what's the equivalent of prove6 these days? | 10:21 | ||
Yikes, when I use RAKULIB=lib zef install . I'm getting "Cannot look up attributes in a NQPMu type object" ... | 10:24 | ||
kensanata reads docs.raku.org/language/modules again... | 10:26 | ||
kensanata replaces all .pm6 extensions with .rakumod, all .t extensions with .rakutest, adds use lib 'lib'; after every use Test; ... | 10:33 | ||
kensanata runs zef install App::Prove6 ... I'm starting to feel that when I'm done I'm going to write a blog post. | 10:34 | ||
10:36
molaf left
10:53
perotti30 joined
|
|||
perotti30 | hi | 10:53 | |
10:53
perotti30 left
10:59
patrickb left
|
|||
lizmat | ++kensanata | 11:11 | |
11:14
Altai-man joined
11:17
sena_kun left
|
|||
kensanata | I still get that weird error "Cannot look up attributes in a NQPMu type object" which forces me to delete lib/.precomp after some changes to my source files. | 11:17 | |
How weird. | |||
And zef still doesn't install the latest Algorithm::Diff. I got my patch into github.com/Takadonet/Algorithm--Diff.git two years ago. What needs to happen for this to be "released"? | 11:18 | ||
11:18
JJMerelo left
|
|||
kensanata | But other than that: "All tests successful." TEARS OF JOY!! | 11:19 | |
Interesting, my make test works, but zef install . still doesn't work: apparently the use lib 'lib' has to come first. Strange that this wasn't necessary for my own testing. | 11:26 | ||
11:27
dolmen left
11:39
molaf joined
|
|||
cpan-raku | New module released to CPAN! Oddmuse6 (0.0.5) by 03SCHROEDER | 11:44 | |
kensanata | Wohoooo | ||
Altai-man | kensanata++ | 11:46 | |
kensanata, by the way, `use lib 'lib` should not be necessary, no? | 11:47 | ||
kensanata | Altai-man: I'm not sure. I got a ton of errors about modules not being found. | 11:49 | |
11:49
dolmen joined
|
|||
kensanata | (Before installation) | 11:49 | |
As in: trying to run my tests. | 11:50 | ||
Altai-man | kensanata, can you check if all the files presumably missing are specified in `provides` section of META6.json? | 11:51 | |
kensanata | At one point that was a problem (they were still listed using .p6 extensions). | ||
Altai-man: I'd be happy to be proven wrong, though. I will zef uninstall the thing and then I'll take a look at github.com/kensanata/oddmuse6/blob...s.rakutest – I'll simply delete line 17, OK? | 11:52 | ||
Altai-man | kensanata, yes. I mean, it will work, but this path is relative and it might go bad if tests are run from other directory (though unlikely). If all files are specified in META6.json, you should be able to safely test things using `zef test` as long as META6.json is correct. | 11:54 | |
11:55
ab5tract joined,
ab5tract_ joined
|
|||
kensanata | Altai-man: You never run raku t/foo.rakutest? | 11:57 | |
Altai-man: This is my first problem: "Error while compiling /home/alex/src/oddmuse6/t/changes.rakutest Could not find Oddmuse::Storage::File::Test" as I'm running raku t/changes.rakutest. | |||
I'm not sure how to run zef test. What do I specify? I usually just use raku t/foo.t, or prove6 t. | 11:58 | ||
When I run zef test . I also get the same error: "Error while compiling /home/alex/src/oddmuse6/t/changes.rakutest [Oddmuse6] Could not find Oddmuse::Storage::File::Test" | |||
11:59
ab5tract left
|
|||
kensanata | Hm, I guess that module is missing in github.com/kensanata/oddmuse6/blob...META6.json | 12:00 | |
How do I specify this Oddmuse::Storage::File::Test module which is not required for installation? | |||
Altai-man | kensanata, move this file to e.g. `t/lib` directory and instead of `use lib 'lib'` use, for example, `use lib $*PROGRAM.parent.add("lib");`, which will run file relative to currently executed one. | 12:03 | |
See e.g. github.com/Altai-man/cro-ldap/tree/master/t for example | |||
kensanata | Altai-man: OK, so I move the file lib/Oddmuse/Storage/File/Test.rakumod to t/lib/Oddmuse/Storage/File/Test.rakumod and changed use lib 'lib' to use lib $*PROGRAM.parent.add("lib"), and now I get a different error: "Error while compiling /home/alex/src/oddmuse6/t/changes.rakutest Could not find Oddmuse::Storage" (which is in lib, not t/lib) and is listed in META6.json. | 12:09 | |
Altai-man | kensanata, how do you run tests? | 12:10 | |
kensanata | So I guess I can no longer run tests directly using raku? What about prove6, do you use it? And how can I run zef test such that it only runs this one test? | ||
Altai-man: I use raku t/foo.rakutest, or prove6 t | 12:11 | ||
And of course zef install does something that I don't understand but also involves running tests. | |||
Altai-man | kensanata, are you running executable for prove to work with passing it -Ilib? | 12:12 | |
E.g. `prove --jobs=4 -e "perl6-m -Ilib" t/` or something. | |||
kensanata | My Makefile has `prove6 -l -j $(jobs) t` | ||
Altai-man | Hmm, `-l` should make it work. :S | 12:13 | |
kensanata | github.com/kensanata/oddmuse6/blob...kefile#L22 for context | 12:14 | |
Altai-man: I dunno, it seems to me that I want three ways of running tests: alone, with maximum ouput; in parallel, with summarised output; by zef, because that's what it does. | |||
Altai-man: As it stands, both `raku t/changes.rakutest` and `prove6 -l -j 4 t` complaing about not finding Oddmuse6::Storage; they do list the directories searched. For prove6, file#/home/alex/src/oddmuse6/lib is listed, but /home/alex/src/oddmuse6/t/lib is not. When calling raku directly, file#/home/alex/src/oddmuse6/t/lib is listed but /home/alex/src/oddmuse6/lib is not. | 12:17 | ||
So... I dunno, looks like there is no way to make it work like you did? | 12:18 | ||
Altai-man | kensanata, I can't reproduce it. | 12:19 | |
kensanata, if I run `raku -Ilib t/changes.rakutest` it works for me. | |||
Oh, wait | |||
12:19
patrickb joined
|
|||
kensanata | You add -Ilib | 12:19 | |
Altai-man | Yes? | ||
kensanata | I did not. | 12:20 | |
OK, now it works for all three use cases. | 12:26 | ||
Altai-man | kensanata, the thing here is that paths to look up for modules need to be specified somehow. It can be done either using command line with `raku -I$relative-path-to-include` or inside the script or zef does that for you. For your cases, prove and prove6 jsut runsyour specified executable, so it effectively equals to "run raku ..." for each file", thus it needs the -I to work. Single file is the same, needs -I. And zef is smart enough to know what to do. | 12:27 | |
Thus you can avoid having `use lib 'lib'` in your code and save some pains. | |||
kensanata | I'll just believe you that use lib 'lib' is painful. :) | 12:28 | |
Altai-man | Might be. :) | ||
kensanata | Committed and pushed; thanks, Altai-man | 12:31 | |
Altai-man | yw | ||
codesections | A Hash is mutable (keys can be added/deleted and values can be changed); a Map is immutable. I was thinking Raku had a way to have an Associative with fixed keys but mutable values, but I can't recall what that would be. A Map containing scalars, maybe? | 12:32 | |
jnthn | codesections: Yes, that should do it | 12:39 | |
codesections | Thanks! What's the syntax for that? I thought it was the below, but that's not quite working: | 12:41 | |
m: my $map := %(a => my $ = 1).Map; $map<a> += 1; | |||
camelia | Cannot modify an immutable Int (1) in block <unit> at <tmp> line 1 |
||
jnthn | m: my %m := Map.new((a => my $, b => my $)); %m<a>++; %m<b>++ xx 2; dd %m | 12:44 | |
camelia | Map.new((:a(1),:b(2))) | ||
codesections | Thanks :) | ||
12:46
Noisytoot left
|
|||
codesections | (also, I totally did *not* realize that the list repetition operator could be applied to functions. That's very cool! So a bonus thanks for showing me that for free :) ) | 12:47 | |
jnthn | That's...uh...very lazy of me :D But yeah, it thunks its left hand side. :) | 12:48 | |
m: say rand xx 5 | |||
camelia | (0.36513925719676554 0.1644709703389835 0.7754803132304698 0.604364218723919 0.6034782571067162) | ||
codesections | Oh, for anyone else interested in this, I just realized that my original attempt that the Map-with-scalars syntax with .Map instead of Map.new was only wrong because I didn't need the % | 12:56 | |
m: my $map := (a => my $ = 1).Map; say $map<a> += 1; | |||
camelia | 2 | ||
12:59
Noisytoot joined
13:00
_jrjsmrtn joined
13:01
gnufr33dom left
13:02
__jrjsmrtn__ left
13:08
aborazmeh joined,
aborazmeh left,
aborazmeh joined
13:15
holyghost joined,
sena_kun joined
13:17
Altai-man left,
Prince213 left
13:24
Kaiepi left
13:26
Kaiepi joined
13:36
gnufr33dom joined
13:38
saadsadd joined
13:42
gnufr33dom left
13:47
gnufr33dom joined
13:50
saadsadd left
13:51
Kaiepi left
13:56
Prince213 joined
13:57
skids joined
14:30
aborazmeh left,
demostanis joined
|
|||
demostanis | Hello guys! Can anyone rate my Github pages? hubtodate.mooo.com/ | 14:30 | |
For now, the only document almost finished is "Creating your own rules" | 14:31 | ||
14:41
Sgeo joined
14:55
zacts joined
14:59
gnufr33dom left
15:14
Altai-man joined
15:16
sena_kun left
15:26
kensanata left
|
|||
xinming_ | Is there a way to specify .precomp $ROOT dir globally? | 15:26 | |
moritz | demostanis: feedback for your website: what the heck is it about? | 15:27 | |
it does something automatically with github, but what, and more importantly, why? What problem does it solve? why should I care? | 15:28 | ||
you should try to answer these questions as concisely as possible at the very top | |||
demostanis | As said, reasons *why* you should use it are in the GitHub's README. Should I paste it in the main page of the website? | 15:31 | |
" | |||
Many distributions lack some software which can be found on GitHub, most of the time because they are not popular enough. You have the choice to install the binaries at the risk of keeping outdated software on your computer... OR to use HubToDate. | |||
" | |||
moritz | demostanis: well, you wanted feedback on the website, that was my feeddback :-) | 15:32 | |
demostanis | I'll just paste the Github's README... | 15:33 | |
tadzik | if you advertise a website, it's probably more effective to describe it on the website rather than a github repo's README that people would otherwise have to manually check (after they learn that it exists) :) | ||
demostanis | It explains well | ||
15:33
JJMerelo joined
|
|||
moritz | so, let me try to rephrase, to see if I understood it | 15:34 | |
it's some kind of "package manager" that keeps software up-to-date that I use that's hosted on github | |||
JJMerelo | m: my %þ = :is-mighty; say Q:h«Þor %þ» | ||
camelia | Þor %þ | ||
tellable6 | 2020-08-11T14:25:12Z #raku-dev <[Coke]> jjmerelo: I owe you an article, planning to finish it after I get out of $dayjob today | ||
moritz | correct? | ||
JJMerelo | .tell [Coke] thanks! | 15:35 | |
tellable6 | JJMerelo, I'll pass your message to [Coke] | ||
demostanis | Yep | ||
moritz | then my next question is: with what kind of software does it work? how does it prevent things from breaking by pulling to the latest version? | ||
rypervenche | Is =cut used in Raku? Or is that a Perl thing? | 15:37 | |
15:37
Doc_Holliwood joined
|
|||
JJMerelo | rypervenche Perl | 15:37 | |
xinming_ | m: my $sig = :(Int $y); $sig.raku.say; ((3,) ~~ $sig).raku.say; | ||
camelia | :(Int $y) Bool::True |
||
demostanis | moritz: With any software, the user needs to provide in rules files how to install it using a shell command | ||
JJMerelo | m: my %þ = :is-mighty; say q:h«Þor %þ» | ||
camelia | Þor %þ | ||
moritz | rypervenche: =cut isn't used in Raku | 15:38 | |
demostanis | It doesn't pull directly the Github repository, it fetches releases | ||
xinming_ | Int his example, Is it possible to extract the value of $y after $sig matched? | ||
JJMerelo | m: my %þ = :is-mighty; say «Þor %þ» | ||
camelia | (Þor %þ) | ||
rypervenche | Ok, thanks. I'm upading a PR for Rouge to hopefully get Raku into Gitlab's syntax highlighting. | ||
JJMerelo | m: my %þ = :is-mighty; say «Þor %þ»:h | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> You can't adverb «Þor %þ» at <tmp>:1 ------> 3my %þ = :is-mighty; say «Þor %þ»:h7⏏5<EOL> expecting any of: pair value |
||
demostanis | hubtodate.mooo.com/ Better? | ||
xinming_ | What I mean is, binding the data to signatures, and extract data from the signature object. | ||
JJMerelo | m: my %þ = :is-mighty; say "Þor %þ" | ||
camelia | Þor %þ | ||
JJMerelo | m: my %þ = :is-mighty; say "Þor {%þ}" | ||
camelia | Þor is-mighty True | ||
jdv79 | aren't github release just tags with metadata? that's "in the repo". | ||
JJMerelo | m: my %þ = :is-mighty; say q:h"Þor {%þ}" | ||
camelia | Þor {%þ} | ||
JJMerelo | m: my %þ = :is-mighty; say Q:h"Þor {%þ}" | 15:39 | |
camelia | Þor {%þ} | ||
demostanis | jdv79: It's often standalone executables, or everything needed to run the software inside a tar archive without having to pull the entire codebase | 15:40 | |
15:42
kensanata joined
|
|||
JJMerelo | m: my %þ = :is-mighty; say q:h"Þor %þ<>" | 15:44 | |
camelia | Þor is-mighty True | ||
JJMerelo | m: my %þ = :is-mighty; say "Þor %þ<>" | ||
camelia | Þor is-mighty True | ||
15:44
dolmen left
|
|||
JJMerelo | m: my %þ = :is-mighty; say "Þor %þ" | 15:44 | |
camelia | Þor %þ | ||
JJMerelo | m: my %þ = :is-mighty; say q:h"Þor %þ" | ||
camelia | Þor %þ | ||
JJMerelo | m: my %þ = :is-mighty; say q:h /Þor %þ/ | 15:46 | |
camelia | Þor %þ | ||
JJMerelo | m: my %þ = :is-mighty; say q:h /Þor %þ<>/ | ||
camelia | Þor is-mighty True | ||
JJMerelo | m: my %þ = :is-mighty; say "Þor %þ<>" | ||
camelia | Þor is-mighty True | ||
jdv79 | oh, right. you can add other files in addition to the tag. | 15:47 | |
JJMerelo | m: my %þ = :is-mighty; say Q:h"Þor %þ<>" | ||
camelia | Þor is-mighty True | ||
JJMerelo | m: my %þ = :is-mighty; say Q "Þor %þ<>" | ||
camelia | Þor %þ<> | ||
15:51
Prince213 left,
Prince213 joined
|
|||
JJMerelo | m: my %þ = :42foo, :33bar; say Q:h:c "Þor %þ<> { [+] %þ.values}" | 15:53 | |
camelia | Þor bar 33 foo 42 75 |
||
JJMerelo | m: my %þ = :42foo, :33bar; say Q:h:c "Þor %þ<> → { [+] %þ.values}" | ||
camelia | Þor bar 33 foo 42 → 75 |
||
JJMerelo | m: my %þ = :42foo, :33bar; say Q:h "Þor %þ<> → { [+] %þ.values}" | ||
camelia | Þor bar 33 foo 42 → { [+] %þ.values} |
||
codesections | What are you up to there, JJMerelo? :) | 15:54 | |
JJMerelo | github.com/Raku/doc/issues/3553 codesections | ||
codesections | I see. Interesting | 15:56 | |
JJMerelo | codesections in general, "docs" is what I'm up to (now that the book is finished). So after a few of these, you will see either a push to docs or a StackOverflow question if I can't figure it out... | ||
codesections | Cool. Are you doing it with camelia so that others can pitch in? Or do you not have a local REPL available? | 15:57 | |
(If the latter, wow – I can't imagine being able to figure things out without a local REPL to interrogate!) | 15:58 | ||
JJMerelo | codesections I'm just lazy and camelia puts the output format we use in the documentation. And, of course, some times someone pitches in and solves the thing. | 15:59 | |
codesections No, I have one or may REPLs. It's mostly the "laziness" part of "laziness, hubris and impatience". A bit of impatience, I guess, too. | 16:00 | ||
16:02
molaf left
|
|||
codesections | Interesting. As it always is to peek into someone else's workflow. Personally, remembering to put in m: and having to copy-paste from IRC would overwhelm any gains from camelia formatting the output. But, like I said, it's interesting to see other workflows :) | 16:02 | |
JJMerelo | m: my @þ= <33 44>; say Q:a "Array contains @þ<>" | ||
camelia | Array contains 33 44 | ||
JJMerelo | m: my @þ= <33 44>; say Q:a "Array contains @þ[3]" | 16:03 | |
camelia | Use of uninitialized value element of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. Array contains in block <unit> at <tmp> line 1 |
||
JJMerelo | m: my @þ= <33 44>; say Q:a "Array contains @þ[1]" | ||
camelia | Array contains 44 | ||
JJMerelo | m: my @þ= <33 44>; say Q:a "Array contains @þ[]" | ||
camelia | Array contains 33 44 | ||
moritz | m: require ::('Test'); | 16:05 | |
camelia | ( no output ) | ||
JJMerelo | m: my @þ= <33 44>; say Q:a "Array contains @þ" | 16:06 | |
camelia | Array contains @þ | ||
16:06
aluaces left
|
|||
JJMerelo | codesections I'd have to cut and paste from somewhere, difficult to obtain the nl funny character otherwise, plus the quotes, plus OUTPUT... | 16:07 | |
Geth | doc: 3a7b09b8ad | (JJ Merelo)++ | doc/Language/quoting.pod6 Adds examples of quoting constructs using adverbs. This helps #3553 |
16:08 | |
doc: 06644b7a56 | (JJ Merelo)++ | doc/Language/quoting.pod6 Adds additional example, and clarifies when it effectively works Thanks @jnthn for clarification. This closes #3553 |
|||
linkable6 | Link: docs.raku.org/language/quoting | ||
linkable6 | DOC#3553 [closed]: github.com/Raku/doc/issues/3553 [docs] Adverbial :h to quoting constructs has no docs. | ||
JJMerelo | codesections ^^^ result... | ||
Also I've looked up roast in the meantime. It always helps to see working examples. | 16:09 | ||
[Coke] | . | 16:10 | |
tellable6 | 2020-08-11T15:35:12Z #raku <JJMerelo> [Coke] thanks! | ||
JJMerelo | m: my @þ= <33 44>; say Q:a "Array contains @þ.elems" | ||
camelia | Array contains @þ.elems | ||
JJMerelo | m: my @þ= <33 44>; say Q:a "Array contains @þ.elems()" | ||
camelia | Array contains 2 | ||
16:11
dog_star joined,
stoned75 left
|
|||
dog_star | hey, sorry if this is a silly question but i can't find an answer to it - are multidimensional arrays typed the same way was one-dimensional arrays, eg for a 2 dimensional array whose elements are cells, would it be typed `my Cell @grid`? | 16:12 | |
16:13
stoned75 joined
|
|||
JJMerelo | m: my Int @m[2;2] = <1 2 3 4>; say @m; | 16:15 | |
camelia | Assignment to array with shape 2 2 must provide structured data in block <unit> at <tmp> line 1 |
||
JJMerelo | m: my Int @m[2;2] = [1, 2; 3 4]; say @m; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3my Int @m[2;2] = [1, 2; 37⏏5 4]; say @m; expecting any of: infix infix stopper statement end statement modi… |
||
jnthn | Missing , after the | ||
3 | |||
JJMerelo | m: my Int @m[2,2] = [1, 2, 3, 4]; say @m; | 16:16 | |
camelia | Assignment to array with shape 2 2 must provide structured data in block <unit> at <tmp> line 1 |
||
JJMerelo | m: my Int @m[2,2] = [1, 2; 3, 4]; say @m; | ||
camelia | [[1 2] [3 4]] |
||
JJMerelo | so dog_star yes :-) ^^^^ | ||
dog_star | JJMerelo: hm ok thank you! i guess my problem is something else, let me look at it a bit | ||
Geth | doc: 8567ef5a05 | (JJ Merelo)++ | doc/Language/quoting.pod6 Adds additional example and clarifications Thanks @jnthn for clarification, again. This closes #3553, again |
16:18 | |
linkable6 | Link: docs.raku.org/language/quoting | ||
DOC#3553 [closed]: github.com/Raku/doc/issues/3553 [docs] Adverbial :h to quoting constructs has no docs. | |||
lucs | dog_star: Shirley? Is that you? | 16:19 | |
dog_star | m: my Int @m[2,2] = [1, 2; 3, 4]; say @m[1;1]; | ||
camelia | 4 | ||
dog_star | lucs: not aware of a shirley! i'm phoebe | 16:20 | |
lucs 's joke falls flat. Oh well... | |||
JJMerelo | lucs er... maybe we're missing all the context | 16:21 | |
lucs | www.youtube.com/watch?v=B_XuPXGMpLA | 16:23 | |
dog_star | i'm thinking either the Airplane movies or some pun on 'dog star' that i haven't heard yet :p i have had people ask me 'why so sirius' | ||
lucs | The star Sirius is also known as the Dog Star. | ||
dog_star | oooh, a combination of both | ||
not enough coffee to get the double-pun this morning | 16:24 | ||
lucs | Sorry :) | ||
dog_star | you're good! that's clever | ||
JJMerelo | lucs now that's what I call a complicated context. | ||
JJMerelo lols with a slight delay | 16:25 | ||
dog_star | oho i think i know what my problem is, but i am not sure the solution yet | ||
JJMerelo | dog_star give it a shoot. | ||
JJMerelo waits patiently to see if this joke works... | 16:26 | ||
lucs | JJMerelo: Um, not sure... :/ | 16:27 | |
dog_star | m: my Int @a; for ^20 -> $x { for ^5 -> $y { @a[$x;$y] = $x * $y } } | ||
camelia | Type check failed in assignment to @a[0]; expected Int but got Array ([]) in block at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
JJMerelo | lucs a star that shoots... | ||
JJMerelo ducks | |||
dog_star | so my guess is that subscript `$x;$y` is not being parsed how i expected, but am not sure how to correct it | ||
JJMerelo | dog_star you need to shape it in advance. | ||
dog_star | m: my Int @a[20;20]; for ^20 -> $x { for ^5 -> $y { @a[$x;$y] = $x * $y } } | 16:28 | |
camelia | ( no output ) | ||
dog_star | huzza | ||
so the autovivification isn't clever enough on multi-dimensional arrays? | |||
JJMerelo | dog_star not enough to discover a shape, I'm afraid... After all, @a[$x;$y] has no idea what are the dimensions. | 16:30 | |
jnthn | A multi-dimensional array is a different thing from an array of arrays; auto-viv will vivify an array, but if the top-level array is typed to contain Int then the assignment won't work out | ||
dog_star | that makes sense - i'm coming from an APL/k world, so i am trying to understand the semantics of arrays a bit deeper here | ||
jnthn | (A multi-dim array is really allocated as a single blob of memory.) | 16:31 | |
dog_star | jnthn: ok, that makes sense! in some langs they are equivalent and in some they aren't | ||
JJMerelo: from k i am used to subscripts working like arr[dim1;dim2;dim3...] so maybe i was projecting :) | 16:32 | ||
JJMerelo | dog_star it really makes sense. But I guess that, from the point of view of the implementation, it needs a bit of more work... | 16:35 | |
dog_star | JJMerelo: oh, i am also the "dog star" on twitter whose thread you are replying to, by the way | ||
yeah, i may add some little PRs for these gotchas, noting them down... | 16:36 | ||
JJMerelo | dog_star love to hear you're fascinated :-) That would be great :-) | ||
codesections | dog_star: How do you like Raku's APL-like features? I spent a month or so last year diving into APL, and liked it a lot. But Raku seems to have a lot of what I liked – plus a lot more. But I'd be really interested in thoughts from someone with more experience with those languages | ||
16:37
dakkar left
|
|||
JJMerelo | codesections "plus a lot more" is something we keep hearing about Raku | 16:38 | |
dog_star | codesections: i'll have to get back to you after i learn a bit more :) have only been looking into it a day or so so far | 16:39 | |
codesections | JJMerlo: hopefully in a good way? I could see that going either way :D | ||
JJMerelo | I followed a doctoral seminar on APL circa 1989. It was a really cool thing. I guess it still is... | ||
dog_star | i did give a quick intro talk about apl at a conference: www.youtube.com/watch?v=UltnvW83_CQ | 16:40 | |
JJMerelo | codesections well, having a lot of stuff in a language is not a bad thing if you live in 2020, I guess. Except if you're talking about frameworks, and the language is Javascript | ||
dog_star++ | |||
dog_star | JJMerelo: i think it can be either way! i actually like how small APL and k are. but diving into raku is reminding me of a lot of interesting tricks that i haven't seen since i was messing with common lisp and/or haskell, depending on the feature | 16:41 | |
i want to make it clear that this is not negative, but raku right now feels most similar to, uh, supercollider... which also had a lot of apl (specifically J) influence! | 16:42 | ||
codesections | Yeah, I agree, at least to a point. Though I think Raku is also, from a certain point of view, a pretty *small* language – it has a lot of orthogonal features (which, yes, can be a lot). But those can be put together in ways that prevent the need for a *ton* of standard library methods that make the effective size of other languages much larger | 16:43 | |
dog_star | specifically, raku's "whatever" concept is something that i've only ever seen in supercollider before | ||
JJMerelo | Now that's a first. Also, supercolliders are *huge* | ||
16:44
TreyHarris left
|
|||
dog_star | JJMerelo: that may be a joke going over my head again, but i mean the audio synthesis language: en.wikipedia.org/wiki/SuperCollider | 16:44 | |
16:45
TreyHarris joined
|
|||
codesections | e.g., having first-class Regexs eliminates a huge chunk of `is_ascii`, `is_numeric`, `ends_with`, etc. string processing | 16:45 | |
dog_star | codesections: in that case, that does sound like a lot of what i like about apl! | ||
JJMerelo | I meant the physical supercollider things, the ones used to throw atoms against each other. Now, supercollider was mentioned here recently... Let me check. | ||
dog_star nice talk, I had forgotten all the symbols... | 16:48 | ||
dog_star | it does make me happy that i can still use some of the APL symbols in raku :p | 16:49 | |
JJMerelo | BTW, there are still some slots open for the 20th anniversary calendar raku-advent.blog | 16:50 | |
Pick one of the original Requests for Change, tell us how they eventually ended up in the language, add you rname here github.com/Raku/advent/tree/master/20th | 16:51 | ||
codesections | dog_star: you might be interested keeping an eye on ab5tract's project to add more APL operators to Raku via a module: github.com/ab5tract/raku-SilverAPL | 16:52 | |
It's early, but seems pretty cool. (And exposes the metaprogrammabilty that makes me so excited about Raku) | |||
dog_star | JJMerelo: ooh, maybe... not sure if i want to pick up a new project right now if it's something else i would need to do ASAP though | 16:53 | |
JJMerelo | dog_star well, the one for the advent calendar this winter is also open... all of them, too :-) | ||
dog_star | JJMerelo: let me look into the winter one, because i am looking for more prompts for projects right now | 16:54 | |
JJMerelo | dog_star the winter one is totally open, simply some tutorial or article about Raku. Same repo, different file... | ||
codesections | I've been meaning to ask, where does Raku's excitement about Christmas come from? (The Advent calendar, the Christmas release, etc) | ||
JJMerelo | BTW, the flapper on the doc tests is coming back again travis-ci.org/github/Raku/doc/builds/716978461 It's totally unrelated to anything, and we've had it for a many releases. It's a flapper, and also impossible to golf as far as I can tell. | 16:55 | |
codesections | Did it start with claims that Perl 6 would be "out by Christmas" (if so, who's claims? Larry?) and just grow from there? | 16:56 | |
JJMerelo | Maybe jnthn or [Coke] can have a look at it... If it's an error, it must be deep down in MoarVM or whatever. | ||
codesections more complicated, and actually fascinating story. Check out the initial post (by YT) to see how it happened and how Raku became a truly community emergent language | 16:57 | ||
codesections raku-advent.blog/2020/07/31/20-yea...-tomorrow/ | |||
lizmat received word that Naoum Hankache lives close to the harbour in Beyrouth | |||
codesections | Hmm? I know the history of Raku/Perl6 in broad strokes. And have read that post. I was asking more specifically about Christmas | 16:58 | |
lizmat | his mother and sister have multiple bone fractures but have been released from hospital | ||
lizmat wishes Naoum all the best | |||
moritz | tough living over there, I also wish everybody the best | 17:03 | |
and thanks lizmat++ for the info | |||
tbrowder | codesections: i'm not sure i've heard larry articulate exactly why, i'll give you my take on it: Larry is a Christian and it's obvious in the public life he has lead. as a Christan the Christmas Story and its Advent are central and sacred. the release on Christmas is kind of like a pointer to highlight it, but not in a profane manner. | 17:11 | |
tellable6 | 2020-08-10T19:01:41Z #raku <thundergnat> tbrowder Glad Rosettacode was useful for you. There's a lot of interesting code on there (and some not so good too... ) | 17:12 | |
lizmat | it was actually cognominal++ who tipped me | ||
codesections | d'oh, thanks tbrowder. I'd totally missed the Christmas → Christian connection (which *should* be obvious, but…). I'd picked up on Bless, apocalypse, etc. | 17:14 | |
jnthn | I think the Christmas joke may have originated around the Pugs time, and was along the lines of | 17:15 | |
"every day will be like Christmas when we have Perl 6" | |||
17:15
sena_kun joined
|
|||
tbrowder | can anyone tell me how to get p6doc or rakudoc working again? i think i just read to clone p6doc repo and zef install rakudoc... | 17:15 | |
jnthn | By the time I got involved in Rakudo development (2008ish) it was already well established, at least :) | ||
tbrowder | jnthn: yes, a Christmas present for sure | 17:16 | |
did you see my email? | |||
codesections | Interesting. I find some of this history really cool. I've been going back and watching some of the old State of the Onion talks that address design goals for perl6/Raku, and it makes for fascinating context | 17:17 | |
17:17
Altai-man left
|
|||
jnthn | tbrowder: Yes, sorry; I'll try and get to it this evening. | 17:17 | |
(Turns out admin tasks don't take vacations even when I do... :-)) | |||
(And they managed to swallow most of yesterday evening) | 17:18 | ||
tbrowder | ok, not pushing, just want to pr my apache vhost macro | ||
jnthn | Time to go home and cook something. :) bbl o/ | ||
tbrowder | bye | 17:19 | |
[Coke] | any pointers on how to get "say \c[grinning face]" working in a cmd or powershell window? | 17:23 | |
regarding christmas, that may have been larry's original tintent (who knows) but by the time we did the release it was just the running gag | 17:25 | ||
17:31
aluaces joined,
aluaces is now known as alberto,
alberto is now known as Guest71214
|
|||
[Coke] | m: say "\c[grinning face]" | 17:38 | |
camelia | 😀 | ||
[Coke] | \o/ - windows terminal + chcp 65001, all good. | 17:39 | |
17:55
molaf joined
17:58
natrys joined
|
|||
tbrowder | ref rakudoc, finally got it installed (failed to RTFM and then had to "zef nuke rakudoc" and follow instructionsu | 18:02 | |
18:02
ensamvarg3 left
|
|||
tbrowder | [Coke] see how it all fits together TIMTOWTDI | 18:04 | |
wonder if anyone else has had to use "zef nuke" in the wild? | 18:05 | ||
18:05
skids left
18:10
sjm_uk joined
18:15
cpan-raku left,
cpan-raku joined,
cpan-raku left,
cpan-raku joined
18:18
bocaneri left
18:44
Prince213 left
18:46
Prince213 joined
18:50
ab5tract_ left
18:51
ab5tract_ joined
18:53
Celelibi left,
tobs left
18:54
tobs joined
18:56
Black_Ribbon joined
|
|||
cpan-raku | New module released to CPAN! PDF::Class (0.4.5) by 03WARRINGD | 18:57 | |
18:58
Celelibi joined
|
|||
xinming_ | What module is used to traverse tree structure? | 19:01 | |
I mean existing module, A bit like Tree::Traverse in perl5, something like that. | |||
codesections | xinming: I'm not familiar with anything off the top of my head (which doesn't mean it isn't out there – I haven't explored the module ecosystem in depth yet). Raku is pretty good at traversing trees natively, though. Can you be more specific about what you're trying to do? | 19:05 | |
er, xinming_, sorry | |||
xinming_ | Ok, my $tree = %(a => [1..10], b => %(sub-tree), c => 'plain-str'); A traverse module will walk through the whole structure and call process sub on array and hash under a tree. :-) | 19:07 | |
I can write that, it's just good when we have existing sollution. | 19:08 | ||
19:08
sjm_uk left
|
|||
codesections | Does deepmap provide similar functionality to what you're looking for? docs.raku.org/routine/deepmap | 19:09 | |
xinming_ | Not sure. | 19:10 | |
I don't know if it supports inplace update of value. | |||
19:12
eseyman left
|
|||
codesections | m: my %inner = a => 1, b => 2; my %outer = a => %inner, b => 3; %outer.deepmap({$_ += 5}); say %outer | 19:13 | |
camelia | {a => {a => 6, b => 7}, b => 8} | ||
codesections | xinming_: looks like it does ^^^ | ||
19:14
Altai-man joined
|
|||
xinming_ | m: my %inner = a => 1, b => 2; my %outer = a => %inner, b => 3; %outer.deepmap({$_ = 'new-' ~ $_}); | 19:15 | |
camelia | ( no output ) | ||
xinming_ | m: my %inner = a => 1, b => 2; my %outer = a => %inner, b => 3; %outer.deepmap({$_ = 'new-' ~ $_}); say %outer | ||
camelia | {a => {a => new-1, b => new-2}, b => new-3} | ||
xinming_ | Seems so | ||
19:16
sena_kun left
|
|||
tbrowder | xinming_: check modules.raku.org and search for "file" and there a couple of choices | 19:19 | |
cpan-raku | New module released to CPAN! Mi6::Helper (0.0.1) by 03TBROWDER | 19:28 | |
19:43
skids joined
19:47
eseyman joined
19:53
Kaiepi joined
20:08
rindolf left,
rypervenche left
20:11
rypervenche joined
20:31
tejr left
20:34
tejr joined
20:42
zacts left
20:49
kensanata left
|
|||
raku-bridge | <stu002> I'm looking for examples of a routine that "does" a trait. Assuming that's even a sensible thing to do. It's so I can make some assertions on how the routine behaves. | 21:00 | |
Geth | doc: tbrowder++ created pull request #3554: Add short description for a NativeCall helper |
21:09 | |
tbrowder | .tell Skarsnik see raku/doc pr #3554 | 21:12 | |
tellable6 | tbrowder, I'll pass your message to Skarsnik | ||
tbrowder | JJMerelo: i know you probably don't want non-core modules mentioned in the docs, but there are already exceptions and i vote for the nativecall helper to be shown near the native call description. | 21:14 | |
21:15
sena_kun joined
21:17
Altai-man left
21:27
rockxloose left
21:28
rockxloose joined
21:35
demostanis left
21:37
natrys left
21:40
zacts joined
21:57
natrys joined
22:04
xxpor left
|
|||
rypervenche | m: say (1,2,3,4,5,6,7,8,9) (==) ("123456789".comb xx 9)[0]; | 22:07 | |
camelia | False | ||
rypervenche | Am I doing something wrong here? | ||
m: say ("123456789".comb xx 9)[0] | |||
camelia | (1 2 3 4 5 6 7 8 9) | ||
22:07
xxpor joined
22:08
natrys left
|
|||
tbrowder | do you need to put the whole exp in parens or curlies | 22:14 | |
tobs | m: say 1 (==) "1" | 22:17 | |
camelia | False | ||
tobs | I think that's the cause | ||
rypervenche | Ahhh | 22:22 | |
Indeed, one is a list of Ints, the other a list of Strs. Thanks :) | |||
22:40
Kaiepi left
23:35
Chi1thangoo left,
Chi1thangoo joined
23:48
leont left
23:50
vike left
|