🦋 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.
timotimo i've found that there's apparently some sfline blocks that have 0 entries in them, but are still written for some reason 00:25
00:26 Nile left
timotimo the reading code was not happy with that 00:28
00:29 Doc_Holliwould left 00:31 xinming_ left 00:32 xinming_ joined
timotimo gist.github.com/timo/01c5375872506...2f57319e27 looks odd 00:39
why would pull-one (Channel.pm6:186) have <anon> <Fetcher.rakumod:135) as its *outer*? 00:42
00:43 xinming_ left, xinming_ joined
timotimo greppable6: use.*Fetcher 00:45
greppable6 timotimo, Sorry kid, that's not my department.
timotimo hum? 00:46
greppable6: help
greppable6 timotimo, Like this: greppable6: password # See wiki for more examples: github.com/Raku/whateverable/wiki/Greppable
timotimo file grep use.*Fetcher 00:50
greppable6: file grep use.*Fetcher
greppable6 timotimo, Found nothing!
timotimo greppable6: tree grep use.*Fetcher
greppable6 timotimo, Found nothing!
timotimo greppable6: tree grep Fetcher
greppable6 timotimo, Found nothing!
timotimo greppable6: file grep Fetcher
greppable6 timotimo, Found nothing!
timotimo greppable6: file Fetcher
greppable6 timotimo, Found nothing!
timotimo greppable6: tree Fetcher
greppable6 timotimo, Found nothing!
timotimo *shrug*
01:04 oddp left 01:10 sena_kun joined 01:11 molaf left, rbt left, rbt joined, Altai-man_ left 01:23 molaf joined 02:01 Manifest0 left 02:03 Manifest0 joined 02:07 xinming_ left 02:08 xinming_ joined 02:09 Cabanossi left 02:16 Cabanossi joined 02:20 rbt left 02:21 rbt joined 02:23 camelCaser left 02:25 camelCaser joined 02:41 xinming_ left 02:42 xinming_ joined 02:48 perlbot left, simcop2387 left 02:50 simcop2387 joined 02:52 perlbot joined 03:04 cpan-raku left 03:06 cpan-raku joined, cpan-raku left, cpan-raku joined 03:09 Altai-man_ joined 03:12 sena_kun left 03:13 Sgeo left 03:17 dataangel joined 03:22 Sgeo joined 03:44 _jrjsmrtn joined, __jrjsmrtn__ left 04:05 team\andinus joined 04:08 molaf left 04:52 molaf joined 05:10 sena_kun joined 05:11 Altai-man_ left 05:26 molaf left 05:28 tejr left 05:29 tejr joined 06:00 Altai-man_ joined 06:03 sena_kun left 06:04 tejr left 06:21 tejr joined 06:35 [particle] joined 06:44 bocaneri joined
abraxxa can someone please verify with me if I'm doing something wrong or if I found a bug in rakudo? 06:52
(20:44:11) abraxxa: any idea why copying a file to a gvfs mounted dir doesn't work?
(20:44:31) abraxxa: I get an Failed to copy file: operation not supported on socket error
06:56 aborazmeh joined, aborazmeh left, aborazmeh joined
raku-bridge <DataKinds> without knowing anything about the situation i'd find that hard to believe if that was a rakudo bug 07:00
abraxxa I can think of some low-level operation that is not supported on gvfs created, presumably virtual, directories 07:06
07:06 pecastro joined 07:08 Doc_Holliwould joined 07:12 xinming_ left, xinming_ joined 07:14 JJMerelo joined
JJMerelo Hello, Raku community. Now you're the proud owner of 45 new modules. Here's what you need to do... 07:15
101 community modules now... 07:16
07:19 sarna joined
raku-bridge <DataKinds> does anyone know how I might be able to simplify this? 07:28
<DataKinds> m: (-> @p { lazy gather { loop { for @p -> $p { take $p } } } })((10,20))[^10] 07:29
Geth ecosystem/JJ-patch-15: e590fb2f63 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | META.list
Update location Datetime::Math
ecosystem: JJ++ created pull request #510:
Update location Datetime::Math
JJMerelo DataKinds not really... 07:30
DataKinds probably eliminate one parenthesis
m: say (-> @p { lazy gather { loop { for @p -> $p { take $p } } } })(10,20)[^10] 07:31
camelia Too many positionals passed; expected 1 argument but got 2
in block <unit> at <tmp> line 1
JJMerelo m: say (-> @p { lazy gather { loop { for @p -> $p { take $p } } } })((10,20))[^10]
camelia (10 20 10 20 10 20 10 20 10 20)
JJMerelo Not even that. So no.
Geth ecosystem: e590fb2f63 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | META.list
Update location Datetime::Math
ecosystem: 284f24833f | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | META.list
Merge pull request #510 from Raku/JJ-patch-15

