[00:18] *** jpn joined
[00:23] *** jpn left
[00:25] *** jjido left
[01:15] *** jpn joined
[01:20] *** jpn left
[01:48] <ugexe> librasteve: i dunno about deprecating it, but I'd say you almost never want to `use lib ...` in a file contained in a distribution. if the code containing `use lib ...` wouldn't otherwise be distributed (i.e. private code) then it can make sense

[01:50] *** jpn joined
[01:54] <ugexe> imagine a `bin/foo` with a `use lib "lib"`. when the distribution containing `bin/foo` is installed and the user executes it, they likely won't be in the directory of that distribution so the `use lib "lib"` is not only pointless (the modules are being provided from the installation), its actually a potential security issue in that a malicious user could create a lib directory somewhere they have

[01:54] <ugexe> permissions hoping that a high priv user will run bin/foo from the parent of the malicious lib

[01:55] *** jpn left
[02:10] *** Manifest0 left
[02:10] *** sdfgsdfg joined
[02:12] *** antim0d3s left
[02:20] *** hulk joined
[02:21] *** kylese left
[02:36] <ugexe> use lib $?FILE.parent.absolute or some such gets around the security issue, but it still would be pointing to a library path that doesnt exist when whatever module/file using that is loaded from an installation repo

[03:01] *** AlexDaniel left
[03:15] *** hulk left
[03:15] *** kylese joined
[03:38] *** jpn joined
[03:43] *** jpn left
[04:14] *** epony left
[04:15] *** epony joined
[04:33] *** jpn joined
[04:38] *** jpn left
[04:45] *** jpn joined
[04:50] *** jpn left
[05:46] *** jpn joined
[05:50] *** jpn left
[06:34] *** teatime joined
[06:47] *** jpn joined
[06:51] *** jpn left
[07:11] *** stnick joined
[07:12] *** stnick left
[07:16] *** derpydoo joined
[07:48] *** jpn joined
[07:53] *** jpn left
[08:21] *** jpn joined
[08:33] *** epony left
[08:35] *** epony joined
[09:23] *** epony left
[09:24] *** epony joined
[09:42] *** sena_kun joined
[09:55] *** jpn left
[09:56] *** jpn joined
[10:06] *** jjido joined
[10:35] *** Manifest0 joined
[10:37] *** epony left
[10:37] *** jpn left
[11:19] *** jjido left
[11:23] *** epony joined
[11:28] *** randomname12345 joined
[11:30] *** randomname12345 left
[11:38] *** lizmat_ joined
[11:41] *** jpn joined
[11:42] *** lizmat left
[11:42] *** lizmat_ left
[11:42] *** lizmat joined
[12:00] *** derpydoo left
[12:19] *** jpn left
[12:21] *** Sgeo left
[12:30] *** xinming left
[12:32] *** xinming joined
[12:53] *** jpn joined
[12:58] *** jpn left
[15:23] *** jpn joined
[15:32] *** jpn left
[15:36] *** jpn joined
[15:47] *** jpn left
[16:19] *** jpn joined
[16:26] *** jpn left
[16:35] *** rjhb joined
[16:36] *** rjhb left
[17:07] *** Xliff joined
[17:07] <Xliff> \o

[17:07] <discord-raku-bot> <librasteve> thanks for the explanation…

[17:07] <Xliff> Can you decompose a hash in a signature?

[17:08] <Xliff> m: sub a (%a (a => True ) ) { %a.gist.say }; a;

[17:08] <camelia> rakudo-moar b94e98fc5: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Invalid typename 'a' in parameter declaration.␤at <tmp>:1␤------> sub a (%a (a⏏ => True ) ) { %a.gist.say }; a;␤»

[17:08] <Xliff> m: sub a (%a { a => True } ) { %a.gist.say }; a;

[17:08] <camelia> rakudo-moar b94e98fc5: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> sub a (%a ⏏{ a => True } ) { %a.gist.say }; a;␤»

[17:12] <discord-raku-bot> <librasteve> Xliff: my small brain thinks that "decomposing a hash in a signature" is just another way of saying "named arguments" ... the example you give is composing the hash in the signature afaict

[17:12] <Xliff> Yeah, but I want to use a slurpy and assign defaults.

