🦋 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.
guifa2 Well, it honestly sounds like we've got a few people that can work together to make stuff happen on the pod-front 01:02
guifa2 likes
raydiak Is it intentional that modules cannot be loaded from a directory containing a META6.json? Whether using "raku -I" or "use lib", trying to "use" or "require" a module by name fails. Passing the filename with extension to require at runtime works, though. Deleting META6.json also gets rid of the problem. 01:33
guifa2 raydiak: hrm, I haven't had that problem. Are you using 'raku -I lib' or just 'raku -I' ? 01:36
raydiak guifa2: I was doing some temporary things in the root of a module, so I copied something to the root of the module and tried to include it with "-I.". This fails if there is a META6.json in the same directory 01:39
guifa2: in an empty dir try this: echo "{}" > META6.json && echo > Foo.rakumod && raku -I. -e 'use Foo' 01:43
raydiak You'll get a warning about no name being declared in META6.json, but it's irrelevant to the behavior. You can just as easily echo '{"name":""}' > META6.json to silence the warning, I just omitted it for berevity. Either way, "use Foo" fails. 01:48
guifa2 Hmm. That's probably a question for ugexe or someone who does more with the module integration. I'd just keep everything in a lib/ folder and -Ilib in the meantime — it's never failed me (fwiw) 02:00
raydiak Thanks for trying anyway. That is how I typically structure them, just stumbled across this while doing temporary work on a copy of a file, trying to narrow down some bitrot in one of my modules. Just trying to decide if that's somehow intentional or if I should report it as a bug. 02:05
cpan-raku New module released to CPAN! Smack (0.5.2) by 03HANENKAMP 02:07
raydiak p6: class C { has $.sig = :(|); } 02:08
camelia ===SORRY!===
QAST::Block with cuid 1 has not appeared
raydiak Anyone have thoughts on that one? Has the syntax changed or something? This is code originally from half a decade ago, no idea when it broke. 02:09
ShimmerFairy Regardless of what should happen, NQP details shouldn't be leaking like that. 02:21
raydiak And we report bugs on github instead of RT these days, correct? 02:26
[Coke] yes. 02:46
raydiak Thanks 02:51
Geth ¦ problem-solving: JJ assigned to jnthn Issue The raku-community-modules organization and its problems. github.com/Raku/problem-solving/issues/210 07:27
ecosystem: 2c37478af5 | (JJ Merelo)++ | META.list
Sort alphabetically
ecosystem: 65352ca214 | (JJ Merelo)++ | META.list
Move perl6-community-modules → raku-community-modules and sort
ecosystem: 4527026a6e | (JJ Merelo)++ | META.list
Rearrangement
cpan-raku New module released to CPAN! Text::ShellWords (0.1.1) by 03SOFTMOTH 08:55
Geth ¦ problem-solving: lizmat unassigned from jnthn Issue The raku-community-modules organization and its problems. github.com/Raku/problem-solving/issues/210 09:15
lizmat raydiak: yes, if a directory that is indicated with -I if "use lib" has a META6.json file in it, it *will* be taken as authoritative 09:17
so, if the file you'd want to use is not in it, it won't be found 09:18
this was done specifically so that files could benefit from things like $?RESOURCES and such
if I recall correctly 09:19
perhaps we should introduce an environment variable to override this behaviour
cpan-raku New module released to CPAN! Game::Covid19 (0.0.5) by 03ELIZABETH 10:22
JJMerelo releasable6: status 10:42
releasable6 JJMerelo, Next release in ≈6 days and ≈8 hours. There are no known blockers. Changelog for this release was not started yet
JJMerelo, Details: gist.github.com/69c30c1e3a0a96356d...d02d33ecb1
cpan-raku New module released to CPAN! Config (3.0.0) by 03TYIL 11:03
New module released to CPAN! Config::Parser::toml (1.0.2) by 03TYIL
yuplushi in the comma ide, is there a way to show documentation inline, like "string".trim() and give a summary of what trim does? 11:17
or even jump to the source definition inside the raku standard library 11:18
sena_kun yuplushi, yes. You can hover the method name with a ctrl pressed to get short info or Ctrl+Q (in emacs layout, maybe it's different in default) to get full info. 11:21
yuplushi, just tested it works (at least in dev build :) ).
yuplushi, yup, just Ctrl+Q and it'll give you docs for what it can. `"foo".trim` case you mentioned works. 11:22
yuplushi lovely, thanks :) 11:25
raydiak lizmat thank you for acknowledging and looking into my issue, I appreciate your time 12:02
El_Che it looks like activestate is also struggling with native deps for libs and thinking about how to fix that for Perl 7. I could be interesting: www.activestate.com/blog/the-futur...te-part-1/ 12:41
dumarchie p6: (Any.new,Any.new).pick(2).map(*.WHICH) 13:41
camelia ( no output )
dumarchie p6: (Any.new,Any.new).pick(2).map(*.WHICH).raku
camelia ( no output )
dumarchie p6: Any.new 13:42
camelia ( no output )
dumarchie p6: 1
camelia WARNINGS for <tmp>:
Useless use of constant integer 1 in sink context (line 1)
SmokeMachine rypervenche: I hope you don't mind, I've used your example on the Red CookBook, ok? github.com/FCO/Red/blob/master/doc...lationship
dumarchie p6: (Any.new,Any.new).pick(2).map(*.WHICH).raku.say; 13:43
camelia (ObjAt.new("Any|71646528"), ObjAt.new("Any|71646592")).Seq
dumarchie p6: (Any.new,Any.new).pick(2).map(*.WHICH).raku.say;
camelia (ObjAt.new("Any|75657264"), ObjAt.new("Any|75657328")).Seq
rypervenche SmokeMachine: That's fine. If I'm able to give anything back to the Raku community, all the better :)
dumarchie p6: (Any.new,Any.new).pick(2).map(*.WHICH).raku.say;
camelia (ObjAt.new("Any|77984208"), ObjAt.new("Any|77984272")).Seq
dumarchie Shuffling a list of objects doesn't seem to work on a list that is not primed. 13:45
SmokeMachine rypervenche: and I've added an example of how to create new translations 13:47
SmokeMachine and, if someone could take a look at it to help me, please. That would be a great help 13:53
github.com/FCO/Red/blob/master/doc...ookbook.md 13:54
rypervenche SmokeMachine: Should "$oi.links-from.create:" be "$oi.links-from.^create:"?
SmokeMachine no, ^create is needed on models. $oi.links-from is a ResultSeq, that has the create method 13:55
rypervenche Ahhh.
SmokeMachine make sense? 13:56
rypervenche Yep. 13:57
SmokeMachine rypervenche: and ResultSeq.create creates a obj of type ResultSeq.of and respecting that ResultSeq filter, that's why you can call .create on a relationship and it will create a row that is part of that relationship 14:35
rypervenche Makes sense. :) 14:36
dracu p6: say 'hello'; 16:03
camelia hello
Geth_ ecosystem: 2ea9dd045e | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
Fix Whateverable and Blin repo links
16:04
ecosystem: 547928270a | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
Put Blin next to Whateverable
oddp Where's all the discussion around v6.e and .f happening? Which mailing lists, github repos, feeds, etc. should I follow to stay on top of language proposals? 17:18
timotimo are there any proposals for .f at all yet? 17:19
lizmat oddp: if anything happens in that respect, it would probably be in the #raku-dev channel 17:22
oddp And for past stuff? Also the logs? 17:23
lizmat colabti.org/irclogger/irclogger_log/raku-dev for the recentish stuff 17:27
colabti.org/irclogger/irclogger_log/perl6-dev for stuff older than a year or so
oddp Alright, thanks. So, that means there's no RFC-like process where members of the community discuss and vote on certain proposals? 17:32
oddp Let's say I wake up one morning and decide to put forward an outrageously brilliant (highly unlikely) idea for the language. There gotta be more to it than just implementing a POC and then bothering/spamming people in the dev channel about it, right? Who would shoot it down further down the line? 17:38
lizmat ah, for that we have the problem-solving repo 17:39
github.com/raku/problem-solving/issues 17:40
but please read github.com/raku/problem-solving first :-)
oddp Thanks, liz. Don't worry, I'm not going to waste your time on there with my brain farts. Just want to observe the language evolution. :) 17:45
Just like I skim every new language proposal for each new c++ standard.
lizmat oddp: you could look through the current proposals... perhaps that gives some inspiration 17:46
oddp But say, how did zoffix in the past decide what makes it into previous iterations of the language? And is that now j0nathan's job entirely?
lizmat good questions... expect some answers soon 17:49
codesections Here's a syntax question: If I have a data structure with the shape [ [Int, Str], [Int, Str], …], how do I write a signature constraint to require that the passed argument consists of an array of arrays of Strs and Ints ? 19:02
I tried `Array @variable-name (Array (Int, Str))` and many variations along those same lines, but haven't quite figured it out. I also tried `where` blocks and/or subsets, but haven't gotten that to work yet either 19:04
lizmat do you have a sub / method that ensures validty ? 19:05
alternately, why the [Int,Str] ? wouldn't it make sense to make that an object ?
codesections Oh, you mean write a separate sub that checks for the required shape and then call that from a `where` block? 19:06
lizmat that would be an idea, yeah ?
but more performant would probably be turning the [Int,Str] into an object 19:07
then you could check for an array with a constraint on that object
codesections I probably would make it an object (or at least a different data structure). But I'm working through an exercise and that's the shape my input data is in. But I mostly just wanted to make sure I understood how to use the type system/signature constraints
lizmat so you wouldn't have to traverse the whole array every time
codesections yeah
lizmat so instead of proving all elements are right, only check the type of the array and know it cannot have any different objects 19:08
kiwi_26 tell lizmat The list of highest upvoted posts of all time in /r/programminglanguages (www.reddit.com/r/ProgrammingLangua...op/?t=all) shows "I'm impressed with Raku" currently at #25 with 107 points :) 19:43
lizmat kiwi_26++ thanks for the mention! 19:54
Xliff kiwi_26: Now 112 points. :) 19:55
moritz now actually #21 :-) 20:58
timotimo i find it ever so slightly dishonest for people from outside a community to storm in and "spend" all their upvotes like that 20:59
lizmat weekly: www.reddit.com/r/ProgrammingLangua...with_raku/ 21:03
notable6 lizmat, Noted! (weekly)
El_Che ooops, my finger slipped and I upvoted it as well 21:05
it got some downvotes in the meantime as well 21:07
lizmat yeah, some people will downvote anything related to former Perl 6
El_Che aren't those people very busy at the moment? 21:08
lizmat you only need a slipped finger 21:10
cpan-raku New module released to CPAN! Gnome::Gtk3 (0.29.0) by 03MARTIMM 21:12
cpan-raku New module released to CPAN! Bits (0.0.3) by 03ELIZABETH 21:18
faiface Hey guys, kiwi_26 told me that he posted here about a Reddit post I wrote on r/ProgrammingLanguages that people liked, and urged me to drop here and say hi :D I wish you guys a good luck, Raku is a fantastic language and I hope it gets more traction over time. 21:40
timotimo cool 21:42
lizmat faiface++ # nice post
faiface thanks! tho there's really nothing special about it, I was just feeling enthusiastic and wanted to share, not sure why it gained such attention 21:43
rypervenche Is there a reason why I would want to use {} around my entire test value? I see that it works without it, but I still never know when I should use {} and when I don't need it: dir(test => / { $*KERNEL.hostname.lc } / && { .IO.d }); 21:47
oddp "Raku is maximally homoiconic" -- what?
lizmat en.wikipedia.org/wiki/Homoiconicity 21:49
oddp Yeah, I have a CL background.
How is it "maximally" homoiconic?
lizmat faiface ^^ ? 21:50
faiface Me? I never wrote about Raku being homoiconic 21:51
lizmat ah, one of the comments I guess
oddp No, b2gills did, while answering some questions in that thread.
faiface oh, I see
timotimo is that a reference to RakuAST?
faiface not sure what he meant, from my understanding Raku isn't homoiconic
timotimo "Parrot was started as the VM for Perl 6, but it way longer to define" - lizmat, you missed a "took" there? 21:53
lizmat took indeed...
timotimo www.reddit.com/r/ProgrammingLangua...u/fxv53cp/ - this si the permalink to the "maximally homoiconic" comment 21:54
lizmat timotimo++ # fixed 21:54
timotimo i'm not really an expert in homoiconicity, so maybe my understanding is wrong or too shallow, but i don't think that's the right word for this context? 21:55
or is that more like "lisp is homoiconic and its representation is extremely simple" vs "raku is homoiconic and its representation is very complex"?
tadzik 3> arguments to functions are immutable by default 21:56
that's a bit of a stretch, innit :)
timotimo true, there's no "deep immutability"
faiface yeah, learned about that later :D but at first I tried to pass an array to a function and mutate it and it didn't work, so I assumed as much 21:57
timotimo m: my @a = 1, 2; sub frob(@x) { @x = 9, 9, 9 }; frob(@a); say @a
camelia [9 9 9]
timotimo m: my @a = 1, 2; sub frob(@x is copy) { @x = 9, 9, 9 }; frob(@a); say @a
camelia [1 2]
timotimo you may have ended up with a List by way of not having assigned it to a @-sigiled var in the mean time
timotimo m: sub frob(@x) { @x[1] = 5 }; say frob((1, 2, 3, 4)); 21:58
camelia Cannot modify an immutable List ((1 2 3 4))
in sub frob at <tmp> line 1
in block <unit> at <tmp> line 1
faiface oh, yeah, probably that 21:58
sorry, I'm a newbie 21:59
regarding that homoiconicy tho, I think the guy made up the terms "maximally homoiconic", etc. I don't think those are real terms 22:01
rypervenche It's definitely a word :) en.wiktionary.org/wiki/homoiconic
faiface homoiconic yes 22:02
I meant his addition of "maximally" and "minimally"
timotimo the wiktionary page of homoiconicity says the program is supposed to be in a "primitive type" of the language itself
rypervenche I'd say that the community here is maximally awesome.
timotimo if it didn't say "the primary representation of programs" i would say "you can load a moarvm bytecode file into an Int" 22:03
cpan-raku New module released to CPAN! AccountableBagHash (0.0.3) by 03ELIZABETH 22:13
Geth_ ecosystem/finanalyst-patch-3: 1a2182c735 | (Richard Hainsworth)++ (committed using GitHub Web editor) | META.list
Add Generic Pod Renderer to ecosystem

