🦋 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:08
reportable6 left
|
|||
guifa | SmokeMachine I've been working at it too | 00:08 | |
the custom method declarator is the hold up, but I put stuff on that front on hold waiting for RakuAST (because ultimately everything generated inside of { … } would need to go to that) | 00:09 | ||
SmokeMachine | Voldenet: the “language” will probably change | 00:10 | |
00:10
reportable6 joined
|
|||
SmokeMachine | guifa: yes, I was also waiting for RakuAST… but I think I’ll need to know how to do the Methodo-ish even with RakuAST | 00:13 | |
guifa | SmokeMachine I think you can hook into this one: proto token routine_declarator { <...> } | 00:36 | |
00:41
Core3143 left,
shinto joined
|
|||
guifa | although really, that's just a called by token term:sym<routine_declarator>. So you could probably just add a new token term:sym<whatever> and just make sure it calls the appropriate metamethods for the package | 00:42 | |
00:44
shinto left
|
|||
SmokeMachine | guifa: yes, that makes sense… | 00:44 | |
00:45
ufobat left
|
|||
guifa | once I finish porting this one last little bit of timezone code, I'm dedicating the next few weeks to really learning RakuAST and installing even the most basic little declarator with a custom langauge will be my #1 priority | 00:50 | |
SmokeMachine | guifa: please when you have that done, please let me know and take a look at the code | 01:08 | |
01:13
frost joined
|
|||
guifa | trust me, once I figure it out, I'll be blasting it everywhere :-) (at the very least, a blog post or something… been forever since I've done one of those) | 01:16 | |
01:34
epony left
01:44
melezhik joined
|
|||
melezhik | Now when Sparky has clusterization mode, I wonder if someone in Raku community is interested in running Raku tasks in cluster? It could be any domain, bearing in mind the Sparky/Sparrow versatility ... | 01:46 | |
tellable6 | 2022-01-04T09:35:40Z #raku <El_Che> melezhik bintray sunsetted their repo infrastructure so I moved to cloudsmith with the added bonus it also has alpine repos | ||
melezhik | El_Che sure, I have already figured it out, but thanks )) | ||
github.com/melezhik/sparky#cluster-jobs | 01:47 | ||
I already have one small cluster of 3 sparky servers and things work good on them ... | |||
not 3 even 4 )) | 01:48 | ||
01:50
melezhik left
02:13
Xliff joined
02:25
lockywolf left
02:26
lockywolf joined
02:33
lockywolf left,
[Coke] left
02:34
lockywolf joined,
razetime joined
02:35
lockywolf left
|
|||
SmokeMachine | .tell melezhik on github.com/melezhik/sparky#cluster-jobs shouldn’t %j be $j? | 02:38 | |
tellable6 | SmokeMachine, I'll pass your message to melezhik | ||
02:38
lockywolf joined
02:39
[Coke] joined,
lockywolf left
02:43
lockywolf joined
02:44
lockywolf left
02:46
lockywolf joined
02:48
lockywolf left
02:52
lockywolf joined
02:54
lockywolf left
02:55
[Coke]_ joined
02:56
melezhik joined
|
|||
melezhik | . | 02:56 | |
tellable6 | 2022-01-08T02:38:26Z #raku <SmokeMachine> melezhik on github.com/melezhik/sparky#cluster-jobs shouldn’t %j be $j? | ||
melezhik | @Sm | ||
SmokeMachine you are right, I've just fixed that, thanks | 02:57 | ||
02:57
[Coke] left
02:58
lockywolf joined
03:12
melezhik left
03:30
frost left
03:35
frost joined
03:40
lockywolf left
03:41
lockywolf joined
03:44
lockywolf left
03:48
lockywolf joined
03:49
razetime left
04:04
razetime joined
04:18
destroycomputers left
05:18
releasable6 left,
unicodable6 left,
shareable6 left,
committable6 left,
coverable6 left,
reportable6 left,
quotable6 left,
bisectable6 left,
notable6 left,
tellable6 left,
statisfiable6 left,
squashable6 left,
benchable6 left,
bloatable6 left,
greppable6 left,
evalable6 left,
sourceable6 left,
nativecallable6 left,
linkable6 left
05:19
quotable6 joined,
committable6 joined,
bisectable6 joined,
benchable6 joined,
notable6 joined,
linkable6 joined,
tellable6 joined
05:20
statisfiable6 joined,
nativecallable6 joined
05:22
epony joined
05:25
Xliff left
05:56
lockywolf left
05:58
lockywolf joined
05:59
lockywolf left
06:00
lockywolf joined
06:04
lockywolf left
06:07
lockywolf joined
06:08
reportable6 joined
06:18
releasable6 joined,
sourceable6 joined
06:20
evalable6 joined
06:47
Xliff joined
06:50
tejr left,
tejr joined
07:19
shareable6 joined
07:21
squashable6 joined,
bloatable6 joined
07:30
seednode99 left
07:31
seednode99 joined
07:53
demostanis[m] left,
sienet_ja_LSD[m] left,
CIAvash left
07:57
CIAvash joined
07:58
razetime left,
razetime joined
08:07
vrurg left,
demostanis[m] joined
08:08
vrurg joined
08:11
sienet_ja_LSD[m] joined
08:20
greppable6 joined
09:18
razetime left
09:20
coverable6 joined
09:22
jjido joined
09:23
razetime joined
09:48
lichtkind joined
09:49
tejr left,
tejr joined
10:20
unicodable6 joined
10:28
lockywolf left
10:32
lockywolf joined
10:38
Sgeo left
|
|||
andinus | so i'm using Net::SMTP and have "LEAVE $c.quit;" to close the connnection after the job is done | 10:48 | |
but when Net::SMTP is unable to connect it throws, i have a catch block to handle that, then "LEAVE $c.quit" still runs, but $c isn't defined so it throws another error | 10:50 | ||
i could use "KEEP $c.quit" but then what if sending the mail itself fails, in that case it wouldn't run .quit | |||
is there a way to say do, "my $c = NET::SMTP(..) && LEAVE $c.quit" | 10:51 | ||
ie to make the phaser active only if $c is defined | |||
moon-child | my $c = ...; LEAVE $c.quit if $c | 10:53 | |
? | |||
though a restructuring might be in order. Presumably you currently have something like: my $c = connect...; LEAVE $c.quit; return unless $c; $c.send...; ... | 10:55 | ||
in that case, why not: my $c = connect... or return; LEAVE $c.quit; $c.send...; ... | |||
andinus | oh, that makes sense, thanks | 10:56 | |
11:03
jjido left
|
|||
lizmat | andinus: I frequently use LEAVE .quit with $c | 11:09 | |
tbrowder | hi, all, anyone using module Spreadsheet::XLSX? | 12:01 | |
12:03
linkable6 left,
evalable6 left
|
|||
tbrowder | i had 2 of its deps fail and forced tested them, but i don't like to do that. i'll file an issue but wonder if anyone else sees the same problem | 12:03 | |
failing deps were: NativeHelpers::Callback and Archive::Libarchive::Raw | 12:06 | ||
12:08
reportable6 left
|
|||
tbrowder | ok, i see jdv filed an issue 25 days ago on NativeHelpers::Callback | 12:17 | |
hope it gets fixed soonish, i need Spreadsheet::XLSX | 12:18 | ||
but there is also Spreadsheet::Libxlsxio! | 12:26 | ||
13:14
[Coke]_ is now known as [Coke]
13:38
destroycomputers joined
13:57
perlbot left,
simcop2387 left
14:08
reportable6 joined
14:11
dextercd joined
14:23
simcop2387 joined
14:24
perlbot joined
14:49
jjido joined
15:01
lichtkind_ joined
15:02
lockywolf left
15:04
lichtkind left,
evalable6 joined
15:05
linkable6 joined
15:06
lockywolf joined
15:17
sena_kun left
15:18
sena_kun joined
15:30
lockywolf left
15:38
lockywolf joined
|
|||
Geth | ecosystem: 0935a72f2b | (Elizabeth Mattijsen)++ | META.list Remove Text::MiscUtils from git ecosystem It lives in the zef ecosystem now |
16:02 | |
16:05
destroycomputers left
16:16
jjido left
|
|||
MasterDuke | sourceable6: &succ | 16:17 | |
sourceable6 | MasterDuke, No idea, boss. Can you give me a Code object? Output: 4===SORRY!4=== Error while compiling /tmp/AHuPyXLhX6Undeclared routine: succ used at line 1 | ||
MasterDuke | sourceable6: .succ | ||
sourceable6 | MasterDuke, No idea, boss. Can you give me a Code object? Output: No such method 'succ' for invocant of type 'Any'. Did you mean 'sum'? in block <unit> at /tmp/JsmSPtU1dU line 1 | ||
16:40
Flwyd joined
|
|||
AlexDaniel | 🙋 just checking in, all good with the bots? | 16:47 | |
sourceable6: 42.succ | |||
sourceable6 | AlexDaniel, github.com/rakudo/rakudo/blob/f432...ic.pm6#L37 | ||
MasterDuke | ah, thanks. for some reason i've never been able to internalize how to use sourceable6 | 16:48 | |
sourceable6 | MasterDuke, Thank you! You love me, you really love me! | ||
AlexDaniel | xD | ||
MasterDuke: usually, you just give it runnable code | 16:49 | ||
and it just does that | |||
.succ by itself doesn't mean much because you can't know .succ on what | |||
but I'd really like to know why that link is 404 | 16:50 | ||
Flwyd | The rakudo profiler produced a 1 GB .sql file for a program that ran for about a minute and a half, which causes sqlite to run out of memory on import. (The 2.2 GB html version crashes a browser tab, too.) Are there tools for summarizing profiler data without needing to read it all into memory at once? | ||
AlexDaniel | what's f4326bb? | ||
linkable6: f4326bb | |||
it's not a rakudo commit, right? | |||
c: HEAD say 42 | 16:51 | ||
committable6 | AlexDaniel, ¦HEAD(f4326bb): «42» | ||
MasterDuke | oh, i think some of the bots haven't recovered from the force push that happened a little while ago | ||
AlexDaniel | force push? | ||
MasterDuke | yeah, in the rakudo repo | ||
AlexDaniel | :o | ||
what happened? | |||
and when | |||
anyway, I'll try to get them unstuck | 16:52 | ||
MasterDuke | Flwyd: not yet, but i've actually just started experimenting with something that should help out with that case | ||
16:53
[Coke] left
|
|||
MasterDuke | you might be able to work around it by manually editing the .sql file to not insert so many values at once | 16:53 | |
AlexDaniel | c: say 42 | 16:54 | |
committable6 | AlexDaniel, Seems like you forgot to specify a revision (will use “v6.c” instead of “say”) | ||
AlexDaniel, and I oop! Backtrace: gist.github.com/e3c80339e79af24c3a...4d18f34251 | |||
16:54
xkr47 left
|
|||
AlexDaniel | ok, that's fine for now | 16:54 | |
Flwyd | Ah, that's an interesting thought. I may try playing with `jq` on the JSON output. | ||
16:54
xkr47 joined,
[Coke] joined
|
|||
MasterDuke | AlexDaniel: was the new-disp-nativecall merge. some confusion around squash vs not, vs revert, etc | 16:54 | |
maybe october/november? | 16:55 | ||
AlexDaniel | O_o | ||
that's a long time ago | |||
I wonder how bisectable and others worked during this time | |||
it could be that because it knows how to build branches, it just continued to work | |||
MasterDuke | Flwyd: github.com/tadzik/p6profiler-qt hasn't been touched in a while, and does have a file size limitation, but you could also give that a try | 16:56 | |
AlexDaniel | but I wouldn't bet on it… | ||
16:57
evalable6 left
|
|||
AlexDaniel | evalable6 clearly didn't like it :D | 16:58 | |
MasterDuke | Flwyd: were you importing the .sql in Comma, or using the sqlite command line? | ||
Flwyd | sqlite CLI | 16:59 | |
I haven't tried the QT one since I'm running on MacOS (so I don't entirely trust that a Qt GUI will run without fuss) and I'm currently SSHed to the other side of the house anyway. | 17:00 | ||
MasterDuke | huh, i would have expected it to be able to handle a 1gb file. i've definitely used it on some that were a little bit bigger than that | ||
AlexDaniel | was the force push only in rakudo repo or nqp too? | 17:01 | |
MasterDuke | i think just rakudo | ||
AlexDaniel | c: HEAD say 42 | 17:02 | |
committable6 | AlexDaniel, ¦HEAD(f77fda7): «42» | ||
AlexDaniel | :o | ||
what | |||
indeed, it was building rakudo for every commit all this time | 17:03 | ||
it's just that bots didn't know what was the last commit | |||
MasterDuke | nice | ||
AlexDaniel | still being stuck on that old version | ||
but otherwise all good | |||
sourceable6: 42.succ | |||
sourceable6 | AlexDaniel, github.com/rakudo/rakudo/blob/f77f...ic.pm6#L37 | ||
AlexDaniel | now it works :) | ||
I'll just wait for evalable to go back up but otherwise all good | 17:04 | ||
17:04
codesections left,
codesections joined
|
|||
MasterDuke | AlexDaniel++ | 17:05 | |
AlexDaniel | I guess blin also wasn't affected because that was still based on tags and all builds were available | ||
although I'm not fully sure | 17:06 | ||
17:06
razetime left,
evalable6 joined
|
|||
AlexDaniel | e: say 42 | 17:07 | |
evalable6 | 42 | ||
AlexDaniel | alright | ||
m: say 42 | 17:08 | ||
camelia | 42 | ||
17:10
goblin left,
HobGoblin joined
17:12
destroycomputers joined
|
|||
AlexDaniel | MasterDuke: for the record, I just deleted the data/rakudo-moar/ repo and also everything in /tmp/whateverable/ | 17:13 | |
and it cloned it all again after a while | |||
El_Che | Hi AlexDaniel, it has been a while! | 17:15 | |
AlexDaniel | hello! :) | 17:16 | |
I'm always online, so feel free to ping, but yes, I wasn't following the latest action :) | |||
Flwyd | Hmm. Looks like the `profile.sql` output already breaks the `calls` table into multiple insert statements (almost 56,000 of them). | 17:26 | |
Geth | doc: sdondley++ created pull request #4009: remove unneeded assignment to nameless state variable |
17:35 | |
17:38
jjido joined
17:43
tejr left
17:44
tejr joined
|
|||
Flwyd | Aha. Removing the transaction from the profile.sql file let sqlite not run out of memory. | 17:52 | |
Geth | doc: flwyd++ created pull request #4010: Fix foreign key reference in profile SQL query |
17:58 | |
18:08
reportable6 left
18:11
destroycomputers left
18:13
Flwyd left
18:14
frost left,
Flwyd joined,
MasterDuke left
18:24
destroycomputers joined
18:27
squashable6 left
|
|||
[Coke] | Should we add a doc xtest that requires whatever the latest released rakudo is? | 18:52 | |
That way, tests that rely on compilation or signatures will not accidentally pass due to running on an old verison. Would require a manual step post-release | |||
Geth | doc: f283610c25 | (Trevor Stone)++ (committed using GitHub Web editor) | doc/Language/performance.pod6 Fix foreign key reference in profile SQL query (#4010) * Fix foreign key reference in profile SQL query c.id is the primary key on the calls table. For the first few calls it may be equal to the routine ID, but not for long :-) * Group by routine ID, too |
18:55 | |
linkable6 | Link: docs.raku.org/language/performance | ||
18:56
linkable6 left,
tejr left,
linkable6 joined,
tejr joined
19:03
discord-raku-bot left
19:04
discord-raku-bot joined
19:05
jjido left
19:11
monkey_ joined
|
|||
Geth | doc/raku-version: 29bc96f35e | Coke++ | xt/01-raku-version.t add test for version of raku Avoid issues where an older version might fail an example/signature test. |
19:20 | |
doc/raku-version: c0f84bfef1 | Coke++ | xt/01-raku-version.t add test for version of raku Avoid issues where an older version might fail an example/signature test. |
19:24 | ||
doc: coke++ created pull request #4011: add test for version of raku |
19:25 | ||
19:30
squashable6 joined
|
|||
[Coke] | how to switch the version rakubrew is using? | 19:30 | |
I did a build, it worked, now I want to switch. | |||
ah. switch. it's "hidden" as an option to global in the help, didn't see it. | 19:31 | ||
19:32
MasterDuke joined
|
|||
[Coke] | rakubrew build-zef should probably use latest release of zef rather than HEAD from github, no? | 19:32 | |
19:47
Sgeo joined
|
|||
jdv | does anyone know if github.com/CurtTilmes/raku-nativeh...ack/pull/3 is good? | 20:35 | |
seems it but i have very little experience | |||
20:47
linkable6 left,
evalable6 left
20:48
linkable6 joined
|
|||
Geth | doc: 6312f344d2 | (Will Coleda)++ (committed using GitHub Web editor) | xt/01-raku-version.t add test for version of raku (#4011) Avoid issues where an older version might fail an example/signature test. |
21:04 | |
21:04
linkable6 left
|
|||
SmokeMachine | Voldenet: about the `#1.a` stuff, I'm planing on transforming something like this (github.com/FCO/EventExpressionLang...fire-risk) into something like this: www.irccloud.com/pastebin/Twx0KKt5/ | 21:05 | |
Voldenet | it is slightly more verbose | 21:08 | |
21:09
reportable6 joined
|
|||
Voldenet | in fact I think that assigning fields should be separate from matching rules | 21:09 | |
SmokeMachine | Voldenet: yes, and I'd prefere to find a way to "declare" on the has declaration from where to get its value instead of actively setting it... but I couldn't find a syntactic way of doing that... | 21:10 | |
Voldenet: I agree... any suggestion? | |||
21:12
abraxxa-home joined
|
|||
Voldenet | maybe convention-based constructors/setters like `event fire-risk { multi method new(Temperature $t) { } multi method new(Humidity $t) { } }`` | 21:14 | |
21:15
abraxxa-home left
|
|||
Voldenet | and `multi method new(Temperature $t, Humidity $h) { }` | 21:15 | |
but i'm not sure how would that be optimized, because matching everything would require creating cartesian product of all event types from last 5 minutes | 21:16 | ||
SmokeMachine | Voldenet: I didn't get how the matching would work on that case... | 21:18 | |
Voldenet: have you seen my try to explain how the matching works currently? github.com/FCO/EventExpressionLang...ow-it-work | 21:19 | ||
21:22
sena_kun left
21:23
sena_kun joined
|
|||
Voldenet | …so essentially it means that every event match generates some NFA | 21:25 | |
SmokeMachine | It converts the pattern into a tree of conditions and sub steps, then it adds the root condition of the pattern into a condition btree, every event is tested on the tree of conditions (its a tree so it do not need to test all conditions), then, when a event matches with any of the conditions of the btree it gets the next step of that condition and adds it to the btree... | ||
Voldenet | it somehow sounds like multi dispatch | 21:28 | |
and `event` object that exposes abstract state machine that consumes events | 21:29 | ||
SmokeMachine | yes... originally on that repo's version I was thinking on a process that would parse a string code, consume events from log file, kinesis, kafka, etc and use a external query storage (probably a DB)... but now I'm thinking to make a lib using events defined by raku code (instead of string to be parsed) to consume a Supply of events using a in memory query storage... | 21:33 | |
Voldenet | I understand why TOP method is used and it's sane | ||
maybe it would be more practical to define trait to link events | 21:38 | ||
`event fire-risk { has $.temperature is event(*.temperature.value); has $.humidity is event(*.humidity.value); has $.area is event-match(*.temperature.area ~~ *.humidity.area); }` | 21:54 | ||
SmokeMachine | But if we have more than one temperature, how to choose? | 22:21 | |
22:47
evalable6 joined
23:08
lichtkind_ left
|
|||
Voldenet | maybe in case of multiple temperatures just *.temperature[0] or *.temperature.grep(…) | 23:08 | |
in fact, not accepting multiple events of the same type is valid too | 23:09 | ||
consider this `event temperature { … }; event previous-temperature { has $.temperature(*.temperature); }; event fire-risk { has $.temperature is event(*.previous-temperature) }}` | 23:10 | ||
23:11
djerius left
|
|||
Voldenet | it's also done similarily in sql where you have to alias tables when you do multiple joins on the same one, I'd consider borrowing some ideas from it | 23:12 | |
23:13
djerius joined
23:23
djerius left
23:24
djerius joined
23:27
monkey_ left
|
|||
andrea[m] | if i want to pass an argument to an one line function but i don't care about the name of the argument, is this the best way to express that?: sub mysub($_) { .say } | 23:42 | |
i mean, the $_ works as expected but it that something "correct" | 23:43 | ||
but is that* | |||
? | |||
Xliff | andrea: Yes. If I understand you correctly. That's basically using the topic as a parameter. | 23:48 | |
tellable6 | 2022-01-06T19:31:58Z #raku-dev <lizmat> Xliff I would put Debian on a 2021 MacMini :-) | ||
Xliff | I do it a lot. | 23:49 | |
andrea[m] | thanks, i was not sure if using directly $_ there, was something correct or not | 23:52 |