🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 25 August 2021.
00:07 guifa_ left 00:08 reportable6 left 00:11 reportable6 joined 00:17 guifa joined, guifa left 00:28 djerius left 00:30 djerius joined 00:57 lichtkind left 01:28 linkable6 joined 01:35 Kaiepi joined 01:41 D5n9sMatrix joined 02:00 perlbot left 02:01 simcop2387 left 02:02 simcop2387 joined 02:05 perlbot joined 02:41 D5n9sMatrix left 03:18 mahafyi joined 03:33 lainon joined 03:37 lainon left 04:37 evalable6 left, coverable6 left, releasable6 left, committable6 left, greppable6 left, sourceable6 left, squashable6 left, shareable6 left, statisfiable6 left, reportable6 left, notable6 left, nativecallable6 left, bisectable6 left, unicodable6 left, quotable6 left, benchable6 left, bloatable6 left, tellable6 left, linkable6 left 04:38 tellable6 joined, linkable6 joined 04:39 committable6 joined, nativecallable6 joined, releasable6 joined, quotable6 joined, coverable6 joined 04:40 bloatable6 joined, reportable6 joined
Xliff How are constants handled in Parameter? 05:35
05:35 CIAvash joined
Xliff Rather, if the Parameter is a constant value, how can I retrieve it from the Parameter object? 05:35
05:38 shareable6 joined, Garbanzo_ left, statisfiable6 joined 05:39 bisectable6 joined 05:40 notable6 joined
Xliff Arg! Constant values are constraints! LOL. 06:03
I have to dig 'em out with nqp.
nqp:hllize( nqp::getattr( nqp::decont($parameter), Parameter, '@!post_constraints').head 06:04
06:08 reportable6 left 06:32 discord-raku-bot left, discord-raku-bot joined 06:37 discord-raku-bot left, discord-raku-bot joined 06:38 unicodable6 joined, greppable6 joined 06:39 benchable6 joined 06:51 jjido joined 07:10 reportable6 joined 07:40 evalable6 joined 08:18 Sgeo left 08:30 lichtkind joined 08:31 abraxxa joined 08:34 BinGOs left 08:35 vodkra left 08:36 m_athias left, nine left, abraxxa left, nine joined, m_athias joined, abraxxa joined, vodkra joined 08:38 bingos joined 08:40 mexen joined
Od1n1 hello rakoons. 08:54
09:05 bingos is now known as BinGOs, dakkar joined 09:18 hasrthur joined 09:38 sourceable6 joined, hasrthur_ joined, hasrthur left 09:50 jjido left 09:58 mahafyi left 10:00 andinus` left
lizmat Od1n1 o/ 10:01
Xliff \o lizmat 10:21
10:37 jjido joined 10:38 squashable6 joined 10:39 euandreh left 11:16 whatnext joined 11:25 sena_kun joined 11:39 frost joined, jjido left 12:08 reportable6 left 12:14 frost left 12:15 whatnext left 12:23 jjido joined 12:25 mahafyi joined 12:54 Averna joined 13:05 hasrthur_ left
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/01/31/2022-05-foo-is-42/ 13:06
13:08 hasrthur joined, reportable6 joined 13:09 hasrthur_ joined 13:13 hasrthur left 13:17 Darkcoal joined 13:22 hasrthur_ left 13:29 D5n9sMatrix joined 13:33 A26F64 joined, cetjs2 joined 13:36 rypervenche joined 13:55 discord-raku-bot left 13:56 discord-raku-bot joined 14:13 jjido left 14:14 hasrthur joined 14:29 guifa joined 14:30 Darkcoal left 14:31 ychaouche joined
guifa o/ 14:31
[Coke] heh. was just about to describe a delay I was seeing in zef, and as I finished typing the send here, it moved t the next step. :) 14:32
ychaouche hi all 14:33
[Coke] hi 14:35
14:50 Sgeo joined
gfldex I still don't understand how Tomasz managed to put "Raku" and "Speedrun" into the same heading. He must have a special tool for that. 14:53
14:53 hasrthur left
guifa me when I woke up: I dunno if I'm going to have time to finish my basic BASIC slang proof-of-concept in time for the weekly 14:55
me when I had my coffee: oh, lizmat++ already published the weekly. I get another week now :-)
lizmat hehe... there's always a pro for every con :-) 14:56
gfldex: the SpeedRun describes how much time Tomasz spends on it
gfldex Maybe I'm just slow. :) 14:57
guifa I just have to finish up the signature processing (yeah, I'm going custom signatures even!) and finish writing the VM-within-a-VM code in RakuAST
lizmat guifa++ 15:00
15:03 hasrthur joined
guifa I'm going alzy though. A hash and an array, hash is lineNumber => codeIndex, and the array is just each line of code haha. But proof of concepts don't have to be efficient I figure 15:12
15:17 jjido joined
lizmat nope :-) 15:25
15:26 hasrthur left
MasterDuke m: sub a("b") {}; say &a.signature.params[0].constraint_list[0]  # Xliff 15:30
camelia b
cetjs2 lizmat, in gsoc 2022 raku will participaTE? 15:44
lizmat I guess an application will be made, just like last year 15:45
only last year it wasn't accepted :-(
cetjs2 lizmat, ага. I understood 15:46
guifa lizmat actually just now reading up on it. apparently some of them were CRAZY inefficient (or I guess, did the best they could at the time) and would scan forward/backward character by character for new lines. ouch 15:51
lizmat ah, yes, BASIC :-) 15:52
if you only have a few K of memory :-)
Xliff MasterDuke: Huh. Missed that. Thanks! 15:53
16:07 ychaouche left 16:20 D5n9sMatrix left
clarkema Is there a clean way of checking whether a resource exists before trying to use it? At the moment I've got `if %?RESOURCES<header.ttl>.IO ~~ Slip {`, which does work but seems less than ideal 16:31
16:33 D5n9sMatrix joined
CIAvash `IO.e`? 16:36
clarkema You'd think so, but it returns a Slip from the .IO call and then can't call .e on that 16:38
guifa ah yes
I had the %?RESOURCES issue back a while ago
lemme remember exactly how I solved it
clarkema would be nice to be able to call .e on the resource directly 16:39
guifa Agreed, but I think there was some work being done in that area, but not sure what the status is 16:40
I guess I actually used something more complicated than checking for a Slip 16:41
clarkema I assume it has something to do with library resources 16:42
thanks guifa, I'll take a look
16:43 D5n9sMatrix left
guifa Yeah. When installing a module, the resources aren't stored with the same names/structure that you see. I'd love for us to get to a point that resources are fully introspectable (e.g. list all the files in a directory) but I don't think that's been a priority since, presumably, module authors should know exactly what resources they have 16:44
clarkema Yeah, I know I control the resources directory and could just add the file and charge ahead, but the error message when it's missing is very non-obvious and I prefer not leaving landmines lying around for my future-self's foot 16:46
guifa instead of `if %?RESOURCES<foo>.IO ~~ Slip { … }`, perhaps you could consider a define `sub resource (Str $file) { given %?RESOURCES{$file} { when Slip { die "File $file not located in resources. Maybe you should add it?" }; default { .return } } }` 16:51
obviously, modifying the result of a non-existent file based on your needs 16:52
clarkema Looks like that's going to be the best approach, thanks :) 16:57
17:03 A26F64 left, hasrthur joined 17:05 abraxxa left 17:20 Averna left 17:27 djerius left 17:28 djerius joined 17:29 cetjs joined 17:33 cetjs2 left 17:36 dakkar left 17:41 hasrthur left, hasrthur joined 17:44 [Coke] left 17:47 [Coke] joined 17:48 Sgeo_ joined 17:50 Sgeo left
ugexe in what case would a file listed in %?RESOURCES not exist? 17:52
lizmat when it got deleted at some point after installation ? 17:53
clarkema or a typo during development
ugexe it makes me sad we continue to treat %?RESOURCES as a file when it could be any type of io source 17:54
17:55 jjido left
clarkema such as? 17:56
ugexe a socket
clarkema what would be the benefit vs the socket API? 17:58
ugexe well, uh, you could use a socket 17:59
17:59 jjido joined
ugexe CompUnit::Repository::[Tar|Github] dont load code off the filesystem (well ::Tar does, but it streams the bytes out of the file, they don't go to an actual file somewhere first) 18:02
when you hard couple %?RESOURCES to being a file path your code can't work with those things 18:03
clarkema sure, but then there should be some equally generic way of signalling 'there are no bytes at this named place' 18:04
ugexe same with a theoretical CompUnit::Repository::FatPack::PureRaku
clarkema Especially if you're not using; if you're streaming resources from the network then then chances of failure are way higher than loading a file that 'should' be known good in the resources directory
s/not using/& files/ 18:05
ugexe I'd probably check $?DISTRIBUTION.content('resources/name-of-file').slurp
maybe %?RESOURCES<whatever>.slurp will work without the .IO 18:06
in which case that is equally ok
$?DISTRIBUTION.content('resources/name-of-file').open.slurp rather
18:06 reportable6 left 18:08 reportable6 joined
ugexe raku -e 'my $dist = CompUnit::Repository::FileSystem.new(prefix => $*CWD).distribution; for $dist.meta<resources>.flat -> $r { say "Missing $r" unless try $dist.content("resources/$r").open.slurp }' 18:10
18:10 sena_kun left
ugexe that will also work for the auto platform naming of stuff placed in resources/libraries/ 18:13
18:34 D5n9sMatrix joined 18:37 hasrthur_ joined, hasrthur left 19:04 D5n9sMatrix left 19:38 hasrthur joined, hasrthur_ left 19:58 jjido left 20:01 jjido joined 20:13 jjido left 20:56 epony left 20:59 ecocode_ left 21:06 jjido joined
[Coke] --version output on git bash on windows is fine as is, in the VS command prompt, needs chcp 65001, which is expected. Looks much better now without the bold text. 21:07
(this is probably old news) 21:08
Xliff m: sub a () { 42; }; &a.WHERE # <- Can that change? 21:20
camelia ( no output )
21:20 ecocode joined
Xliff m: sub a () { 42; }; &a.WHERE.say # <- Can that change? 21:20
camelia 2852129596152
MasterDuke i think .WHERE is generally allowed to change, but in practice maybe it won't for compile time things like subs. you'd need to ask someone like nine or timo to be sure 21:37
m: sub a() { say "hi" }; say &a.WHERE; for ^1_000_000 { my @b = .comb; }; say &a.WHERE 21:39
camelia 2741538338400
21:44 cetjs left
moon-child I see no reason why you would want to disallow .WHERE changing for compile-time things. I think mvm is not currently globally compacting, but that might change in the future 21:44
21:49 stoned75 joined, stoned75 left 21:51 hasrthur_ joined, hasrthur left 21:55 dextercd joined 22:02 hasrthur_ left 22:03 curiosa joined 22:04 curiosa left
SmokeMachine Sorry for not golfing it, but does anyone have any idea of why would this be happening when the code is inside a whenever and a start only on the 2 first iterations? github.com/FCO/Red/issues/537#issu...1026262630 22:13
timo yeah, where will change, usually only up to once, though? there's a mechanism to get an id that's stable for the program's runtime for one object, which is called "objectid" 22:18
MasterDuke moon-child: not really disallow, just some stuff is created right away in gen2 or because we know it'll stick around and i don't know if .WHERE will *actually* change for them, even though you shouldn't rely on that 22:21
Xliff m: class A { }; A.new.objectid.say 22:42
camelia No such method 'objectid' for invocant of type 'A'
in block <unit> at <tmp> line 1
Xliff ^^ timo
ugexe m: use nqp; say nqp::objectid($*CWD) 22:43
camelia 4369382167664
22:51 dextercd left
timo yeah it's not a method 22:52
it's internal
i believe WHICH on some things uses it? 22:53
22:56 jjido left 23:56 committable6 left, reportable6 left, coverable6 left, sourceable6 left, linkable6 left, greppable6 left, unicodable6 left, notable6 left, tellable6 left, nativecallable6 left, bisectable6 left, statisfiable6 left, shareable6 left, bloatable6 left, benchable6 left, squashable6 left, quotable6 left, releasable6 left, evalable6 left, coverable6 joined, linkable6 joined 23:57 sourceable6 joined, greppable6 joined, releasable6 joined, unicodable6 joined, notable6 joined 23:58 squashable6 joined, bisectable6 joined, committable6 joined, reportable6 joined, quotable6 joined