🦋 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 | ||
evalable6 | |||
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? foi? 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? foi? foi? foi? 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 foi? 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 foi? 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 foi? » | ||
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:15 | |
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! | ||
ha | |||
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.* ? | ||
*able... | |||
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
|
|||
raku-bridge |