Distribution contains Pod::To::HTML, Pod::To::MarkDown, and a Graphical README.md generator from Pod in Module file. Generates TOC and Glossary and puts them in HTML. Customisable CSS and favicon. Implements P<> format code (old Pod::To::HTML does not do this). Pod::To::HTML in this distribution passes all old Pod::To::HTML tests All output determined by customisable Templates (Mustache engine but this can be changed by subclassing) Lots of Documentation on usage and subclassing.
22:15
ecosystem: finanalyst++ created pull request #516:
Add Generic Pod Renderer to ecosystem
22:16
b2gills faiface: I was making the point that language mutability goes deeper, and to a greater extent than those other languages. 22:34
oddp Still not quite sure how that's "more" homoiconic, but CL also has readtable patching via reader macros, allowing for funky language shenanigans. 22:46
But let's not drift off, I see where you are coming from.
faiface b2gills: does it really go deeper, tho? I mean, in LISP you can literally programmatically produce code and manipulate/execute it, not sure you can go much deeper than that 22:55
but feel free to correct me 22:56
rypervenche m: say dir(test => / <{ $*KERNEL.hostname.lc }> / && { "$_".IO.d }); 23:45
camelia ()
rypervenche m: say dir(test => { / <{ $*KERNEL.hostname.lc }> / && { "$_".IO.d } });
camelia ()
rypervenche Is there a reason why I might use one over the other ^
I.e., the {} around the whole test.
vrurg rypervenche: in the second case you have a code block -> extra cycles on invoking it. 23:52
vrurg rypervenche: but in the first case it wouldn't work as you expect it: 23:55
m: say $(test => / <{ $*KERNEL.hostname.lc }> / && { "$_".IO.d }) 23:56
camelia test => / <{ $*KERNEL.hostname.lc }> /
vrurg rypervenche: ^^^