🦋 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. |
|||
00:05
mowcat left
00:08
titsuki joined,
libertas left
00:10
mowcat joined
00:12
normanrockwell joined,
normanrockwell left
00:13
mowcat left,
wamba left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:22
hungrydonkey joined
00:26
pecastro left
00:31
patrickz joined
00:32
titsuki left
00:34
patrickb left
00:39
Xliff left
00:42
patrickz left
00:47
bronco_creek joined
00:49
NODE left
|
|||
bronco_creek | Hi. I have been away a long time (years)! I recently got the LTA error message "Cannot find method 'default' on object of type NQPMu" I figured out my reproducible mistake. Is this of interest here? | 00:50 | |
My problem occurs with Rakudo Star version 2019.03.1 built on MoarVM version 2019.03 | 00:51 | ||
00:52
NODE joined
|
|||
discord6 | <theangryepicbanana> bronco_creek: is that on repl.it? (that's the exact thing it says on repl.it so I thought I'd ask) | 01:00 | |
<theangryepicbanana> repl.it actually uses 2019.07.1 | |||
bronco_creek | Sorry, don't even know what repl.it is... | 01:03 | |
I have not tried to reproduce this error from the command line, but I can make it happen from a method in a small class. | 01:06 | ||
Happens when I try to redeclare a variable within a method where the variable name is in the method's signature. | 01:07 | ||
01:07
aborazmeh left
|
|||
discord6 | <theangryepicbanana> well that's probably the issue | 01:07 | |
<theangryepicbanana> afaik you can't redeclare variables like that | 01:08 | ||
bronco_creek | Sure. Just saying that a better error message would be helpful. No line numbers or anything. | ||
discord6 | <theangryepicbanana> ah it's only for subs | ||
<theangryepicbanana> seems like an overlooked bug | |||
<theangryepicbanana> might want to open an issue in the rakudo github repo | 01:09 | ||
bronco_creek | K. I'll see if I can remember how to do that tomorrow. In my time zone, it's now happy hour. Thanks discord6. | 01:11 | |
discord6 | <theangryepicbanana> ye | 01:13 | |
vrurg | bronco_creek: Would be better to test against latest rakudo | ||
discord6 | <theangryepicbanana> I'm on a bridge | 01:14 | |
<theangryepicbanana> (discord bridge) | |||
bronco_creek | Thanks theangrypicbanana. Don't jump! | 01:15 | |
vrurg | bronco_creek: there is a recent release of RakudoStar 2020.01 | ||
discord6 | <theangryepicbanana> lol | ||
bronco_creek | Thanks Vrurg. I'll test against the new version before filing a bug. | 01:16 | |
Voldenet | SmokeMachine: if you go with the regex analogy, you should have some equivalent to /.*/, but I doubt it'd be very nice, because then adding events to the stream would require additions to matchers | 01:24 | |
01:26
wamba joined
|
|||
Voldenet | SmokeMachine: maybe it would be good to be able to tell what is this matcher interested in and how should it treat unmatched events (ignore non-matching or fail the whole match) | 01:33 | |
01:34
sena_kun joined
01:36
Altai-man_ left
|
|||
Voldenet | SmokeMachine: it would be implicit that only event types used in the match are interesting, but `event { match ev1(*.a < 5)|ev2(*.b > -4) { ev1(#1) && ev2(b == #1.a) }}` | 01:38 | |
SmokeMachine | Voldenet: I liked that... I was thinking something like that but that would be possible to use inside of just parts of the match... (like blocks, []) | 01:40 | |
maybe we could have matches blocks inside of match blocks if we want it into just a part of the match... | 01:43 | ||
01:45
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
Voldenet | SmokeMachine: OTOH it would be very obvious what does this mean `event { match { ev(#1) && . ** 0..10 && ev(#1.a == a) }}` | 01:45 | |
01:48
wamba left
|
|||
Voldenet | SmokeMachine: and if someone really wanted such filter `event a { is match { ev(a < 5) ^ ev2(b > -4) } }; event ev2 { match { a(#1) && a(b == #1.a) } }`, though it sounds pointlessly verbose | 01:48 | |
SmokeMachine | Voldenet: I think ignore other events should be the default... don't you think? | 01:51 | |
Voldenet | I think so too, because it's practical | 01:53 | |
01:59
entonian joined
|
|||
SmokeMachine | yes | 02:00 | |
Voldenet | `event ev2 { use strict; match { a(#1) && . ** 0..* && a(b == #1.a) } }` | ||
SmokeMachine: `use strict` for more verbose syntax sounds ok | 02:01 | ||
m: no strict; $x = 42; | 02:02 | ||
evalable6 | |||
Voldenet | SmokeMachine: in fact, if event allowed more match blocks, every block could get its own strict matching rules | 02:03 | |
02:05
withp joined
|
|||
SmokeMachine | Voldenet: what about `event { match { :strict(ev1(*.a < 5)|ev2(*.b > -4)) ev1(#1) && ev2(b == #1.a) }}` ? | 02:06 | |
Voldenet | why :strict, it's not very obvious :grep would be more | 02:07 | |
but to me strict matching would mean "match this sequence exactly", like regex - it'd allow making things like mouse gestures | 02:08 | ||
SmokeMachine | yes... but would be more precise for port knocking... | 02:09 | |
the thing about the strict is that we only want it strict for a few events... I mean, only for events with the same ip on the port-knocking example... | 02:10 | ||
if some other ip start knocking, we don want to cancel the first ip that was doing the sequence... | 02:11 | ||
02:14
ufobat__ joined
|
|||
SmokeMachine | Voldenet: other way I thought would be: `even knocked { match { :track(?ip == #1.ip) { knock(#1, port == 1) knock(port == 2) knock(port == 3) } } }` | 02:14 | |
and everything inside that track should have ip == #1.ip and be strict | 02:15 | ||
02:17
titsuki joined
|
|||
Voldenet | it really asks for multiple chained matchers: `event knocked { match { knock(#1) knock(ip == #1) } and match { knock(port == 1) && knock(port == 2) && knock(port == 3) } } | 02:17 | |
uh | |||
`event knocked { match { knock(#1) knock(ip == #1.ip) } and match { knock(port == 1) && knock(port == 2) && knock(port == 3) } } | |||
and even `event knocked { match { knock(#1) knock(ip == #1.ip) } and match { use strict; knock(port == 1) && knock(port == 2) && knock(port == 3) } }` | |||
02:18
ufobat_ left
|
|||
Voldenet | in which case the second matcher would get by-ip matched sequence and then would need to strictly match the sequence given | 02:18 | |
SmokeMachine | Voldenet: think on `:track(bla == #ble.bla)` as a way of creating multiple tracks, where every event inside of each track has the same bla. and we can match inside of that track, an once that track has all the events that are important, we can exactly match... | 02:22 | |
02:22
aborazmeh left
02:24
molaf left
|
|||
Voldenet | if you can have multiple tracks, then it's very similar | 02:25 | |
02:27
Doc_Holliwood joined
|
|||
Voldenet | But how would you tell which type to accept into matcher? `match { :track(type == "knock", ip = #1.ip) knock(port == 1) && knock(port == 2) && knock(port == 3) }` | 02:29 | |
SmokeMachine | I was thinking to :track accept a filter (a == b) or a event-matcher (knock(?ip == #1.ip)) | 02:32 | |
or | chains | 02:33 | ||
I mean `:track(a = #bla.a | ev() | ev2(b == #ble.b))` | 02:35 | ||
02:36
molaf joined
|
|||
Voldenet | and what if :track() block would need its own :track block? :P `(match (track (track (knock (== ip (ip #1)))))) | 02:37 | |
SmokeMachine | :) | 02:38 | |
`:track(a == #bla.a | ev() | ev2(b == #ble.b))` (I've forgotten 1 =) | 02:39 | ||
Voldenet | there's grouping syntax though, might as well use it: match { [ knock(#1, ?ip == #1.ip) ] and [ knock(port == 1) && knock(port == 2) && knock(port == 3) ] } | 02:44 | |
03:04
cognomin_ joined
03:07
cognominal left
|
|||
withp | How should/does one typedef something that is under the hood a uint32 into a 'size_t' or a 'gpg_error_t' or what have you in NativeCall bindings? I was starting to just replace every instance of 'size_t' in this header with uint32 but got a profound feeling that I was missing something simple/fundamental. | 03:19 | |
03:33
Altai-man_ joined
03:36
sena_kun left
03:57
hungryd88 joined
04:00
hungrydonkey left
04:22
raven__ joined
04:25
darkstardevx left
04:56
MasterDuke left
05:09
Doc_Holliwood left,
molaf left
05:32
molaf joined
05:34
sena_kun joined
05:36
Altai-man_ left
05:37
molaf left
06:14
bronco_creek left
06:26
titsuki left
06:34
molaf joined
07:16
xinming left,
xinming joined
07:25
hungryd88 left
07:33
Altai-man_ joined
07:36
sena_kun left
07:42
dudz joined
07:45
hungrydonkey joined
07:46
xinming left,
xinming joined
08:09
hungryd95 joined
08:11
holyghost left
08:12
hungrydonkey left
08:14
hungrydonkey joined
08:15
hungryd95 left
08:31
eseyman left
08:34
hungryd26 joined
08:36
eseyman joined
08:38
hungrydonkey left
09:00
rindolf joined
09:10
hungrydonkey joined
09:13
hungryd26 left
09:23
NODE left
09:26
NODE joined
09:34
sena_kun joined
09:36
Altai-man_ left
09:39
andrzejku joined,
hungryd98 joined
|
|||
andrzejku | hi hello | 09:39 | |
moritz | good morning andrzejku | 09:40 | |
09:40
hungrydonkey left
|
|||
andrzejku | good morning :) we hadn't speak for a long time | 09:41 | |
moritz | indeed | 09:53 | |
my raku involvement is pretty low right now | |||
09:53
Doc_Holliwood joined
|
|||
moritz | but I do organize the German Perl and Raku workshop | 09:53 | |
09:54
cpan-raku left,
cpan-raku joined,
cpan-raku left,
cpan-raku joined
09:57
aborazmeh joined,
aborazmeh left,
aborazmeh joined
10:00
libertas joined
10:16
Black_Ribbon left
10:24
xinming left
10:26
xinming joined
|
|||
El_Che | moritz: that's not a low investment :) | 10:32 | |
andrzejku | moritz, it is better than do nothing :D | 10:35 | |
10:35
titsuki joined,
NODE left
10:36
aborazmeh left
10:37
NODE joined
|
|||
cpan-raku | New module released to CPAN! Term::Choose::Util (1.3.3) by 03KUERBIS | 10:40 | |
11:00
MasterDuke joined
11:09
mowcat joined
11:11
andrzejku left
11:26
andrzejku joined
11:30
mst_ is now known as mst
11:33
Altai-man_ joined
11:36
sena_kun left
11:49
Celelibi left
11:50
xinming left
11:51
xinming joined
12:09
chloekek joined
12:21
Celelibi joined
12:24
darkstardevx joined
12:26
raven__ left
12:27
raven__ joined
12:29
darkstardevx left
12:36
Ven`` joined
12:49
nosqrt joined
|
|||
cpan-raku | New module released to CPAN! Math::Libgsl::Matrix (0.1.0) by 03FRITH | 13:13 | |
13:14
andrzejku left
13:18
Kaiepi left
13:19
mniip left
13:21
Kaiepi joined
13:24
mniip joined
13:28
andrzejku joined
13:33
NODE left
13:34
NODE joined,
sena_kun joined
13:36
Altai-man_ left
13:39
__jrjsmrtn__ left
13:40
__jrjsmrtn__ joined
13:48
Ven`` left
14:04
pecastro joined
14:12
Itaipu left
14:15
Itaipu joined
14:16
chloekek left
14:20
andrzejku left,
japhb left
|
|||
Doc_Holliwood | Ok, this is spooky. | 14:56 | |
I have a script with 3 subs I benchmark | 14:57 | ||
When I run cmpthese(sub1, sub2); cmpthese(sub1, sub3); then sub1 runs 3000 times per second in both cases | 14:58 | ||
Now, when I run cmpthese(sub1, sub2) alone, sub1 also runs 3000 times per second | 14:59 | ||
BUT when I run cmpthese(sub1, sub3); alone, sub1 is consistently twice as fast with 6000 times per second | |||
What the actual guys? | |||
MasterDuke | jit/spesh warmup? or maybe some bad statistics? do MVM_SPESH_BLOCKING=1 and/or MVM_SPESH_NODELAY=1 change anything | 15:01 | |
jnthn | Doc_Holliwood: Would need to see the code to make any guesses. | ||
Doc_Holliwood | Sure. | ||
hold on | |||
15:02
chloekek joined
|
|||
jnthn | But in general, the optimizer will decide what to do based upon overall program behavior | 15:03 | |
15:03
withp left
|
|||
jnthn | (The dynamic one in MoarVM that keeps stats, I mean) | 15:03 | |
Doc_Holliwood | gist.github.com/holli-holzer/8e07a...d5beb5b852 | 15:04 | |
it's take-two-push-one that behaves that way | |||
when i uncomment the first cmpthese call (ignore the last six lines), the speed of it drops | 15:05 | ||
jnthn | I wonder what Bench is doing also... :) | 15:06 | |
Doc_Holliwood | Do you have a better idea? | 15:08 | |
Honest question, not a snappy response | |||
jnthn | Well, I know that if you do two loops one after the other in code, the optimization of the second one typically comes out worse | 15:09 | |
So was curious to see if it was doing that | |||
But no, it ain't. Though it does seem to run all the iterations of one thing before trying any of the others | 15:10 | ||
Doc_Holliwood | So you do see the same behaviour? | ||
jnthn | Haven't tried it, and too many slides to write today to do so | ||
Anyway, since spesh considers past program behavior to be an indicator of future program behavior, and doesn't know how to back out of that, then it's possible it can make choices based on what it sees happening which turn out to be bad for things that happen in the future | 15:11 | ||
Doc_Holliwood | WHAT? You ain't wann do no free work for me, how dare you? | ||
;-) | 15:12 | ||
jnthn | :) | ||
15:12
hungryd98 left
|
|||
jnthn | I'd suggest taking a look at --profile to see if there's clues in there | 15:12 | |
Doc_Holliwood | Yeah well, I have no clue how to interpret that output tbh | 15:13 | |
15:33
Altai-man_ joined
15:36
chloekek left,
sena_kun left
15:46
lucasb joined
15:47
cpan-raku left,
cpan-raku joined,
cpan-raku left,
cpan-raku joined
|
|||
cpan-raku | New module released to CPAN! Gnome::N (0.15.5) by 03MARTIMM | 16:00 | |
16:06
mowcat left
16:09
SCHAPiE left
16:13
SCHAPiE joined
16:20
Black_Ribbon joined
16:34
leont joined
|
|||
leont | p: say :f("foo" but False) eqv :f("foo" but False) | 16:34 | |
r: say :f("foo" but False) eqv :f("foo" but False) | |||
How do you run something in the bots again? | |||
tadzik | m: say 1 | 16:35 | |
evalable6 | 1 | ||
leont | m: say :f("foo" but False) eqv :f("foo" but False) | 16:36 | |
evalable6 | False | ||
leont | That is a bug, right? | ||
16:36
andrzejku joined
16:37
nightfrog left
|
|||
leont | I guess it's because both anonymous roles are unique | 16:37 | |
16:41
nightfrog joined
17:04
titsuki left
17:08
mowcat joined
17:11
rindolf left
17:35
Doc_Holliwood left
17:36
Altai-man_ left
17:39
aindilis left
17:41
aindilis` joined
17:46
Doc_Holliwood joined
|
|||
leont | m: say "foo" but False eqv "foo" but False | 17:50 | |
evalable6 | False | ||
18:09
tomaw joined
18:10
aindilis` left
18:11
aindilis joined
|
|||
cpan-raku | New module released to CPAN! Supply::Folds (0.0.1) by 03KAIEPI | 18:17 | |
18:18
rindolf joined
19:08
NODE left
19:11
NODE joined
|
|||
jdv79 | nopaste.linux-dev.org/?1291224 | 19:22 | |
any ideas? | |||
i have openssl-devel installed... | 19:23 | ||
openssl-devel-1.1.1d-2.fc31.x86_64 | 19:24 | ||
MasterDuke | jdv79: there have been a bunch of people with similar(ish) problems, and i think sometimes it was that they needed a particular version of openssl-devel | ||
i'd suggest searching the logs of this channel | 19:25 | ||
cpan-raku | New module released to CPAN! Math::Libgsl::BLAS (0.0.3) by 03FRITH | 19:27 | |
jdv79 | i only see this convo in a search | 19:28 | |
19:28
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
jdv79 | raku-dev search only shows nine runimating on native lib versioning or something | 19:29 | |
looks similar to github.com/sergot/openssl/issues/72 | 19:30 | ||
MasterDuke | should probably also search the perl6 named channels | ||
jdv79 | no bueno | 19:32 | |
hmm | |||
19:33
xinming left
|
|||
MasterDuke | github.com/sergot/openssl/issues/68 maybe | 19:33 | |
19:33
xinming joined
|
|||
jdv79 | this is fun cause i upgraded my box because an old version of openssl was cauing issues that nine fixed and now its broken again | 19:34 | |
MasterDuke | ha | ||
jdv79 | nine: any ideas? i get the feeling you know a lot about this area... | 19:35 | |
19:40
wildtrees joined
19:41
wildtrees left,
wildtrees joined
19:45
wildtrees left
19:46
wildtrees joined
19:55
roguelazer left
19:56
roguelazer joined
20:06
aborazmeh left
|
|||
Geth | doc: sjn++ created pull request #3226: Perl 6 -> Raku name changes + URL updates |
20:09 | |
20:11
andrzejku left
20:15
chloekek joined
20:19
sauvin left
20:22
sauvin joined
20:30
andrzejku joined
20:31
aborazmeh joined,
aborazmeh left,
aborazmeh joined
20:44
NODE left
20:45
NODE joined
20:49
xinming left
20:50
xinming joined
20:55
andrzejku left
21:03
nosqrt left
|
|||
nine | jdv79: have you reinstalled the OpenSSL module (with --force)? | 21:06 | |
SmokeMachine | Voldenet: what if `[:bla () () ()]` be equivalent of `[bla() bla() bla()]` and `[:bla(a == 1) (b == 2) (b == 3)]` == `[bla(a == 1, b == 2) bla(a == 1, b == 3)]`? That way, the port-knocking could b write like this: | ||
nine | after the upgrade | ||
SmokeMachine | www.irccloud.com/pastebin/IjrxM83m/ | ||
Voldenet: the `:` would mean that everything inside of the group (or the whole match) follow that rules... but you could override it for each event if you want... | 21:08 | ||
21:08
NODE left
|
|||
Voldenet | then using ¯\_(ツ)_/¯() would basically discard anything but ¯\_(ツ)_/¯, how to match more event types? | 21:09 | |
SmokeMachine | end if I want a event without type, I could `(any == thing)` | ||
Voldenet | uh | ||
then using :something() would basically discard anything but ¯\_(ツ)_/¯, how to match more event types? | |||
21:09
aborazmeh left
|
|||
Voldenet | I forgot having an emote on : whatever, lol | 21:09 | |
SmokeMachine | (that's not related to the strict stuff...) | 21:10 | |
Voldenet | I think that `:(type = "knock", ?ip == #1.ip)` could be equivalent | ||
SmokeMachine | yes, I think so... | 21:11 | |
21:11
NODE joined
|
|||
SmokeMachine | `:(a == 1) bla() bla()` == `bla(a == 1) bla(a == 1)` == `:bla(a == 1) () ()` == `:(type == "bla", a == 1) () ()` | 21:13 | |
Voldenet | and, obviously, :[bla(a == 1), ble()] | 21:14 | |
hm, nevermind, it's not obvious at all | |||
SmokeMachine | Voldenet: you mean `:[bla(a == 1), ble()] () ()` == `[bla(a == 1) ble] ** 2`? | 21:15 | |
Voldenet | yes, so it is quite obvious after all | 21:16 | |
SmokeMachine | I think that makes sense... | ||
moon-child | can someone explain to me the deal with why the lucky stiff? | ||
He apparently made p2 and potion, which seem cool | 21:17 | ||
SmokeMachine | but I'm not sure... I was thinking on `()` as a event matcher, and one event only... | ||
moon-child | if I go to his website now, it's techblogspam. But there's also a suspicious 'about' page indicating it might not be squatted | ||
SmokeMachine | Voldenet: `** N` and `** M..N` for `N != Inf` is implemented | 21:21 | |
Voldenet: But I'll need to redo the QueryStorage... it's too buggy... | 21:22 | ||
Voldenet | well, I'm not sure if it's necessary, but it's just syntax candy anyway | 21:23 | |
SmokeMachine | one query is overriding the previous query... :( | ||
21:28
xinming left,
xinming joined
|
|||
rypervenche | Should it be possible to chain methods when using .= ? | 21:29 | |
m: my $var = "SOMETHING"; $var .= substr(4).lc; say $var; | |||
evalable6 | THING | ||
rypervenche | In the REPL it will give the correct output, but not assign it to the variable. | 21:30 | |
MasterDuke | the repl has lots of problems | 21:31 | |
21:34
ufobat__ left
21:38
veesh_ joined
21:39
veesh left
21:49
mowcat left
|
|||
jnthn | But in this case the repl is probably right in telling that it evaluates to the result of .lc | 21:53 | |
$var .= substr(4).lc is parsed as ($var .= substr(4)).lc | 21:54 | ||
rypervenche | So chaining methods with .= isn't something desired/possible? | ||
lizmat | not at the moment, I would say | 22:00 | |
jnthn | Just them with .= ? | 22:01 | |
m: my $var = "MANSLAUGHTER"; $var .= substr(4) .=lc; say $var | 22:02 | ||
evalable6 | laughter | ||
jnthn | uh, just chain :) | ||
lizmat | heh :-) | 22:06 | |
rypervenche | Ahhh, it needs multiple .= . Ok, thanks. | 22:10 | |
22:15
stoned75 joined
22:17
chloekek left
22:18
xinming left,
xinming joined
|
|||
cpan-raku | New module released to CPAN! PDF::Class (0.4.1) by 03WARRINGD | 22:20 | |
22:22
veesh_ left
22:23
veesh joined
22:24
rindolf left
22:39
mojca left
22:44
mojca joined
22:58
grumble left
22:59
veesh left
23:00
grumble joined
23:03
stoned75 left
23:12
veesh joined
23:19
Cabanossi joined
|
|||
Geth | doc: Kaiepi++ created pull request #3227: Document how to type enums |
23:20 | |
23:24
imcsk8 left
23:26
imcsk8 joined
23:27
xinming left
23:29
xinming joined
23:33
cognominal joined
23:36
cognomin_ left
23:38
pecastro left
23:55
aborazmeh joined,
aborazmeh left,
aborazmeh joined
23:57
NODE left
23:58
NODE joined,
NODE left
|