»ö« 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:13 llfourn joined 00:17 troys_ is now known as troys 00:28 ZzZombo left, ZzZombo joined 00:34 cdg_ joined 00:37 cdg left 00:41 Zoffix joined
Zoffix I stole it. 00:44
yoleaux 7 Dec 2017 17:16Z <tbrowder> Zoffix: thnx for the new highlighter!
Zoffix But... there's a whole nest of buggers in RI::I :o
00:44 Herby_ joined
Herby_ o/ 00:44
Zoffix \o
Writing tests ATM to cover them all.
00:46 mienaikage joined
Zoffix First pass gonna be quite a deopt. 00:51
00:52 patrickz joined, perlpilot_ joined 00:56 patrickz_ left, BenGoldberg joined 00:59 mson joined
timotimo do we have some document where things like "an iterator shall not be asked to pull-one after IterationEnd has been encountered" and friends? 01:09
Zoffix It's not me being a moron, right? Iterator.count-only/.bool-only are concerned with the *current* state of the iterator not its initial state? That is I can always legally do `.pull-one xx .count-only` without violating Iterator protocol
timotimo i wonder if we ever decided upon what count-only does if values have already been consumed
Zoffix timotimo: that should be in the docs for Iterator type
That one I know 'cause jnthn said that. Dunno about countonly 01:10
It makes sense for it to adjust the stuff after iteration.
01:10 stmuk_ joined
timotimo mhm 01:11
Zoffix I already got 87 lines of bug cover tests and I'm only 60% through RI::I
timotimo well, the docs seem to say you can count-only after pulling values and get the number of remaining items
Zoffix The only problem is I wrote that some time back :} 01:12
timotimo hah :)
01:13 stmuk left 01:17 cdg_ left 01:20 lookatme joined
timotimo maybe it'd be good if there were a way for count-only to signal "oh, turns out i can't tell you after all!" 01:21
hm. or is that what the default implementation of count-only does?
Zoffix There's no default impl. 01:22
timotimo i just saw. hmm.
we use nqp::can and friends to figure that out, then?
Zoffix yeah
timotimo goes to bed 01:23
Zoffix \o
01:29 unclechu joined, tadzik joined, AlexDaniel` joined, tyil[m] joined, CIAvash[m] joined, mack[m] joined, Garland_g[m] joined, wamba[m] joined, M-Illandan joined, wictory[m] joined, Matthew[m] joined 01:30 ilmari[m] joined, xui_nya[m] joined
Zoffix What does this mean again? "This representation (NativeRef) does not support elems (for type IntAttrRef)" 01:32
m: class Foo { has int $!x; method z { use nqp; nqp::elems($!x) } }.new.z 01:33
camelia This representation (NativeRef) does not support elems (for type IntAttrRef)
in method z at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix rocks out to www.youtube.com/watch?v=jkPAX8Zydiw 01:37
Herby_ perfect programming music :)
Zoffix :) 01:38
01:39 mcmillhj joined 01:44 mcmillhj left 01:46 troys is now known as troys_ 01:53 cdg joined 01:58 cdg left
Zoffix .tell lizmat I stole the .tail(5).tail bug. Would you be able review my fix in that and other iterators github.com/rakudo/rakudo/commit/af9812fa73 ? Unless I'm misunderstanding iterator protocol, the .count-only/.bool-only need to account for iterator's consumation and adjust their values. I removed some of the impls because I assumed they weren't worth it. The one (IIRC only one...) exception is 02:01
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix RI::I.Combinations; I couldn't figure out how to impl them. I also added tests in github.com/perl6/roast/commit/88a12f6984
.tell lizmat RI::I.Combinations; I couldn't figure out how to impl them. I also added tests in github.com/perl6/roast/commit/88a12f6984 02:02
yoleaux Zoffix: I'll pass your message to lizmat.
02:03 comborico1611 left
Zoffix powers down 02:03
02:03 Zoffix left 02:19 eliasr left 02:26 astj left, astj joined, piojo joined 02:27 astj left, astj joined 02:32 troys_ is now known as troys 02:35 ZzZombo left, ZzZombo joined
piojo m: my @pairs = [('a' => 'b'),]; say so @pairs.any ~~ ('a' => 'b'); 02:39
camelia No such method 'a' for invocant of type 'Pair'
in block <unit> at <tmp> line 1
piojo Seems like junctions can't handle pairs?
my @ints = 2; say so @ints.any ~~ 2;
m: my @ints = 2; say so @ints.any ~~ 2; 02:40
camelia True
02:40 perlpilot_ left
piojo m: say ('a' => 'b') ~~ ('a' => 'b') 02:40
camelia True
geekosaur m: my @pairs = [('a' => 'b'),]; say so ('a' => 'b') ~~ @pairs.any; 02:41
camelia True
geekosaur ~~ is not symmetrical
piojo geekosaur: But I thought a junction would be collapsed and be evaluated as its elements 02:42
err, expanded
geekosaur I don't know off the top of my head what Pair.ACCEPTS does, but it's apparently not what you think it should
piojo looks up .ACCEPTS
geekosaur more to the point here is that a ~~ b induces a closure, aliases $_ to a, and invokes b.ACCEPTS($_). ACCEPTS may be special for various types 02:45
02:47 ilbot3 left
geekosaur "If topic is any other value, uses the invocant's key as the name of the method to call on topic and check's its .Bool is the same as .Bool of the invocant's value. This form can be used to check Bool values of multiple methods on the same object, such as IO::Path, by using Junctions:(...)" 02:47
piojo geekosaur: thanks. so it's because Junction is a "special" type, so ACCEPTS is trying to compare it by key/value, and when the key is called as a method, the junction gets expanded, and `.a` is called on each pair in the list, which fails 02:49
Thanks, that makes sense!
geekosaur (Pair.ACCEPTS. here the Junction needs to be on the Pair, not the Array as you had it. *possibly* an argument could be made for it applying to a Junction differently than using the default lookup)
yes 02:50
it does seem kinda confusing and possibly it should do something different with Pair.ACCEPTS(Junction)
otoh Junction interacts oddly with some things and that might turn out to be difficult to accomplish
piojo But it would enable linguistically friendly code, which we like in general 02:51
"any(array) ~~ pair" is how it would be spoken, at least in English
geekosaur I think the biggest problem is that Junction somehow needs to be 'invisible' for the type check there, but *without* triggering autothreading
piojo geekosaur: that sounds very tricky 02:52
Impossible, actually
It can have more than one type, so it has to trigger auto-threading
perhaps it's just a mistake that smartmatch looks so symmetric 02:53
geekosaur possibly. getting it reversed seems to happen a lot
piojo nobody would switch the operand order for "a < b", but for "a == b" and "a ~~ b" it looks fine. 02:54
02:54 poohman joined 02:57 ilbot3 joined, ChanServ sets mode: +v ilbot3 03:01 poohman left 03:06 pilne left 03:11 piojo1 joined 03:13 piojo left 03:14 piojo joined 03:16 piojo1 left 03:28 poohman joined 03:39 Sgeo left 03:41 Sgeo joined 03:45 troys is now known as troys_ 03:53 TEttinger left 03:54 Cabanossi left 03:56 Cabanossi joined 04:00 TEttinger joined 04:08 Cabanossi left, jeromelanteri joined 04:10 Cabanossi joined
buggable New CPAN upload: PDF-Font-0.1.2.tar.gz by WARRINGD cpan.metacpan.org/authors/id/W/WA/...1.2.tar.gz 04:23
04:29 Morfent left 04:38 piojo left 04:40 kyan joined 04:44 Morfent joined 04:51 committable6 left 04:54 kitsunenokenja left 04:57 troys_ is now known as troys 04:58 troys is now known as troys_, troys_ is now known as troys 05:12 committable6 joined, ChanServ sets mode: +v committable6 05:20 wamba joined 05:22 itaipu joined 05:23 poohman_ joined 05:26 poohman left, poohman_ is now known as poohman 05:46 BenGoldberg left 05:54 poohman left, poohman joined 05:56 itaipu left 05:59 poohman left, poohman joined 06:00 poohman left, poohman joined, poohman left 06:01 troys is now known as troys_, poohman joined, poohman left 06:02 poohman joined, poohman left, poohman joined 06:03 poohman left, poohman joined, poohman left 06:04 poohman joined, poohman left, khw left, releasable6 left, poohman joined, releasable6 joined, poohman left 06:05 poohman joined, poohman left 06:06 poohman joined, poohman left, tony-o is now known as tonyo, poohman joined 06:07 poohman left 06:08 poohman joined, poohman left, poohman joined, poohman left 06:09 poohman joined, poohman left, poohman joined, poohman left 06:10 poohman joined, poohman left 06:11 poohman joined, poohman left 06:12 poohman joined, poohman left, llfourn left 06:13 poohman joined, poohman left, poohman joined, poohman left 06:14 poohman joined, poohman left 06:15 poohman joined, poohman left 06:16 poohman joined, poohman left, poohman joined, poohman left, tonyo is now known as tony-o 06:17 poohman joined, poohman left 06:18 poohman joined, poohman left, poohman joined 06:19 poohman left, poohman joined 06:20 poohman left, poohman joined, poohman left 06:21 poohman joined, poohman left, poohman joined, poohman left 06:22 poohman joined, poohman left 06:23 poohman joined, poohman left, poohman joined, poohman left, poohman joined 06:24 poohman left, poohman joined, poohman left 06:25 poohman joined, poohman left, poohman joined, poohman left 06:26 poohman joined, poohman left 06:27 poohman joined, poohman left, poohman joined, bonsaikitten left, xiaomiao joined 06:28 poohman left, poohman joined 06:29 poohman left, poohman joined, poohman left, troys_ is now known as troys, poohman joined 06:30 poohman left, poohman joined, poohman left 06:31 poohman joined, poohman left, poohman joined, poohman left 06:32 poohman joined, poohman left, poohman joined 06:33 poohman left, poohman joined, poohman left 06:34 poohman joined, poohman left 06:35 poohman joined, poohman left, poohman joined, poohman left 06:36 poohman joined, poohman left, poohman joined 06:37 poohman left, poohman joined, poohman left 06:55 domidumont joined 06:57 xinming joined 06:59 domidumont left 07:01 domidumont joined 07:06 troys left, leedo left, jkva_ left 07:07 peteretep left, jkva_ joined, evalable6 left, peteretep joined, kent\n left, plicease_ left 07:08 rodarmor left, wamba left, kent\n joined, kerframil left, plicease joined, wamba[m] left, jsimonet left 07:09 leedo joined 07:11 jsimonet joined 07:14 ilmari[m] left, Garland_g[m] left, Matthew[m] left, tadzik left, xui_nya[m] left, unclechu left 07:15 CIAvash[m] left, M-Illandan left, mack[m] left, wictory[m] left, mienaikage left, tyil[m] left, AlexDaniel` left 07:17 john51 left, squashable6 left, greppable6 left, john51 joined 07:23 Cabanossi left 07:25 darutoko joined, Cabanossi joined 07:28 timotimo left 07:30 giraffe left 07:35 reportable6 left, reportable6 joined 07:39 kyan left 07:40 ChoHag left 07:43 wamba joined 07:45 giraffe joined 07:52 ChoHag joined 07:54 timotimo joined 08:02 sena_kun joined 08:07 Cabanossi left 08:10 Cabanossi joined 08:12 geospeck joined 08:22 konsolebox left 08:26 sena_kun left, jeromelanteri left 08:28 |oLa| joined, konsolebox joined 08:33 ChoHag_ joined 08:35 ChoHag left 08:36 sena_kun joined 08:43 sena_kun left, sena_kun joined 08:53 cpage_ left
moritz jnthn: just a quick reminder that your advent post is due tomorrow 00:00 UTC :-) 08:58
lookatme :)
moritz (should the schedule be a problem, there's still room for swapping things around)
days 10, 11, 12, 14 are already scheduled... I don't think we ever had such exemplary pre-lineup :-) 09:00
(I mean in the previous years; it's been great all around this year) 09:01
09:04 traxex left 09:06 rodarmor joined, domidumont left 09:08 traxex joined 09:10 mson left, lookatme left
masak pre-lineup++ 09:12
09:18 tadzik joined 09:20 parv joined 09:21 zakharyas joined 09:25 zakharyas left 09:26 zakharyas joined 09:45 llfourn joined 09:47 wamba[m] joined, ilmari[m] joined, Matthew[m] joined, CIAvash[m] joined, mack[m] joined, M-Illandan joined, AlexDaniel` joined, wictory[m] joined, tyil[m] joined, unclechu joined, Garland_g[m] joined, mienaikage joined, xui_nya[m] joined 09:53 wamba left, domidumont joined 09:57 cdg joined 09:59 rindolf joined 10:00 Morfent left 10:03 Morfent joined 10:05 zakharyas left 10:06 zakharyas joined 10:07 Cabanossi left 10:10 Cabanossi joined, mscha joined
mscha m: say infix:<==>(3,3); say infix:<==>(2,4) 10:11
camelia True
False
mscha This works, but what do I do if I have $oper = '=='? infix:<$oper> and infix:($oper) don't work. 10:12
10:13 domidumont left 10:21 eliasr joined 10:22 domidumont joined
jnthn m: my $op = "+"; say ::("&infix:<$op>")(1, 41) 10:22
camelia 42
mscha jnth: thanks, perfect! 10:24
jnthn: thanks, perfect!
10:25 virtualsue joined 10:26 konsolebox left, virtualsue left 10:28 konsolebox joined
mscha m: my $op = '!='; say ::("&infix:<$op>")(1, 41); 10:28
camelia True
mscha m: my $op = '>='; say ::("&infix:<$op>")(1, 41); # Why does this not work?
camelia No such symbol '&infix:<>=>'
in block <unit> at <tmp> line 1
10:32 domidumont left
mscha m: my $op = '>='; say ::("&infix:«$op»")(1, 41); 10:32
camelia Use of uninitialized value $op of type Any in string context.
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.
False
in code at <tmp> line 1
mscha Huh?
10:33 domidumont joined 10:35 konsolebox left 10:36 konsolebox joined 10:44 Zoffix joined
Zoffix m: my $op = ">="; say ::("\&infix:«$op»")(1, 41); 10:44
camelia False
10:48 parv left
sjn o/ 10:48
tbrowder sjn: \o
sjn Quick question.... Does the following statement ring true for the Perl 6 programming language? -- "If you have to bend over backwards to do something in Perl 6, then you're probably doing the wrong thing." 10:50
s/the wrong thing/something wrong/
mscha Thanks, Zoffix. Now all I got to deal with is infix:<==> vs. infix:«>=». 10:51
Zoffix m: for "==", ">=" -> $op { my &op = &::("infix:<$op>") // &::("infix:«$op»") // &::("infix:<$op.subst(/<?before <[<>]>>/, "\\", :g)>"); say op 1, 41 } 10:54
camelia False
False
Zoffix m: for "==", ">=" -> $op { my &op = &::("infix:<$op>") // &::("infix:«$op»") // &::("infix:<$op.subst(/<?before <[<>]>>/, "\\", :g)>"); say op 42, 41 }
camelia False
True
Zoffix So how come ::("\&infix:«$op»") needs a backslash but ::("&infix:<$op>") doesn't? 10:55
Looking at ASTs, the «» version got this stuff up in it, but why does the backslashing make or not make it run? gist.github.com/zoffixznet/0dec3a8...95aee3ad89 10:56
10:58 wander joined
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '=='; dd $w.canonicalize_pair: 'infix:', $op 10:58
camelia ":infix:<==>"
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '>='; dd $w.canonicalize_pair: 'infix:', $op
camelia ":infix:«>=»"
wander \0
Zoffix mscha: ^ unsupported and evil method, but I think the other one with the .subst stuff is just as fragile 10:59
10:59 cdg left
Zoffix oh 10:59
10:59 cdg joined
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '>='; dd 'infix' ~ $w.canonicalize_pair: '', $op 10:59
camelia "infix:«>=»"
Zoffix m: my $w = BEGIN $*W.WHAT; my $op = '=='; dd 'infix' ~ $w.canonicalize_pair: '', $op
camelia "infix:<==>"
Zoffix This I meant
11:01 cdg left, cdg joined
mscha m: for '==', '>=' -> $op { say (&::("infix:<$op>") // &::("infix:«$op»"))(5,3); 11:02
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3fix:<$op>") // &::("infix:«$op»"))(5,3);7⏏5<EOL>
11:03 mattp_ left
mscha m: for '==', '>=' -> $op { say (&::("infix:<$op>") // &::("infix:«$op»"))(5,3); } 11:03
camelia False
True
mscha Thanks for the tips, Zoffix!
11:03 mattp_ joined 11:06 cdg left
mscha Used it for this: www.reddit.com/r/adventofcode/comm...s/dqy25k2/ 11:07
11:07 cdg joined 11:08 wamba joined, Cabanossi left 11:10 Cabanossi joined 11:11 Zoffix left, cdg left 11:15 konsolebox left, araraloren joined
araraloren o/ 11:16
tbrowder \o
masak m: my &eval = &EVAL; for q[==], q[>=] -> $op { say eval "5 {$op} 3" } 11:17
camelia False
True
masak mscha: ^
tbrowder anyone here know about gen of docs.perl6.org? 11:18
11:18 konsolebox joined
tbrowder i see a bad table in language/regexes.pod6 that should be rendering properly after the recent pod table fix 11:21
11:23 traxex_ joined
moritz what does that need? a newer version of Pod::To::HTML? 11:24
11:24 jeromelanteri joined 11:26 traxex left
tbrowder i don’t think it does, but i looked at it and don’t see any special handling. however, the visible escape chars are suspicious. shouldn’t it be using latest master rakudo? 11:26
11:27 traxex_ left
sjn tbrowder: docs are in [email@hidden.address] , right? 11:28
11:28 traxex joined
tbrowder yes 11:28
11:29 wamba left, konsolebox left, Zoffix joined
wander tbrowder: IIRC need a explicit version bump 11:30
sjn tbrowder: which line in doc/Language/regexes.pod6 has suspicious escape chars?
Zoffix tbrowder: it uses latest rakudo for *travis testing*. For builds, it uses whatever is built in /home/rakudobrew on hack.
Guess I got time to kick off a build
mscha masak: yeah, but eval is evil. ;-) 11:31
11:31 konsolebox joined
tbrowder hm, so it prob doesn’t have latest, that would explain it 11:31
Zoffix It's using 2017.10
tbrowder that should fix it unless my fix was bad 11:32
Zoffix tbrowder: while you're here... there's still a missing roast file when `make spectest` is run
tbrowder whoa, that’s pretty old
Zoffix Not really. Latest stable user release. 11:33
11:33 traxex left, traxex joined
tbrowder yeah, awating samcv. i could merge it but that wouldn’t be right. 11:33
i commented on her question in the roast PR #361 11:34
masak mscha: I take your knee-jerk reaction against `eval` and call it :P 11:35
11:36 konsolebox left
masak mscha: it's only actually *dangerous* if (say) the user was allowed to type in what $op should be. but that's not so in the above code, so it's fine. 11:36
Zoffix
.oO( famous last words... )
tbrowder so maybe when 2017.12 comes out it will render properly 11:37
masak I don't get it how we ended up in a situation where people think that because there are injection attacks possible with `eval`, it shouldn't ever be used, even when the resulting code is both shorter and easier to read.
11:37 ChoHag_ left
Zoffix masak: easy: the $code in "not so in the above code" later gets changed, creating an exploit that causes $n million of accounts to get hacked. Your hack to avoid using the dedicated "I know what I'm doing" method makes the issue even more pernicious, since the programmer can't even easily grep for evil 11:38
masak Zoffix: I'm not actually in disagreement with you, just so you know :) 11:40
I also wouldn't use these techniques in production
and yes, that distinction is important
my beef is that I feel the warnings against `eval` have spread to situations where it would be completely fine. you had to invent a production-like context where the program was changed further beyond its original purpose for `eval` to become an actual problem. 11:41
in *my* hypothetical scenario, the code was a 10-minute throwaway thing, and it was never changed later, and no problem arose
11:42 konsolebox joined
masak and if your objection then is "but we shouldn't teach techniques which might have a downside in some contexts", then I'd disagree 11:42
11:43 wamba joined
masak I think we should spend *more* effort on distinguishing the contexts in which techniques apply, not less 11:43
11:43 mahafyi joined
mscha masak, Zoffix: I agree with you both. In my case, the operator does come from “user” input, but it's parsed by a grammar that only accepts the 6 basic numeric comparison operators; so it is safe, in practice. But better safe than sorry, so why use it if there's an alternative? 11:45
11:45 Ven`` joined
Zoffix masak: in my *actual* scenario, I had no idea where the code were to be used or how many more people would find it in the logs and use it elsewhere, or how many more people would edit the programs using that code later on, so I provided a version that isn't exploitable. I don't understand what purpose it serves to use a hack instead of `use MONKEY-SEE-NO-EVAL`, regardless of contexts 11:46
11:47 traxex_ joined, itaipu joined
masak m: my %ops = { "==" => &[==], ">=" => &[>=] }; for %ops.kv -> $k, &op { say "3 $k 5: { &op(3, 5) }" } 11:47
camelia Potential difficulties:
Useless use of hash composer on right side of hash assignment; did you mean := instead?
at <tmp>:1
------> 3 %ops = { "==" => &[==], ">=" => &[>=] }7⏏5; for %ops.kv -> $k, &op { say "3 $k 5:
3 >= 5: F…
masak m: my %ops = "==" => &[==], ">=" => &[>=]; for %ops.kv -> $k, &op { say "3 $k 5: { &op(3, 5) }" }
camelia 3 >= 5: False
3 == 5: False
masak heh :)
Zoffix masak: the problem with your context excuse is the source of the op and the place where the op is used are in different locations so the person editing the way the op is obtained might not even be aware it's being evaled
masak mscha: anyway, something like the above (after debugging) oughta work
lunch & 11:48
mscha I'm sticking with this one: 11:49
sub oper($op) returns Code
11:49 Geth left
mscha { 11:49
11:49 synopsebot left
mscha # Comparison operators can be infix:<==> or infix:«<=». Find either. 11:49
return &::("infix:<$op>") // &::("infix:«$op»")
}
11:49 Geth joined, ChanServ sets mode: +v Geth, traxex left, synopsebot joined, ChanServ sets mode: +v synopsebot
Geth doc: b2d61952b6 | (Zoffix Znet)++ (committed using GitHub Web editor) | util/trigger-rebuild.txt
rebuild with newer rakudo
11:50
Zoffix tbrowder: ^ should use latest now
11:50 Zoffix left
tbrowder thnx, fingers crossed! 11:51
11:51 ChoHag joined
tbrowder can you look at roast PR #361 and see if i’m off base? 11:52
11:59 traxex joined 12:01 scimon joined 12:02 traxex_ left 12:09 wander left 12:10 traxex_ joined
scimon Last day of my holiday. Writing my blog post. 12:13
12:13 traxex left
buggable New CPAN upload: Game-Sudoku-0.1.1.tar.gz by SCIMON cpan.metacpan.org/authors/id/S/SC/...1.1.tar.gz 12:13
12:15 traxex_ left
DrForr And uploading your module, it looks like :) 12:15
12:15 traxex joined 12:18 Ven`` left 12:20 traxex_ joined 12:23 traxex left 12:24 kaare_ left 12:25 kaare_ joined, traxex joined, traxex_ left 12:29 wamba left 12:30 traxex_ joined 12:32 traxex left, konsolebox left, konsolebox joined 12:33 kaare__ joined 12:34 kaare_ left 12:36 traxex_ left 12:41 zakharyas left 12:46 traxex joined
scimon I made a small change to it this morning. More junctions :) 12:46
12:46 cdg joined
scimon (Been AFK, Mattress delivery. I am not in the good books) 12:47
tbrowder huzzah, doc/language/regexes bad table now looks correct!
Zoffix: thnx
12:48 wamba joined 12:50 cdg left 12:51 traxex_ joined 12:53 Cabanossi left 12:54 wamba left, traxex left 12:55 Cabanossi joined 12:56 traxex joined 12:58 traxex_ left 12:59 konsolebox left 13:00 konsolebox joined, wamba joined 13:01 traxex left 13:11 wamba left 13:27 lizmat left 13:36 wamba joined, melezhik left 13:46 cdg joined 13:51 cdg left 13:57 wamba left 14:00 preaction left 14:01 mson joined, mcmillhj joined 14:03 Ven`` joined, mahafyi left 14:09 zakharyas joined
tbrowder can anyone show me the “canonical” left/right interpolating and noninterpolating character pairs? i believe the answer is (in ascii form) “<<>>” and “<>”, respectively. 14:10
14:10 comborico1611 joined
Phlogistique ä× 14:11
no
sorry
«»
14:12 AlexDaniel left
tbrowder yes, those are the preferred form for <<>> but my devices make it difficult to enter them, thnx 14:12
DrForr Compose-key combo FTW. 14:18
14:18 jdoege joined
DrForr I'm a touch surprised that my keyboard at work doesn't have those on them. 14:18
I've got degree, {section}, and what the hell are # and @ doing down by x and v, come to think of it? 14:19
Altreus :s 14:25
14:25 mscha left
Altreus what sort of backward keyboard do you even have 14:25
14:27 khw joined
huf could be hungarian 14:28
altgr-v is @, altgr-x is #
so probably some kind of "also ran" country layout
DrForr Close enough; it's Czech. The number of accented letters is impressive. 14:31
huf there we go :)
14:32 preaction joined, ChoHag left 14:34 mahafyi joined 14:36 domidumont left, preaction left
comborico1611 Jan Hus was a brilliant man. 14:39
14:41 DickClarke is now known as DickClark, preaction joined 14:44 preaction left, preaction joined 14:53 domidumont joined 15:00 ChoHag joined 15:04 domidumont left 15:05 domidumont joined 15:08 Cabanossi left 15:10 Cabanossi joined 15:24 cdg joined, geospeck left 15:40 wamba joined 15:49 pdcawley left 16:04 perlpilot joined 16:06 ChoHag left 16:08 Ven`` left 16:09 Cabanossi left 16:10 Cabanossi joined 16:12 cdg left, ChoHag joined 16:15 jdoege left 16:16 araraloren left 16:17 troys joined 16:22 Ven`` joined, philomath_ joined 16:37 itaipu left 16:42 mahafyi left 16:44 domidumont left, ChoHag left 16:50 Ven`` left 16:55 luiz_lha joined, luiz_lha is now known as Guest96827, Guest96827 left 16:56 ldeandrade_ joined 16:58 ldeandrade_ left, ldeandrade_ joined 16:59 ldeandrade_ left 17:01 luiz_lha1 joined 17:02 luiz_lha1 is now known as luiz_lha 17:06 ChoHag joined 17:13 mcmillhj left 17:17 domidumont joined 17:19 troys is now known as troys_ 17:23 domidumont1 joined, timeless left, timeless joined 17:24 silug left, Cabanossi left 17:25 Cabanossi joined 17:26 mcmillhj joined 17:27 domidumont left 17:36 itaipu joined, epony left, epony joined 17:40 luiz_lha left 17:42 mktoho joined
mktoho Hello! 17:43
scimon Hi
17:47 AlexDaniel joined 17:48 zakharyas left, evalable6 joined, ChanServ sets mode: +v evalable6
comborico1611 Greetings 17:48
17:48 zakharyas joined 17:51 mktoho left 17:55 cdg joined 18:00 cdg left
buggable New CPAN upload: Game-Sudoku-0.2.0.tar.gz by SCIMON cpan.metacpan.org/authors/id/S/SC/...2.0.tar.gz 18:04
scimon So while writing all the things I've tweaked a few things.
Hiy just under 2000 words. Now adding links.
18:10 domidumont1 left
Herby_ \o/ 18:14
scimon Does anyone know what time we're publishing the Advent calender at? 00:00 GMT? 18:17
(I've set mine up for that but we can change it if required) 18:21
18:21 marcusramberg left
[Coke] That seems fine, but I doubt there's a strict schedule 18:21
18:21 marcusramberg joined
scimon Righto. 18:22
Well... I'll probably give it a re-read over the weekend. Quite happy with it. I controlled my urge to write it as a conversation between elves. Just. 18:23
Now I need to do dishes.
18:23 scimon left, Cabanossi left 18:25 Cabanossi joined 18:28 kerframil joined, itaipu left 18:34 avalenn left 18:37 mahafyi joined 18:38 wamba left, itaipu joined 18:41 troys_ is now known as troys
DrForr WRT Pod::To::* is there a test suite with decent coverage I can gank? 18:45
18:47 itaipu left 18:54 darutoko left
DrForr Come to think of it one would suppose that the compiler would have one... 18:54
TimToady notes that "use MONKEY;" is considerably shorter and easier to type than "my &eval = &EVAL;", and doesn't hide the EVALs in lower case, or hide the MONKEY that the boss is gonna be grepping for 18:57
18:57 zakharyas left
TimToady as for the argument that it's the wrong default, well, that's the wrong argument :) 18:57
19:07 Cabanossi left 19:11 Cabanossi joined 19:12 cdg joined 19:15 troys is now known as troys_ 19:17 cdg left 19:36 unicodable6 left, unicodable6 joined
[Coke] m: say i**i 19:38
camelia 0.207879576350762+0i
19:43 geospeck joined
[Coke] m: use Test; is-approx(i**i,e**(-π/2)) 19:48
camelia ok 1 -
20:09 Thrush joined
Thrush I have a question: Does Perl6 support tail-call-recursion optimization? By googling, I found some pages that say it's supposed to, but those pages are from 2002. 20:10
AlexDaniel Thrush: still no 20:12
jnthn Thrush: No
Thrush Ah, okay, thanks. Any plans for the future? 20:13
20:14 mahafyi_ joined
Thrush (Any plans to make Perl 6 support tail-call-recursion optimization in the future, that is.) 20:14
20:14 comborico1611 left 20:15 mahafyi left, mahafyi_ is now known as mahafyi 20:16 zakharyas joined 20:18 comborico1611 joined 20:21 dmaestro joined
jnthn It's been discussed a bit; the challenge is in working out when we can apply the optimization, and making that predictable enough that people can rely on it. 20:23
I don't know of anyone who has plans to work on it in the immediate future, but it certainly could happen some day. 20:24
dmaestro I expected this to work:
m: "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L&:Script<Greek>>/
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in metachar:sym<assert>; couldn't find final '>' (corresponding starter was at line 1)
at <tmp>:1
------> 3"\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L7⏏5&:Script<Greek>>/…
dmaestro just like:
m: "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L+:Script<Greek>>/ 20:25
camelia ( no output )
dmaestro m: say "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L+:Script<Greek>>/
camelia 「α」
dmaestro Is the (documented) '&' set intersection operator not yet implemented? Or broken? 20:26
m: say "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:Script<Greek>>/
camelia 「α」
jnthn Hm, it's documented? I'm pretty sure it's not implemented, but:
m: say "\c[GREEK SMALL LETTER ALPHA]" ~~ /<:L> & <:Script<Greek>>/
camelia 「α」
jnthn Can be done like that
dmaestro Thanks, that is usable at least. 20:27
jnthn Given we an just compile the other form into what I showed, it's probably a fairly soft feature :) 20:28
*can
dmaestro yes, documented in Regexes / Unicode Properties / "Categories can be used together, with an infix operator: ..."
Thrush Thanks for the info, jnthn. 20:29
jnthn OK, could be worth a docs issue, since that site should just include stuff that's done, not stuff that's hoped for some day :)
dmaestro Right :-)
20:30 Thrush left
jnthn From backlog here: if you are doing `my &eval = &EVAL`, you're at risk of the compiler disappearing some of the symbols at the point you use `eval`. The uppercase isn't simply a discouragement, it's a hint that the language treats this name specially. 20:31
And that optimization *will* get more aggressive in the future. 20:32
20:33 benchable6 left, benchable6 joined
jnthn In summary, `my &eval = &EVAL; { my $x = 42; eval 'say $x' }` may work today, but I'd be surprised if it still worked in a year's time. 20:33
El_Che slap a 6.c and don't worry about it 20:34
geekosaur mm, because it's a preannounced thing, versions don't help much 20:35
El_Che let's say you'll need a pre 6.d release to run it :)
geekosaur hypothetically that optimization could get committed in the next 5 minutes without requiring a version break 20:36
(*very* hypothetically...)
El_Che If you use monkey in capitals in your code, you're not in the place to make a formal complaint
DrForr Hrm. I've got at least 2 requests for Pod::TreeWalker, which likely means that given autarch's state I should probably ask to take it over which means I should think very carefully about whether I should ask...
jnthn Well, I sure won't be committing it in the next 5 minutes, 'cus I'm already behind with witing my advent article. :P
Talking of which...guess I should hide this IRC window :) 20:37
20:37 s0me0n3-unkn0wn joined, dmaestro left
mspo so is this christmas going to be perl7 release? 20:37
El_Che mspo: don't troll 20:38
AlexDaniel
.oO( 7lang release )
mspo El_Che: if TimToady said it then it would be a great troll
what's the changelog on the language spec look like for the last 12 months? 20:39
AlexDaniel not much has changed 20:40
20:40 s0me0ne-unkn0wn left
AlexDaniel but a lot of *new* stuff was added on top 20:40
20:40 Zoffix joined
Zoffix mspo: perl7 has been out for ages, bruh: github.com/perl7/perl7/ 20:41
mspo Zoffix: I actually forgot about that one
20:43 mahafyi left
Zoffix mspo: changelog is gonna be pretty huge. There are 2707 new commits that define 6.d 20:43
mspo AlexDaniel: isn't the implementation changing some parts of the spec?
Zoffix: will 6.d be "final" on xmas? 20:44
AlexDaniel mspo: very rarely, only if the spec was really wrong in the first place
Zoffix mspo: I'd say "refines" is more appropriate term. There weren't any real changes to 6.c language, other than error fixes. 6.d merely defines language behaviour for parts that previously were undefined.
mspo: far from it. Spring 2018, I hope. There's currently a blocker that kinda stalls some ambitious people to get 6.d outta the door: R#1289 20:45
synopsebot R#1289 [open]: github.com/rakudo/rakudo/issues/1289 [6.d BLOCKER] Implement a Way to Know Caller's Language
Zoffix Actually, there *were* some big changes, like `await` in 6.d being non-blocking. But, I mean, posed against those 2700 commits, it's a drop in a bucket 20:46
mspo Zoffix: language spec is waiting on the implementation? 20:47
20:47 zakharyas left, Phi_mb joined
Zoffix Also, many 6.d things that are meant to be for 6.d only are already done in 6.c, 'cause we simply didn't have a mechanism to place them in 6.d at that time, or chose to put in 6.c 'cause the 6.c spec was vague enough to allow it. 20:48
mspo: something like that. It's a bit tough to make a proper release of a spec if you can't even guarantee it works.
The Whirpool and what not. 20:49
And we had fudges in 6.c for unimplemented features/bugs and in the end they were just annoyances or features we ended up nixing in the end so 6.d release won't have fudges. 20:50
mspo okay
anyway too bad about not being on christmas
would have been a cool tradition
20:50 philomath_ left
AlexDaniel … not :) 20:50
Zoffix mspo: nah, it's good. I'd hate for us to have dates to follow. I rather we Release When It's Ready. 2015's Christmas release was a disaster and I'd argue large part of that was rushing to meat a deadline. 20:51
AlexDaniel arbitrary deadlines are not cool.
Zoffix relocates
20:51 Zoffix left
[Coke] Disaster is a strong word, but it wasn't perfect, for sure. 20:51
AlexDaniel
.oO(meat the deadline, fish the spec)
mspo it added a nice bit of marketing 20:52
geekosaur not quite a disaster but it was definitely Bad Idea 20:53
20:53 Phi_mb left 20:55 rindolf left
mspo I disagree 20:55
geekosaur the whole CUR thing was a cluster____ 20:56
20:57 Zoffix joined
Zoffix I didn't mean just the event itself, but also the state of the spec at the time. There were huge swaths of the language entirely undefined. 20:58
20:59 rindolf joined
Zoffix It should've cooked for a couple years more, but overall I thinl it was a good decision to realease then. To solidify, to start the stability kindset 20:59
And 6.d is that, 2-year later, medium-rare cooked version to me :) so I'm glad to let it simmer to perfect flavour 21:00
geekosaur I'm actually not bothered much bythat part. the spec was always explicit about being forward-looking and knowing some of its plans were at best speculative
mspo geekosaur: yes 21:01
Zoffix: didn't you come in after the christmas thing?
geekosaur no 21:02
Zoffix mspo: yeah, right around it. Though I was an alcoholic back then and I think I "came in" only in October 2016 :) 21:03
previous times are hazy in memor
y
geekosaur thoguht you were around a little before glr. but I also recall the alcoholic bit
(glr was september-ish iirc?) 21:04
Zoffix Ah yeah, I think I came around glr. but was on and off
masak ah, you young'uns :) 21:05
mspo Zoffix: my point is that the christmas thing had a little marketing style behind it
Zoffix: which increased the energy enough to get one or two more people looking; also nice to do a big release over a break for most people
idk just like my opinion man
Zoffix: you should write the get-clean-with-perl6 guide 21:06
masak .oO( with a language like that, who needs alcohol? ) 21:08
masak hides
Zoffix :)
geekosaur .oO ( new name meme: THCamelia )
bonus "tea"/"T" joke 21:09
El_Che Zoffix: it's a good story. For when Perl6 takes over the world :) 21:10
Zoffix hehe
I even remember what changed my mind. The guts of &val. To drunker's mind it looked complex and I was contemplating writing an article about it until I looked at it after a few days away from drinking. It looked so simple and it kinda made me realize just how much booze affects your working memory, even for days after you drank 21:12
mspo I'd rather use the drinker's language
21:13 ChoHag left
Zoffix ZofBot: weekend is here \o/ 21:13
ZofBot Zoffix, so nothing for you then?
Zoffix ZofBot: gonna be learning C 21:14
ZofBot Zoffix, Sex attraction is so purely a question of the taste of the individual that the wise man never argues about it
geekosaur heh
bot's getting snarky, I see
Zoffix &
21:14 Zoffix left
mspo www.perlmonks.org/index.pl?node_id=466656 21:15
geekosaur also learning C might be enough to drive Zoffix back to the bottle...
mspo learning C doesn't take long; it's really small 21:16
*using* it on the other hand..
geekosaur that's kinda the point, yes
easy right up until you start realizing just how nasty things like its conflation of pointers and arrays gets 21:17
*get
mspo there are 32 keywords in C :)
El_Che I invented me a few project to refresh C. It was painful when you're writing stuff for hours that would take minutes in a higher language
geekosaur one of which is completely useless (at least until C++ repurposed it)
('auto' which exists solely for pedants who want the full set of storage classes) 21:18
(or those still writing pseudo-BCPL in C, which is even worse) 21:19
jnthn Ah, BCPL. :) 21:20
I never wrote it, but got a couple of lectures on it at uni :)
iirc, it...had one type, which was int32 :) 21:21
geekosaur yep
which is why C got 'auto'; since you don't have typed variables, you declare a stack var with e,g. 'auto a;' 21:22
jnthn Oh! That bit I didn't know :)
geekosaur well, you didn;t do that in BCPL; 'auto' was actually intended for automated BCPL-to-C translators 21:23
BCPL not onlyh didn;t have types, it was also weak on the idea of declarations in general :)
but C made you declare things, so translators had to insert something and didn;t have types. thus 'auto' 21:24
21:25 ChoHag joined 21:28 cdg joined 21:29 eliasr left
dylanwh was bcpl int32 or int16? I thought it was 'word' and at the time 'word' == 16 bit 21:29
21:29 kitsunenokenja joined
geekosaur at the time 'word' depended on the architecture 21:29
and BCPL went along woith that, so whether it was int16 or int32 depended on what kind of machine you were on 21:30
El_Che is enjoying the conversation 21:32
21:33 rindolf left
geekosaur BCPL was kinda transitional because it was one of the first practical "portable" system programming languages (unlike something like DEC's BLISS family which had common features but different specifics on every processor line) 21:35
it also indicates that nobody'd actually *thought* much about portability yet :)
...for all the portability gotchas C has, when introduced it was a massive improvement over the state of the art in portability 21:36
21:37 avalenn joined 21:38 Cabanossi left
masak lol, I blog'd: strangelyconsistent.org/blog/has-it...hree-years 21:39
21:40 Cabanossi joined
moritz masak++ 21:46
21:46 itaylor57 left
samcv . 21:46
yoleaux 11:23Z <tbrowder> samcv: i have answered your question at roast PR #361
21:46 itaylor57 joined, itaylor57 left
dogbert17 remembers his old Amiga, part of the OS was written in BCPL if I remember correctly 21:47
samcv tbrowder: merged :) 21:48
dogbert17 en.wikipedia.org/wiki/AmigaDOS
samcv releasable6: status 21:49
releasable6 samcv, Next release in 7 days and ≈21 hours. No blockers. 0 out of 78 commits logged
samcv, Details: gist.github.com/15798faad1ab913b98...887ee5d125
tbrowder samcv: did my answer make sense? i’m not sure how i could use is-deeply on a table. 21:54
samcv yes it was fine, thanks
21:54 rindolf joined
tbrowder ok, thank you (hope you don’t mind the cat in the hat ref, been around grandkids too much to resist it) 21:56
21:56 mcmillhj left
samcv :) 21:56
21:59 kerframil left, itaylor57 joined 22:02 kitsunenokenja left 22:07 troys_ is now known as troys 22:10 bisectable6 left, bisectable6 joined, ChanServ sets mode: +v bisectable6 22:15 greppable6 joined, squashable6 joined 22:18 rindolf left 22:22 Cabanossi left 22:23 rindolf joined 22:25 Cabanossi joined 22:30 wamba joined 22:45 geospeck left 22:47 setty1 joined 22:52 Cabanossi left 22:55 Cabanossi joined 22:58 perlpilot left 23:04 rindolf left 23:25 cdg left 23:26 cdg joined
jnthn Aww, the advent highlighter fails for me with "Error 422: 422 Unprocessable Entity" 23:28
23:34 troys is now known as troys_ 23:35 cdg left
ingy www.youtube.com/watch?v=_Ht4Ei3pdR8 23:38
jnthn: they can't all be winners. 23:39
jnthn Pretty much exhausted my guesses at what could be wrong with it. 23:47
23:53 Cabanossi left 23:55 Cabanossi joined
jnthn ah, I musta had some old or busted version of a dependency somewhere 23:58
zef nuke and then installing it again worked
23:59 setty1 left