[17:13] <discord-raku-bot> <librasteve> oh - I see ... let me think

[17:13] <Xliff> Thanks!

[17:20] <discord-raku-bot> <librasteve> m: sub fn( :$a = 1, :$b = 2, *%h ) { say $a, $b; say %h; }; fn( |%(a=>1, b=>2, c=>3) );

[17:20] <evalable6> librasteve, rakudo-moar b94e98fc5: OUTPUT: «12␤{c => 3}␤»

[17:20] <discord-raku-bot> <Raku eval>  12 {c => 3} 

[17:21] <discord-raku-bot> <librasteve> so that's what I have in mind when you say decompose a hash in a signature with defaults and with a slurpy ... sorry I this is a pretty dumb answer likely I do not understand what you are asking

[17:23] *** abraxxa-home joined
[17:24] <discord-raku-bot> <librasteve> oh, maybe you want to pass in a single hash and have the signature set value defaults for some of the hash items

[17:29] <discord-raku-bot> <librasteve> sorry don't know how to do that ;-(

[17:38] <ugexe> you can't defaults on the hash itself, but you can on named parts of it

[17:39] <ugexe> m: sub foo(%_ [:$foo = 42, *%]) { say %_.raku; say $foo }; my %x; foo(%x)

[17:39] <camelia> rakudo-moar b94e98fc5: OUTPUT: «{}␤42␤»

[17:40] <discord-raku-bot> <librasteve> m: multi sub fn(:$a=1,:$b=2,*%r) {samewith %(|%r, :$a, :$b)}; multi sub fn( %h ) {%h.say}; fn( |%(a=>1,c=>3) );

[17:40] <evalable6> librasteve, rakudo-moar b94e98fc5: OUTPUT: «{a => 1, b => 2, c => 3}␤»

[17:40] <discord-raku-bot> <Raku eval>  {a => 1, b => 2, c => 3} 

[17:40] <discord-raku-bot> <librasteve> ^^ just an idea with multis

[17:45] *** abraxxa-home left
[18:20] *** jpn joined
[18:50] <Xliff> librasteve: That is close, but the extra multi makes it difficult for my use case.... I would need to reorganize a LOT of code.

[18:51] <Xliff> librasteve++: Thanks, anyways!

[18:55] <discord-raku-bot> <librasteve> no problem

[19:38] *** jpn left
[20:26] *** merp left
[20:31] *** merp joined
[20:43] <guifa> Assuming the answer is no but.... do we have compiler hooks yet for RakuAST mischief?

[20:44] <guifa> I'm in an analysis class right now and realizing how nicely I could most of this in LLVM analysis could apply to RAST

[20:46] <discord-raku-bot> <antononcube> @guifa Interestingly, right now I am considering how too use LLMs instead of RakuAST.

[20:53] *** jpn joined
[21:20] <Xliff> LLM? Large Language Models?

[21:29] *** Sgeo joined
[21:51] *** jpn left
[22:05] <discord-raku-bot> <antononcube> @Xliff Yes.

[22:12] <Xliff> How would you use LLMs in place of RakuAST?

[22:13] <Xliff> Or is it just that you are putting more effort into LLMs?

[22:47] *** jpn joined
[22:52] *** jpn left
[23:25] <discord-raku-bot> <antononcube> @Xliff What is the mission of RakuAST? I assume it is better Raku code generation. (Faster generation, more reliable and maintainable, easier to read.)

[23:26] <discord-raku-bot> <antononcube> Well, that is the main RakuAST mission, then Raku generation can be delegated to LLMs using the related reliable, easier to manager workflows.

[23:27] <discord-raku-bot> <antononcube> Ideally, the transition of NQP code to RakuAST should be supported by LLMs. (Or event completely outsourced to them.)

[23:36] <lizmat> antononcube there is no NQP code to be transitioned to RakuAST?

[23:47] *** jpn joined
[23:50] <Xliff> antoncube: Actually, RakuAST is also used as output for the parser.

[23:51] <Xliff> Parse the code, you get a RakuAST tree. Walk the tree you can either get the Raku code back, or something akin to bytecode.

[23:51] <Xliff> At least that's how I understand it.

[23:53] *** jpn left
