»ö« 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:02 snowblack left 00:18 mscha joined 00:19 agentzh left
mscha m: my $a = 3; say (^$a+2).join(','); say (0..^$a+2).join(','); # Why inconsistent? 00:20
camelia 2,3,4
0,1,2,3,4
timotimo operator precedence
prefix operators bind very tightly
that's why -5 + 3 isn't -8, it's -2 00:21
mscha So ^$a is implemented as a different operator than 0..^$a? I thought it was just syntactic sugar.
timotimo it is syntactic sugar, but ..^ is an infix operator and ^ is a prefix operator 00:22
00:22 agentzh joined
mscha OK. Still confusing, though. 00:22
timotimo i think it's all-right, but that's personal preference i guess 00:23
00:24 kurahaupo__ left, dct left 00:25 labster joined, _28_ria left
MasterDuke timotimo: would you say there are three parts to the expression ('0', '..^', '$a'), not four ('0', '..', '^', '$a')? 00:26
timotimo it's three parts to me 00:27
maybe that's what's goin gon
00:27 _28_ria joined
MasterDuke i.e., it's infix '..^', not infix '..' + prefix '^' 00:28
timotimo correct 00:30
Geth ecosystem: 32579e46cd | (Tom Browder)++ | META.list
add Text::More to ecosystem
00:35
00:35 Sound left 00:44 Actualeyes left 00:47 mscha left 00:49 BenGoldberg left
spebern could someone tell me why this example only works when I uncomment the "ws" token? paste.ofcode.org/UBaiQ9q62ekUM5ykYZxG7U 00:54
00:54 ZzZombo_ left
timotimo did you try Grammar::Debugger (its tracer part, especially) with it yet? 00:55
spebern yes
timotimo WS is not being used? 00:56
spebern no, I built a tool to translate ANTLR grammars to perl6
timotimo OK
00:57 mr-foobar left
timotimo i'm too sick to think straight :( 00:57
spebern there was already a module which translated the grammars but it seems like it broke after glr 00:58
timotimo oh damn
spebern just couldn't fix it -.-
timotimo one thing that changed at some point is that captures with a ? used to always give you lists, but now they give either the match or a Nil 00:59
spebern yes
timotimo is the test coverage of that translator tool good?
spebern github.com/spebern/ANTLRv4-Translator
timotimo ah, that's yours
spebern I translated csv and json so far
I try to add as much tests as possible, but I'm stuck with the json one right now 01:00
timotimo i see you've contributed code to the existing ANTLR4 module
spebern I used some
I was jumping from one bug to the next 01:01
until I thought that starting again might be easier
timotimo hopefully no rakudobugs :)
spebern first time to use grammars so I bet there can be much improvement 01:02
timotimo there's potential :)
okay, i'm signing off
01:02 aborazmeh joined, aborazmeh left, aborazmeh joined
spebern get well soon, bb 01:02
timotimo most people here live in european timezones
see you soon :)
spebern me2
01:04 Actualeyes joined 01:07 nadim left 01:16 astj joined 01:21 risou_awy is now known as risou 01:28 yqt left 01:31 lukaramu_ left 01:39 BenGoldberg joined
BenGoldberg m: say 3 ..^ ^5 01:56
camelia Range objects are not valid endpoints for Ranges
in block <unit> at <tmp> line 1
TimToady m: say 3 «..^« ^5 01:58
camelia (3..^0 3..^1 3..^2 3..^3 3..^4)
TimToady m: say 3 X.. ^5
camelia (3..0 3..1 3..2 3..3 3..4)
TimToady m: say 3 ..^ +(^5) 01:59
camelia 3..^5
02:00 holyghost joined 02:01 holyghost left 02:16 ZzZombo joined, ZzZombo left, ZzZombo joined 02:20 labster left, agentzh left
naxieAlDle m: say 3 ..^ (^5).end 02:21
camelia 3..^4
naxieAlDle m: say ^5 × ⅗ 02:22
camelia 0.0..^3.0
naxieAlDle m: say ^5 × 3 ÷ 5 02:23
camelia 0.0..^3.0
02:27 agentzh joined 02:32 darthdeus left 02:34 spebern left
Geth whateverable: 98d81bb6ad | (Aleks-Daniel Jakimenko-Aleksejev)++ | 6 files
Make sure everything has a “Did you mean …?” message

Resolves issue #73 (with tests)
This commit also changes the output of Benchable (see issue #101). The output is a little bit odd now, but at least consistent with other bots.
02:45
02:45 ilbot3 left 02:46 cibs left 02:47 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:48 cibs joined 02:57 aborazmeh left
Geth whateverable: b43abf25e8 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 10 files
More unicode love
03:11
03:11 kanishka joined 03:13 unicodable6 left, evalable6 left, bisectable6 left, statisfiable6 left, benchable6 left, committable6 left 03:14 bisectable6 joined, unicodable6 joined, committable6 joined, evalable6 joined, ChanServ sets mode: +v bisectable6, ChanServ sets mode: +v unicodable6, ChanServ sets mode: +v committable6, ChanServ sets mode: +v evalable6, benchable6 joined, ChanServ sets mode: +v benchable6, statisfiable6 joined, ChanServ sets mode: +v statisfiable6
SmokeMachine Did anyone make a vim maps to change Texas ops by Unicode version while writing? 03:15
03:15 noganex_ joined 03:18 [particle] left
naxieAlDle wonders if that's a good idea at all 03:18
03:18 noganex left 03:19 [particle] joined
naxieAlDle most likely it is more convenient to set up your compose key. Gives you system-wide way to enter unicode characters without any pain at all 03:19
03:20 ZzZombo_ joined 03:21 ZzZombo_ left, ZzZombo_ joined 03:24 ZzZombo left
MasterDuke DrForr said he was going to start working on a Perl6::Tidy soon. hopefully texas <-> unicode would be an option 03:24
03:27 cdg joined 03:29 labster joined
SmokeMachine naxieAlDle: I think that the best way would be using the Texas ops as entry... maybe something like <cmd + u>(|) transform to ∪ 03:30
MasterDuke: that will be great! 03:31
naxieAlDle SmokeMachine: compose key 03:33
that's exactly what it does 03:34
SmokeMachine naxieAlDle: yes... I'm searching to know how to do that! (That would be great for my phone too...)
naxieAlDle by the way, we have some tips here: docs.perl6.org/language/unicode_entry#XCompose 03:36
03:38 xtreak joined 04:10 ZzZombo_ is now known as ZzZombo 04:14 wamba joined
naxieAlDle huggable: wget 04:15
huggable naxieAlDle, nothing found
naxieAlDle huggable: curl
huggable naxieAlDle, nothing found
04:21 ZzZombo left 04:34 cdg left 04:54 Cabanoss- joined 04:58 Cabanossi left, Cabanoss- is now known as Cabanossi 05:05 khw left 05:18 CIAvash joined 05:23 LeCamarade left, LeCamarade joined
masak morning, #perl6 05:25
05:25 naxieAlDle left, mcmillhj joined
zengargoyle last i checked i couldn't make XCompose work seamlessly with ibus input method. drove me mad. 05:30
ibus hijacks XCompose and doesn't honor ~/.XCompose (or /usr/share/X11/locale/???/Compose) and instead uses its own lame table. 05:33
so you have to choose between using XCompose w/o ibus or using ibus to get other input methods (RFC1354, unicode, anthy, etc.) 05:34
05:34 skids left
zengargoyle graaaaarrr 05:34
still i found other more common XCompose mappings for the unicode characters that p6 uses to be a bit better than making a compose+texas type of mapping. 05:38
ditching ibus is probably fine if you don't tend to use exotic input methods like anthy to type japanese/chinese/etc. XCompose does fine for a few sets of special characters but not for going from say romanji to 日本語 05:46
05:54 cibs left 05:57 cibs joined 06:00 BenGoldberg left
zengargoyle offers a thinly veiled plea for somebody to write an ibus compose plugin that supports old-school XCompose 06:00
06:05 eroux left 06:07 mcmillhj left
samcv i use ibus with a compose file 06:17
but i don't use any fancy input methods though
06:23 Actualeyes left 06:36 wamba left 06:41 Actualeyes joined
masak I'm not sure I like the dictum "explicit is better than implicit" all that much 06:42
I'm guessing Python went with it because Perl does a lot of funky things with $_, which can sometimes be elided -- and other similar DWIMmy stuff 06:43
but the more I think about it, the less sure I am that as a rule explicit *is* better than implicit
seems more like you'd pick or create an abstraction level, and you definitely shouldn't be explicit about *everything*, because that'd be really annoying 06:44
instead, you single out the things you care about, and make those explicit
the power of the abstraction rests just as much in making the relevant things explicit as in making the irrelevant things implicit 06:45
06:52 RabidGravy joined, xtreak_ joined 06:54 xtreak left 06:55 domidumont joined 06:57 TEttinger left 07:07 llfourn left 07:12 wamba joined, agentzh left 07:20 agentzh joined, girafe left, Khisanth left, pmurias joined
pmurias masak: isn't "explicit vs implicit" a trade-off? having things more explicit seems a good thing but you pay for it with verbosity and clutter 07:23
moritz I'm kinda with masak there. The most implicit program is just a call to dwim(); the most explicit is machine code 07:25
neither is very useful for the programmer
07:26 eroux joined
moritz also note how python says explicit is better, but foregoes explicit type annotations completely 07:26
(except as optional, non-enforced annotations in 3.6)
jast non-enforced annotations? that seems kind of useless... 07:27
moritz we had that in Perl 6 before Pugs implemented type checking
turns out a significant percentage (maybe 20?) of type annotations were actually wrong 07:28
the python folks talk about them as hints for static analyzers, but I'm not sold that it's a good idea to have types and not enforce them
07:30 xfix left 07:32 xtreak_ left 07:33 Khisanth joined, ggoebel left
jast yeah... if the annotations are wrong, your static analyzers will give results that are essentially irrelevant to what actually happens 07:33
07:36 darutoko joined 07:46 ggoebel joined 07:49 Todd joined
Todd Hi All, What is wrong with my syntax here. 07:50
yoleaux 4 Mar 2017 10:53Z <IOninja> Todd: what sort of perl5 you got installed? ExtUtils::Embed was part of it since 5.003007, so it's very strange it can't find it. FWIW, I never had problems with perlbrewed one `\curl -L install.perlbrew.pl | bash; echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc; perlbrew install perl-stable -Duseshrplib -Dusemultiplicity; perlbrew switch perl-stable; perlbrew install-cpanm`
4 Mar 2017 17:51Z <b2gills> Todd: the latest version of Perl 5 has subroutine signatures similar to that of Perl 6
Todd I am using docs.perl6.org/syntax/qx.html
sub WritePrimaryClipboard ( $Str ) { qxx{ echo "$Str" | xclip -selection primary -o }; } # mouse over
Undeclared routines: clipboard used at line 54 echo used at lines 51, 54 o used at lines 51, 54 primary used at line 51
07:50 ZzZombo joined
Todd why does it ting all my bash commands are perl6 routines? 07:51
07:51 ZzZombo is now known as Guest45281, Guest45281 left, Guest45281 joined, Guest45281 is now known as ZzZombo
Todd think not ting 07:53
{ qx{ echo "$Str" | xclip -selection primary -o }; } 08:01
08:01 dct joined
Todd worked 08:01
when do I use qqx and qx?
08:03 llfourn joined 08:06 abraxxa joined 08:07 ZzZombo_ joined, ZzZombo is now known as Guest39478, ZzZombo_ left, ZzZombo_ joined, ZzZombo_ is now known as ZzZombo 08:08 llfourn left, Todd left 08:09 Guest39478 left, mcmillhj joined 08:10 ZzZombo_ joined 08:12 abraxxa left, ZzZombo left 08:13 abraxxa joined 08:14 rindolf joined, g0d355__ joined, mcmillhj left 08:15 ZzZombo_ left 08:19 koki1 left 08:21 faraco joined 08:24 rindolf left, koki1 joined, llfourn joined
moritz qqx when you want a string to interpolate 08:25
08:27 sivoais left 08:28 bjz joined, rindolf joined 08:39 faraco left 08:42 cibs left 08:44 cibs joined 08:45 wamba left 08:47 dakkar joined
DrForr .tell MasterDuke I wasn't planning to do anything that transforms text, but given the Texas <-> Mexico transformation that could be useful. 08:50
yoleaux DrForr: I'll pass your message to MasterDuke.
08:51 xfix joined, Actualeyes left 09:02 domidumont left 09:03 mcmillhj joined 09:04 jonas1 joined 09:07 domidumont joined, mcmillhj left 09:09 mcmillhj joined 09:13 llfourn left, domidumont left 09:14 mcmillhj left, sivoais joined, domidumont joined 09:20 xtreak joined 09:24 cibs left
timotimo huh. with a Proc that only has :in, how do i wait for it to terminate? 09:25
09:26 cibs joined
moritz you have to .close its in 09:26
and then do a normal await
timotimo oh, it's awaitable 09:27
er, no.
Must specify a Promise, Channel, or Supply to await on (got a Proc)
09:27 wamba joined
timotimo i mean i can NativeCall into waitpid for its .exitcode 09:27
09:32 Actualeyes joined 09:35 llfourn joined 09:37 rindolf left
moritz timotimo: looks like a hole in the API 09:37
timotimo yup
09:37 kyan left
timotimo wanna RT it? i gotta make some phone calls and find a doctor's appointment 09:37
sammers hi #perl6 09:39
moritz timotimo: it looks like .close waits for the Proc
github.com/rakudo/rakudo/blob/nom/...Pipe.pm#L5 09:40
hi sammers
sammers hi moritz
is there a way to return a hash of "our $foo" variables defined in a module? 09:41
I can return the values like this...
m: unit module B { our $var = 42; our $bar = 84 }; say B::{*}; 09:42
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use 'unit' with block form of module declaration
at <tmp>:1
------> 3unit module B7⏏5 { our $var = 42; our $bar = 84 }; say B
expecting any of:
generic role
09:42 xtreak left
sammers oops 09:42
timotimo moritz: huh. i don't think that makes a lot of sense? 09:43
sammers m: module B { our $var = 42; our $bar = 84 }; say B::{*};
camelia (42 84)
Geth doc: bfddbcd5d6 | (Naoum Hankache)++ | doc/Language/pod.pod6
Add Pod tutorial
09:48
doc: 4ee2630a90 | (Naoum Hankache)++ | doc/Language/pod.pod6
Merge pull request #1232 from hankache/master

Add Pod tutorial
09:49 nadim joined
moritz timotimo: right, because it might not be the last pipe 09:53
and it doesn't really wait, it just sets the status
09:53 espadrine joined
jnthn The more confused discussions about Proc with :out and :err I see here, the more I wonder if we should deprecate it in favor of Proc::Async, which at least has a less confusing API... 09:55
At the very least, we should probably suggest people use that instead.
09:56 lukaramu joined 09:59 kaare_ left 10:01 kaare_ joined
moritz jnthn: is there a sensible way to wait for a Proc to finish if it has pipes open? 10:02
jnthn: there's confusion around Proc, but some of it might be due to the API not covering all edge cases 10:03
jnthn So far as I understand it, the idea is that .close blocks until process exit
moritz jnthn: but what if you have multiple pipes open? 10:04
jnthn I don't know
And that's why I lean to deprecate rather than repair
I don't actually think this is a fixable API
moritz :(
jnthn It confuses *everyone* :( 10:05
moritz for the cases where it worked, I really liked it
jnthn I mean, I'm happy to hear options and stuff
moritz Proc::Async requires much more hand-holding for the simple cases
jnthn The simple cases are shell and run where you only care about the exit code 10:06
moritz make .close on the handles only close the handles, and make the Proc itself awaitable, or give it a method that returns a Promise or so
jnthn Well, Proc was meant to be synchronous, so I'm not sure if Promise makes a lot of sense 10:07
I guess we could give it a .wait method
And you have to make sure you read from and closed the handles *before* you call that
That would be more sensible
But I'm not quite sure there's an obvious migration path. :S 10:08
moritz well, you have to close the .in handle
maybe use v6.d gives you the new behavior?
jnthn Wouldn't it be important to read from the .out and .err handles to completion also? Otherwise the process could block on a write and never exit. 10:09
(Provided you declared that you wanted them, of course.)
timotimo the case i had was about letting the parent process inherit stdout 10:10
if you don't pass :out, there's currently no way to wait for the process to terminate by itself short of NativeCall + waitpid
jnthn I guess for the multiple pipes case we could make sure - if it isn't already the case - that the *second* one blocks and gets you the exit code.
timotimo: If you don't pass :out isn't the .run of the process entirely synchronous? 10:11
timotimo i do pass :in, though
jnthn Oh :S
timotimo :)
jnthn This API really wasn't thought out so well. :(
timotimo in other words: "aaw nuts!"
jnthn But yeah, I'd say for any multi-pipe cases, suggest Proc::Async. 10:14
10:16 ZzZombo joined, ZzZombo left, ZzZombo joined 10:25 xtreak joined
moritz with a synchronous API, you always have risk of races 10:25
consider running an application that produces output at a fast rate
so you drain its .out 10:26
and then you call .close, and during that time, it already filled its output buffer again
so now it blocks writing to its STDOUT
or does the blocking stop when you closed the pipe? 10:27
moritz doesn't know enough UNIX
timotimo hm
but with .slurp-rest(:close) we're waiting for it to signal completion before we close 10:28
jnthn I think if you close the pipe then either it'll get a write error or a SIGPIPE
moritz timotimo: but what if it writes to both OUT and ERR?
timotimo ah, right
moritz timotimo: then you're draining OUT, for example
and it tries to write to ERR, fills the buffer, blocks 10:29
timotimo right, of course
yeah, an async version there would be preferable
10:30 Gk-1wm-su joined 10:35 Gk-1wm-su left 10:36 espadrine left
Geth ecosystem: 2aed1df39f | (Tom Browder)++ | META.list
update version of Text::More
10:36
10:38 xtreak left 10:43 vike joined 10:45 wamba left 10:46 grondilu_ left 10:48 Celelibi left 10:52 Celelibi joined 10:54 wamba joined
IOninja Todd, but the code you pasted has `qxx` not `qqx` 10:57
m: qxx|echo "hi"|
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3qxx|echo "hi"|7⏏5<EOL>
expecting any of:
prefix
term
IOninja m: qxx{echo "hi"} 10:58
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routines:
echo used at line 1
qxx used at line 1. Did you mean 'QX'?
IOninja m: qxx{"hi"}
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
qxx used at line 1. Did you mean 'QX'?
IOninja
.oO( we have QX? )
10:59
m: QX{"hi"}
camelia qx, qqx is disallowed in restricted setting
in sub restricted at src/RESTRICTED.setting line 1
in sub QX at src/RESTRICTED.setting line 11
in block <unit> at <tmp> line 1
IOninja Bahaha 11:00
11:00 xtreak joined
IOninja AlexDaniel: my Twitter notifications are now chuck full of haters and winers 'cause you added ≤ ≥ ≠ 11:01
timotimo wow, people noticed that?
DrForr Party *on*! We're onto the next stage now! 11:02
11:03 Celelibi left
timotimo what was it .. there's languages everybody complains about and languages that nobody uses? 11:03
IOninja "Good to know you've got your priorities straight.": twitter.com/GPHemsley/status/838583291309658112 11:04
"Perl: "hey everyone, we're still relevant! here's a stupid fucking idea! witness me": twitter.com/syn/status/838556934299058176
"@zoffix Those who do not learn the lessons of APL are doomed to the obscurity of APL.": twitter.com/kittylyst/status/838542323193638913
11:05 kyan joined
timotimo dude, imagine, if we had spent the fifty paid full-time hours needed to build these operators on Butterfly on Rails instead ... just imagine! 11:05
IOninja lol yeah :) 11:06
"@fugueish @zoffix Please tell me it's just a joke involving a font with ligatures.": twitter.com/RReverser/status/838542276653682695
11:06 mcmillhj joined
IOninja "sure that's mad altogether": twitter.com/Shawa_a/status/838672611898966016 11:06
Well, as someone wise once said. If you don't have haters, you're doing it wrong :) 11:07
And to end it on a good note:
"i've always seen perl as a language of cruft and duct tape but even i have to admit this is pretty fucking dope": twitter.com/elisohl/status/838566583706378241
DrForr ASCII4LYF, I'm guessing. 11:09
11:10 Celelibi joined, xtreak left
DrForr Alternatively "Hey, I'v got nothing worthwhile to say so I'm just going to laugh at you and enjoy the adulation from my homies." 11:11
jnthn Even before theset we must already have had a couple of dozen operators which have both ASCII and non-ASCII forms (set and bag ops, composition op, heck even multiplication).
11:11 wamba left
jnthn *these 11:11
IOninja jnthn: exactly what I was thinking. ≤, ≥, ≠ are hardly the most outrageous use of Unicode we have :D 11:12
DrForr While I'm thinking of it, does zef have an update option?
Eeh, I'll just install.
11:12 wamba joined
IOninja It does 11:12
zef update WhateEver::Moduly::Or::zef
or upgrade
I forget which :) 11:13
jnthn IOninja: Yeah, but knowing that would mean doing research, and Twitter is mostly about quick snark :P
IOninja :P
DrForr Okay, was just writing new docs.
11:14 mcmillhj left, Sound joined 11:16 Celelibi left 11:28 Unavowed_ left, Unavowed joined 11:32 Celelibi joined 11:34 andrzejku left
samcv DrForr, `zef upgrade` updates modules that need updating if the version numbers have been bumped 11:50
11:51 CIAvash left
IOninja Oh, the "sure that's mad altogether" tweet was positive. It's just Irish 11:54
DrForr Okay, 'zef install' is all I need then...
11:56 risou is now known as risou_awy 11:57 labster left 12:00 bjz_ joined 12:01 rindolf joined 12:02 bjz left 12:06 geekosaur left 12:08 geekosaur joined
tbrowder ugexe: i just noticed that the dynamic vars $*PROGRAM and $*PROGRAM-NAME are transformed with a zef-installed module so that either var returns a comp-unit hash instead of the actual executable program name. any way around that? 12:08
i haven't tried panda... 12:09
12:25 lep-delete left 12:26 pmurias left 12:27 domidumont left 12:28 lep-delete joined
Geth ecosystem: 95339de6b9 | (Lloyd Fournier)++ | META.list
Add Spit to ecosystem

  github.com/Spit-sh/spitsh <-- check it out
