»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:01
awwaiid left
00:04
cpage_ joined,
nhywyll left
00:07
awwaiid joined
00:09
mcmillhj joined
00:10
Cabanossi left
00:12
awwaiid left,
Cabanossi joined
00:13
awwaiid joined
00:18
awwaiid left
00:21
BenGoldberg joined
|
|||
BenGoldberg | Does anyone know if there is, somewhere in moar, an identity function which takes a void* and returns the same? | 00:24 | |
00:25
awwaiid joined
00:30
awwaiid left
00:31
awwaiid joined
|
|||
BenGoldberg | I want to turn a Routine into a Pointer, which can be stored in a CStruct, which would then get passed to a library routine... I'm 99% sure that I can make an identity function dwiw. | 00:31 | |
00:33
lookatme joined
|
|||
lookatme | morning | 00:33 | |
00:36
awwaiid left
00:43
nadim left
00:47
awwaiid joined
00:51
awwaiid left
00:55
Cabanossi left
00:58
Cabanossi joined
01:03
klapperl_ joined
01:04
klapperl left
01:07
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:08
awwaiid joined
01:10
imcsk8 left
01:17
TimToady left,
imcsk8 joined
01:19
awwaiid left
01:21
awwaiid joined
01:23
TimToady joined
01:26
awwaiid left
01:27
awwaiid joined,
TimToady left,
skids joined
01:29
raschipi joined,
CodeSnow is now known as pilne
01:32
awwaiid left
01:45
TimToady joined
02:06
awwaiid joined
02:10
Cabanossi left,
awwaiid left
02:13
Cabanossi joined,
mcmillhj left
02:23
noganex joined
02:26
noganex_ left
02:27
awwaiid joined
02:32
awwaiid left,
pilne left
02:38
awwaiid joined
02:41
mcmillhj joined,
MasterDuke joined
02:42
aborazmeh left
02:43
awwaiid left
02:44
awwaiid joined,
mcmillhj left
02:48
awwaiid left
02:54
awwaiid joined
02:56
mcmillhj joined
|
|||
rouking_ | what's the difference between having a whenever block inside a react block or not? | 02:56 | |
02:59
awwaiid left
03:01
mcmillhj left
03:05
awwaiid joined
03:08
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
03:10
awwaiid left
03:11
awwaiid joined
03:12
mcmillhj joined
03:15
skids left
03:16
mcmillhj left
03:22
awwaiid left,
AlexDaniel left
03:23
grondilu left,
awwaiid joined
03:24
skids joined
03:27
awwaiid left
03:29
awwaiid joined
03:30
raschipi left
03:35
colomon left,
ChoHag joined
03:39
Cabanossi left
03:40
awwaiid left
03:41
awwaiid joined
03:42
Cabanossi joined
03:43
mcmillhj joined
03:44
skids left
03:45
BenGoldberg left,
TimToady left
03:46
awwaiid left,
khw left
03:48
mcmillhj left,
ChoHag left
03:57
awwaiid joined
04:02
awwaiid left,
awwaiid joined
04:03
kaare_ joined
04:09
awwaiid left
04:10
Cabanossi left
04:12
Cabanossi joined
04:14
TimToady joined,
astj left
04:15
awwaiid joined
04:20
awwaiid left,
awwaiid joined
04:29
awwaiid left
04:31
mcmillhj joined
04:33
astj joined
04:36
mcmillhj left
04:41
awwaiid joined
04:45
awwaiid left
04:47
mcmillhj joined,
awwaiid joined
04:49
curan joined
04:51
|oLa| joined,
mcmillhj left
04:56
Cabanossi left
04:57
awwaiid left,
Cabanossi joined
05:00
astj left
05:01
astj joined
05:02
cpage_ left
05:03
awwaiid joined
05:11
wamba joined
05:12
awwaiid left
05:13
awwaiid joined
05:20
xtreak joined
05:23
awwaiid left
05:29
TimToady left,
cpage_ joined
05:30
rindolf joined
05:33
domidumont joined
05:38
domidumont left
05:39
domidumont joined
05:40
prodotiscus joined,
awwaiid joined,
xtreak left
05:44
TimToady joined
|
|||
moritz | lichtkind: pong | 05:48 | |
yoleaux | 22 Jun 2017 21:07Z <eveo> moritz: do you remember what "not raising with Junctions" means in this commit? We now have a situation that Junction == Numeric results in a Junction, but Junction != Numeric collapses the Junction and returns a Bool. That difference wasn't intended, was it? github.com/rakudo/rakudo/commit/4a...d8d88c7774 | ||
05:50
domidumont left
|
|||
moritz | .tell eveo the idea was that any(2, 3) != $x is interpreted as !(any(2,3) == $x), because the former is basically never what you want. That's why the != variant returns a Bool and the == a Junction | 05:50 | |
yoleaux | moritz: I'll pass your message to eveo. | ||
05:50
awwaiid left
05:51
TimToady_ joined,
TimToady left,
awwaiid joined
05:56
awwaiid left
05:57
awwaiid joined
06:05
domidumont joined
06:08
awwaiid left
06:14
awwaiid joined
06:18
xtreak joined
06:19
wamba left,
prodotiscus left,
prodotiscus joined
06:22
zapwai left
06:23
TimToady_ left,
awwaiid left,
TimToady joined
06:25
Cabanossi left
06:26
xtreak left,
Cabanossi joined
06:30
prodotiscus left,
prodotiscus joined,
awwaiid joined
06:33
mcmillhj joined
06:35
awwaiid left,
abraxxa joined
06:37
mcmillhj left
06:46
awwaiid joined
06:51
scimon joined,
awwaiid left,
|oLa| left
06:52
awwaiid joined
06:57
awwaiid left
06:58
awwaiid joined
07:04
wamba joined
07:05
awwaiid left
07:11
awwaiid joined
07:18
awwaiid left
07:19
ufobat joined
07:24
Cabanossi left
07:25
salv0 joined
07:26
Cabanossi joined
07:31
prodotiscus left
07:34
TimToady left,
TimToady joined
07:35
prodotiscus joined
07:39
Sense8 joined
07:46
awwaiid joined
07:47
salv0 left
07:49
ChoHag joined
07:50
TimToady left
07:51
awwaiid left,
awwaiid joined
07:53
zakharyas joined
07:55
awwaiid left
08:00
salv0 joined,
Sgeo_ joined
08:01
Sgeo left
08:03
TimToady joined
08:05
keylet left
08:08
TimToady left
08:13
awwaiid joined
08:17
|oLa| joined,
awwaiid left
08:19
awwaiid joined,
ChoHag left
08:20
TimToady joined
08:21
|oLa| left
08:24
awwaiid left,
awwaiid joined
08:31
Sense8 left,
Sense8 joined
08:35
awwaiid left,
awwaiid joined
08:39
awwaiid left
08:41
awwaiid joined
08:45
awwaiid left,
[ptc] joined
08:46
awwaiid joined
08:48
TimToady left
08:51
TimToady joined
08:54
rindolf left,
awwaiid left
08:55
Sense8 left
08:58
rindolf joined
08:59
TimToady left
09:00
awwaiid joined
09:06
TimToady joined,
awwaiid left
09:10
Cabanossi left
09:11
TimToady left
09:12
Cabanossi joined
09:13
awwaiid joined
09:16
TEttinger left
09:17
TimToady joined,
awwaiid left
09:24
awwaiid joined
09:28
awwaiid left
09:29
TimToady left,
TimToady joined,
awwaiid joined
09:30
parv joined
09:34
awwaiid left
09:40
awwaiid joined
09:46
awwaiid left
09:47
awwaiid joined
09:48
eveo joined
09:49
TimToady left
|
|||
eveo | moritz: the problem with it is that it's a special case that tries to guess "what I really want". .Bool collapses junctions, but now it's .Bool, or !=, 'cause there it's not really what you want | 09:49 | |
moritz: I'd still evaluate 5|6 != 42 in a Bool context, so I'm not really following what I'd not really want :/ | |||
m: say one(5, 6) != 6 | 09:50 | ||
camelia | False | ||
eveo | m: say one(5, 6) == 6 | ||
camelia | one(False, True) | ||
eveo | m: say so one(5, 6) == 6 | ||
camelia | True | ||
eveo | Yeah, and it's wrong too | ||
09:52
bhm left
09:55
lookatme left
09:56
TimToady joined,
Cabanossi left
09:57
Cabanossi joined,
awwaiid left
10:03
awwaiid joined
|
|||
Xliff | BenGoldbert: Let me know if you ever find an answer to that question. | 10:04 | |
^^ BenGoldberg | |||
10:05
colomon joined
|
|||
Xliff | BenGoldberg: Wouldn't nativecast work, though? | 10:06 | |
10:08
domidumont left
10:09
TimToady left
10:11
nhywyll joined
10:12
awwaiid left,
prodotiscus left
10:14
prodotiscus joined
10:18
awwaiid joined
10:21
TimToady joined
10:22
awwaiid left
10:24
awwaiid joined
|
|||
tbrowder | hi. #perl6! is the person responsible for perl6.party present? | 10:26 | |
moritz | tbrowder: that would be eveo | 10:27 | |
eveo: the problem with != and junctions was that people were quite often surprised by the results | 10:28 | ||
eveo | moritz: currently result is wrong | ||
I'd say that's quite surprising | |||
moritz | eveo: no, it's as designed and tested | ||
it's not consistent with the rest, which you can count as surprising | |||
10:29
awwaiid left,
awwaiid joined
|
|||
tbrowder | thanks, moritz. i was going to ask about the site details, but i just found the github link WAY at the bottom. (anyone else not fond of the single-page site format?) | 10:30 | |
eveo | Make your own site then | ||
tbrowder | but the blog entries look nice. | ||
moritz | eveo: search for "Use of negative operators with junctions" in S03 | 10:31 | |
eveo | m: say one(5, 6, 6) !== 6 | 10:32 | |
camelia | True | ||
eveo | m: say one(5, 6, 6) !=== 6 | ||
camelia | True | ||
eveo | S03:00 | ||
synopsebot6 | Link: design.perl6.org/S03.html#line_00 | ||
tbrowder | eveo: maybe i will, that's why i was looking for site construction details. | ||
10:32
itaylor57 left
|
|||
moritz | S03:3327 | 10:32 | |
synopsebot6 | Link: design.perl6.org/S03.html#line_3327 | ||
eveo | tbrowder: out of your own articles. The ones on perl6.party are copyrighted. | 10:33 | |
tbrowder | sure, i understand | ||
eveo | moritz: that section entirely ignores that there's more than one type of junction | 10:34 | |
10:34
awwaiid left
|
|||
eveo | "as designed and tested" for a poorly thought special case | 10:34 | |
10:35
awwaiid joined
10:36
itaylor57 joined
10:37
bhm joined
|
|||
eveo | m: say all(5, 6) != 6 | 10:37 | |
camelia | True | ||
eveo | m: say none(5, 6) != 6 | ||
camelia | True | ||
eveo | It only works for an `any` junction which coincidentally is the only junction shown in the spec | 10:38 | |
tbrowder | i've been looking for a good blogging platform and attended Henry Van Styn's Rapi::Blog session at TPC NA 2017. looks like a good possibility. | ||
10:40
awwaiid left
10:41
AlexDaniel joined
|
|||
eveo | huggable: 6.d | 10:43 | |
huggable | eveo, Proposals for 6.d language: github.com/perl6/specs/blob/master/v6d.pod | ||
10:46
awwaiid joined
|
|||
eveo | m: say 2 ne 1 & 2 & 3 | 10:50 | |
camelia | True | ||
10:50
awwaiid left
|
|||
eveo | m: say 2 !~~ 1 | 2 | 3 | 10:51 | |
camelia | False | ||
eveo | m: say 2 !== 1 | 2 | 3 | ||
camelia | False | ||
10:52
awwaiid joined
10:54
curan left
|
|||
eveo | At least this shit is documented. | 10:55 | |
Perl 6 just lost one more piece of my heart due to this. | |||
Consistently inconsistent. | |||
10:55
eveo left
10:57
ggoebel left
10:59
awwaiid left
11:05
awwaiid joined
11:08
wamba left
11:09
Cabanossi left
11:10
awwaiid left
11:11
ggoebel joined
11:12
Cabanossi joined
11:16
awwaiid joined
11:18
TimToady left,
TimToady joined
11:21
awwaiid left
11:22
awwaiid joined
11:27
awwaiid left
11:29
awwaiid joined
11:36
awwaiid left
11:43
awwaiid joined
11:44
[ptc] left,
[ptc] joined
11:48
awwaiid left
11:49
awwaiid joined
11:53
awwaiid left
11:54
awwaiid joined
12:05
awwaiid left
12:06
awwaiid joined,
parv left
12:07
TimToady left
12:10
Cabanossi left
12:11
domidumont joined,
awwaiid left,
Cabanossi joined
12:12
awwaiid joined
12:17
awwaiid left
12:18
awwaiid joined
12:20
TimToady joined
12:23
awwaiid left
12:24
awwaiid joined
12:35
awwaiid left
12:36
awwaiid joined
12:37
wamba joined
12:38
salv0 left
12:41
awwaiid left
12:42
awwaiid joined
12:44
domidumont left
12:46
domidumont joined,
awwaiid left
12:47
pmurias joined,
awwaiid joined
12:49
TimToady left,
ZofBot left,
TimToady joined,
ZofBot joined,
ChanServ sets mode: +v ZofBot
12:52
mcmillhj joined,
awwaiid left,
wamba left
12:53
awwaiid joined,
TimToady left,
setty1 joined
12:54
setty1 left,
setty1 joined,
Cabanossi left
12:57
Cabanossi joined
|
|||
perlpilot | With $obj.can('method'), is there a way to find out where candidates came from without inspecting their signatures? | 13:01 | |
13:03
jdv79_ is now known as jdv79,
awwaiid left,
lollercopter joined
|
|||
lollercopter | perlpilot: yes, .package | 13:03 | |
m: say "".can("contains")».package | 13:04 | ||
camelia | ((Str) (Cool)) | ||
perlpilot | ah, thanks. I knew there must've been something. | ||
I even looked at the list of methods and didn't see that one. | 13:05 | ||
13:09
awwaiid joined
13:12
prodotiscus left,
prodotiscus joined
|
|||
perlpilot | Hmm. That doesn't work too well with multi methods. (or it's making some sort of indictment of my intelligence ... | 13:12 | |
m: class C { multi method m() { }; multi method m($a,$b) { } }; C.can('m').[0].package | |||
camelia | ( no output ) | ||
13:13
TimToady joined
|
|||
perlpilot | m: class C { multi method m() { }; multi method m($a,$b) { } }; C.can('m').[0].package.say | 13:13 | |
camelia | (Dummy) | ||
lollercopter | You get a proto. You need to get to the actual .candidate you want | ||
perlpilot | sure, but that just means I need to adjust my idea of what .can does. | 13:15 | |
(I've been thinking of it as returning candidates) | |||
lollercopter | perlpilot: what are you trying to accomplish? | ||
There's .cando method you can use to pick a candidate | |||
(OTOH, it'd need the invocant) | 13:16 | ||
perlpilot | "accomplish" is a strong word. I'm just playing. I was hoping for something like $obj.can('method').classify(*.package.perl) to give me candidates per class | 13:17 | |
actually, I was imagining that there should be a modifier to .can that does that, but I don't know how useful it would be to the masses. | 13:20 | ||
lollercopter | perlpilot: you just need to classify the candidates themselves | ||
m: class C { multi method m() { }; multi method m($a,$b) { } }; C.can('m')».candidates.flat.classify(*.package.perl).say | |||
camelia | {C => [m m]} | ||
lollercopter | m: class C { multi method m() { }; multi method m($a,$b) { } }; C.can('m')».candidates.flat.classify(*.package.perl)<C>.head.signature.say | 13:21 | |
camelia | (C $: *%_) | ||
lollercopter | m: class C { multi method m() { }; multi method m($a,$b) { } }; C.can('m')».candidates.flat.classify(*.package.perl)<C>.tail.signature.say | ||
camelia | (C $: $a, $b, *%_) | ||
lollercopter | m: "".can('contains')».candidates.flat.classify(*.package.perl).say | ||
camelia | {Cool => [contains], Str => [contains contains contains contains]} | ||
lollercopter | No need for shoving "modifiers" all over the codebase. | 13:22 | |
perlpilot | yeah, I suppose so. I just didn't want to type so much ;) | 13:23 | |
13:24
awwaiid left
13:27
ChoHag joined
13:28
xtreak joined
13:29
lollercopter left
13:30
TimToady left
13:33
aborazmeh joined,
aborazmeh left,
aborazmeh joined
13:40
awwaiid joined
13:44
skids joined
13:45
ctilmes joined
13:48
xtreak left
13:51
abraxxa left,
mr-foobar joined
13:54
mr-fooba_ left,
Cabanossi left
13:56
Cabanossi joined
14:00
ChoHag left
14:02
prodotiscus left,
prodotiscus joined
14:03
keylet joined,
araraloren joined
|
|||
araraloren | evening | 14:03 | |
14:04
TimToady joined
14:10
nhywyll left
14:12
prodotiscus left
|
|||
[Coke] | morning. | 14:13 | |
14:14
keylet left,
setty1 left
14:15
prodotiscus joined
|
|||
Geth | ecosystem: 827738a5ef | (Curt Tilmes)++ | META.list Add TCC, Tiny C Compiler, to ecosystem See github.com/CurtTilmes/perl6-tcc |
14:16 | |
[Coke] | coconut-lang.org/ | ||
14:18
prodotiscus_ joined
|
|||
prodotiscus_ | how to read a variable from STDIN? | 14:19 | |
rightfold | prodotiscus_: That's a rather vague question. | ||
Stdin provides a stream of bytes. | 14:20 | ||
ctilmes | prodotiscus_: Check out docs.perl6.org/routine/prompt | ||
rightfold | You can decode the bytes into some data structure. | ||
14:20
nightfrog left
14:24
raschipi joined
|
|||
prodotiscus_ | `Enter your action (,) > Cannot flush handle: Failed to flush filehandle: Invalid argument` | 14:33 | |
I get this when i try `$action = prompt "Enter your action..";` | 14:34 | ||
jnthn | prodotiscus_: What Rakudo version do you have? | 14:35 | |
prodotiscus_ | 2017.05-389-g326faed built on MoarVM version 2017.05-71-gad6ab26 | 14:36 | |
jnthn | Ah, not a release version | ||
prodotiscus_ | I use that on my laptop I'm now working now | ||
what version can I use to avoid this? | |||
jnthn | There was a bug that caused that; it never appeared in a release, but there were several days where a HEAD built could get you it | 14:37 | |
The 2017.06 release version was fine in this regard | |||
prodotiscus_ | ok, thank you | ||
jnthn | Or latest if you like to live on the edge :) | 14:38 | |
raschipi | Living on the edge means one will get things like that from time to time. | 14:40 | |
14:47
setty1 joined
14:49
TimToady left,
xzhao joined
14:50
TimToady joined
14:54
alimon joined
|
|||
prodotiscus_ | m: class A { has Str $!foo is required; method TOP { say "string, $!foo and something else" }; }; | 14:57 | |
camelia | ( no output ) | ||
prodotiscus_ | m: class A { has Str $!foo is required; method TOP { say "string, $!foo and something else" }; }; A(foo => "bar"); | ||
camelia | Cannot coerce to A with named arguments in block <unit> at <tmp> line 1 |
||
prodotiscus_ | m: class A { has Str $!foo is required; method TOP { say "string, $!foo and something else" }; }; A.new(foo => "bar"); | ||
camelia | The attribute '$!foo' is required, but you did not provide a value for it. in block <unit> at <tmp> line 1 |
||
ctilmes | prodotiscus_: Set private attributes with a submethod BUILD() | 14:59 | |
prodotiscus_: docs.perl6.org/language/classtut#Constructors | |||
prodotiscus_ | thank you ctilmes | 15:00 | |
m: class A { has Str $.foo is required; method TOP { say "string, $.foo and something else" }; }; A.new(foo => "bar"); | |||
camelia | ( no output ) | ||
prodotiscus_ | that's if I use public variable | 15:01 | |
15:01
alimon left
15:03
alimon joined
15:04
prodotiscus_ left,
TimToady left
15:05
|oLa| joined
|
|||
ctilmes | prodotiscus_: Right, it works win the public variable | 15:05 | |
*with | 15:06 | ||
15:08
troys joined
15:09
Cabanossi left,
cdg joined
15:10
nightfrog joined
15:11
Cabanossi joined
15:15
domidumont left
15:16
nightfrog is now known as culb
15:18
zapwai joined,
araujo joined
15:22
Ven joined,
Ven is now known as Guest2886
15:23
aborazmeh left
15:26
cdg left,
cdg joined
15:27
TimToady joined
15:30
keylet joined
15:32
TimToady left
15:34
ufobat left
15:40
TimToady joined,
khw joined
15:44
rindolf left,
troys is now known as troys_,
TimToady left
15:47
[ptc] left
15:48
araujo left
15:51
[ptc] joined
15:53
scimon left
15:56
TimToady joined,
lichtkind left
16:02
cdg_ joined
16:03
cdg__ joined
16:05
cdg left
16:07
cdg_ left
16:08
keylet left
16:09
lichtkind joined
16:11
Guest2886 left
16:13
Ven_ joined
16:14
zakharyas left
16:17
troys_ is now known as troys,
Ven_ left,
hoelzro left,
Sgeo__ joined
16:20
Sgeo_ left
16:21
hoelzro joined
16:22
Cabanossi left
16:25
Cabanossi joined
16:30
Cabanossi left
16:33
Cabanossi joined
16:34
TimToady left,
Cabanossi left
16:35
prodotiscus left,
Cabanossi joined
16:36
prodotiscus joined,
cdg__ left
16:40
TimToady joined
16:52
rindolf joined,
salv0 joined
17:04
cdg joined
17:06
TimToady left
17:08
troys is now known as troys_
17:09
cdg left
17:13
troys_ is now known as troys
17:16
araraloren left
17:17
Cabanossi left
17:19
Cabanossi joined
17:23
mr-fooba_ joined,
domidumont joined
17:25
mr-foobar left,
AlexDaniel left
17:26
salv0 left
17:34
raschipi left
17:38
TimToady joined
17:41
prodotiscus left
17:42
Ven joined,
Ven is now known as Guest80443
17:45
pilne joined
17:48
Guest80443 left
18:00
TimToady left
18:01
TimToady joined
18:02
Cabanossi left
18:04
Cabanossi joined
18:05
mr-foobar joined,
TimToady left
18:07
TimToady joined
18:09
mr-fooba_ left
18:12
mr-fooba_ joined
18:13
hoelzro left
18:14
mr-foobar left
|
|||
timotimo | we should probably put TWEAK in there instead of BUILD | 18:16 | |
because if you have a BUILD, no default values or anything like that will be done for you | 18:18 | ||
but TWEAK doesn't have that property | |||
mst | hence why I whined until somebody added TWEAK :) | 18:19 | |
18:20
cdg_ joined
18:21
cdg joined
|
|||
moritz | mst++ | 18:23 | |
18:24
cdg_ left
18:31
espadrine joined
18:46
wamba joined
18:51
nullcone joined
19:18
domidumont left
19:24
colomon_ joined
19:25
colomon left,
colomon_ is now known as colomon
19:27
grondilu joined
19:29
cpage_ left
19:31
hoelzro joined
19:36
andrzejku joined
19:40
mr-fooba_ left
19:44
mr-foobar joined
19:46
gfldex-mobil joined
19:49
cog_ left
19:54
DesertJellyfish left
20:02
Cabanossi left
20:03
AlexDaniel joined
20:04
Cabanossi joined
20:06
cpage_ joined
20:07
TEttinger joined
20:10
mr-foobar left
20:12
mr-foobar joined
20:15
gfldex-mobil left
20:20
sufrostico left
|
|||
samcv | my git branch output is so nice now comfy.moe/llcmld.png | 20:28 | |
:-) | |||
will provide code if anybody wants their git branch output to look like that :) | |||
20:31
troys is now known as troys_
20:32
domidumont joined
20:34
domidumont left
20:46
lizmat_ joined,
lizmat left
20:47
sufrostico joined
20:49
sufrosti1o joined
20:50
skids left
20:52
lizmat_ is now known as lizmat
|
|||
rindolf | TimToady: hi | 20:53 | |
lizmat: hi | |||
lizmat | rindolf o/ | ||
rindolf | lizmat: sup? | 20:54 | |
lizmat | not much, with you? | ||
rindolf | lizmat: i closed an old KDE bug today as it was fixeed | 20:55 | |
lizmat: and I fixed a PySol bug that I reported | |||
lizmat | rindolf++ | ||
rindolf | lizmat: thanks :-) | 20:56 | |
lizmat: none of these are particularly p6-related | |||
20:57
|oLa| left
|
|||
lizmat | it's still early :-) | 20:57 | |
ctilmes | Some thoughts on eqv() I shared with TimToady et. al. at YAPC: curt.tilmes.org/2017-TPC-eqv | ||
21:02
Cabanossi left
21:04
lollercopter joined,
[ptc] left,
Cabanossi joined
21:05
[ptc]_ joined
21:06
[ptc]_ left
21:07
troys_ is now known as troys
|
|||
lollercopter | ctilmes: +1 on that. The only worry is performance. And if perhaps we should leave the .perl's as is and only do the more expensive per-attribute eqv if the class wants to (e.g. if .eqv method is present but returns Nil) | 21:07 | |
21:08
[ptc] joined
|
|||
lollercopter | ctilmes: and sidenote: is-deeply uses "eqv semantics" not eqv op (it does Seqs differently for example). The propper way to run that test would've been cmp-ok $o1, &[eqv], $o2 | 21:09 | |
ctilmes | Note that .perl iterates over the attributes anyway... | ||
lollercopter | ctilmes: only by default. | 21:10 | |
ctilmes: and simply making a string out of them is probabpy cheaper than eqv'ing each | |||
ctilmes | I think you could construct scenarios where each was cheaper/more expensive | 21:11 | |
21:12
mr-foobar left
21:13
andrzejku left
|
|||
lollercopter | m: my @a = ^1000; my @b = ^1000; for ^1000 { $ = @a eqv @b }; say now - INIT now | 21:14 | |
camelia | 1.32335701 | ||
lollercopter | m: my @a = ^1000; my @b = ^1000; for ^1000 { $ = @a eq @b }; say now - INIT now | ||
camelia | 1.13419479 | ||
21:14
mr-foobar joined
|
|||
ctilmes | This is how Test runs is-deeply: github.com/rakudo/rakudo/blob/nom/...t.pm6#L638 | 21:15 | |
$got eqv $expected | |||
lollercopter | ctilmes: look before that | 21:16 | |
ctilmes | Yes, I see, but I still maintain most people would expect what I tried to work | ||
lollercopter | ctilmes: also, your example with sets is wrong. The only reason the perls differed is due to a bug in Setty.perl. It's meant to be ordered | 21:17 | |
ctilmes | There are other scenarios where you pass classes (or subclasses) around, and would expect it to work | ||
21:17
cpage_ left
|
|||
lollercopter | ctilmes: I think I'm retracting that +1 now that I think of it. .perl is meant to roundtrip to give the original object back. Doing eqv on attributes is kinda pointless because you don't test any extra information .perl doesn't give you and you still don't solve the problen entirely since the private attributes aren't tested, you can still end up with uneqv eqv objects | 21:19 | |
ctilmes | What do you think about .eqv as a method, and have the fallback check for that? | 21:20 | |
(also iterating the attributes and eqv-ing them can short cut on failure, whereas .perl-ing always iterates every attribute) | |||
lollercopter | True | 21:21 | |
21:21
cpage_ joined
|
|||
lollercopter | ctilmes: perhaps .EQV method? something less-likely to exist aacidentally for other reasons | 21:23 | |
\o | |||
21:23
lollercopter left
|
|||
ctilmes | yes, good point | 21:23 | |
21:25
dha joined,
dha left,
mcmillhj left
21:32
espadrine left
21:36
setty1 left
21:37
rindolf left
21:41
mr-foobar left,
mcmillhj joined
21:42
mr-foobar joined
21:45
mcmillhj left
21:47
Cabanossi left,
mcmillhj joined
21:49
Cabanossi joined
21:52
mcmillhj left
21:54
jeek left
22:00
lizmat left
22:01
lizmat joined,
lizmat left
22:02
lizmat joined
22:05
rouking_ left
22:11
mr-foobar left
|
|||
tbrowder | ctilmes: what about the fact that you can overload "==" and it works? | 22:12 | |
22:13
jeek joined
22:14
mr-foobar joined
|
|||
tbrowder | it works on your class and least it's a workaround until eqv is fixed (if ever) | 22:19 | |
22:26
salv0 joined
22:27
salv0 left
22:29
skids joined
|
|||
nebuchadnezzar | new official Debian packages will be published soon | 22:32 | |
nebuchadnezzar really need a personal ZofBot ;-) | 22:33 | ||
22:40
sufrosti1o left,
sufrostico left
22:42
mr-foobar left
22:45
mr-foobar joined,
cog_ joined
22:48
Cabanossi left
22:49
robertle left,
Cabanossi joined
|
|||
timotimo | it's probably open source? | 22:57 | |
23:16
wamba left
|
|||
Voldenet | m: { my $x=$0; $x ~~ s:g/<[\ \-]>/_/; $x.say } if "Hostname=This is a-test" ~~ /^Hostname\=(.*)$/ | 23:22 | |
camelia | This_is_a_test | ||
Voldenet | is there any faster way to write this? | 23:23 | |
23:29
BenGoldberg joined
23:36
pmurias left
23:38
mcmillhj joined
23:43
mcmillhj left
23:44
mr-foobar left
23:48
mr-foobar joined
23:50
mcmillhj joined
23:55
mcmillhj left
23:57
lollercopter joined
|
|||
lollercopter | Voldenet: yup | 23:57 | |
m: for ^10000 { { my $x=$0; $x ~~ s:g/<[\ \-]>/_/; } if "Hostname=This is a-test" ~~ /^Hostname\=(.*)$/ }; say now - INIT now | |||
camelia | 2.1162005 | ||
lollercopter | m: for ^10000 { my $v = "Hostname=This is a-test"; if $v.starts-with: 'Hostname=' { my $x = $v.substr(9).subst(' ', '_', :g).subst('-', '_', :g); } }; say now - INIT now | ||
camelia | 0.1612127 | ||
lollercopter | m: my $v = "Hostname=This is a-test"; $v.substr(9).subst(' ', '_', :g).subst('-', '_', :g).say if $v.starts-with: 'Hostname=' | 23:58 | |
camelia | This_is_a_test | ||
lollercopter | Looks right |