Update location Datetime::Math
raku-bridge <DataKinds> JJMerelo: ah darn! thank you though 07:32
<DataKinds> shame you can't call take like @p.map: take 07:33
07:33 aborazmeh left
JJMerelo DataKinds that would return a Seq, and it wouldn't be lazy. I assume laziness is what you want, right? 07:34
raku-bridge <DataKinds> ahh, yeah it is 07:35
<DataKinds> I'm just playing with alternatives to python's itertools 07:36
07:36 kensanata joined 07:39 rbt left, wamba joined, rbt joined
raku-bridge <DataKinds> did something really clever this one, I think: 07:39
<DataKinds> m: say ((-> $elem, $n = Inf { $elem, $elem ... { $++ >= $n - 1 } })(5, 10))
evalable6 (5 5 5 5 5 5 5 5 5)
07:50 Sgeo left 07:55 aborazmeh joined, aborazmeh left, aborazmeh joined
CIAvash DataKinds: can't you use `|@a xx ∞`? 07:55
07:57 cgfbee left
raku-bridge <DataKinds> 😍 07:57
<DataKinds> I can indeed CIAvash, thank you
<DataKinds> that's awesome 07:58
08:01 sena_kun joined
raku-bridge <DataKinds> python's accumulate(): 08:02
<DataKinds> m: say ((-> @p, &func = * + * { [[&func]] @p })((1,2...*))[^15]) 08:03
evalable6 (signal SIGHUP) «timed out after 10 seconds»
raku-bridge <DataKinds> 😦 discord ate my extra backslashes
08:03 Altai-man_ left 08:05 patrickb joined, aborazmeh left
raku-bridge <DataKinds> m: say ((-> @p, &func = * + * { [\[&func]] @p })((1,2...*))[^15]) 08:06
evalable6 (1 3 6 10 15 21 28 36 45 55 66 78 91 105 120)
08:19 JJMerelo left 08:24 JJMerelo joined 08:33 JJMerelo left 08:37 xinming_ left 08:38 xinming_ joined, cgfbee joined
raku-bridge <DataKinds> this is a very silly question, but I can't find it: is there a break control flow statement? 08:55
<DataKinds> ah. last. that's an interesting name 08:56
09:06 wamba left 09:07 squashable6 left, antoniogamiz joined, squashable6 joined 09:09 antoniogamiz left, antoniogamiz joined
antoniogamiz o/ 09:10
I have just installed raku using rakudobrew in windows 10 but 'raku' command is not available 09:11
do i need to change the PATH? I thought that was done automatically by rakudobrew
09:12 bocaneri left 09:14 bocaneri joined
moritz antoniogamiz: rakudobrew cannot change PATH of your shell without your cooperation, somehow 09:18
github.com/tadzik/rakudobrew says you need ot do export PATH=~/.rakudobrew/bin:$PATH 09:19
antoniogamiz moritz, but that's for adding rakudobrew to the PATH, isnt it? My problem is that 'raku' command is not available 09:21
moritz antoniogamiz: but did you do it? it's part of the installation instruction 09:27
antoniogamiz yep 09:28
rakudobrew works perfectly
moritz rakudobrew might add some symlinks to other binaries in in ~/.rakudobrew/bin
does it do that?
antoniogamiz but after running rakudobrew build moar 2020.06, neither raku nor perl6 command works
moritz is anything else in ~/.rakudobrew/bin ? 09:29
antoniogamiz I do not have a .rakudobrew directory (using Windows) I have a rakudobrew directory
09:29 lichtkind joined
antoniogamiz in rakudobrew/bin I only have: rakudobrew and rakudobrew.bat 09:30
09:46 oddp joined
antoniogamiz moritz, agh I forgot to execute rakudobrew switch moar-2020.06 09:47
10:01 Altai-man_ joined
SmokeMachine m: class Bla { method a { $.b; self.clone }; method b { say self.WHY } }; my $a = Bla.new; $a.b; $a.a; #={ foi? } $a.b #is that expected? 10:01
camelia foi?
jnthn SmokeMachine: Which bit of it surprises you? 10:03
10:03 sena_kun left
SmokeMachine m: class Bla { method a { $.b; self.clone }; method b { say self.WHY } }; class Ble {}; my $a = Bla.new; $a.b; $a.a; #={ foi? } $a.b; Bla.new.b; say Bla.WHY; say Ble.WHY 10:04
camelia foi?
No documentation available for type 'Ble'.
Perhaps it can be found at docs.raku.org/type/Ble
SmokeMachine jnthn: is #= adding documentation to the class through the instance?
jnthn Oh. Yes, for certain, because the documentation lives in the meta-object. 10:05
And is attached during the compilation.
I don't think instances come into it at all; it's a compile time thing. Declarator commnets have no runtime semantics. 10:06
SmokeMachine m: class Bla {}; class Ble {}; say [Bla, Ble].pick.new #={ foi? }; say Bla.WHY; say Ble.WHY # what about this? 10:08
camelia Bla.new
No documentation available for type 'Ble'.
Perhaps it can be found at docs.raku.org/type/Ble
lizmat weekly datakinds.github.io/2020/06/24/pyt...-pure-raku
weekly: datakinds.github.io/2020/06/24/pyt...-pure-raku
notable6 lizmat, Noted! (weekly)
jnthn SmokeMachine: I guess if you have two declarations on the same line, it's just finding the first one to attach the doc too 10:09
If you're using the "thing on this line" syntax and putting two things on the line, you're probably asking to be confused. :P 10:10
SmokeMachine m: class Bla {}; class Ble {}; ␤say [Bla, Ble].pick.new #={ foi? }; say Bla.WHY; say Ble.WHY
camelia Ble.new
No documentation available for type 'Ble'.
Perhaps it can be found at docs.raku.org/type/Ble
SmokeMachine m: class Bla {}␤class Ble {}; ␤say [Bla, Ble].pick.new #={ foi? }; say Bla.WHY; say Ble.WHY 10:11
camelia Bla.new
No documentation available for type 'Bla'.
Perhaps it can be found at docs.raku.org/type/Bla
SmokeMachine jnthn: yes, that makes sense...
jnthn: thank you
jnthn I wonder if it should be grumpy if you try and do such "attachment at a distance" though 10:12
It seems more likely to imply confusion than anything else.
lizmat m: say Int.WHY 10:13
camelia No documentation available for type 'Int'.
Perhaps it can be found at docs.raku.org/type/Int
SmokeMachine yes... I was thinking it was being applied to the instance, and not to the class... if it gave error, like "cannot apply documentation on something that's not a deffinition" (of course, well written), it would be clearer... 10:14
lizmat perhaps it should only do that for core types ?
patrickb antoniogamiz, moritz: rakubrew (as rakudobrew is known now) has moved to a separate directory for the rakubrew executable and the shims. If it's in env mode there won't be any executables in the shim dir either.
SmokeMachine lizmat: I think its a good idea
patrickb antoniogamiz: Any reason you are still using rakudobrew instead of rakubrew?
antoniogamiz patrickb: I just did not know rakubrew existed... 10:15
thanks for the info 10:16
jnthn SmokeMachine: Yeah, I need to revisit how this is all done as part of the RakuAST thing anyway
SmokeMachine: Though of course I need to beware the back-compat monster :) 10:17
SmokeMachine :)
lizmat is fighting one with the Match internals
SmokeMachine jnthn: talking about RakuAST, I know that's not planned for now... but I'm just curious. Is that any thinking on how custom compiler passes will work (if it will)? 10:18
10:19 JJMerelo joined
jnthn SmokeMachine: Probably placed into some kind of EXPORT-y thing, like custom meta-objects are. 10:19
(those have EXPORTHOW) 10:20
SmokeMachine will one be able to say: add a pass before/together/after a specific one (as we do with tighter/equiv/looser op)?
or that do not make any sense? 10:21
jnthn If anything, the options will be pre-CHECK and post-CHECK
I don't know where else you could expect to insert it 10:22
patrickb antoniogamiz: See rakubrew.org :-)
jnthn Oh, the other option I thought of is if you want to have it happen at scope exit
`use fatal` would be along those lines
Those could potentially happen rather sooner 10:23
Need to think how this all plays into BEGIN time things also
SmokeMachine I mean if there is a module adding a custom pass, and I want to write another one that will run a custom pass just before/after that one... or maybe even a way of running that (doing the transformations needed) at the same pass of that one 10:24
jnthn No, I didn't consider that. I think it's better if passes are independent.
I think any arrangements like this would need to be arranged by a module that exports the two, perhaps. 10:25
SmokeMachine got it... 10:26
I think I didn't get the use fatal...
patrickb antoniogamiz: I'm interested in feedback from you, as I want rakubrew to support Windows well, but Windows users tend to be rare around here. :-) 10:27
jnthn SmokeMachine: use fatal only wants to tweak the scope it's imported into 10:28
10:28 Doc_Holliwould left
jnthn SmokeMachine: And probably to do it right at the end of that scope 10:28
SmokeMachine jnthn: yes, that makes sense
jnthn Other things may want to work like that - while others probably don't care about scope and want the whole compilation unit 10:29
SmokeMachine I was wondering if it would be cool if we had some kind of syntax we could say when to run and pass a multi sub like `multi transform(RakuAST::Something $ast) { transform-it $ast }` 10:30
antoniogamiz patrickb: I don't use windows a lot, I have installed it this morning to add Windows support for Documentable 10:32
SmokeMachine and it would walk the AST tree and run it when the signature matches... (sorry... I don't know anything about that... I am just wondering...)
antoniogamiz I will uninstall rakudobrew and use rakubrew instead, I will tell you how it goes :) 10:33
jnthn SmokeMachine: If nothing else, it should be possible to provide such an interface via a module
SmokeMachine: Though it's sort of already possible in that there's a .walk method for visiting all nodes, and if you pass it a multi, then provided you write a candidate that ignores all the things you don't care about too, then you've got it. 10:34
SmokeMachine jnthn: and that would be a viable way of implement a custom pass? 10:35
10:36 xinming_ left
jnthn I'd think so 10:36
I think some of course will not want to transform anything :) 10:37
(Just walk and check for stuff)
SmokeMachine :)
10:37 xinming_ joined
SmokeMachine I think doing that and writing a RakuAST -> Red::AST mapper would be enough to do what I want with Red 10:38
10:41 rindolf joined
antoniogamiz patrickb, Windows Defender blocks the cmd installer 10:41
(but it can be run anyway)
SmokeMachine jnthn: while walking, will one have access to the lexpad? 10:42
antoniogamiz patrickb, it could be helpful a progress bar to see the progress of rakubrew download 10:43
SmokeMachine sorry... I think it's not needed, right?
jnthn SmokeMachine: If you do this post-check, symbols will have already been resolved 10:45
And you can force a resolution pass if not
AlexDaniel` treegrep: Fetcher
greppable6 AlexDaniel`, Sorry kid, that's not my department.
SmokeMachine jnthn: I'm looking forward for using all this! :) 10:46
is there a way of writing an anonymous multi function? 10:58
jnthn my $multi = do { multi foo($x) { }; multi foo($x,$y) { }; &foo } 11:07
SmokeMachine thanks 11:16
11:35 JJMerelo left
kawaii Hello :) An issue my colleague has been struggling with for a while now - github.com/shuppet/p6-api-discord/...on.pm6#L93 this line is never run when the method is run from TWEAK. 11:43
Comes from here: github.com/shuppet/p6-api-discord/...d.pm6#L212
and in turn from a script.
The Connection object is definitely created because the websocket is created.
11:53 brtastic joined 12:01 sena_kun joined 12:03 Altai-man_ left
patrickb .tell 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) 12:09
tellable6 patrickb, I'll pass your message to rba
patrickb antoniogamiz: Fix incoming.
antoniogamiz thanks :D 12:11
El_Che no raku talks today according to the schedule? 12:23
tellable6 2020-06-23T15:48:24Z #raku <JJMerelo> El_Che thanks for letting me know!
12:25 antoniogamiz left
lizmat El_Che: not to my knowledge, perhaps in the lightning talks 12:25
but I'll wait for the YouTube version of that
12:33 timotimo left 12:35 timotimo joined
jdv79 timotimo: is that the full path? def odd. 12:59
timotimo jdv79: i'm not sure if it's an artifact or some bug; maybe you could attach a gdb to it and have it dump the backtraces of all the threads to see if the one that's doing the Fetcher stuff has a bigger stack trace than it should 13:00
oh, anyway, i should upload the patch that makes it able to read your file 13:01
jdv79 there is a retry loop inside of a self feeding hyper map on a channel - the line in the heap path is the beginning of the retry loop. weird. 13:02
teh retry is around cro agent get
timotimo this isn't clear from documentation or output, but the line it says there is only the "position of the function" line 13:03
not the "current line of execution" as you would have in a normal stacktrace
jdv79 i just woke up - need coffee - bbiab - thanks!
timotimo i could have sworn i had a function "find the biggest N objects of this type" somewhere 13:04
interesting, there's a little bit of a difference between how the gc roots do a frame and how the heap snapshot profiler does a frame 13:06
regarding the caller
one checks if the frame's caller is a heap-allocated frame, the other if the frame itself is heap-allocated 13:07
sena_kun .tell JJMerelo please, ping me whenever comfortable re docs we discussed. 13:09
tellable6 sena_kun, I'll pass your message to JJMerelo
sena_kun AlexDaniel`, ping? 13:10
13:13 AlexDaniel joined, AlexDaniel left, AlexDaniel joined
AlexDaniel timotimo: so… greppable failed earlier because of this error: “No such symbol 'IO::Socket::SSL'” 13:14
even though it is installed
timotimo interesting!
Geth ake: e197c123cc | (Aleks-Daniel Jakimenko-Aleksejev)++ | bin/sake
Add missing semicolon
13:18 greppable6 left
AlexDaniel sena_kun: pong? 13:18
sena_kun AlexDaniel, can I PM you? 13:19
AlexDaniel sure
13:19 sena_kun left, sena_kun joined
sena_kun ouch, this hexchat segfault was painful... 13:19
AlexDaniel sure! (if you didn't see that ) 13:20
[Coke] wonders what the deal was with all the supernovus transfers. 13:25
AlexDaniel [Coke]: I think it's just unmaintained repos now getting more access because of the community-modules org 13:26
[Coke] ok, but we don't want to take over *every* unmaintained module. did someone do some analysis or did we take everything from that user? 13:27
(I mean, it could be both) 13:28
ShimmerFairy Couldn't interested coders just fork an abandoned module and change the :auth<> property of the module? (Or is this transfer process already doing that?) 13:36
13:37 antoniogamiz joined
antoniogamiz is there a ready to use raku for Windows? (not rakudo star) to use in Azure Pipelines 13:39
[Coke] ShimmerFairy: yes, that's a possibility. IMO we should only be pulling modules into the community bucket that have been abandoned but are "important" by some criteria. 13:40
And that may be happening: I'm just seeing the github alerts that we've taken the module, not seeing any discussion before that. 13:41
ShimmerFairy Yeah, I just wanted to point out that Raku is perfectly capable of handling a module name mapping to more than one codebase.
13:42 zacts joined
jdv79 will community modules end up being raku's version of perl's dual life modules as they fall out of favor and others fork them to maint? 13:44
patrickb I mailed supernovus about one of his modules.
After a bit back and forth it became clear that he won't have time for the forseeable future to do any work on those modules. 13:45
Especially not being able to respond to PRs is problematic. 13:46
So he decided to transfer his modules to community modules.
He did only transfer modules he deemed worthy. Everything noone is using or superseeded he left out.
So the basic idea is that the status of the modules is clear (i. e. he won't be able to maintain them for the forseeable future), and whoever is willing to work on them can do so without forking. 13:48
I'm not entirely sure if that is in line with whatever purpose community modules is intended to be, but to me the move makes sense, especially because his modules do have users. 13:49
[Coke] that sounds good, patrickb - the one thing I'd add is we should look for individual maintainers before taking them over in the community space. 13:50
patrickb antoniogamiz: What requirements would such a raku(do) have? There are the precompiled releases on rakudo.org you can just extract and use.
antoniogamiz: (by the way: The precompiled builds on rakudo.org are the same builds that rakubrew installs when using the "download" command.) 13:51
[Coke] we need to update raku.org/downloads example with latest version. (looks like rakudo.org/downloads was updated, thanks!)
antoniogamiz patrickb, I will use those then :D 13:52
patrickb [Coke]: If I would have to decide I'd remove all direct rakudo download options from raku.org and just link to the rakudo.org download page.
[Coke] can we update the link to Inline::Perl5 on raku.org/downloads to a disambiguated version? (if it's on CPAN, I imagine we'd prefer CPAN as it better tracks releases?) 13:53
patrickb: I'd be OK with that; we can add more detailed stuff later if there's a different impl. 13:54
patrickb Having to maintaining in two places often results in not all places being updated. Also it does not support the "rakudo is one implementation of raku, there might be others" story.
afk for a bit
14:01 Altai-man_ joined
jdv79 timotimo: how did you get to that path? 14:01
timotimo tbh i basically randomly poked at frames to see if anything sprung out at me 14:03
essentially in snapshot 80 i used "find 1000 frames" or so?
14:03 sena_kun left 14:06 xinming_ left
jdv79 it says "Sorry, I don't understand." to that 14:06
14:08 dataangel left
timotimo i really need to get used to starting moar-ha with rlwrap 14:08
14:08 xinming_ joined
jdv79 is moarperf broken for these heapsnapshots atm? 14:09
timotimo find 1000 objects type="BOOTStaticFrame" 14:10
shouldn't be
just have to make sure it's using the latest commit from the heapanalyzer tool as well
the commandline tool and the web tool don't match up in functionality completely yet 14:11
jdv79 cool 14:14
AlexDaniel yeah, so, the bots really don't like precomp
14:14 notable6 left, coverable6 left, evalable6 left, benchable6 left, statisfiable6 left, nativecallable6 left, reportable6 left, quotable6 left, bloatable6 left, linkable6 left, committable6 left, tellable6 left, sourceable6 left, releasable6 left, shareable6 left, bisectable6 left, squashable6 left
jdv79 i'm not sure how that long path you somehow found came to be... 14:15
raku-bridge <tmtvl> I've been reading the Little Schemer again... gist.github.com/tmtvl/e80befea5a84...0866ea26cf
timotimo try "path 470696" in snapshot 80 for a simpler example
jdv79 why are there so many bots? could they be merged into one that has selectable personality disorder? 14:16
moritz UNIX philosophy. Do one thing, do it well.
14:17 antoniogamiz left
jdv79 which perl pretty much upended, ironic being touted in a perlish place 14:17
ShimmerFairy for some definition of "one thing" ☺
jdv79 timotimo: i'm not sure what that means:) 14:18
timotimo jdv79: if you could patch your moarvm thusly: src/profiler/heapsnapshot.c around line 600 or so, there should be a line "if (frame->caller && !MVM_FRAME_IS_ON_CALLSTACK(tc, frame))
change the last "frame" to "frame->caller"
i'm not sure if it's a correct change, but it may be what's responsible for the odd path 14:19
14:19 coverable6 joined, reportable6 joined, quotable6 joined 14:20 notable6 joined, bisectable6 joined, unicodable6 joined, sourceable6 joined, benchable6 joined, evalable6 joined
ShimmerFairy (btw, a big reason for Unix philosophy is that you can compose those small do-one-thing tools to form any kind of big tool you need, which I don't think applies to IRC bots) 14:20
14:20 shareable6 joined
timotimo hmm, i could imagine a syntax that lets you write "pipes" of bot commands 14:20
14:20 bloatable6 joined
timotimo that would be hella funny 14:20
jdv79 maybe they could be piped together!
14:21 greppable6 joined
AlexDaniel it's more about the user interface. You don't really need to remember any command, you just do bis-TAB and write your code 14:21
timotimo i'm not sure which of the bots we could combine in sensible ways at the moment
14:21 squashable6 joined, releasable6 joined, linkable6 joined
Grinnz i would consider this set of bots a representation of microservices, not the unix philosophy :P 14:21
AlexDaniel some bots do have more than one command, like greppable, which timotimo failed to use a few hours ago x)
14:21 nativecallable6 joined, statisfiable6 joined
jdv79 the blizzard of disconns/reconns is the only reason i mentioned it 14:21
14:22 committable6 joined
Grinnz a robust plugin system for a single irc bot would fit the unix philosophy fine 14:22
14:22 tellable6 joined
timotimo i guess you could ask an evalbot + notable6 to send the result of an evaluation to a user when they come back 14:22
Grinnz where the irc connection is just another part of the pipeline
tellable6 2020-06-09T16:42:16Z #raku <melezhik> Grinnz, Blead Breaks CPAN - this what is what done by Blin or RakuDist in Raku
AlexDaniel that is kinda solvable with bouncers, and I'd appreciate if anybody contributed code for it
Grinnz personally really hates the design of irc bouncers, but ircv3 is improving the situation 14:23
AlexDaniel or by making them compatible with matrix or such, but current matrix-freenode bridge sucks too much
jdv79 Grinnz: is there a short version of what you're talking about? 14:24
Grinnz eh?
jdv79 i know nothing about "bouncers"
Grinnz oh the bouncer thing
jdv79 is that just a irc proxy
Grinnz yes
most of them suck because irc is not designed for that
at least, IMO :)
jdv79 you mean history and such? 14:25
Grinnz yes
jdv79 ah, yes...
AlexDaniel I can easily remake the bots as plugins, but then you'll see people issuing the `help` command every time before using any feature
right now the nicks themselves expose which commands are available, which is nice
ShimmerFairy tbf some of these bots I'd still want to ask for 'help' first 14:26
AlexDaniel ShimmerFairy: but almost all of them don't have any commands
jdv79 timotimo: oh, i guess that last one is a match obj i may have scooped up
AlexDaniel that is, they just figure out what to do with what you give them 14:27
jdv79 hmm, is there an easy way to see if that's a common/many times thinng?
it might well be correct if it hasn't been around for long i guess
ShimmerFairy But I mean I don't know what some of them do, since the name isn't enough. Like what do quotable or shareable or squashable do?
AlexDaniel github.com/Raku/whateverable/wiki
timotimo "top objects by size", "top objects by count" and the same with frames
jdv79 i didn't mean to start a whole thing about it - just blurted out when i got spammed with bot noise;) 14:28
14:28 sarna left
jdv79 but if i did have to argue one more point for it - the discoverability right now seems less than good - i have no idea what bots do or how to find them/their purpose is life... 14:29
AlexDaniel biscuitable6: help 14:30
bisectable6 AlexDaniel, Like this: bisectable6: old=2015.12 new=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # See wiki for more examples: github.com/Raku/whateverable/wiki/Bisectable
ShimmerFairy My point is just that "I don't need 'help' because the bot names tell me everything" doesn't hold, since a newcomer will still need documentation of some kind to understand them.
jdv79 so to discover them one has to grep the chan's nick list for .*albe.* ?
AlexDaniel hmm 14:31
moritz don't we have docs for the bots on some of our websites?
AlexDaniel anyway, bug reports & suggestions are welcome: github.com/Raku/whateverable/issues
timotimo `find 1000 frames name="<anon>"` and a few times `more` always interesting! :D 14:32
AlexDaniel moritz: whateverables are wondefully documented: github.com/Raku/whateverable/wiki
jdv79 timotimo: that doesn't do "show me all MATCH-CAPTURES", does it?
ShimmerFairy I don't have strong feelings on split bots vs. monolith bot fwiw
jdv79 ah
timotimo ... mircrokernel ... 14:33
zacts can perl5 be used from within raku?
timotimo could 487215 be the only MATCH-CAPTURES frame in snapshot 80?
zacts like without an FFI kind of idea? like can you truly embed a perl interpreter into raku somehow? 14:34
timotimo yeah you can with Inline::Perl5
ShimmerFairy timotimo: hey, GNU Hurd is coming out any day now!
zacts oh cool
timotimo i mean, er
it is based on FFI
AlexDaniel greppable6: use.*Fetcher
greppable6 AlexDaniel, 5 lines, 4 modules: gist.github.com/20e52aa91e21c95779...824f3043eb
AlexDaniel treegrep: Fetcher
greppable6 AlexDaniel, gist.github.com/df76ed0ccb8cd3c11e...90efa8b17c
zacts gnu hurd actually has some interesting ideas from a philosophical design standpoint. I think it even influenced NetBSD's RUMP anykernel too.
but in actuality the hurd is like not happening as far as I know
AlexDaniel timotimo: ↑ works now, did nothing to fix it besides purging precomp and restarting the bots : 14:35
jdv79 timotimo: looks like it. a few snaps all have but one.
AlexDaniel jdv79: fix the precomp issue and I'll be restarting the bots less often!! :P 14:36
jdv79 what precomp issue? 14:37
14:37 soursBot joined
AlexDaniel jdv79: well, um… you'd have to figure out that too… 14:37
jdv79 sounds like a rabbithole. i'm already in one atm. sorry, maybe later;) 14:38
AlexDaniel it's just that whenever I update anything in the bots I have to purge precomp folders to make it working
otherwise all bots seem to start up fine (usually, but not always), but then give out some weird errors whenever you actually try to use them
I'm not entirely sure how to reproduce this either, but it has to be related to read-only precomp folders 14:39
timotimo jdv79:interestingly, 470693 in snapshot 80 is also apparently a frame of that function?
doesn't show up in the search though?
AlexDaniel because for the bots most of the filesystem is read-only, I think… 14:40
anyway, if somebody wants to help with whateverable (whether it's the UI or plugin system or whatever), please feel free to, nowadays I only make sure that they're running 14:41
[Coke] are you doing a build and then copying the precomp folders into a readonly area?
timotimo can we have some kind of monitoring where we can follow cpu usage, memory usage, uptime, and such?
[Coke] (so that maybe precomp is seeing that there's precomp and trying to update it in the new location and then failing?)
AlexDaniel [Coke]: I run them with write access first, this creates precomp files, then I only run them as a service where they have no write access 14:42
if I don't do that each bot will take minutes to start up
timotimo: you have ssh access, don't you? Wanna have root access to set up monitoring?
timotimo i mean i want root on as many machines as i can, obviously. but only if i'm never asked to use it for repairing stuff! :D 14:43
AlexDaniel is it a yes or a no?
timotimo also, which monitoring system would i set up?
AlexDaniel you decide
timotimo oh no
AlexDaniel bisectable6: uptime 14:44
bisectable6 AlexDaniel, 24 minutes and 49 seconds, 275.847656MiB maxrss. This is Rakudo version 2020.02.1-395-g2c9168b9a built on MoarVM version 2020.02.1-162-g3d8ff61e2 implementing Raku 6.d.
timotimo ideally we'd have something on a central raku-community server/VM that collects data from a lot of machines we have
14:45 Name66 joined
AlexDaniel or we can move whateverable to one of the servers that already has monitoring, if there are any 14:45
jdv79 doesn't all that stuff have to be rooted?
its also backwards from the other, no?
AlexDaniel but it's not the kind of workload you'd really want to have, which is why I was happy to run it on my server so that I'm not bothering anyone :) 14:46
timotimo jdv79: are you talking about the frames?
AlexDaniel rba: a machine with a nice-enough CPU, at least 50GB free space on an SSD, and a bunch of free ram (like 10G at least) for the bots? 14:47
jdv79 yes
14:47 brtastic1 joined 14:48 Name66 is now known as Everybody, Everybody is now known as Guest93538, brtastic left, brtastic1 is now known as brtastic
timotimo i'm not sure how you mean that 14:49
when looking at the paths it looks like one is on a callstack, while the other is just sitting pretty in its module? 14:50
14:50 Guest93538 left
jdv79 the first path goes from root to captures, the other goes from captures to a random frame? 14:52
14:53 Guest93538 joined
jdv79 i thought all of them should be rooted since these snaps are made just after a sweep, no? 14:53
timotimo when i "path" the numbers, they both reach the root 14:54
14:57 Guest93538 is now known as bowlinNo
jdv79 nopaste.xyz/?7b2c72c12198636c#EmdP...TUBdzPx6rn 14:58
those both make sense to you?
timotimo ah, you used show for the bottom one and path for the top
jdv79 oops 14:59
15:01 molaf joined
jdv79 the header is misleading on top i think - it says "Name" but VMString is a type for find, not a name - is that on purpose? 15:02
timotimo it's a little weird, yes! 15:03
not ... really? on purpose
15:04 splatt9990 joined 15:06 splatt9990 left