12:29
12:29 domidumont joined 12:30 xtreak joined 12:31 _28_ria left 12:33 _28_ria joined, xtreak left
tbrowder i filed an issue with 'ecosystem' 12:34
12:34 g0d355__ left 12:36 lichtkind_ left 12:37 aborazmeh joined, aborazmeh left, aborazmeh joined 12:59 wamba left 13:00 Celelibi left 13:02 wamba joined, risou_awy is now known as risou 13:09 mcmillhj joined
[Coke] (grants committee) Yes, Coke was until recently also a board member, and is now the secretary (taking over from Makoto as soon as we can manage a transition meeting) 13:11
13:12 Celelibi joined, sufrostico joined
moritz [Coke]++ # TPF work 13:12
13:14 domidumont left
IOninja Wooo 13:14
[Coke]++
13:14 mcmillhj left, bjz joined 13:15 domidumont joined, bjz_ left, Celelibi left, Celelibi_ joined
IOninja Wait, I'm confused. You're now the secretary? The news say Makoto is secretary: news.perlfoundation.org/2017/03/mak...ecret.html 13:16
[Coke] (in review) my first BASIC was the cartridge on the Atari 400. 13:17
13:18 sena_kun joined
[Coke] IOninja: I am secretary of the GC committee. He has moved on to secretary of the TPF Board. 13:18
IOninja Ah
13:20 risou is now known as risou_awy, mcmillhj joined, Celelibi_ left 13:26 mcmillhj left 13:27 bjz left, bjz joined 13:30 spebern joined 13:33 lukaramu_ joined
[Coke] Naoum Hankache ? 13:33
13:34 mscha joined
mscha m: say (1/2+1/2, 2/2).unique; # huh? 13:35
camelia (1 1)
mscha m: say (1/2+1/2, 2/2).unique.map(*.perl); # huh?
camelia (<1/1> 1.0)
mscha m: say (1/2+1/2, 2/2).unique.map({ *.WHAT }); # huh?
camelia ((Whatever) (Whatever))
IOninja It's the reduction thing all over again
mscha m: say (1/2+1/2, 2/2).unique.map({ $_.WHAT }); # huh?
camelia ((Rat) (Rat))
IOninja mscha: basically will be resolved as part of rt.perl.org/Ticket/Display.html?id...et-history 13:36
13:36 lukaramu left
IOninja Well, hopefully. 13:37
mscha IOninja: thanks.
13:37 Celelibi joined, spebern left
mscha A related question: to make a list of numbers (which can include Ints and Rats) unique, you can't use @nums.unique; you have to use @nums.unique(:with(&[==])). Is there a simpler / more elegant way to do this? 13:38
13:39 sufrostico left, xtreak joined
IOninja Looks pretty elegant as it is :) 13:39
lizmat mscha: no, that's pretty much the way
mscha Okay. It cost me 15 minutes of debugging to figure this out, though. :-( 13:40
IOninja heh
moritz @nums>>.narrow.unique
13:41 itaipu joined, sufrostico joined, aborazmeh left
moritz if you're fine with Rats-that-represent-ints to be cast to Int 13:41
IOninja mscha: well, the second sentense of the docs do say "unique uses the semantics of the === operator to decide whether two objects are the same"
mscha I know, I know, it works as documented.
moritz: that's a nice solution. 13:42
MasterDuke do we need that "the semantics of"?
yoleaux 08:50Z <DrForr> MasterDuke: I wasn't planning to do anything that transforms text, but given the Texas <-> Mexico transformation that could be useful.
MasterDuke could it just be "unique uses the === operator to decide whether two objects are the same"?
DrForr perl6-tidy --no-comments (haven't actually written the flag) works.
IOninja MasterDuke: that implies the user can override === and expect unique to pick it up. We already had this issue with is-deeply 13:43
13:43 mcmillhj joined
MasterDuke ok, should stay as is then 13:44
IOninja MasterDuke: and it doesn't even use interall ones
mscha Another, perhaps better, solution would be to ensure I only have Rats (so use literals like 1.0).
IOninja just goes for the WHICH directly
MasterDuke IOninja: "interall ones"? 13:45
IOninja I mean core ones.
13:45 sufrostico left
MasterDuke oh, "internal" 13:45
DrForr: "--no-comments", perl6-tidy won't speak to the press? 13:46
IOninja MasterDuke: `is-deeply` does use `infix:<eqv>` but it still won't pick up user's infix:<eqv> because it's not in scope.... So we shouldn't say "uses ===" in unique for that reason alone, but .unique doesn't even use infix:<===>
DrForr Bool $is-Trump
13:47 sufrostico joined 13:48 sergot joined 13:51 mr-foobar joined 13:55 risou_awy is now known as risou
MasterDuke m: say (1/2+1/2, 2/2).unique(:as(*.Num)) 13:57
camelia (1)
13:57 xtreak left
IOninja m: say (1/2+1/2, 2/2)».Num.unique 13:57
camelia (1)
13:57 KDr2 joined
IOninja But that destroys precision 13:58
MasterDuke kind of odd. "The values are transformed for the purposes of comparison, but it's still the original values that make it to the result list:" 13:59
doc for :as
m: say (1/2+1/2, 2/2).unique(:as(*.Num)).perl 14:00
camelia (<1/1>,).Seq
14:00 nadim__ joined
MasterDuke m: say (1/2+1/2, 2/2)».Num.unique.perl 14:00
camelia (1e0,).Seq
MasterDuke ok, looks like :as works as docced 14:01
14:01 nadim left 14:02 eroux left
IOninja m: say (<1000000000000002/1>, 1000000000000000).unique(:as(*.Num)).perl 14:06
camelia (1000000000000002.0,).Seq
14:07 yqt joined
IOninja m: say (1/0, 2/0, 3/0, 4/0, 5/0, 6/0, 7/0, 8/0, 9/0, 10/0).unique(:as(*.Num)).perl 14:08
camelia (<1/0>,).Seq
IOninja m: say (1/0, 2/0, 3/0, 4/0, 5/0, 6/0, 7/0, 8/0, 9/0, 10/0).unique.perl
camelia (<1/0>, <2/0>, <3/0>, <4/0>, <5/0>, <6/0>, <7/0>, <8/0>, <9/0>, <10/0>).Seq
El_Che www.eclipsecon.org/na2016/sites/de...ntimes.pdf <-- camelia on page 7 14:10
IOninja mscha: BTW, :with() kinda sucks. It has O(n²/2) complexity or something like that. Grinds to a halt when a uniquing list with 4000+ elements 14:11
Geth ecosystem: ba18238f62 | (Tom Browder)++ | META.list
update module Text::More

add work-around for problem with installed modules and variables $*PROGRAM and $*PROGRAM-NAME (issue filed with ecosystem)
14:11 Alikzus joined
IOninja El_Che: neat... but the guy likely just screenshot-copypasted those and may not even know what lang it's for :) 14:12
El_Che IOninja: good enough
IOninja heh 14:13
IOninja isn't that desperate :P
14:13 bjz left
Geth doc/py-nutshell: 5952a50ef8 | (Brian Duggan)++ | doc/Language/py-nutshell.pod6
consistent use of quotes, spaces in exprs, typos
14:16
MasterDuke El_Che: might want to post that link in #moarvm
El_Che MasterDuke: good idea
IOninja Uh-oh... There's a serious blocker to the IO Grant :o 14:19
"Release date: March 21, 2017": en.wikipedia.org/wiki/Mass_Effect:_Andromeda
^_^
MasterDuke i've never played any of the mass effects. can you start in the middle or do you have to start with the first? 14:20
IOninja MasterDuke: you can start with Andromeda, since it's an entirely different set of characters, but the first three.... I'd say you gotta start with the first one 14:22
Especially 'cause in 3 you meet again many of the characters from 1... 14:23
14:25 cdg joined 14:28 KDr2 left 14:33 skids joined, cibs left
MasterDuke ugh though, the first three haven't been ported to the PS4 14:34
IOninja Hahaha. Console peasants.
14:34 Sound left
MasterDuke i split between PS and Steam, just depends on the game 14:35
14:35 cibs joined
IOninja 2nd one is pretty annoying with controls. The jump, hide-behind-cover, and sprint (I think) are all bound to the same key. 14:35
Thanks to consoles, no doubt. 14:36
Oh, jump-over-cover not jump
Or something like that.
MasterDuke i think max payne 3 will be my next PC game 14:37
IOninja Already have it, but never played yet. 14:38
(proof that steam sales can trick me outta my money :P)
Geth doc/py-nutshell: 441c3e65b1 | (Brian Duggan)++ | doc/Language/py-nutshell.pod6
mentioned interpolation, used ' for chars and words
14:39
MasterDuke the first was one of my most favorite games ever. second wasn't as good. i've heard great things about the 3rd, just haven't gotten around to it yet
14:43 wamba left, gabiruh_ is now known as gabiruh 14:44 wamba joined 14:46 Sound joined 14:48 rindolf left 14:52 xtreak joined 14:53 Possum left
Geth doc/py-nutshell: 9ecfa4172a | (Brian Duggan)++ | doc/Language/py-nutshell.pod6
whatever
14:54
14:54 xtreak left, xtreak joined
Geth doc/py-nutshell: d70beee69b | (Brian Duggan)++ | doc/Language/py-nutshell.pod6
whatever
14:56
14:57 travis-ci joined
travis-ci Doc build passed. Brian Duggan 'consistent use of quotes, spaces in exprs, typos' 14:57
travis-ci.org/perl6/doc/builds/208213105 github.com/perl6/doc/compare/032a1...52a50ef836
14:57 travis-ci left 14:59 xtreak left 15:00 xtreak joined
IOninja m: say IO::Path ~~ Cool 15:05
camelia False
ugexe tbrowder: no there is no way around that. Those sha1 hashes are the actual $*PROGRAM
IOninja huh... I thought it totally was :/
ugexe you want the original path name 15:06
lizmat my class IO::Path is Cool
ugexe well, name-path (lib/Foo/Bar.pm6)
lizmat so not sure what's going on there ?
IOninja Ah. restricted bot
lizmat ah, yes...
IOninja m: say IO::Path ~~ RESTRICTED-CLASS
camelia True
IOninja m: say '.'.IO ~~ Cool # heh 15:09
camelia True
IOninja m: say '.'.IO.^name 15:10
camelia IO::Path
IOninja m: say '.'.IO.WHAT === IO::Path
camelia Cannot resolve caller infix:<===>(IO::Path, IO::Path); none of these signatures match:
($?)
(\a, \b)
(Int:D \a, Int:D \b)
(int $a, int $b)
(Num:D \a, Num:D \b)
(num \a, num \b --> Bool)
(Str:D \a, Str:D \b --> Bo…
IOninja m: say '.'.IO.WHAT === IO::Path.WHAT
camelia Cannot resolve caller infix:<===>(IO::Path, IO::Path); none of these signatures match:
($?)
(\a, \b)
(Int:D \a, Int:D \b)
(int $a, int $b)
(Num:D \a, Num:D \b)
(num \a, num \b --> Bool)
(Str:D \a, Str:D \b --> Bo…
IOninja weird that it doesn't fit into (\a, \b) candidate 15:11
m: say IO::Path ~~ Any 15:13
camelia False
IOninja Ahhh
15:14 Possum joined
DrForr El_Che: I've done a proof of concept for Perl6::Tidy, I'm open to ideas on how it can be configured. I'm going to suggest a JSON or other configuration file. 15:15
15:15 travis-ci joined
travis-ci Doc build errored. Brian Duggan 'whatever' 15:15
travis-ci.org/perl6/doc/builds/208225888 github.com/perl6/doc/compare/441c3...cfa4172a68
15:15 travis-ci left 15:22 travis-ci joined
travis-ci Doc build passed. Brian Duggan 'mentioned interpolation, used ' for chars and words' 15:22
travis-ci.org/perl6/doc/builds/208220766 github.com/perl6/doc/compare/5952a...1c3e65b161
15:22 travis-ci left
El_Che DrForr: have you considered YAML? 15:25
DrForr: most config stuff I do nowadays I use YAML. It's more readable than JSON 15:26
DrForr I haven't thought too much.
El_Che I pretty much standarized on it. My own programs, our Puppet config (with encrypted YAML voor secret values), our docker setup (with docker-compose) and so on 15:27
the rest of the stack is xml and it makes me cry )
:)
b2gills I like YAML because it is line oriented so it plays nicer with git 15:28
mst somebody (possibly me eventually) needs to port JSONY from pegex to p6grammars
El_Che b2gills: exactly
DrForr It's not really going to merge with puppet/docker stuff, but as long as there's a standard to look to, I don't mind.
El_Che our scm web interface does diff on config and YAML works great 15:29
b2gills JSON wouldn't be as bad if it allowed trailing commas
El_Che DrForr: the choices nowadays, seem to be JSON, YAML, XML and TOML 15:30
DrForr: by the way, JSON is a subset of YAML
DrForr Well, XML can bite my shiny metal ass, not sure what TOML is...
El_Che DrForr: en.wikipedia.org/wiki/YAML#Comparison_with_JSON 15:31
DrForr I also don't want a huge dependency there.
El_Che DrForr: XML, I agree. TOML: haven't seen it that much and too much INI style for me
tbrowder ugexe: did you see the suggestion i made in the issue for ecosystem? would that be a possibility?
15:31 wamba left
El_Che DrForr: true for dependencies. Although for me, config must be human readable/writable in the 1st place 15:32
DrForr: there is where xml fails badly and json is meh 15:33
DrForr JSON doesn't allow comments, though you can always create a "comments" : "foo bar" tag. But then we get namespace collisions and I go ballistic.
El_Che hehe, you answered your own question 15:34
DrForr Teddy bear.
15:34 alimon joined
El_Che what's bad about json is that "pretty" json is not the default, so more often than not you get a long line that makes git diff useless 15:35
perigrin <bite target="DrForr's Shiney Metal Ass" />
El_Che haha 15:36
perigrin the secret being that won't parse cleanly. 15:37
mscha IOninja: re ":with sucks"; I noticed, yes. I'm now using my Rat @nums; ."REDUCE-ME for @nums" as workaround for the reduce bug, and @nums.sort.squish. That gives the best performance. ( 15:39
IOninja mscha: note that .REDUCE-ME is an internal method, and considering it has a race issue, one that's likely to be removed. 15:40
Hoping to do the Rat stuff after IO grant so... removed soon is a possibility as well :D
Oh!
Do `.= norm` instead 15:41
mscha I know, but by the time it starts failing, I can remove that entire statement - hopefully.
IOninja m: (<1/2> + <1/2>).norm.say
camelia 1
IOninja m: (<1/2> + <1/2>).norm.nude.say
camelia (1 1)
IOninja m: (<1/2> + <1/2>).nude.say
camelia (1 1)
mscha nude already normalizes, so that proves nothing.
(1/2+1/2).nude 15:42
m: say (1/2+1/2).nude
camelia (1 1)
IOninja m: dd [.numerator, .denominator] with (<1/2> + <1/2>).nude
camelia No such method 'numerator' for invocant of type 'List'
in block <unit> at <tmp> line 1
IOninja m: dd [.numerator, .denominator] with (<1/2> + <1/2>)
camelia [2, 2]
IOninja m: dd [.numerator, .denominator] with (<1/2> + <1/2>).norm
camelia [1, 1]
IOninja There. .norm works and is public API
mscha OK, thanks.
IOninja u: { *.uniprop eq 'Nd'|'Nl'|'No' } 15:45
unicodable6 AlexDaniel, MasterDuke: Hey folks. What's up with me?
IOninja, Oops, something went wrong!
15:46 travis-ci joined
travis-ci Doc build passed. Brian Duggan 'whatever' 15:46
travis-ci.org/perl6/doc/builds/208226725 github.com/perl6/doc/compare/9ecfa...0beee69be8
15:46 travis-ci left 15:51 smls joined
smls bisectable6: say <a b> Z=> |(1, 2); 15:52
bisectable6 smls, On both starting points (old=2015.12 new=9da50e3) the exit code is 0 and the output is identical as well
smls, Output on both points: «(a => 1 => 2)»
smls Is |-interpolating arguments into the argument list of Z, supposed to behave like that? 15:53
m: say <a b> Z 1, 2, 3; 15:54
camelia ((a 1) (b 2))
smls m: say <a b> Z |(1, 2, 3);
camelia ((a 1 2 3))
mscha m: my Rat @nums = (1.0, 1/2+1/2)».norm; say @nums.unique; 15:56
camelia (1)
mscha m: my Rat @nums = (1.0, 1/2+1/2); .REDUCE-ME for @nums; say @nums.unique;
camelia (1)
mscha Huh, that first one gives (1 1) on my Rakudo Star 2017.01.
IOninja m: say ߃ +߄ +߅ +߆ +߇ +߈
camelia 33
mscha I guess .norm must have been fixed after that.
IOninja mhm 15:57
bisect: old=2017.01 new=HEAD my Rat @nums = (1.0, 1/2+1/2)».norm; say @nums.unique;
bisectable6 IOninja, Bisecting by output (old=2017.01 new=9da50e3) because on both starting points the exit code is 0
IOninja, bisect log: gist.github.com/17405cfc6b8a6bccb6...d57b68f2d4
IOninja, (2017-02-13) github.com/rakudo/rakudo/commit/aa...a639722a10
IOninja feb 13. So it'd be in 2017.02 compiler release
mscha Oh, right, I remember now; .norm was a no-op. 15:58
Maybe I'll need to stop using Star releases only... 15:59
IOninja Maybe we need to start releasing Star releases more frequently... 16:00
mscha That'd be even better. :-) 16:01
IOninja :)
16:01 cibs left
timotimo didn't we want to release star less often at one point? :S 16:03
16:03 cibs joined
SmokeMachine u: ߃ 16:03
unicodable6 SmokeMachine, U+07C3 NKO DIGIT THREE [Nd] (߃)
IOninja timotimo: don't recall that point. Though, it'd make sense to make Star releases less frequently if we make compiler releases more end-user-like. E.g.: Compiled (where needed to) Rakudo with zef and install script that asks "Would you like me to install modules for X?" that would just fetch the modules over network and install them with zef 16:07
And in that paradigm, Star would be a release with packaged modules, for people who can't/don't want to fetch them from network during install. 16:08
m: say ߈߈
camelia 88
IOninja m: say ߈߈/2
camelia 44
IOninja :)
m: say ½*߈߈ 16:09
camelia 44
16:09 raschipi joined
IOninja Hm 16:10
16:10 xtreak left
IOninja I just realized I can do that on my own. 16:10
Like without bikeshedding committee. And then see if anyone uses the releases.
s/bikeshedding committee/piece-meal discussions that don't get written down :)/ 16:11
timotimo .o( Rakudo Stoar )
Rakudo Stork: it brings the modules 16:12
El_Che IOninja: that exactly how I hoped Rakudo Star worked when I first heard of it
IOninja: all precompiled with modules on a "Star" level release 16:13
IOninja I'm gonna name mine "Perl 6 ١∧only" 16:16
16:20 cdg_ joined 16:22 imcsk8 left, imcsk8 joined 16:23 cdg left
timotimo what's those characters? 16:24
.u ١∧ 16:25
yoleaux U+0661 ARABIC-INDIC DIGIT ONE [Nd] (١)
U+2227 LOGICAL AND [Sm] (∧)
timotimo oh
16:25 alphah joined
stmuk IOninja: I have wondered about monthly compiler releases with p6doc and zef 16:26
timotimo Rakudo JustTheBones
El_Che stmuk++
stmuk but there have been monthly releases with major platform breakage as well :/
IOninja Because it's only tested on Debian... 16:31
Is there no way to test/make a release for OSX unless you own an Apple computer? 16:32
stmuk I believe its possible to run OS X under virtualbox now 16:33
not sure how legal
IOninja Last I looked, it was illegal.
stmuk there is also a project called "puredarwin" but it's fairly dead 16:34
timotimo you'll go to jail
16:36 domidumont left 16:37 xxpor_ left, smls left 16:38 m0ltar left 16:40 imcsk8 left 16:41 imcsk8 joined, xxpor joined, m0ltar joined
IOninja ugh, $1,750 for a MacBook Pro that has the same stats as my 11 year old Dell laptop... 16:42
No way I'm buying one just to test Perl 6 releases on :(
ilmari "same"? as in same number of cores and mhz? 16:43
[Coke] www.perlmonks.org/?node_id=1183351 - perhaps some with an account could also point to stackoverflow as a potential source for getting helpful responses to your Perl 6 questions.
ilmari I bet it does more work per cycle and can boost to higher frequencies 16:44
[Coke] is not sure he can respond without snark.
IOninja Lemme double check (it's still running and I use it to look up guitar tabs in my music room)
stmuk I think processor speed increases have been pretty flat for about 7-10 years. Battery life is better on laptops but that's about it
[Coke] There are several core devs who currently have macs and can probably sign up for testing, IOninja.
stmuk my MacBook Air 2011 isn't that much slower than a MacBook Pro 2015 16:45
16:46 IONinja_Lappy joined
IONinja_Lappy Here's what's my lappy is like: gist.github.com/anonymous/b2eca82c...954afadb11 16:47
IONinja_Lappy goes back to normal computer
16:47 IONinja_Lappy left, n1ce left
IOninja And here's the one I was talking about, last one in the list: www.apple.com/ca/shop/buy-mac/macbo...ro/13-inch 16:48
Well, OK, it has 8GB of RAM and a slightly better processor, but it's an ELEVEN YEAR OLD laptop :)
(lappy has 4GB) 16:49
16:49 n1ce joined
IOninja [Coke]: yeah, but in a perfect world all that would be automated :) 16:50
stmuk www.youtube.com/watch?v=_9mzmvhwMqw is quite revealing 16:51
IOninja Hm, though I guess maybe I could buy something like this junker and just ssh/connect another screen to it: www.ebay.ca/itm/like/172505474037?chn=ps
stmuk moores law is just going into cores which aren't much use anyway
[Coke] (automated) of course. 16:52
mj41 (I think) setup a job service that let us have machines sign up for work to do and report back on it back in the parrot days. wonder if any of that survived.
was used to get reports from various hw/OS revisions that weren't easily available. 16:53
stmuk en.wikipedia.org/wiki/Amdahl's_law
16:53 domidumont joined
stmuk a distributed smoke build/testing service would be great 16:54
16:55 spebern joined
tbrowder i have an unused mac mini to offer for a distributed build host 16:59
IOninja I'm gonna call my distro "Perl 6 Ice"... 'cause it's cool...
And the tag text will be "Includes Compiler, Etc." 17:00
17:00 risou is now known as risou_awy
IOninja :P 17:00
17:01 risou_awy is now known as risou
IOninja wonders if .ice is available as a TLD 17:02
stmuk maybe we could just add a "make smoke" which posts JSON or whatever to a central server
I think that's what parrot did (?) 17:03
geekosaur afaik TLDs are now wide open
if you have the $$$
[Coke] stmuk: there was a perl5 service that ate TAP zip files. 17:04
IOninja or maybe "Perl 6 Black", 'cause there's a .black TLD and black is cool too
[Coke] I started writing a replacement in mojo because adminning the old version was painful.
stmuk [Coke]: I've used smoulder to do that
[Coke] We could easily write the server in Perl 6 now.
17:04 cale2 joined
[Coke] stmuk: smolder! yes, that was the thing that was a PITA to admin. :) 17:05
cale2 How do I turn an array of pairs into a map?
[(this => that) (this => that) ] should be {this => that, this => that}
IOninja m: [:42a, :72b].Map.say
camelia Map.new((:a(42),:b(72)))
stmuk [Coke]: yeah its not great but it does work
17:05 cdg_ left
IOninja m: [:42a, :72b].Hash.say 17:06
camelia {a => 42, b => 72}
17:06 cdg joined
cale2 what is that syntax? :42a ? How does Perl6 not consider that to be all one thing? 17:06
m: say :42a.WHAT
camelia (Pair)
cale2 shouldn't that be one symbol called "42a"? 17:07
IOninja Symbols can't start with a digits
[Coke] m: say :42a.perl;
camelia :a(42)
stmuk google "parrot make smoke" gets unhelpful youtube hit :)
[Coke] it's to support things like :1st
17:08 TEttinger joined
IOninja It's a colonpair. it's just an alternate syntax. Same as foo => 42, :foo[42], :foo<42>, :foo{:42a}, and :foo{say "hi"} are 17:08
[Coke] stmuk: github.com/coke/muddle has my proof of concept mojo5 version, which I haven't touched in 3years.
17:08 rurban joined
cale2 [(Alabama => Montgomery) (Alaska => Juneau)] that's my data structure. Hash.new didn't work :/ 17:08
It turned it into {Alabama Montgomery => (Alaska => Juneau)} 17:09
17:09 rurban left
[Coke] cale2: what are you trying to make? a Hash? 17:09
17:09 domidumont left
cale2 Coke: anything with keys and values on the top level. 17:09
[Coke] and what are you starting out with? is this hardcoded, do you have a bunch of pairs already? 17:10
stmuk yeah parrot used to use smoulder
[Coke]: thanks
cale2 I want it to be {Alabama => Montgomery, Alaska => Juneoua}
perlpilot cale2: sounds like you might need .flat in there at first blush
[Coke] cale2: Ok, but what are you starting with?
cale2 [12:08] <cale2> [(Alabama => Montgomery) (Alaska => Juneau)] that's my data structure. Hash.new didn't work :/ 17:11
perlpilot cale2: Could you show actual code please?
[Coke] cale2; oh dear, we seem to be talking past each other.
SmokeMachine u: 「
unicodable6 SmokeMachine, U+300C LEFT CORNER BRACKET [Ps] (「)
[Coke] m: my %a = (a=>'b', c=>'d');
camelia ( no output )
SmokeMachine m: say 「bra」
camelia 5===SORRY!5===
Argument to "say" seems to be malformed
at <tmp>:1
------> 3say7⏏5 「bra」
Bogus postfix
at <tmp>:1
------> 3say 7⏏5「bra」
expecting any of:
infix
infix stopper
postfix…
stmuk smolder.parrot.org/app/projects/smoke_reports/1
[Coke] if that doesn't help, please provide code as perlpilot++ suggested and show us the error, and what you expected. 17:12
IOninja m: say 「bracket」
camelia bracket
SmokeMachine u: 「
unicodable6 SmokeMachine, U+FF62 HALFWIDTH LEFT CORNER BRACKET [Ps] (「)
SmokeMachine IOninja: thanks!
m: say 「bla」 17:13
camelia bla
cale2 github.com/WildYorkies/peregrinati...itial-code 17:14
TBH I have no idea why an array of pairs won't convert to a hash. It seems pretty straightforward. Must be missing something
Any attempt to convert to a Hash just makes the first pair the key and the pair after it the value. I probably need to flatten at some point, but I don't know how I can step into the coersion process and introduce a flat in there 17:15
IOninja hm 17:16
zoffix@VirtualBox:~$ perl6 -e '"/tmp/z.td".IO.lines.map({/(.+?)(\$<-[$]>+)/; printf "%10s %s\n", |$/})'
Unexpected named argument '' passed
in block <unit> at -e line 1
Wonder what's on about...
17:16 kaare_ left
IOninja m: "x" ~~ /(.)/; dd $/ 17:16
camelia Match $/ = Match.new(ast => Any, list => (Match.new(ast => Any, list => (), hash => Map.new(()), to => 1, orig => "x", from => 0),), hash => Map.new(()), to => 1, orig => "x", from => 0)
17:16 kaare_ joined
IOninja m: "x" ~~ /(.)/; dd [|$/] 17:16
camelia [Match.new(ast => Any, list => (), hash => Map.new(()), to => 1, orig => "x", from => 0)]
IOninja lol, .luxury TLD is $799.99 17:18
17:20 rurban joined, khw joined
IOninja :o perl6.ninja is available.... 17:23
perlpilot cale2: I would suggest that @data does not contain what you think it does.
[Coke] cale2: to troubleshoot, attempt to reproduce the problem with a small amount of code that shows the issue. 17:24
If you can reproduce the issue, share that code with us, and we can possibly help you.
If you can't, perhaps that will help point you towards the differencde between the small functioning code, and the larger non-functioning code.
raschipi geekosaur: To get a new TLD, just money isn't enough, one needs to run a register or get one to run it for you. You can't get a TLD and then keep it just for you. 17:25
17:25 kyan left
IOninja Didn't cale2 already show the data? 17:25
cale2 │ [12:08] <cale2> [(Alabama => Montgomery) (Alaska => Juneau)] 17:26
m: [(Alabama => "Montgomery",), (Alaska => "Juneau",)].say
camelia [(Alabama => Montgomery) (Alaska => Juneau)]
17:26 eroux joined
geekosaur thought the likes of Network Solutions would be happy to run it for you for... more $$$, which was the point (both my point and why they lobbied to open up the top level) 17:26
IOninja m: [(Alabama => "Montgomery",), (Alaska => "Juneau",)]».Slip.flat.Hash.say
camelia {Alabama => Montgomery, Alaska => Juneau}
[Coke] m: my @a = a=>'b',c=>'d'; my %b=|@a; say %b.perl;
camelia {:a("b"), :c("d")}
17:26 wamba joined
IOninja That's not the data tho. Each pair is in its own list. 17:26
[Coke] m: my @a = a=>'b',c=>'d'; my %b=@a; say %b.perl;
camelia {:a("b"), :c("d")}
IOninja m: my @a = (a=>'b',), (c=>'d',); my %b=@a; say %b.perl; 17:27
camelia {"a\tb" => $(:c("d"),)}
[Coke] IOninja: if he'd show code, I'd know that. :)
IOninja They showed the data ¯\_(ツ)_/¯
[Coke] but not code; how do I know how he's formatting what he's showing ups?
*us 17:28
IOninja It looks like a copy-pasted output of `say`, I just reconstructed the original from that :)
m: [(Alabama => "Montgomery",), (Alaska => "Juneau",)].flat.say
camelia ((Alabama => Montgomery) (Alaska => Juneau))
IOninja Wonder why... oh nm, Array containerizes its stuff 17:29
cale2 IOninja: you got it... is Slip and flat really needed?
[Coke]: glot.io/snippets/enqr2rapsg
[Coke] This is why I suggested showing the actual code, and why perlpilot suggested that the array may not contain what cale2 thought it did.
cale2 that's my smaller code to reproduce
IOninja cale2: well, yeah, to make flat work..
cale2: but maybe there's a better way without that... 17:30
m: [(Alabama => "Montgomery",), (Alaska => "Juneau",)]».<>.Hash.say
cale2 You can only put "say" so many places... I couldn't possibly know MORE about the data lol
camelia {Alabama Montgomery => (Alaska => Juneau)}
IOninja m: [(Alabama => "Montgomery",), (Alaska => "Juneau",)]<>.Hash.say
camelia {Alabama Montgomery => (Alaska => Juneau)}
[Coke] cale2: that code doesn't compile.
IOninja dang
cale2 I know it doesn't. That's the problem.
I'm trying many different methods to get it to work
[Coke] ok, but that's NOT the problem you stated earlier. 17:31
raschipi geekosaur: The other stake-holders did stop the TLD plans on the tracks when it was giving registers and registrars too much power. TLDs were changed to take power away from them. Altough the'll get more money, they lose control because there's more competition.
cale2 [Coke]: do you want me to share the happy path, or the not happy, but sort of functioning paht?
IOninja m: say [(Alabama => "Montgomery",), (Alaska => "Juneau",)]»<>.flat.Hash 17:32
camelia {Alabama => Montgomery, Alaska => Juneau}
[Coke] cale2: I want you to ask questions that help you get your answer. :)
asking us about the unhappy path and then switching questions makes it challening for us to help you
so, sticking with the sample we have here ... 17:33
17:33 naxieAlDle joined
[Coke] the split is giving you Seq, not Pairs, btw. 17:33
and then the pairup gives you the Pairs...
and then you're trying to make a hash = a list of 7 things (which happen to be pairs). 17:34
raschipi geekosaur: TLDs are an attack on Verisign stranglehold over domain names.
[Coke] This is going to make pair 1 the key, pair2 the value...
and then you run out.
17:34 Ven left
[Coke] I would tend to write this as my %capital; and then assign each key/value pair as we go through the for loop. 17:36
17:37 Ven joined
IOninja cale2: glot.io/snippets/enqrb2pmpv 17:37
[Coke] IOninja++ # I was getting there. :) 17:38
IOninja [Coke]++ You're right. It was better to wait for actual code than give an answer based on dumped data.
17:38 domidumont joined
[Coke] you don't want to try to use pairs here, when you can work with a even numbered list. 17:38
[Coke] wonders if IOninja is responding to private sends in #perl6 as a social thing, or if his client isn't tell him they're private. :) 17:39
as this is not the first time that's happened.
cale2 [Coke]: Cheers. That helps. 17:40
IOninja It tells me but I usually close them right away and then think on what was said and either ignore it or respond where it's easiest.
[Coke] cale2: IOninja's answer here avoids creating and then discarding a bunch of Pair objects, which would impact a bigger data set.
er, woudld have a bigger impact on...
cale2 Do other programming languages not have concepts such as flat or Slip? 17:41
I think in Python, when you try to add a list to another list, `flat` is always implied. May be why it trips me up 17:42
IOninja Some language default to flattening, forcing you to use some construct to avoid it. We do it in reverse: no flatteing but you need to tell it to flatten when needed
cale2 I do notice that there is `flat` and `|@stuff` quite often in perl6 code. Why was not flattening chosen as the default when it is used so often? Is it easier to reason about? 17:44
IOninja haha
Now go and look how often Arrayrefs and hashrefs are used in Perl 5 for example :P
geekosaur recent tcl added a *{} construct to flatten lists for much the same reason (and because programmers were using a rather insecure eval hack to work around its absence)
timotimo ugh :) 17:45
17:45 cdg_ joined
geekosaur and yes, arrayrefs and @$foo are widely used in perl 5 for similar reasons 17:46
IOninja huh 17:47
Someone registered perl6.run and it redirects to perl6.org
17:47 cdg left 17:49 risou is now known as risou_awy, risou_awy is now known as risou
cale2 I've never heard of arrayrefs or hashrefs :S 17:49
timotimo it's only a perl5 thing
stmuk perl6.club is cheap 17:50
17:50 eroux left
IOninja Well, since there's no .ice TLD (at least with my domain provider) and I'm too poor to afford .black TLD, I'm now a proud owner of perl6.vip 17:50
Huzzah \o/
timotimo stmuk: only cheap the first year, or cheap forever?
cale2 I know everyone hates it when I bring up Python, but for some reason, I never once had to think about any of this when using that language. "back in my day, a list was just a list" -future grandpa
stmuk timotimo: I didn't read the small print 17:51
geekosaur cale2, yes, python does that transparently and then bites you in other ways
timotimo stmuk: it's a very common thing for gTLDs to be reasonably priced for one year, then absurdly expensive
cale2 geekosaur: I'm trying to think of how it could bite you. Can't think of a scenario though
IOninja timotimo: on 1and1 .club is $14.99 (first year $4.99) 17:52
geekosaur that's fine, you use python in a way that works for many people. but you are again verging on "...and my experience is everyone's experience and God's design"
IOninja Canukistan dollars
Heh .capetown is a TLD ~_~ 17:53
timotimo how about caketown?
ilmari .funkytown
IOninja Nope, the only other town is .town 17:54
cale2 geekosaur: I don't understand the sensitivity when talking about other languages. I'm merely saying "in my experience it was this way. help me understand your perspective". Not trying to sound like it's "my way or the highway"
IOninja But I know they don't list all of the available TLDs.
17:54 cdg joined
stmuk we could just use opennic :) 17:54
geekosaur that was specifixclaly in refernce to you the other day starting from here and an attitude and developing it into "I know this, you are all idiots":
17:54 risou is now known as risou_awy
geekosaur and saying "don;t repeat it" 17:54
17:55 risou_awy is now known as risou
geekosaur I'm glad you have something that works for you. Turns out Python *does* handle a common case... but the times you need to do something different, you can't. 17:55
stmuk FurNIC aims to bring a unique identity to Furries, Furry Fandom, and other Anthropomorphic interest websites across the internet
geekosaur You get no choice in the matter
stmuk hahahahaha
cale2 geekosaur: I'm trying to imagine when that other case would be. Like when Python's default behavior wouldn't work for someone. That's my misunderstanding 17:56
geekosaur (I'm not especially fond of how often Slip is needed in perl 6, it smells like the common case got deHuffmanized)
cale2 If I can understand that, it helps to understand the design decisions of P6
17:57 cdg_ left 17:59 cdg left
[Coke] the flattening defaults in 6 are different from 5; there are probably some gists out there still describing the Great List Refactor (GLR) that might help if you're trying to get insight into why things are they way they are now 17:59
IOninja It's a bit tiring to explain design decisions that occured over the past 15 years that included work of ~1000 people. Especially if the person starts their question is "I never had a problem in language XYZ, and perl 6's way is weird to me..." 18:00
18:00 dakkar left
geekosaur cale2, the perl 6 default is to try to be perl-like (so a lot of behavioral defaults came from perl 5), but perl 5 here was ... ad hoc. in the extreme. (often to the "this particular statement behaves this way, this one does something else" level) 18:01
IOninja You can use the language without questioning every day the choices that won't change.
geekosaur so perl 6 has spent a lot fo time hunting around to find a minimal behavior that is consisent but comes fairly close to what p5 did
IOninja If we did everything the way Python does... we'd be called Python, not Perl 6. 18:03
cale2 IOninja: I know it's annoying, but when trying to promote or even teach a language, you're gonna get questions like "why is it this way?"
18:03 mr-foobar left 18:04 spebern left 18:05 itaipu left, rurban left 18:06 robertle joined
IOninja cale2: with the mild implication behind the question: "I think you people are idiots and I want you to prove me I'm wrong, but trying to remember all the reasoning behind this design decision" 18:06
s/but/by/;
cale2: especially with the choices like auto-flat or not, where either option doesn't cover 100% usecases, so you pick one to make a sacrifice 18:07
stmuk I'm not sure "why" questions work that well with many technical systems like UNIX etc.
cale2 Everyone implies that implication. This is why we need lojban lmao 18:08
IOninja Why does :16<FF> not accept negatives?
raschipi cale2: examples of when it doesn't work: www.thegeekstuff.com/2010/06/perl-a...-examples/
cale2 stmuk: good point
IOninja Its implementor is currently AFK, and even if they weren't they might not remember. It's pointless to ask such a question.
cale2 IOninja: I don't think it's a pointless question when it affects the every day life of a user. And thus is a concept needed to teach to learners 18:09
raschipi cale2: more examples perlmaven.com/array-references-in-perl
cale2 raschipi: thanks. will read
SmokeMachine naxieAlDle: thanks for your help yesterday! Im start using (and editing) this github.com/FCO/osx-compose-key 18:10
raschipi If arrays don't flatten, they can be just passed around instead of the usual dance with references/pointers
naxieAlDle SmokeMachine: 🙌 18:11
Geth doc/py-nutshell: 27ef3a25cd | (Brian Duggan)++ | doc/Language/py-nutshell.pod6
reword whatever portion
18:12
IOninja cale2: it is pointless. Especially since many of the decisions were either implied during implementation or are now forgotten. You can make a proposal to have a feature changed if you can provide good reasoning, but incessantly questioning implementors' decisions over the last 15 years will only annoy the volunteers who did the work.
naxieAlDle re design decisions, this is a nice read: perl6advent.wordpress.com/2014/12/...ong-right/
[Coke] I don't mind people asking "why is it this way" at all, but the answer is often going to be "that is very hard for us to figure out since we started on this 17 years ago" 18:13
nine cale2: appears to me that in Python, it's not that simple either: dict([(("a", 1),), (("b", 2),)]) -> ValueError: dictionary update sequence element #0 has length 1; 2 is required
IOninja naxieAlDle++
nine Gotta love that helpful error message there...
[Coke] If we want a nice retro-explanation, we probably have to wait for TimToady's book.
IOninja naxieAlDle: irclog.perlgeek.de/perl6/2017-03-06#i_14212456 18:14
naxieAlDle: though none of the whiners replied when I questioned why these ops were but; and a lot more people posted positive tweets about them since then :)
nine cale2: on the more constructive side, your issue isn't as much how to turn an array of lists of pairs into a hash but how to avoid those unhelpful lists in the middle in the first place 18:15
m: my @a = do for ("foo-bar", "baz-qux") { |$_.split("-").pairup } ; dd @a 18:16
camelia Array @a = [:foo("bar"), :baz("qux")]
nine m: my @a = do for ("foo-bar", "baz-qux") { |$_.split("-").pairup } ; dd @a.hash
camelia Hash % = {:baz("qux"), :foo("bar")}
nine cale2: ^^^
18:16 robertle left
IOninja m: my %a = flat ("foo-bar", "baz-qux")».split: "-"; dd %a 18:17
18:17 rurban joined
camelia Hash %a = {:baz("qux"), :foo("bar")} 18:17
nine m: my @a = flat do for ("foo-bar", "baz-qux") { $_.split("-").pairup } ; dd @a.hash
camelia Hash % = {:baz("qux"), :foo("bar")}
nine Ah, same idea there :)
18:17 itaipu joined
naxieAlDle “Those who do not learn the lessons of APL are doomed to the obscurity of APL.” ppppppfffffft 18:17
oh, ≤… how obscure
IOninja naxieAlDle: "I'd like to post something witty, but I don't know about Texas versions... am I doing right yet?" 18:18
18:18 FROGGS joined
raschipi naxieAlDle: We should learn from Math instead. 18:19
naxieAlDle IOninja: … and then… do you actually think we had no numeric comparison ops before? :P
IOninja Indeed :) 18:20
SmokeMachine u: ≥
unicodable6 SmokeMachine, U+2265 GREATER-THAN OR EQUAL TO [Sm] (≥)
SmokeMachine m: say 2 ≥ 5
camelia False
naxieAlDle to me it's a no-brainer to have ≤≥≠. In fact, I'd even argue that perhaps ⁇‼ were not needed 18:21
raschipi Well, do we really need P6 anyway? 18:22
IOninja There are some good ones tho: "@zoffix @FakeUnicode τ is defined as a constant. I love this." ... "I really need to find the time to learn perl 6" .... "@0xlynn @zoffix Ⅹ/10, best update" ..... "OH MY GOD Perl 6 lets you write my $var = ⅒ + 2 + Ⅻ; and then $var == 14.1;" .... "tbh I would love to have this in JS" .... "@zoffix really! Don't know why people are against the most natural way to express 18:23
logical ops! I mean, that's what we use in school" .... "nice" .... "I gotta install me some Perl 6..."
The positives outweight the haters by a good margin.
timotimo neato
nine raschipi: isn't Perl 6 a subset of Math anyway?
raschipi Math is just silly because they have silly things like ≤≥≠. 18:24
18:25 rurban left
naxieAlDle xD 18:25
hm
×D
18:25 itaipu left
raschipi "☞ Math just is. Don’t make people declare it." 18:25
18:25 robertle joined 18:26 espadrine joined
naxieAlDle looks at ¬ ∧ ∨ ⊻ 18:26
nah… 18:27
IOninja u: ¬∧∨⊻
unicodable6 IOninja, U+00AC NOT SIGN [Sm] (¬)
IOninja, U+2227 LOGICAL AND [Sm] (∧)
IOninja, 4 characters in total: gist.github.com/e40e617ca4d7211835...7b8e00f4f8
raschipi naxieAlDle: There are a couple of people that expressed interest in implementing APL in Perl6, maybe you should talk to them.
IOninja naxieAlDle: Let's not... :) 18:28
18:28 spebern joined
IOninja naxieAlDle: I'm surprised no one added a fancy-pants WhateverStar. 18:28
naxieAlDle IOninja: which one exactly?
huggable: texas
huggable naxieAlDle, All of Perl 6's fancy Unicode operators have traditional ASCII symbol alternatives (aka Texas Variants): See doc.perl6.org/language/unicode_texas
IOninja That's one term I wish we had something prettier to use
naxieAlDle: which ones are there?
mscha m: say √2¼ == 1½
camelia 5===SORRY!5===
Argument to "say" seems to be malformed
at <tmp>:1
------> 3say7⏏5 √2¼ == 1½
Bogus postfix
at <tmp>:1
------> 3say 7⏏5√2¼ == 1½
expecting any of:
infix
infix stopper
p…
IOninja u: { *.uniprop eq "Nd" } 18:29
unicodable6 AlexDaniel, MasterDuke: Hey folks. What's up with me?
IOninja, Oops, something went wrong!
naxieAlDle gist.github.com/AlexDaniel/c89bd27...tever-star
IOninja naxieAlDle: also that's broken ^
naxieAlDle it's not
IOninja How to use it then?
naxieAlDle u: { .uniprop eq "Nd" }
or
IOninja Oh, right
:P
naxieAlDle or just u: Nd
unicodable6 naxieAlDle, U+0030 DIGIT ZERO [Nd] (0)
naxieAlDle, U+0031 DIGIT ONE [Nd] (1)
naxieAlDle, 580 characters in total: gist.github.com/68bc3789b33dacf615...c96d1bef4c
IOninja heh
18:30 rurban joined, rurban left
IOninja u: star 18:30
unicodable6 IOninja, U+066D ARABIC FIVE POINTED STAR [Po] (٭)
IOninja, U+06DE ARABIC START OF RUB EL HIZB [So] (۞)
IOninja, 63 characters in total: gist.github.com/f331376b3500eb034f...6f17bbc92e
raschipi U+22C6 STAR OPERATOR [Sm] (⋆)
naxieAlDle raschipi: that's an operator
raschipi It's the APL star operator 18:31
naxieAlDle 25 ⋆ 10 is what I'd expect to see for this symbol
raschipi This one: en.wikipedia.org/wiki/Hodge_dual 18:32
18:32 itaipu joined
naxieAlDle oh, it's a prefix thingy 18:32
IOninja u: circle 18:33
unicodable6 IOninja, U+05AF HEBREW MARK MASORA CIRCLE [Mn] (◌֯)
IOninja, U+20DD COMBINING ENCLOSING CIRCLE [Me] (◌⃝)
IOninja, 551 characters in total: gist.github.com/f4ef420a6d8c56df1b...385cc87851
cale2 my only complaint about unicode symbols is how awful they look on my computer. They're all so tiny :( 18:34
naxieAlDle heh, maybe it shouldn't even print the first two if there are ≥100 in total
raschipi cale2: you need a better font
cale2 I need a tool that says "if it's a non latin letter, make it twice as big"
raschipi it's called a better font
cale2 latin letters are okay being small
raschipi: recommendations?
do you set it as your whole system's font? 18:35
18:35 eroux joined
IOninja naxieAlDle: they all kinda suck. They're either too big and look ugly, or too small and look weird :/ 18:35
naxieAlDle IOninja: I think I liked ⁎ and ⁑ 18:36
raschipi I like giving fon ts recommendations, but I need to do something, will be right back.
IOninja .grep(⁎.uniprop eq 'Foo') 18:37
looks weird being so low
naxieAlDle doesn't look that great
IOninja (at least on this font)
18:37 Ven left
naxieAlDle but at least distinguishable from * 18:37
IOninja temp.perl6.party/snapshot1.png 18:38
naxieAlDle IOninja: so yes, why were you surprised again? :P
18:38 Ven joined
IOninja naxieAlDle: surprised? 18:38
naxieAlDle IOninja: “I'm surprised no one added a fancy-pants WhateverStar.” 18:39
IOninja Ah, well, s/surprised/disapointed/; :)
.grep(⚛.uniprop eq 'Foo') 18:40
We got a winner! :P
18:40 girafe joined
naxieAlDle u: ⚛ 18:40
unicodable6 naxieAlDle, U+269B ATOM SYMBOL [So] (⚛)
ilmari not to be confused with ⚝ 18:41
u: ⚝
unicodable6 ilmari, U+269D OUTLINED WHITE STAR [So] (⚝)
IOninja .grep(🔯.uniprop eq 'Foo') 18:42
.grep(⚝.uniprop eq 'Foo')
perlpilot u: ⚡
unicodable6 perlpilot, U+26A1 HIGH VOLTAGE SIGN [So] (⚡)
naxieAlDle perlpilot: can be confused with ⌁, which is also proposed for ~~ :) 18:43
perlpilot u: 🦇
unicodable6 perlpilot, U+1F987 BAT [So] (🦇)
perlpilot I was just going through the DC comics symbols ;)
IOninja I like this one 🔯 but I imagine close resemblance of Star of David is bound to piss some group of people off... -_- 18:44
perlpilot IOninja: I liked the atom symbol
naxieAlDle anyway, let's focus on things that are obvious and that were actually requested
IOninja perlpilot: wooo!
IOninja commits "Add 🔯 as WhateverStar alias; approved by perlpilot" :P 18:45
naxieAlDle
.oO( meanwhile, ask unicode consortium to add more stars )
perlpilot If you wanted to get people upset, use ☪ 18:46
u: ⛭ 18:47
unicodable6 perlpilot, U+26ED GEAR WITHOUT HUB [So] (⛭)
perlpilot I kinda like that one too :)
naxieAlDle
.oO( here's the thing! We can use 卐 for WhateverStar, and 卍 for hyperwhatever )
IOninja u: 卐卍 18:48
unicodable6 IOninja, U+5350 <CJK Ideograph> [Lo] (卐)
IOninja, U+534D <CJK Ideograph> [Lo] (卍)
IOninja wonders which one is the swastika
18:48 zakharyas joined
perlpilot the first one 18:48
IOninja Hm, neither I guess, 'cause it needs the dots. 18:49
My neighbour across the hall has these on their doorstep made out of melted candlewax...
perlpilot I think it's also always rotated 45° for the nazis
IOninja Well, the proper one: en.wikipedia.org/wiki/File:HinduSwastika.svg
cale2 the man in the high castle was a pretty decent show 18:50
18:53 spebern left 18:54 risou is now known as risou_awy 19:03 risou_awy is now known as risou
zengargoyle i really wish rakudo (or p6) had a built-in table of some sort that could track unicode <-> texas mappings somehow. IIRC it's currently like there's a bit of code that handles one way (like for '<=' and then a bit of code for the other (like '≤') that just calls the former. 19:03
it would be nice to somehow register things as being equivalent and be able to dump those things out somehow. 19:04
MasterDuke in code you mean? you aren't talking about docs.perl6.org/language/unicode_te...codepoints ?
cale2 hmm... so you'd have a method that tells you the alternate form? 19:06
geekosaur I think they want a way to tell hashes/stashes?/whatever that "these keys should map to the same thing".
raschipi zengargoyle: Is it something we would want to abstract away? "☞ Even declarative definitions are implemented by operations at compile time."
19:06 itaipu left
zengargoyle yes, that's a list in the documentation that has to be manually kept up to date. 19:07
cale2 m: say <=.alt-form; # OUTPUT: ≤
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in quote words; couldn't find final '>'

at <tmp>:1
------> 3say <=.alt-form; # OUTPUT: ≤7⏏5<EOL>
expecting any of:
argument list
geekosaur so you don;t have to remember which key isthe real one and which one maps to a redirection sub or whatever
IOninja Why do you need to remember that?
cale2 pretty sure all the docs have to be manually kept up to date. Because they're separate from any one implementation like Rakudo
raschipi I think he wants signatures to accept a list of names instead of just one?
zengargoyle i haven't thought about it in about a year or so.... i was thinking of auto-generating a .XCompose file or similar for other input methods.
IOninja A lot of these are too low-level to abstract it away into a nice little table 19:08
zengargoyle there's no way from inside of p6 to know that those two things are the same thing...
IOninja And some are dynamic ops that don't really map 1-to-1 (e.g. »=» and >>[=]>>)
or 2**-1.5 vs 2**2; one has Unicode version the other doesn't
zengargoyle yeah, but those aren't really texas alternatives where ≤ is exactly <= 19:09
IOninja heh 19:10
zengargoyle and one of those literally just calls the other
IOninja They are really texas alternatives.
zengargoyle: and 2² calls infix:<n> or whatever it's called. 19:11
zengargoyle: and ≤ doesn't really call <=; it all gets optimized away and constant-folded
naxieAlDle come on, I'm not even sure if we will add *any* other unicode ops
zengargoyle i looked mostly at the set operations.
naxieAlDle and you're talking about keeping the table up to date…
IOninja m: say [ &infix:<≤>.signature, &infix:«<».candidates».signature ] 19:12
camelia [(|c is raw) (($?) (\a, \b) (Real \a, Real \b) (Int:D \a, Int:D \b) (int $a, int $b) (Num:D \a, Num:D \b --> Bool) (num $a, num $b --> Bool) (Rational:D \a, Rational:D \b) (Rational:D \a, Int:D \b) (Int:D \a, Rational:D \b) (Instant:D $a, Instant:D $b) (…
IOninja Even signatures differ
19:12 itaipu joined
naxieAlDle you should try with ∘ 19:13
m: say &infix:<∘> eqv &infix:<o>
camelia True
IOninja And all the quote combinations are parsed separately and there aren't any aliasing done
naxieAlDle m: say &infix:<!=> eqv &infix:<≠>
camelia False
naxieAlDle this one gives False because my PR is not ready yet
IOninja And you can't even substitute them exactly, because some unicode quotes you can nest, but you can't nest " 19:14
And ௰௰ is a syntax error, while 1010 isn't 19:15
[Coke] yah. docs are the place for that. Even if they are eqv in one compiler, there is no test guaranteeing that they would be in other ones. 19:17
IOninja m: say ৷
camelia 0.25
IOninja m: "৷".uniname
camelia ( no output )
IOninja m: "৷".uniname.say
camelia BENGALI CURRENCY NUMERATOR FOUR
IOninja Weird char. Says "numerator 4", but it's actually denominator that's 4
[Coke] wonder if unicode bug
IOninja There's a whole bunch of them 19:18
u: BENGALI CURRENCY
unicodable6 IOninja, U+09F4 BENGALI CURRENCY NUMERATOR ONE [No] (৴)
IOninja, U+09F5 BENGALI CURRENCY NUMERATOR TWO [No] (৵)
IOninja, 6 characters in total: gist.github.com/1eb7945b14fc00ad2e...a3f3398213
zengargoyle i was thinking more along the lines of one sub with a canonical texas name but some sort of annotation that these other aliases are equivalent.
instead of just having two or more subs with different names where all the extra ones just call the first one instead. 19:19
19:20 risou is now known as risou_awy
[Coke] zengargoyle: not all of these things are subs 19:20
we'd have to complicate the compiler elsewhere to potentially simplify that part.
IOninja zengargoyle: that's already a problem in the ops that started this discussion. The ≤ is not equivalent of <=
m: say 1 <<≤>> 1
camelia True
IOninja m: say 1 <<<=>> 1
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing << or >>
at <tmp>:1
------> 3say 1 <<<=>7⏏5> 1
expecting any of:
infix
infix stopper
19:21 eroux left 19:23 darutoko left, rindolf joined, g0d355__ joined
naxieAlDle and all that for what? What problem are you solving? 19:23
zengargoyle i'll take your word for it... i had just though of a module that could genereate various input method texas/unicode mappings and wanted to avoid the idea of having to keep a table of mappings up to date. 19:24
MasterDuke i've heard mention of an 'aka' trait lizmat created at one point, but i don't think it still exists 19:26
zengargoyle it seem a shame to have to grep the rakudo source for unicode named things and figoure out what texas thing they are.
19:26 eroux joined
IOninja Rakudo is not Perl 6. We have the documentation for what Texas equivalents Perl 6 language provides: docs.perl6.org/language/unicode_texas.html 19:27
zengargoyle and i don't count ² and the like as being texasifiable.
[Coke] zengargoyle: but you don't have to grep the source. You have the docs. 19:29
zengargoyle heh, docs typed by humans sometimes don't match reality. 19:30
maybe when POD gets some steroids an annotation in the source will do. 19:31
[Coke] tbrowder: github.com/perl6/doc/issues/1238 is yours.
zengargoyle #| :aka('(&)') 19:33
[Coke] thinks that "mexico" form should just read "unicode" form. 19:34
lizmat MasterDuke: github.com/rakudo/rakudo/commit/33...e6af6fc5af # the demise of the "aka" trait 19:35
[Coke] appreciates the counterpoint to "texas", but it seems to be even more confusing.
naxieAlDle always counted “mexico” form as the normal one
lizmat MasterDuke: if I recall correctly, the main reason it was removed, was because it would need a grammar change as well 19:36
MasterDuke: and it was felt that would slow down parsing too much
tbrowder [Coke]: i'll fix it. it's failing because i didn't close
lizmat MasterDuke: of course, nothing stopping you from putting it in the ecosystem :-)
19:36 cdg joined
[Coke] tbrowder: i think it's missing a variable declaration. 19:37
tbrowder *declare $string again
MasterDuke lizmat++ 19:38
zengargoyle or if it's trunly a perl6 provided thing maybe a %*TEXAS that just says these are official 6.? things.
[Coke] tbrowder++ # thanks.
tbrowder forgot the test bot might hit there
zengargoyle probably has more important p6 things to catch up on after being away for a while. 19:40
19:40 spebern joined
IOninja zengargoyle: that ignores half the discussion that occured on the topic. Not all texas things map exactly equivalently and not all Unicode things make any sense entirely out of context (is "²" an No numeral or is that a power op?). Lastly, the %*TEXAS would be populated by a human, so if you don't like the docs populated by humans, I don't see how %*TEXAS makes the thing any better. 19:40
m: say ²²
camelia 4 19:41
IOninja ^ not a bug; the two ² each has different interpretation
[Coke] m: say ²²²²²²²²²²²²²²²²
camelia Numeric overflow
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
zengargoyle one's parsing a document, the other is dumping a hash.
naxieAlDle there's a ticket for that, if I recall correctly
IOninja IMO that ticket should be closed. 19:42
zengargoyle one requires external things, one doesn't
naxieAlDle is not going to search for the ticket number then :PP
zengargoyle one can fail because the net is down, one can't
lizmat starts working on the P6W: if there's something you want to make sure is in the Weekly, let me know!
IOninja zengargoyle: one's for Perl 6 language; the other's for a particular implementation; one's viewed by thousands of eyes, the other by a dozen.
19:43 itaipu left
IOninja (to spot errors in it) 19:43
naxieAlDle lizmat: ≤≥≠ and ⁇‼ come to mind
lizmat yes, they will be mentioned :-) 19:44
Geth doc: hankache++ created pull request #1239:
pod.pod6 pass xtest
naxieAlDle IOninja: oh, it's #126732, and there's also your comment 19:45
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126732
19:45 jonas1 left 19:47 bjz joined, spebern left
RabidGravy boom! 19:49
IOninja naxieAlDle: nah, it's not from me. It's from Jul, 2016 Zoffix. Still a grasshopper. 19:52
Geth doc/master: 4 commits pushed by (Naoum Hankache)++, (Will Coleda)++ 19:53
IOninja naxieAlDle: and the reason I think it should be closed right now is that adding any sort of warnings for that case is catering to like 0.00000000000000001% of coders who'll write this by accident and actually mean something different 19:55
naxieAlDle IOninja: well, consider leaving a comment
maybe next time we get this discussion we can close it 19:56
zengargoyle samcv: when i last looked, the ibus compose user defined table was an sqlite db with a small number of columns for the mappings (like 4 or 5) thus limiting the possibilities. i have a bunch of XCompose things that are long sequences that wouldn't fit.
naxieAlDle though I'd argue that the behavior is LTA and needs a warning
IOninja I'll close it right now.
naxieAlDle :O
IOninja Why does it need a warning? ² is an No, and we allow Nos as numerals
m: say ²
camelia 2
19:57 g0d355__ left
naxieAlDle but ²² is syntactical nonsense 19:57
IOninja No, it's not
It's an `No` char with Mexico **2
zengargoyle samcv: for instance i think (elem) was too long to actually work with the ibus compose system whereas compose-lightbulb works fine with XCompose
IOninja m: say ²**2 19:58
camelia 4
IOninja m: say ²²
camelia 4
19:58 domidumont left
naxieAlDle so? 19:58
IOninja The only reason it looks weird is because we also have No chars as ops.
naxieAlDle: "so?" what?
naxieAlDle Just because rakudo is able to parse it doesn't mean this should work
[Coke] if you want to change it, naxieAlDle, please add a note to the 6.d docs
It was added knowing that it looked weird, but was felt it was worth it to get 2² working in time for christmas. 19:59
IOninja naxieAlDle: No, just because Perl 6 allows `No` chars as numerals doesn't mean we should special-case some subset of them just because they're postfixed by a particular op
naxieAlDle [Coke]: wait, change what? 20:00
[Coke] If you don't want ²² to mean 2**2
IOninja naxieAlDle: I can phrase it differently: what do you feel the generated warning should accomplish? 20:01
And what would it say?
zengargoyle footnote 22
:)
20:02 naxieAlD` joined
zengargoyle footnote 22 applied to no item 20:02
can't raise nothing to the 22nd power 20:03
IOninja It's not 22nd power.
zengargoyle sure it is, if you wrote that in a math paper people would go 'huh?'
20:04 risou_awy is now known as risou, naxieAlDle left
IOninja Perl 6 looks for a term and it finds it: one No char. It then looks for an operator, and it finds it: raise to power of 2 20:04
[Coke] there's "what it means in rakudo today" and "what people thing it should mean" - might help to be clear about which meaning you're meaning.
zengargoyle why doesn't it find 22
IOninja zengargoyle: we're not writing in a math paper. If you wrote 1/0 == Inf in a math paper, people would go "huh?" 20:05
zengargoyle: because you can't chain No chars.
[Coke] zengargoyle: because that's not the grammar is written. :)
[Coke] adds a *how* in there.
20:05 Ven left
IOninja To me it looks no different than: 20:06
20:06 naxieAlD` is now known as naxieAlDle
IOninja m: say ፪² 20:06
camelia 4
IOninja A warning assumes a programmer most likely made a mistake and needs to check their code.
And in this case people write ²² and say it looks yuky, when it's just ፪² written using a different No char. 20:07
¯\_(ツ)_/¯
naxieAlDle yes, that's right 20:08
I can't imagine anybody writing ²² on purpose
IOninja hah
naxieAlDle and that's why it should warn
IOninja Why warn and not throw?
naxieAlDle a compile-time error is ok too, yes 20:09
20:09 Ven joined
[Coke] naxieAlDle: should ፪² warn/error ? 20:09
naxieAlDle no
20:09 FROGGS left
[Coke] or just ²² ? 20:09
naxieAlDle yes
20:09 mr-foobar joined
[Coke] ok. I disagree. 20:10
MasterDuke pistols at high noon!
IOninja :)
MasterDuke who volunteers to be ²nds? 20:11
zengargoyle a superscript has to have something non-superscript to superscript
it's messing up the levels by forcing a superscript to a non-superscript 20:12
IOninja zengargoyle: it does. An No char that is a valid numeral in Perl 6.
naxieAlDle: someone on the Internet is being mean: twitter.com/secolive/status/838828860317777921
naxieAlDle IOninja: at least he agrees that ≤ ≥ ≠ is a great idea! XD 20:13
zengargoyle maybe we should just got full latex mode as the texas
naxieAlDle (at least that's how I read it)
or wait, was it a quote of you
naxieAlDle needs to learn twitter 20:14
IOninja naxieAlDle: yes, it was a quote: twitter.com/zoffix/status/838709592364355584
with "stupidest idea ever" added.
naxieAlDle bisect: old=2015.07 say ½ 20:15
bisectable6 naxieAlDle, Bisecting by exit code (old=2015.07 new=9da50e3). Old exit code: 1
naxieAlDle, bisect log: gist.github.com/e96726c12d6dd85ae5...68fdc25445 20:16
naxieAlDle, (2015-11-24) github.com/rakudo/rakudo/commit/8e...7b4d24366b
zengargoyle it's a mapping of a high resolution 2d space into a low resolution 2d space that's almost 1d space and a cognitive overload to ignore size in preference to order. 20:17
bit+little makes sense, little+little is the same as big+big
if ²² was 2² then the second ² of the former should be tinnier than the first ². but it isn't 20:19
naxieAlDle meh 20:20
20:20 risou is now known as risou_awy
naxieAlDle let me just implement the freaking error 20:20
zengargoyle you're forcing a mental focus when reading left to right of a thing that is seen as a single item, a ²²
raschipi zengargoyle: Now you're complaining about Unicode bugs. We don't fix those.
zengargoyle lol 20:21
raschipi We could complain, you can bother if you want.
IOninja naxieAlDle: please profile performance of the change.
cale2 How do you build docs for a module you download through zef? 20:22
perl6 --doc=HTML Mod::Name > mydocs.html
IOninja That's the way.... if it has Pod docs. 20:23
zengargoyle is POD still so wonky that the module has to compile before you can read the docs?
[Coke] glun 20:24
zengargoyle grumbles
20:24 vendethiel joined
[Coke] weird, oops 20:24
20:24 spebern` joined
geekosaur I think there just isn't a way to extract pod by itself yet, we use the compiler to extract it 20:24
otoh I'm not sure ways to do it without the compiler are very viable 20:25
[Coke] you use the compiler to extract the pod, yes.
cale2 Do I have to be in the same directory as the module? Even if i downloaded it through zef?
zengargoyle i pretty much agree. 20:26
cale2 It says "could not open mule. Failed to stat file: no such file"
IOninja mule....
wat
cale2 module hahah
IOninja heh
perlpilot you're supposed to ride mules, not open them
naxieAlDle IOninja: what would be the best way to profile compilation time?
zengargoyle that was the other rub... once installed the module source is some hashed thing lost in the CUR or such.. hard to find. 20:27
MasterDuke --profile-compile
zengargoyle is there a `perldoc -m` type of thing yet? 20:28
perlpilot At least in P5 we have `perldoc -l My::Module`
zengargoyle yeah, that too
perlpilot It feels weird that p6doc would be the place for such a feature (but at least it's consistent with P5)
cale2 Okay, so let's say I cloned the repo for the module (which I did). Then I cd into the directory. Do I have to run `perl6 --doc=HTML` on a specific file?
or do i run it on the general directory 20:29
zengargoyle thinks that's just a lack of tuits
perlpilot zengargoyle: maybe P6 could get some built-in pmtools
IOninja cale2: or maybe it's perl6 --doc=HTML -MMod::Name -e'' 20:30
does perl6 -MMod::Name -e '' work; can it find the module?
20:30 mrdside joined
mscha m: say ₂; 20:30
camelia 2
mscha m: say ₂₂;
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus postfix
at <tmp>:1
------> 3say ₂7⏏5₂;
expecting any of:
infix
infix stopper
postfix
statement end
statement modifier
s…
20:30 mrdside left
cale2 maybe i have to do "- ILIB" i've seen that before 20:30
so it searches in all the folers 20:31
folder
IOninja m: say ₂² 20:32
camelia 4
mscha m: say ²₂; 20:33
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus postfix
at <tmp>:1
------> 3say ²7⏏5₂;
expecting any of:
infix
infix stopper
postfix
statement end
statement modifier
st…
20:33 Sound left
IOninja Two `No` chars. Can't chain those. 20:34
mscha Ah, so there's unicode digits and numbers, and ₂ is a number, not a digit.
[Coke] aye. 20:35
mscha I.e. 2¹² is special cased.
m: 2¹²
camelia ( no output )
mscha m: say 2¹²
IOninja naxieAlDle: EVAL '$ = 2²;' x 1000; maybe, but right, that'd be just compile time change, so I doubt it matters much, so never mind :)
camelia 4096
[Coke] superscripts-as-powers is a different part of the grammar, yes.
cale2 ok, I ran perl6 --doc=HTML on an individual file. It looks bad 20:36
[Coke] github.com/rakudo/rakudo/blob/nom/....nqp#L4234
zengargoyle has anyone done serious POD6 work in the past year? i tried to implement =data a while back and i think shimmerfairy was doing some POD6 work but i've lost track. 20:37
cale2 I am on a mission from God to make docstrings work well 20:38
[Coke] shimmerfairy was working on it... over a year ago, IIRC, near "Christmas"
MasterDuke zengargoyle: i think tbrowder was working on it some
zengargoyle i had =data working but couldn't figure out how to get it into rakudo vs as a hacked rakudo + a module
cale2 zengargoyle: you have a github repo for it? 20:39
design.perl6.org/S26.html#How_Pod_i..._processed You plug in your own module somehow 20:40
zengargoyle i have it around somewhere i think in a git but not github. i had to create %*DATA or whatever it was in a pure perl6 module way but could not figure out how to get it into settings or whatever so that it would be there from the start. 20:41
tbrowder [Coke]: i'm not going to be able to fix docs for a while--still on the road 20:42
[Coke] tbrowder: no worries. 20:43
just wanted to make sure I'm not the only one running xtest. :)
zengargoyle i got lost in the nqp stuff and boxing and unboxing and yadda yadda. it was a pretty simple cut-n-paste of some other block type but removing the whitespace smushing.
and you could get it from some deep dive into the %*POD but i couldn't figure out how to move it into %*DATA (or whatever as memory fails me) 20:45
IOninja naxieAlDle: fwiw, it's kinda sucky to ruin a nice and short rule: "you can use No, Nd, and, Nl as a numeral".... Now it'd be "except for this subset of No, followed by non-texan power operators" 20:49
m: [++$]
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of $] variable; in Perl 6 please use $*PERL.version or $*PERL.compiler.version
at <tmp>:1
------> 3[++$]7⏏5<EOL>
IOninja On the level of this ^ LTAness 20:50
"What the hell is a $] variable? What are you talking about? I'm using $ state var"
mscha m: [ ++$ ] 20:51
camelia ( no output )
20:51 bwisti joined, cale2 left
raschipi It looks like $] to me. 20:52
IOninja $] is not a valid variable name.
So telling me it's not supported when I didn't even attempt to use it is dumb.
raschipi You did attempt to use it, I can see it right there. 20:53
IOninja raschipi: well, get your eyes checked then.
raschipi m: [++$] # <-- It's right here. And the code is also missing a ']'. 20:54
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of $] variable; in Perl 6 please use $*PERL.version or $*PERL.compiler.version
at <tmp>:1
------> 3[++$]7⏏5 # <-- It's right here. And the code is
geekosaur IOninja, $] is an obsolete perl 5 thing
perlpilot Rakudo could be a little smarter about when to mention $] 20:56
IOninja geekosaur: exactly. Even in Perl 5 it's obsolete. Why are we warning about it.
perlpilot IOninja: oh, you're saying to totally remove the warning? I can get behind that. 20:57
geekosaur because you get folks like red hat who ship ancient perl versions
IOninja It's not the first time these Perl 5 issues crept up in my code. I'm not writing Perl 5. I'm not writing Ruby. I'm not writing Python. I'm writing Perl 6. And I wrote valid Perl 6.
IOninja yells at the cloud. 20:58
geekosaur and folks who wrote a script in perl 3 and didn't bother changing it to use $^V when that became available
IOninja m: { $^V.say }(42)
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of $^V variable; in Perl 6 please use $*PERL.version or $*PERL.compiler.version
at <tmp>:1
------> 3{ $^V7⏏5.say }(42)
IOninja Another one.
geekosaur as I said earlier, many perl 6 behaviors came from assuming perl 5 baseline and haven't really been reexamined since 20:59
IOninja raschipi: $] is not a valid variable.
geekosaur even though perl 6 has very definitely gone its own way in the meantime
raschipi Why did you use it, then?
perlpilot IOninja: perhaps petition TimToady about these?
geekosaur it's not $]
IOninja raschipi: I didn't. I've used an anonymous var.
geekosaur it's an anonymous state variable, $
IOninja m: { $^X.say }(42) 21:00
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of $^X variable; in Perl 6 please use $*EXECUTABLE-NAME
at <tmp>:1
------> 3{ $^X7⏏5.say }(42)
IOninja another one....
m: { $*EXECUTABLE-NAME.say }(42)
camelia perl6-m
IOninja Thanks, compiler! That's exactly what I wanted.
perlpilot In the past I've lauded that Rakudo partially parses Perl 5 and helpfully reminds you that you're using Perl 6, but when it gets in the way rather than be helpful it is LTA 21:02
21:03 _28_ria left
geekosaur isn't there a way to turn those off yet? 21:03
it's been discussed before (and how they escape "no worries;") 21:04
IOninja I never understood Perl 6's obsession with Perl 5, TBH. Possibly because I came in after the whole "Perl 6 is a different language" thing took root. In that context whining about variables from another language just makes little sense...
21:04 risou_awy is now known as risou
IOninja m: no worries; $; 21:04
camelia WARNINGS for <tmp>:
Useless use of unnamed $ variable in sink context (line 1)
IOninja hey it worked! :)
Clearly it's a bug. It needs to whine about $; variable 21:05
m: no worries; [++$]
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of $] variable; in Perl 6 please use $*PERL.version or $*PERL.compiler.version
at <tmp>:1
------> 3no worries; [++$]7⏏5<EOL>
IOninja wow, there's a whole ton of them: github.com/rakudo/rakudo/blob/nom/...1925-L2085 21:06
21:07 Ven left
geekosaur IOninja, it's not so much "Perl 6 is a different langauge" so much as the focus shifting from "Perl 5 users will upgrade, of course" to "let them do what they will; focus on being Perl 6" 21:08
which is why there are so many things that are either warnings for perl5 people or changes in behavior that try to mimic perl 5 in some sense while avoiding perl 5's idiosyncratic nature
timotimo what we need to do is not give old perl5 vars the "longest token" 21:10
IOninja And those warnings sound completely whack for someone who never coded Perl 5. They should probably reworded "Perl 5 usage detected: use blah instead of blah" 21:11
mscha m: say; # Another one, I wish it'd print an empty line, like: say '';
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of bare "say"; in Perl 6 please use .say if you meant to call it as a method on $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun
at <tmp>:1
--…
IOninja "Don't use $^X, use $*EXECUTABLE-NAME" sounds weird and very wrong, when I did in fact meant $^X
The Perl 6's $^X, not some other language's $^X
geekosaur tbh at this point I would (a) reword like IOninja said (b) make most of them warnings and treat them as p6 21:13
but, as I said, the default at the time was to cater to upgrading perl 5 programmers
because they were assumed to be the ones who'd be the early adopters 21:14
(whereas in reality, who here has a significant perl 5 background other than mst and myself?)
IOninja I have 10 years under the belt.
But I'm writing Perl 6, not Perl 5. And the compiler telling me not to use Perl 5 things when I'm using Perl 6 things is annoying :) 21:15
RabidGravy has been doing perl for ~25 years 21:16
IOninja Some seem bogus too? I can't figure out how to trigger this obsbrace token: github.com/rakudo/rakudo/blob/nom/...4953-L4957
21:16 raschipi left
IOninja m: say qq"0o{" 21:16
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in double quotes; couldn't find final '"'
at <tmp>:1
------> 3say qq"0o{"7⏏5<EOL>
expecting any of:
double quotes
term
perlpilot RabidGravy: man you're old! ;)
geekosaur right, my point is theres a small number of us. not 300 out of the 330 people in this channel, likely not a majority of early adopters
mscha m: no perl5-errors; say [++$];
camelia ===SORRY!===
Don't know how to 'no perl5-errors' just yet
21:17 Ven joined
geekosaur has been using perl since perl 3.0.0 was released 21:17
IOninja sheesh, I wasn't even born then!
mscha: I'd go for `use perl5-errors`. So any perl5 programmer can plug it in while learning.
perlpilot IOninja: man you're young! ;)
IOninja In fact, can be a module, `use pythong-errors`, `use ruby-errors` that are slangs 21:18
geekosaur pythong? mind the straps!
perlpilot notes for the record that he's been doing perl for as long at RabidGravy (yes, I'm old :)
IOninja Larry 3.000 1989-Oct-18
Well, I was three years old 21:19
RabidGravy I was still an assistant film editor making adverts when that came out :)
21:19 bjz left 21:21 Ven left 21:22 risou is now known as risou_awy
timotimo IOninja: does that mean you're now 6 years old because we're on perl 6? 21:23
21:23 eroux left
lizmat only clocks in at almost 23 years of Perl 21:23
21:23 rindolf left 21:24 labster joined 21:25 Ven joined
timotimo lizmat: you're good for a weekly tonight? 21:27
lizmat yes, almost done
do you have something I should mention ?
timotimo no, just checking in to see if everything's good :) 21:28
lizmat yeah, last week's was a bit late because of AmsterdamX.pm meeting and travel back home
this one should be here in about 30 mins or so
now, if someone would add another 9 tests to roast, I could mention we broke the 56K barrier :-) 21:29
*nudge*
:-)
IOninja timotimo: I wish :)
lizmat: multiple tests inside a subtest only count as one test tho :) It's way more than 56K, even for spectest 21:30
lizmat true
mscha m: my $bag = bag <🔴 🔴 🔴 🔴 🔴 🔴 🔵 🔵 🔵 🔵>; say $bag.pick(3); # Unicode rulez 21:32
camelia (🔴 🔴 🔵)
timotimo can see none of these 21:33
naxieAlDle heh, today everyone is unhappy for some reason
jnthn
.oO( It took my village some years to break the 56K barrier... :-) )
timotimo and in my browser they look the same :\
mscha OK, Unicode rulez when it works right. 🙁 21:34
IOninja m: my $bag = bag <🔴 🔴 🔴 🔴 🔴 🔴 🔵 🔵 🔵 🔵>; $bag.pick(20).say 21:36
camelia (🔴 🔵 🔴 🔴 🔴 🔵 🔴 🔵 🔴 🔵)
21:51 Ven left 21:55 Ven joined 22:02 Ven left
RabidGravy no I'm perfectly happy 22:04
IOninja me too..
22:05 risou_awy is now known as risou 22:08 wamba left
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/03/06/...elative-≥/ 22:09
22:11 darthdeus_ joined 22:12 mcmillhj left
moritz lizmat++ 22:13
darthdeus_ hey guys, I have a silly question ... if I want to use perl6, is it worth getting a perl 5 book? so far I've been liking perl6 so much that I want it to become my go-to scripting language, but at the same time perl5 is available everywhere
IOninja darthdeus_: Perl 5 is a different language. 22:14
moritz darthdeus_: how about getting a Perl 6 book instead? I'm writing one right now leanpub.com/perl6 and you can buy an early version already
darthdeus_ IOninja: I realize it's a different language in a lot of ways, but don't lots of the thought processes carry over? 22:15
IOninja darthdeus_: it's pretty easy to install Perl 6 too. And the perl5 that's available is often without proper localization of modules and stuff, so you'd generally have to build it from scratch to avoid messing up system perl, same as with perl 6.
22:15 RabidGravy left
IOninja darthdeus_: I'm of the opinion that knowing Perl 5 intereferes with learning Perl 6. 22:15
darthdeus_ yeah that's a fair point ... I mean I already have like a 2 command setup to install perl6 in my dotfiles :D 22:16
IOninja darthdeus_: can't really think of anything that got carried over. The name of "map" and "grep" routines maybe.... and the name of the creator of the language. The rest is different.
darthdeus_ moritz: how complete is it?
moritz: I mean I see 60% complete, but is it worth getting at the moment?
IOninja huggable: books 22:17
huggable IOninja, "Perl 6 At A Glance" deeptext.media/perl6-at-a-glance/ (print only for now); "Perl 6 By Example": leanpub.com/perl6 (can order preview digital copies) ; "Think Perl 6: How to Think Like a Computer Scientist": shop.oreilly.com/product/0636920065883.do
IOninja darthdeus_: if you like dead-tree version, the first one in that list is already complete
darthdeus_ IOninja: awesome! I love dead trees :P
which one would you say is the most "straight to the point"? I don't really want a beginner book that explains what a loop is 22:19
IOninja lizmat would likely know.... 22:20
lizmat++ good weekly. 22:21
naxieAlDle yes, lizmat++
looking at these twitter responses makes me think we should do that stuff more often…
IOninja Yeah
I decided on Friday to tweet "a tip a day" sort of thing daily. 22:22
And even those mean retweets... It's still exposure to 1000s more people.
22:23 risou is now known as risou_awy
sena_kun about the new ops(not like my opinion matters, just thought): *cough* h**kell and some similar languages, like a*da *cough* have such operators builtin or as a compiler extension for years and nobody complaints. :/ Double standards are strange. 22:24
IOninja It's trendy to hate on Perl tho.
naxieAlDle I wouldn't bet that these people actually know about other languages 22:26
so probably not the double standards thing, just “my favorite language doesn't have this, so you suck”
geekosaur one difference is people may be thinking you;re expected to uyse them, like in apl
none of the *standard* operators require unicode in haskell 22:27
expected or required
this is in some part marketing
IOninja Yeah
geekosaur (also, people *do* grump when encountering Haskell code with -XUnicodeSyntax enabled)
naxieAlDle that being said, they're right the they will *have* to see these ops in code written by others 22:28
IOninja naxieAlDle: two of the people who said it's a "stupid [f*cking] idea [ever]" work in infosec.
lizmat darthdeus_: Perl6 at a glance one could argue has the broadest, but also shallowest coverage of Perl 6 for programmers
darthdeus_: Think Perl 6 is specifically intended to teach you how to program, using Perl 6
sena_kun geekosaur, well, it can be, I've never seen it myself because of lack of experience. :)
IOninja naxieAlDle: tho one that actually bothered to reply to my questions couldn't come up with anything reasonable as to why
sena_kun s/it/grumping/ 22:29
lizmat darthdeus_: so that would not really be what you're looking for
darthdeus_: Perl 6 By Example is more in depth, and as the title mentions, by example :-)
darthdeus_: people learn in different ways: some by example, some be exposition, some by who knows what :-) 22:30
IOninja naxieAlDle: the meanest one has 1600+ followers; I suppose there's a lot of "twitting anything to get the daily 'likes' fix" going on too
naxieAlDle IOninja: the one with his grep argument? Maybe somebody should tell him that grepping for things is easier whe unicode quotes are used…
moritz darthdeus_: I expect to put another 40% of effort in it
IOninja naxieAlDle: I think the grep argument was about that he's not only needs to grep for `<=` but also for the unicode op... Which is pretty inane
moritz darthdeus_: so, the manuscript is finished about 80% or 90% by volume, plus lots of more work editing etc. 22:31
darthdeus_ lizmat: I guess Perl 6 by example is probably what I want then, hehe
moritz darthdeus_: and if you buy it now, you'll receive free updates
darthdeus_ lizmat: thanks!
moritz: any plans for a dead-tree version in the future?
geekosaur there is something of a "gentleman's agreement" to avoid unicode or NLS characters, aside from maybe comments (and even that seems frowned upon)
moritz darthdeus_: vague plans, yes 22:32
lizmat geekosaur: that feels like an WASP agreement to me
22:32 skids left
sena_kun well, my five cents are already here for today, so 'night, folks. 22:32
IOninja WASP? The security thing?
lizmat gnight sena_kun
moritz darthdeus_: I want get a publisher on board for that, and one is already mildly interested
IOninja night
moritz \o IOninja
lizmat IOninja: en.wikipedia.org/wiki/White_Anglo-...Protestant 22:33
IOninja that was to sena_kun
naxieAlDle hehe, well, then Whateverable project is the most ungentlemanly thing ever :P
IOninja Ah.. and security thing is OWASP not WASP
22:33 sena_kun left
geekosaur yes and no. not everyone has utf8 tooling, not everyone is equipped to decode even something like ş. (even someone working in, say, Chinese is unlikely to be able to handle anything outside of iso8859-1 for non-Chinese characters) 22:33
in a world when I can be working on a project with people spanning 20 scripts, there is something to be said for sticking to a common set that all can handle 22:35
and, sadly, utf8 support is *still* not reliably available enough for that to be the common set :(
naxieAlDle
.oO( but… but… 2017?… )
22:36
geekosaur no flying cars either...
moritz well yes, they're just called helicopters 22:37
and are kinda expensive, and hard to fly 22:38
22:40 lichtkind joined
geekosaur but yes, 2017. I still run into stuff that doesn't handle utf8, or only handles very simple cases. And it constantly ***s me off. 22:42
22:48 espadrine left
Geth whateverable: 588cf18c38 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Whateverable.pm6
Remove last occurances of texas quotes

For all you gentlemen out there.
22:49
22:50 ggoebel left
naxieAlDle two spelling mistakes 22:50
good job
geekosaur and I don;t know a good alternative for "gentlemans agreement" especially considering that I do consider both the phrase itself and many of its common implementations warty at best... and usually intend to reference the warts when I use it 22:51
22:51 vendethiel left
geekosaur so you;re not entirely wrong to snark abut it 22:52
just, here there is actually *some* sense to it even though there really shouldn't be at this point and in some ways it's holding back getting all the tooling fixed :/
but, perl 6 is the wrong place (both the language and the channel) to tilt at *that* windmill 22:53
Geth whateverable: e114ae94bc | (Aleks-Daniel Jakimenko-Aleksejev)++ | Whateverable.pm6
Remove last occurrences of texas quotes

For all you gentlemen out there.
22:55
naxieAlDle kids, don't do this at home :P
23:02 ggoebel joined 23:03 kaare_ left 23:05 kaare_ joined 23:06 risou_awy is now known as risou
IOninja Why do people tilt at windmills? 23:07
geekosaur ask don quixote
IOninja Ah, tilting is jousting. OK 23:08
en.wikipedia.org/wiki/Tilting_at_w...#Etymology 23:09
23:17 bwisti left, bwisti joined, bwisti left
IOninja interesting... adding %*ENV<FOO> && nqp::say("blah blah") in every method in src/core/IO/ makes parsing like 25s slower 23:19
Unless the slowing is due to some other reason :/ but usually my stage parse is ~70 secs. Now it's 92s
23:23 risou is now known as risou_awy
geekosaur wonders how much it drops if you explicitly make it an exists check instead of something that could look up the value 23:23
IOninja (looks like something else; can't repro with EVAL)
m: use MONKEY; my %ENV; $ = EVAL 'use nqp; ' ~ '0 && nqp::say("foo"); ' x 1000; say now - INIT now
camelia 1.041535
IOninja m: use MONKEY; $ = EVAL 'use nqp; ' ~ '%*ENV<foo> && nqp::say("foo"); ' x 1000; say now - INIT now
camelia 1.624572
lizmat %*ENV<FOO> makes things slower 23:24
geekosaur yes, Id expect that
lizmat you might want to look at how I handled RAKUDO_MODULE_DEBUG
IOninja Well, yeah, but not by 20s :D
geekosaur need to cache the nqp::lookupenv and do exists checks on it, not redo all of it every time
(this is not a general optimization of course, unless you can verify nothing can change your cached reference out from under you( 23:25
23:29 Cabanossi left
IOninja I just run stuff like `perl -pi -e 'next if /\bproto\b/; s#(\s*(?:multi\s+)?(method|submethod|sub)\s*([^\s({]+)[^{]+\{)#$1 %*ENV<FOO> && nqp::say("src/core/io_operators.pm: $2 $3");#g' src/core/io_operators.pm` 23:30
And it lets me trace calls.
23:30 Cabanossi joined
lizmat IOninja: eh, if you want that, did you try "use trace"? 23:31
m: use trace; my $a = 42; no trace; say $a
camelia 2 (<tmp> line 1)
my $a = 42
42
lizmat m: use trace; my $a = 42; say $a
camelia 2 (<tmp> line 1)
my $a = 42
3 (<tmp> line 1)
say $a
42
IOninja lizmat: not sure what that does, but the output is much different from my sticking-nqp-say method: gist.github.com/zoffixznet/b5761cd...5cb2a17eef 23:33
s/sub method/submethod BUILD/; # ran it before I fixed my regex 23:34
lizmat use trace basically tells the parser to keep the source around and print it just before executing a statement
no trace switches that off (during compilation)
IOninja Ah.
lizmat so it may be a bit overkill for what you want :-) 23:35
IOninja I also don't know how to turn it on for setting...
like, so it prints which routines get called in the setting... 23:36
23:37 nadim joined 23:39 nadim__ left
Geth doc: 4c0eb45b6c | (Tom Browder)++ | doc/Type/Str.pod6
declare $string so xt test passes
23:43
23:43 thundergnat joined
thundergnat m: my $x = <x>; my @x; @x = $x xx 10; say @x; @x[4] = <o>; say @x; 23:47
camelia [x x x x x x x x x x]
[x x x x o x x x x x]
thundergnat m: my $y = <y>; my @y; @y[0] = $y xx 10; say @y; @y[0][4] = <o>; say @y;
camelia [(y y y y y y y y y y)]
[(o o o o o o o o o o)]
thundergnat Another case of DWIM vs. WAT.
I see what it is doing, and I understand why, but it took me a good 20 minutes to figure out why my multi dim arrays were behaving so strangely. 23:48
IOninja What is it doing and why? 23:49
They all share the container? 23:50
SmokeMachine If they share, why that don't on the first example? 23:51
thundergnat It probably is a consequence of the single argument rule. 23:52
IOninja No, arrays give containers
thundergnat It only seems to special case the first level of an array. 23:53
IOninja While Seqs don't, so you've just repeated your $y container 10 types and they all get updated when you update either $y or any of the same containers in the list inside the array
thundergnat: there's only one array with only one level there...
SmokeMachine m: @a = $ xx 3; $b = $ xx 3; .WHERE.say for @a; .WHERE.say for @b 23:54
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@a' is not declared
at <tmp>:1
------> 3<BOL>7⏏5@a = $ xx 3; $b = $ xx 3; .WHERE.say for
SmokeMachine m: my @a = $ xx 3; my $b = $ xx 3; .WHERE.say for @a; .WHERE.say for $b 23:55
camelia 29300088
29300088
29300088
140719025739536
SmokeMachine m: my @a = $ xx 3; my $b = $ xx 3; .WHERE.say for @a; .WHERE.say for @$b
camelia 41411960
41411960
41411960
41411960
41411960
41411960
SmokeMachine m: my @a = ($ = 3) xx 3; my $b = ($ = 3) xx 3; .WHERE.say for @a; .WHERE.say for @$b 23:56
camelia 140622879646880
140622879646880
140622879646880
140622879646880
140622879646880
140622879646880
SmokeMachine m: my @a = ($ = 3) xx 3; my $b = ($ = 3) xx 3; .VAR.WHERE.say for @a; .VAR.WHERE.say for @$b
camelia 140177405850784
140177405850784
140177405850784
140177405850784
140177405850784
140177405850784
IOninja m: my $y = <y>; my @y; @y[0] = [$y xx 10]; say @y; @y[0][4] = <o>; say @y; 23:58
camelia [[y y y y y y y y y y]]
[[y y y y o y y y y y]]
naxieAlDle c: 2015.10 my $y = <y>; my @y; @y[0] = $y xx 10; say @y; @y[0][4] = <o>; say @y; 23:59
committable6 naxieAlDle, ¦2015.10: «[(y y y y y y y y y y)]␤Cannot assign to a readonly variable or a value␤ in block <unit> at /tmp/N9kVspoh_d:1␤ «exit code = 1»»
naxieAlDle I think I like this more ↑
23:59 Cabanossi left
IOninja Now two levels, with Array at each, and it gave containers, and you got no duplication. 23:59