»ö« 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.
IOninja m: say "\x[E0]"; say "a\x[60]" 00:00
camelia à
a`
IOninja Which char am I looking for to make the second 'a' same as first one?
m: say "\x[E0]"; for ^0x1000 { .say if "\x[E0]" eq '"a\x[' ~ $_ ~ ']"'.EVAL }; 00:04
camelia à
5===SORRY!5=== Error while compiling /home/camelia/EVAL_0
Unexpected closing bracket
at /home/camelia/EVAL_0:1
------> 3<BOL>7⏏5]"
samcv m: "\x[E0]".NFD.say
camelia NFD:0x<0061 0300>
IOninja what's its problem?
samcv that IOninja
IOninja samcv++ thanks
samcv i was going to do something today but I forgot
IOninja m: say "\x[E0]" eq "\x[61]\x[300]"
camelia True
IOninja eye Perl 6
twitter.com/notwaldorf/status/8370...6756929536 :) 00:05
We don't have that problem
00:05 llfourn left 00:06 mcmillhj joined 00:11 pyrimidine joined, mcmillhj left 00:16 pyrimidine left, llfourn joined, labster left 00:20 labster joined
samcv :) 00:21
IOninja, github.com/rakudo/rakudo/pull/1030 will effect `is-deeply`? 00:23
does that use eqv
IOninja Yes
samcv kk thx
IOninja it's really just a call to eqv with sugar to catch failures
hm 00:24
m: use Test; say Failure.new eqv ().Seq
camelia False
00:24 risou_awy is now known as risou
IOninja Or maybe to deal with junctions 00:25
elaADnlxie m: say ‘hello’.index(‘foo’) 00:26
camelia Nil
elaADnlxie we don't return -1 also
00:26 hean joined, hean left
IOninja m: use Test; say 'a'|'b' eqv 'b'|'a' 00:27
camelia any(any(False, True), any(True, False))
IOninja m: use Test; sub x(\a, \b) { say "hi"; a eqv b }; say x 'a'|'b', b'|'a' 00:28
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3 { say "hi"; a eqv b }; say x 'a'|'b', b7⏏5'|'a'
expecting any of:
infix
infix stopper
postfix
statement end…
IOninja m: use Test; sub x(\a, \b) { say "hi"; a eqv b }; say x 'a'|'b', 'b'|'a'
camelia hi
hi
hi
hi
any(any(False, True), any(True, False))
IOninja m: use Test; sub x(Mu \a, Mu\b) { say "hi"; a eqv b }; say x 'a'|'b', 'b'|'a'
camelia hi
any(any(False, True), any(True, False))
IOninja m: use Test; sub x(Mu \a, Mu\b) { say "hi"; ?(a eqv b) }; say x 'a'|'b', 'b'|Failure.new
camelia hi
True
IOninja I've no idea why is-deeply calls _is-deeply that just does `eqv` instead of just using `eqv` right away :/ 00:29
00:29 mcmillhj joined 00:34 mcmillhj left 00:35 pyrimidine joined 00:36 adu joined 00:42 Ven left 00:45 lichtkind_ left 00:48 cog__ left, newbie1 left 00:49 cog__ joined, newbie1 joined, kalkin- joined 00:50 mcmillhj joined
kalkin- hi #perl6 00:50
adu hi
00:50 risou is now known as risou_awy
kalkin- so while hacking on ddt I just thought may be ddt should just generate a Makefile and let make take care of the rest like paralleling execution & co 00:51
adu what's ddt? 00:52
kalkin- i.e for such commands like release which would regenerate your docs readme bump version number and co
Distribution Development Tool
github.com/kalkin/Ddt
adu what's mi6?
kalkin- ddt could just generate a make target
adu github.com/masak/ufo 00:53
is it like ufo?
kalkin- adu: I forked mi6 added some features and have some more features in my nom branch, but waiting for some dependencies to release new version
adu yeah, but what is mi6?
do you have a link? 00:54
00:54 salva left
kalkin- github.com/skaji/mi6 00:54
00:54 mcmillhj left
adu I think every good language needs a good meta-tool 00:56
kalkin- adu what is a meta-tool? 00:57
adu like rust and cargo, go and go, python and pip, etc...
00:57 lukaramu_ left
kalkin- well actually pip is a packet manager, thats what we have zef (and panda for) 00:57
cargo /go same
ddt & mi6 are more like your “rails generate” command
adu well, go is probably the best example, it includes the compiler, formatter, assembler, package manager, and the debugger 00:58
00:58 risou_awy is now known as risou, cibs left
kalkin- plus ddt has now a continues test running feature which is what rake does in ruby 00:58
adu I don't know ruby 00:59
I know every language except ruby
perlpilot adu: that's quite a claim ... ;-) 01:00
kalkin- generally ddt should do scaffolding, features like continues test running are nice, but I think they could be solved better by make(1) while ddt keeps beeing a scaffold generator, which also happens to generate Makefiles
01:00 cibs joined
adu not really, when you've been programming for 26 years 01:00
01:00 salva joined
kalkin- the scoffolding can add make targets i.e for formatting, running tests & ect… 01:01
01:01 cdg left, Actualeyes joined
perlpilot adu: Even then. 01:01
01:02 ufobat left
perlpilot but ... if you know python or perl, you pretty much know ruby. It looks kinda like python but feels kinda like perl (except for all of the rampant monkey patching) 01:03
kalkin- adu: I bet you have never programmed Inform (more than just a Tutorial) ☺ 01:04
adu perlpilot: yeah, but the word "rake" through me off
kalkin-: never used Inform
kalkin- It's an awesome language for writing text adventures, have a look at Inform 7, event if you are not in to text adventures, it's just different and awesome 01:05
it's just another aproach
01:05 dogbert17_ joined
lichtkind is there a typo in examples.perl6.org/categories/euler...gerdr.html ? 01:05
01:06 mcmillhj joined 01:08 dogbert11 left, BenGoldberg joined
IOninja typo where? 01:09
kalkin- just had a look at ufo
It's nice, I think I could reuse it in ddt if I go the make way 01:10
01:13 mcmillhj left
kalkin- masak: would you accept a PR for spliting the code in to a bin/ and lib/ part so it could be reused? 01:13
01:15 risou is now known as risou_awy
IOninja lichtkind: typo where exactly? 01:16
01:16 ilbelkyr left, nebuchadnezzar left, nebuchadnezzar joined 01:17 ilbelkyr joined
perlpilot IOninja: I would guess because the text says "starting with 1 and 2" but the code starts with "(1,1, *+*" 01:17
But ... I dunno. 01:18
lichtkind my error was a feature i didnt know 01:19
IOninja mkay
Geth perl6-examples: 57b15232a3 | (Zoffix Znet)++ | categories/euler/prob002-gerdr.pl
Fix Fibonacci sequence description
01:21
kalkin- Hmm just noticed ufo is broken because $*CUSTOM_LIB is gone 01:23
IOninja good
01:31 wamba joined 01:33 newbie1 left 01:45 ZzZombo left
IOninja Do '/tmp' and '/' paths mean anything in Windows land? Eyeing last two options for IO::Spec::Win32 and they look od: github.com/rakudo/rakudo/blob/6661...pm#L47-L48 01:47
SmokeMachine IOninja: those were my failing tests www.irccloud.com/pastebin/ligmxOfR/ 01:49
01:52 adu left
IOninja SmokeMachine: you don't have latest changes in your roast repo 01:52
SmokeMachine: or in your rakudo repo
... or both
SmokeMachine I just git pull --rebase github.com/rakudo/rakudo and running the tests again... 01:53
IOninja SmokeMachine: ensure you pull the tests 01:54
SmokeMachine t/spec/S03-metaops/hyper.rakudo.moar .............................. Dubious, test returned 2 (wstat 512, 0x200)
sure! I didn't !!! 01:55
IOninja All but S17-supply/watch-path.t is because you don't have latest roast; I see S10-packages/precompilation.t flop on occasion, and I don't know about S17-supply/watch-path.t ; seems to be a mac only test 01:56
SmokeMachine t/spec/S10-packages/basic.rakudo.moar ............................. Dubious, test returned 1 (wstat 256, 0x100) 01:58
No subtests run
:(
t/spec/S17-supply/watch-path.t .................................... Dubious, test returned 1 (wstat 256, 0x100) 01:59
Failed 1/2 subtests
IOninja SmokeMachine: what's the output of t/fudgeandrun t/spec/S10-packages/basic.t t/spec/S17-supply/watch-path.t
SmokeMachine www.irccloud.com/pastebin/6RGURFFD/ 02:00
strange... www.irccloud.com/pastebin/eWV57WeS/
02:01 wamba left
IOninja SmokeMachine: don't stick `perl6` before it 02:01
SmokeMachine Sorry...
1sec...
IOninja goes to bed 02:03
02:04 risou_awy is now known as risou
SmokeMachine www.irccloud.com/pastebin/A9VNp4En 02:04
02:04 cyphase left
SmokeMachine IOninja: ^^ 02:05
IOninja: running the other one that throw error basic.rakudo.moar www.irccloud.com/pastebin/flFlGgNv 02:08
I'm updating my PR, ok?
02:09 cyphase joined 02:11 bjz joined
SmokeMachine www.irccloud.com/pastebin/eO26G83y 02:16
02:20 kalkin- left
SmokeMachine www.irccloud.com/pastebin/gmn47Rsi/ 02:20
02:20 kalkin- joined 02:23 astj_ joined, astj left 02:46 ilbot3 left 02:47 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:51 _28_ria left 02:53 _28_ria joined 03:04 cdg joined
elaADnlxie {}:my $*GOAL := $<sym> eq '??' ?? '!!' !! '‼'; 03:14
what's the idea behind these {}?
03:18 astj joined, astj_ left 03:19 noganex_ joined
SmokeMachine Make $/ get "synced" 03:19
samcv nice SmokeMachine 03:21
03:22 noganex left 03:24 BenGoldberg left
SmokeMachine elaADnlxie: irclog.perlgeek.de/perl6/2017-03-01#i_14187340 03:24
samcv: thanks! :)
elaADnlxie cool 03:26
SmokeMachine :) 03:30
03:31 bjz left 03:41 mcmillhj joined, elaADnlxie left 03:46 mcmillhj left 04:10 ZzZombo joined 04:11 ZzZombo left, ZzZombo joined 04:13 cyphase left 04:16 mcmillhj joined 04:18 cyphase joined 04:22 mcmillhj left, cdg left 04:23 wamba joined 04:24 cpage_ joined 04:38 xtreak joined 04:41 sjn__ joined, bjz joined 04:53 mr-foobar joined 04:59 Cabanoss- joined 05:01 sjn__ left, sjn__ joined, sjn__ left 05:03 sjn__ joined, Cabanossi left, Cabanoss- is now known as Cabanossi 05:09 _28_ria left 05:14 sjn left 05:15 sjn__ is now known as sjn 05:17 _28_ria joined 05:23 somjan joined 05:33 mcmillhj joined 05:49 pyrimidine left 05:56 somjan left, llfourn left 05:57 bjz left, bwisti left 05:59 mcmillhj left 06:00 rurban joined, rurban left 06:11 khw left 06:17 mcmillhj joined 06:21 jsoo joined 06:22 mcmillhj left 06:29 jsoo left 06:30 Todd_ joined
Todd_ Hi All. I am trying to send a tar ball with Net::SMTP and MINIE::Base64. I am very confused. Can someone point me to the directions? 06:31
MIME:: not Minie 06:32
06:34 wamba left, _28_ria left
Todd_ Is there an easier way to do this? 06:35
06:35 _28_ria joined
Todd_ Maybe an example? 06:36
06:36 mcmillhj joined 06:38 risou is now known as risou_awy 06:39 risou_awy is now known as risou, risou is now known as risou_awy 06:40 risou_awy is now known as risou, CIAvash joined, mcmillhj left 06:43 risou is now known as risou_awy, risou_awy is now known as risou 06:44 darutoko joined 06:47 pyrimidine joined 06:48 bartolin_ left 06:49 _28_ria left, bartolin joined 06:50 RabidGravy joined, _28_ria joined 06:51 dha joined, dha left 06:53 dha joined, llfourn joined
geekosaur Todd_, MIME::Base64 is another component (encodes/decodes data into the variant of base64 encoding used by MIME; does not create MIME parts) 06:54
Todd_ What would be the simplist way to send an eMail with tar ball as an attachment? 06:56
I am very confused 06:57
geekosaur I'm glanciing through metacpan for stuff that you could use with Net::SMTP... but you might ditch that and use Email::Stuffer to handle it all 06:58
since it's pretty much exactly what you want: a simple interface that handles the whole stack
Todd_ all I am finding is email::simple. modules.perl6.org/#q=email%3A%3As
no stuffer
06:59 llfourn left, dha left
geekosaur we already determined there is not currently a perl 6 module for any layer other than smtp 06:59
metacpan.org/pod/Email::Stuffer
06:59 xtreak left
geekosaur no rfc2822, no mime 07:00
which means doing this all in perl 6 is not really a thing yet
Todd_ that is a perl5 module
07:00 xtreak joined
geekosaur yes 07:00
I just said nothing exists for perl 6
that does not mean I';m going to haul out the perl 6 module I just said didn't exist 07:01
Todd_ oops
geekosaur for the moment, you will need to rely on the perl 5 module support. presumably at some point native perl 6 support will show up... but it's actually a lot of work, so I would not hold my breath 07:02
(full MIME is a fairly complex standard, and even RFC2822 basic email has its nasty edge cases)
Todd_ so, use the inline module till then?
07:02 mcmillhj joined
geekosaur yes 07:02
unless you want to switch to just writing perl 5 or python or whatever 07:03
Todd_ Thank you. I will.
geekosaur perl 6 is still new enough that a lot of things are missing
Todd_ I write in perl 5. I like it a lot, but the subroutines drive me nuts. It is like assembly code passing variables to subs. I adore P 6's subs. I write in Top Down and my code is filled with subs 07:04
07:04 wamba joined
Todd_ I noticed the missing stuff. I really want out of P5 as soon as possible. Inline is a good buffer 07:05
07:05 ufobat joined 07:07 mcmillhj left
Todd_ Thank you! bye bye 07:07
07:07 wamba left
Todd_ I am back already. 07:09
I an not get inline to install
$ rpm -qa perl perl-5.16.3-291.el7.x86_64
perl-5.16.3-291.el7.x86_64 07:10
zef install Inline::Perl5 ===> Searching for: Inline::Perl5 ===> Searching for missing dependencies: LibraryMake, File::Temp ===> Searching for missing dependencies: File::Directory::Tree ===> Building: Inline::Perl5:ver('0.23'):auth('github:niner') Perl v5.18.0 required--this is only v5.16.3, stopped at -e line 1. BEGIN failed--compilation aborted at -e line 1. Perl 5 version requirement not met
What now?
moritz Todd_: read Inline::Perl5's README
you need a perl 5 compiled with certain flags 07:11
you might need to compiler your own copy of perl 5 if the distro one doeesn't work
*compile
Todd_ panda then? 07:12
oh. I will use the git clone thing 07:15
$ perl6 configure.pl6 Perl v5.18.0 required--this is only v5.16.3 07:17
mumble
07:19 xtreak left
RabidGravy well to be fair 5.16 is five years old 07:20
Todd_ That is stinking Red Hat for you!
RabidGravy Fedora has 5.24 so maybe in a few years it will catch up :) 07:21
geekosaur part of the problem here is that perl 5's guts are generally a mess, the older the version the worse the mess
probably Inline::Perl5 with 5.16 either throws weird errors or possibly dumps core
07:22 mcmillhj joined
Todd_ I tried using vi to change the rev requrement, and it did not make 07:22
RabidGravy build your own with perlbrew or something
Todd_ no perlbrew on rhel that I can find 07:23
RabidGravy just download it locally
anyhow I'm off to the code mines
Todd_ Fedora Core 25 is on perl-5.24.0-380.fc25.x86_64, which is where I will be using inline, so I will try over there 07:24
07:25 rurban joined
Todd_ And I will open a bug on Red Hat's bugzilla to rebase perl 5 07:25
07:25 xtreak joined 07:26 mcmillhj left
Todd_ bugzilla.redhat.com/show_bug.cgi?id=1428274 07:30
Maybe they will, maybe they won't payu attention 07:31
bye again
I am back. Tried to zef inline on fedora 07:32
===> Building [FAIL]: Inline::Perl5:ver('0.23'):auth('github:niner') 07:33
Aborting due to build failure: Inline::Perl5:ver('0.23'):auth('github:niner')(use --force to override)
Shall I try the --force?
well, it seems to be installig with force. I wonder if it will work? 07:35
Time will tell. Bye bye 07:37
07:38 mcmillhj joined 07:43 mcmillhj left, risou is now known as risou_awy, domidumont joined 07:44 domidumont left, risou_awy is now known as risou, domidumont joined, cpage_ left 07:50 agentzh left 07:52 CIAvash left 07:54 llfourn joined 07:57 rindolf joined
Todd_ I am back 07:58
cpan Email::Stuffer
Email::Stuffer is up to date (0.014).
07:58 mcmillhj joined
Todd_ perl6 -c CimCheck.pl6 07:58
Could not find Inline::Perl5 07:59
What now?
08:00 xtreak left 08:01 llfourn left 08:02 llfourn joined 08:03 xtreak joined, mcmillhj left 08:06 leah2 left 08:08 _28_ria left 08:09 dct left, _28_ria joined
moritz seems like the installation didn't work 08:11
Todd_ not finding a "remove" in cpan 08:12
I am trying it with --force. It is doing a lot of compiling 08:16
08:16 mcmillhj joined 08:19 pyrimidi_ joined, pyrimidine left
Todd_ the buzzard still isn't showing up 08:20
# find / -iname \*inline\* | grep -i perl5
isn't finding it either
08:20 cpage_ joined
moritz look at whether the installation succeeded or not 08:21
08:21 mcmillhj left
Todd_ ./Build install -- OK 08:26
I can not find it though
08:28 zakharyas joined 08:29 domidumont left 08:30 domidumont joined 08:33 domidumont left 08:34 domidumont joined 08:40 mcmillhj joined 08:44 mcmillhj left
Todd_ bye bye 08:53
08:53 Todd_ left
ZzZombo !ping 08:56
08:57 ZzZombo_ joined, mcmillhj joined, ZzZombo_ left, ZzZombo_ joined, ZzZombo is now known as Guest34765, ZzZombo_ is now known as ZzZombo 08:59 xtreak left
moritz !pong 08:59
09:00 grondilu_ joined, Guest34765 left
ZzZombo something weird just happened, I couldn't open any website, yet IRC, and a bunch of online games worked well, just the browser couldn't send any requests. 09:01
09:02 grondilu left, mcmillhj left 09:06 Hor|zon_ left, Hor|zon__ left 09:08 domidumont left 09:09 domidumont joined, telex left 09:10 telex joined 09:11 domidumont left, domidumont joined 09:13 xtreak joined, dakkar joined 09:14 mcmillhj joined 09:19 mcmillhj left
lizmat ZzZombo: feels like your DNS was out of whack for a while 09:20
09:30 espadrine joined
IOninja .tell Todd Inline::Perl5 is a Perl 6 module; you install it with `zef install Inline::Perl5` not cpan; it doesn't create "inline" files on your filesystem but installs precompiled units in CUR, so check it's installed with `perl6 -MInline::Perl5`, not grepping your system for files 09:33
yoleaux IOninja: I'll pass your message to Todd.
09:34 Sound joined 09:36 vendethiel joined
ZzZombo .tell yoleaux Beep Boop I'm a Robot 09:38
yoleaux ZzZombo: Thanks for the message.
09:38 llfourn left
ZzZombo NP mate 09:38
IOninja m: sub x is assoc('right') { "$^a:$^b" }; say [[&x]] 2, 3, 4, 5 09:39
camelia 2:3:4:5
IOninja m: sub x is assoc('left') { "$^a:$^b" }; say [[&x]] 2, 3, 4, 5
camelia 2:3:4:5
IOninja I thought assoc should affect the order or something? 09:40
Oh 09:41
09:41 cpage_ left 09:42 cpage__ joined
IOninja hm, nope 09:42
m: sub x is assoc('right') { $^a+$^b }; say [\[&x]] 2, 3, 4, 5
camelia (2 5 9 14)
IOninja m: sub x is assoc('left') { $^a+$^b }; say [\[&x]] 2, 3, 4, 5
camelia (2 5 9 14)
IOninja m: sub x is assoc('right') { "($^x,$^y)" }; say [[&x]] 2, 3, 4, 5; 09:46
camelia (((2,3),4),5)
09:46 mcmillhj joined
IOninja "Note: In the functional programming world, this operation is generally called a fold. With a right-associative operator it is a right fold, otherwise (and usually) it is a left fold." ... and no examples 09:47
Somebody help!
09:47 bjz joined
moritz it only works for operators 09:48
IOninja lies, I've seen it work for routines 09:49
09:49 aborazmeh joined, aborazmeh left, aborazmeh joined
moritz m: sub infix:<foo> is assoc<right> ($a, $b) { "($a, $b)" }; say [&foo] 1, 2, 3, 4 09:49
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3sub infix:<foo> is assoc<right>7⏏5 ($a, $b) { "($a, $b)" }; say [&foo] 1,
expecting any of:
new name to be defined
moritz m: sub infix:<foo>($a, $b) is assoc<right> { "($a, $b)" }; say [&foo] 1, 2, 3, 4 09:50
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3 assoc<right> { "($a, $b)" }; say [&foo]7⏏5 1, 2, 3, 4
expecting any of:
infix
infix stopper
postfix
statement…
moritz m: sub infix:<foo>($a, $b) is assoc<right> { "($a, $b)" }; say [foo] 1, 2, 3, 4
camelia (1, (2, (3, 4)))
IOninja Oh
moritz m: sub infix:<foo>($a, $b) is assoc<left> { "($a, $b)" }; say [foo] 1, 2, 3, 4
camelia (((1, 2), 3), 4)
IOninja moritz++ thanks
masak remind me -- how do I get the current position in the middle of a grammar?
09:51 mcmillhj left
masak something to do with cursors... 09:51
moritz masak: lol it's in my book! :-)
09:51 espadrine left
moritz self.pos iirc 09:51
masak thank you! :D 09:52
moritz++ # lol book
IOninja m: grammar { token TOP { .**3 { say $¢.pos } } }.parse: '1234546'
camelia 3
masak it worked! :D
IOninja didn't for me :/ 09:53
moritz self.pos works in a method called from the grammar
IOninja ah
m: grammar { token TOP { <foo> }; token foo { .**3 { say self.pos } } }.parse: '1234546'
camelia 0
moritz m: grammar { token TOP { .**3 <.foo> }; method foo(|c) { die "got to {$.pos}" } }.parse: '123456'
camelia got to 3
in method foo at <tmp> line 1
in regex TOP at <tmp> line 1
in block <unit> at <tmp> line 1
IOninja m: grammar { token TOP { <foo> }; token foo { .**3 { say $.pos } } }.parse: '1234546'
camelia 0
masak oh, and self.orig was the answer to my next question... :) 09:54
moritz the section on generating good parse error is a bit of content I'm proud of, it's something that's not often discussed 09:56
many blog posts show how cool grammars are, but don't have enough space left to dive into the details on how to make the parsers real-world usable
09:58 mcmillhj joined
masak :) 09:58
Geth doc: f1c280c431 | (Zoffix Znet)++ | doc/Type/List.pod6
Include example of affecting fold direction in reduce
moritz IOninja++ # improving the docs 09:59
IOninja moritz++ # showing how
10:02 mcmillhj left 10:03 jonas1 joined 10:04 mcmillhj joined 10:09 mcmillhj left
IOninja m: say .rand > .5 ⁇ 'big' ‼ 'small' 10:14
camelia No such method 'rand' for invocant of type 'Any'
in block <unit> at <tmp> line 1
IOninja m: say rand > .5 ⁇ 'big' ‼ 'small'
camelia big
IOninja ehehe :) SmokeMachine++ 10:15
10:15 TEttinger left 10:18 llfourn joined 10:21 mcmillhj joined, indexme joined
IOninja high-fives other developers over latest Unicode stuff 10:23
bah, Twitter renders ‼ much different than ⁇: twitter.com/zoffix/status/837246807084249089
You had one job!
10:25 mcmillhj left 10:30 mcmillhj joined 10:32 indexme left 10:35 mcmillhj left 10:36 xtreak left
IOninja We have rakudobrew listed in Install section (on the right) of reddit: www.reddit.com/r/perl6/ 10:43
IMO "bleeding edge" ne "whatever commit ended up on HEAD" 10:44
gfldex it doesnt render at all, it links to .png abs.twimg.com/emoji/v2/72x72/203c.png
10:50 lukaramu joined
IOninja hmmm, typing `rakudo.perl6.org` in browser leads to rakudo.perl6.org/ need to force HTTPS 10:52
guess I have the acces to do so... 10:53
done. 10:54
10:54 xtreak joined
IOninja huh, but apparently it's not under git control? 10:55
10:55 bjz_ joined 10:57 xtreak left
IOninja says apache2/sites-available/rakudo.perl6.org.conf is ignored by .gitignore but I don't see where :S 10:58
Oh weell
10:58 bjz left 11:05 andrzejku joined
gfldex m: say True ⁇ '*nod*' ‼ '*shake*'; 11:06
camelia *nod*
11:07 mcmillhj joined 11:08 xtreak joined 11:11 cpage joined
IOninja m: say 0 ⁇ Nil ⁇ False ⁇ Int ⁇ () ⁇ '*nod*' ‼ '*shake*' ‼ '*wake*' ‼ '*bake*' ‼ '*make*' ‼ '*fake*'; 11:12
camelia *fake*
11:12 cdg joined 11:13 mcmillhj left
IOninja m: say 0 ⁇ Nil ?? 'meow' !! 'foo' ‼ 'bar' 11:14
camelia bar
IOninja m: say 0 ⁇ Nil ?? 'meow' ‼ 'foo' !! 'bar'
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused: Bogus code found before the !! of conditional operator
at <tmp>:1
------> 3say 0 ⁇ Nil ?? 'meow'7⏏5 ‼ 'foo' !! 'bar'
expecting any of:
infix
infix stopper
11:18 aborazmeh left
llfourn m: say \c[BELL] # if "BELL" is in a variable, how do I print it? 11:19
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
BELL used at line 1
Undeclared routine:
c used at line 1
llfourn m: say "\c[BELL]" # if "BELL" is in a variable, how do I print it?
camelia 🔔
timotimo i once added a sub for this, and somewhere since then i forgot its name 11:22
llfourn timotimo: lol, well that's a start :P 11:23
timotimo perhaps i only added the nqp op?
m: use nqp; dd nqp::getstrfromname("BELL") 11:24
camelia "🔔"
llfourn ooo nice
timotimo m: use nqp; nqp::getstrfromname("BELL").NFC.perl.say
camelia Uni.new(0x1f514).NFC
timotimo i couldn't see the bell there so i had to double-check
llfourn it looks like there's no p6 sub that calls it, it's just in the QActions. 11:26
11:27 mcmillhj joined
IOninja right, currently, the only p6 way is via EVAL 11:29
llfourn I'm not sure which is worse to put in my code. Probably EVAL :P. 11:30
gfldex so we need Cool.ununiname
or .deuniname 11:31
IOninja or something not entirely silly
gfldex have you seen our logo?
:->
11:32 mcmillhj left
IOninja It's colourful and ugly. Not silly. 11:32
timotimo "DEU niname"? 11:33
gives you a german nickname
gfldex .unichr then
IOninja .parse-names 11:37
'FF'.parse-base(16) => 255; 'bell, butterfly'.parse-names => "\c[BELL, BUTTERFLY]" 11:38
11:40 labster left
IOninja m: use nqp; 'BELL, BUTTERFLY'.split(/\s*\,\s*/, :skip-empty).&nqp::getstrfromname.say 11:42
camelia Cannot find method 'Any' on object of type Seq
in block <unit> at <tmp> line 1
IOninja really...
timotimo yeah, nqp ops aren't reified
IOninja m: .&meow::moew
camelia Cannot find method 'Any' on object of type Any
in block <unit> at <tmp> line 1
IOninja m: &m::m 11:43
camelia ( no output )
11:46 mcmillhj joined 11:47 agentzh joined
IOninja m: &Δ::Δ 11:50
camelia ( no output )
11:51 mcmillhj left
timotimo what are you expecting, though? 11:51
IOninja m: &Δ
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
Δ used at line 1
IOninja something like that
11:52 agentzh left
timotimo package lookup is a bit less hard than that, isn't it? 11:52
IOninja m: $Δ::Δ 11:53
camelia ( no output )
IOninja dunno
there's no Δ package tho
timotimo right, that doesn't seem to be a problem for anything
m: say $foo::foo
camelia (Any)
timotimo cool, we call .sink on the thing and call .sink on the result of .sink again 11:54
IOninja To me, this seems to be the same problem as not complaining about underclared variable names. A single typo and your code's broken.
timotimo well 11:55
we used to be able to use GLOBAL (which is what's being used here) to grab stuff from run-time included stuff
at least i think so?
11:55 xtreak left
timotimo m: say &Test::is; require Test; 11:56
camelia (Any)
timotimo m: require Test; say &Test::is;
camelia (Any)
timotimo well, not like that, obviously?
maybe only worked before lexical imports
committable6: releases m: require Test; say &Test::is;
oops
well, m: doesn't hurt
committable6 timotimo, ¦«releases (16 commits)»: (Any) 11:57
timotimo well, it does put Test into GLOBAL
committable6: releases require Test; say Test::.keys;
committable6 timotimo, ¦«releases (16 commits)»: 04===SORRY!04=== Error while compiling /tmp/fGkrB6LKyM␤Undeclared name:␤ Test used at line 1␤ «exit code = 1»
timotimo er, of course 11:58
IOninja It's not an `our` routine tho
timotimo committable6: releases require Test; say GLOBAL::('Test')::.keys;
committable6 timotimo, ¦«2015.12,2016.01.1,2016.02,2016.03,2016.04,2016.05,2016.06,2016.07.1,2016.08.1,2016.09,2016.10»: 0..0 ¦«2016.11,2016.12,2017.01,2017.02,HEAD»: (0)
timotimo that'd explain why it doesn't show up, then
IOninja m: require Test <&is>; say &is;
camelia sub is (;; Mu | is raw) { #`(Sub|55317752) ... }
IOninja m: require Test; say EXPORT::Test<&is>; 12:00
camelia Could not find symbol '&Test'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja There's an incantation similar to that ^ that works too
timotimo m: require Test; say GLOBAL::Test::EXPORT::DEFAULT::.keys 12:07
camelia (&does-ok &like &eval-lives-ok &pass &cmp-ok &subtest &flunk &dies-ok &unlike &todo &skip &use-ok &isnt &skip-rest &diag &eval-dies-ok &is-deeply &throws-like &ok &is &done-testing &bail-out &is-approx &lives-ok &MONKEY-SEE-NO-EVAL &plan &nok &is_approx …
12:07 bjz_ left
SmokeMachine IOninja: thanks! 12:09
12:10 Ven joined, itaipu joined 12:11 mcmillhj joined, zakharyas left
timotimo the stuff zefram finds in our IO::Spec stuff is scary 12:11
i'm glad he's poking it with a very sharp stick
12:11 bjz joined
IOninja yeah 12:15
12:15 mcmillhj left 12:22 cdg left 12:23 lep-delete left
timotimo can't QString also contain null bytes? 12:25
Geth DBIish/master: 4 commits pushed by (Jonathan Stowe)++ 12:26
timotimo i wonder how exactly they deal with filesystem stuff
they do have all custom filesystem functions
12:26 mcmillhj joined 12:29 lep-delete joined
Geth DBIish: d33ee8eb9a | (Jonathan Stowe)++ | META6.json
Up the version
12:30
12:31 mcmillhj left 12:32 masayoshi joined 12:33 masayoshi left, pmurias joined 12:36 mcmillhj joined 12:37 Technaton left, Ven left 12:39 user9 left 12:40 Ven joined 12:41 mcmillhj left 12:43 llfourn left 12:44 setty1 left 12:45 setty1 joined 12:46 wamba joined, mcmillhj joined 12:51 mcmillhj left
SmokeMachine u: double 12:51
unicodable6 SmokeMachine, U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK [Pi] («)
SmokeMachine, U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK [Pf] (»)
SmokeMachine, 438 characters in total: gist.github.com/d86e11610b443794c2...1fc55ef47f
12:54 risou is now known as risou_awy 12:58 mcmillhj joined 13:00 elaADnlxie joined 13:01 bjz left 13:02 llfourn joined, mcmillhj left 13:07 Grrrr left 13:08 Grrrr joined 13:11 mcmillhj joined 13:15 mcmillhj left 13:21 TBSliver left 13:30 indexme joined 13:31 TBSliver joined 13:33 lukaramu_ joined 13:34 andrzejku left 13:36 lukaramu left 13:52 cale2 joined
cale2 why does perl6 have such a strong focus on operators? 13:53
13:54 mcmillhj joined
DrForr Well, it's been about programmer efficiency, and if you have more operators to choose from to do a given task that's better for productivity. 13:55
13:55 n1ce_ joined 13:57 user9 joined, n1ce left
cale2 Practically, you'd save time if you memorized 30 operators, but the next person will waste time by having to look up what each operator does 13:58
IOninja heh
All conjecture. Love it.
DrForr Yeah, but once they've looked them up... 13:59
IOninja cale2: you could use 30 subroutines and by your logic the next person would waste time having to look up what each subroutine does.
llfourn In practice I don't find much perl6 that is full of crazy operators. 14:00
El_Che there are some
:)
cale2 I'm talking about the built in ones documented here: docs.perl6.org/language/operators
14:00 rurban1 joined
IOninja Hardly a challenge to learn all of them, even the more obscure ones. And no different than learning routine names and behaviours. 14:01
14:01 zakharyas joined
cale2 A lot different from learning routine names and behaviors. Those are words that (ideally) have meaning to the reader 14:01
IOninja `[...]` is as much a name as `reduce ...` 14:02
cale2: that's a faulty argument that assumes an ignorant programmer can correctly surmise the program's behaviour just by reading the subroutine's name. 14:03
14:03 rurban left
IOninja They'd still have to look it up in the documentation to learn of acceted arguments, return values, and error handling. 14:03
Wasn't it you who were complaining `grep` isn't named `filter`? 14:04
llfourn m: my $x = 2; say $x..5,$x^..5,$x..^5; #preferable to range($x,5), range($x+1,5) etc.. IMO 14:06
camelia 2..52^..52..^5
cale2 yes, that was me
14:08 risou_awy is now known as risou
IOninja Most people working with code didn't first pick up the language 30 seconds ago. 14:08
cale2 As an example, docs.perl6.org/language/operators#infix_ff even after reading the documentation, I don't understand `ff` 14:09
geekosaur please jettison all attempts to have anything whatsoever to do with older versions of perl, apparently
reusing names already well defined in perl is apparently an evil idea 14:10
IOninja cale2: but that's an obscure operator.
llfourn never knew about ff
geekosaur respelled version of p5's ..
cale2 I tried replacing `ff` with `$_ ~~ $a and $_ ~~ $b` like in the docs, but it doesn't work the same
DrForr cale2: "flip-flop"
geekosaur (in scalar context)
IOninja cale2: you could equally pick pgrep_regex_no_match_whatever() and still'd have to lookl it up 14:11
cale2 IOninja: it's in the standard lib.......
IOninja cale2: so?
cale2: `and` seems vastly more use than `andthen`
*sees
cale2 I can't pay someone to give me a practical example of `andthen`
IOninja I already did
cale2 I doubt anyone knows a use for it 14:12
then put it in the docs! haha
IOninja Yes, of course. If you can't think of a use, no one can.
llfourn I use andthen all the time...
geekosaur cale2: could you tone down the "I am the only one here with a brain"?
llfourn m: my $x = "foo"; my $y = $x andthen .uc; say $y 14:13
camelia foo
14:13 adu joined
llfourn m: my $x = "foo"; my $y = ($x andthen .uc); say $y #oops 14:13
camelia FOO
IOninja lol :)
timotimo cale2: did you see the "wig" module for perl6?
IOninja buggable: eco wigh
buggable IOninja, Nothing found
IOninja buggable: eco wig
buggable IOninja, wig 'where is grep: Make grep prettier, put a wig on it!': github.com/0racle/p6-wig
IOninja ah
cale2 geekosaur: It's more a tone of "I'm the only one here with an outsider's perspective" apparently. I've not programmed perl5 or been a linux sys admin
llfourn: how do you use it? 14:14
DrForr there's also ack, along the same lines, but probably a different purpose.
IOninja cale2: your outsider's perspective comes across to me as "Thing XYZ is better then Perl'6 thing because I'm much more familiar with it"
llfourn cale2: I usually use it to conditionally assign to things if they are defined 14:15
or rather an attribute of things
timotimo llfourn: that sounds like you want to invest more heavily into "with" ;)
llfourn timotimo: I don't like reading things backwards
IOninja heh
timotimo OK
we should totally make Rwith work :P 14:16
cale2 I assumed `andthen` was for chaining "maybe" operations. Like "if this is defined, do this, and if defined again, do this again"
14:16 cdg joined
llfourn cale2: exactly 14:16
cale2 llfourn: how do you insert the orelse with that then? It seems you should attach an "andthen" and "orelse" to the same op 14:17
masak timotimo: but `with` is not an infix operator, it's a statement modifier
geekosaur cale2: does that justify "do not attempt under any circumstances to preserve perl 5 compatibility when that might confuse someone who has never ever programmed before"? does that justify "I doubt anyone knows a use for [andthen]"?
masak timotimo: also there's already `with <expr> { ... }`
timotimo oh, of course there is
geekosaur so far, it only seems to justify "my viewpoint is the only valid one under any circumstances"
timotimo masak: i would have continued to argue we should make Rfor and Rwhile work, too ;) ;) 14:18
llfourn cale2: I think orelse still breaks with andthen :P but yes in theory
cale2 IONinja: It's not what I mean. Though it is obvious to me that you get that impression. Which is why you write off any critique I ever have. The only reason I grill on things is because I'm trying to truly understand and help out. Others will have the same thoughts as me. You can't live in a vacuum like Perl languages are the only options.
mst cale2: I'm confused by this, because from a perl5 person's POV, the perl6 operators are many, varied and a noticeable learning curve 14:20
pmurias cale2: some of your critique is very subjective, for me personally remembering operators isn't significantly harder than learning function names
mst cale2: I think you're assuming a position that IOninja doesn't hold and then inventing reasons why you're right about that 14:21
cale2: could you perhaps stick to criticisng the language itself rather than amateur psychoanalysis of people who disagree with you?
cale2 geekosaur: One of the stated goals of P6 was to distance itself from the bash/linux heritage. I guess it's a question of how far. I stand by my complaint about `andthen`. It feels like it was thrown in as an attempt to have "maybe" control flow. But it feels half-baked... Maybe it would make sense if someone gave a good example in the docs
DrForr It's entirely possible to write lots of useful code without any of the "fancy" operators. 14:22
IOninja cale2: but you don't have critique. You poo-poo things you don't understand. That's different. Just a few minutes ago you said "doubt anyone knows a use for [andthen]", despite my showing examples earlier. Yesterday, you charge into github.com/perl6/routine-map/issues/2 saying my code is slow, despite failing to provide any proof your sorting-plugin-of-choice handles a 5000-row table any better.
zengargoyle last call, if you're going to SCaLE this weekend... drop by the LA.pm booth and say 'hi'.
IOninja cale2: perhaps if you stop assuming you know everything, I'd stop dismissing your "critism" that easily.
perlpilot Hrm. 14:24
cale2 IOninja: It is slow. It's not a "poo poo" on your code. I was just trying to be helpful by offering that alternative. Sorry
mst cale2: andthen is not a bash concept
perlpilot this is not what I expected to see on #perl6 this morning
DrForr cale2: Think too about 'elsif'.
else if we do this and then do that.
mst cale2: short circuiting comparison operators are vastly common, and 'andthen' if anything is more reminiscent of node.js promises than bash, for me 14:25
cale2 mst: agreed
perlpilot: I have many thoughts and prefer hearty debate. Apologies if some get upset by confrontation
mst cale2: so I don't know why you keep inventing some perl5 bias and accusing IOninja of it 14:26
14:26 cdg left, cdg joined
cale2 IOninja: not meaning to personally attack at all. just pressing things in an effort to get a reasoned defense and learn 14:27
14:27 skids joined
perlpilot cale2: no,no, I'm not upset. I like "hearty debate" ... as long as it shows "movement" (debate for debate sake is annoying an unproductive) 14:27
cale2: It's just that #perl6 usually has a different style of debate. (probably that's only when TimToady is involved)
mst I'm now completely confused as to what cale2's point was 14:28
cale2 mst: multiple points that escalated haha. `andthen` was a tangent 14:29
mst cale2: can we start from the top, and maybe you could start by making one point at a time, without the (accidental) personal attacks?
cale2 mst: replacing `ff` with `$_ ~~ $a and $_ ~~ $b` doesn't work. Can't make sense of `ff` even after consulting the docs. 14:30
perlpilot cale2: the thing about Perl 6's many operators is that they naturally "chunk" into nice categories so that your brain can get at them without having to think about *all* of the operators, but rather just the ones that go together.
mst cale2: ff is flip flop, so it's ... "from $a to $b" or so
pmurias hmm, how should I portably test nqp::filenofh (which return the file descriptor for a file handle) 14:31
mst cale2: if ($state == 0 and $_ ~~ $a) { $state = 1 } elsif ($state == 1 and $_ ~~ $b { $state = 0 }; if ($state) {
cale2: is roughly what flip flop is short for
jnthn pmurias: I think there's some tests in roast that test the Perl 6 native-descriptor method, which may provide some inspiration
perlpilot To be fair, the little state machine that ff and fff carry around is a source of confusion for some (same with the P5 versions) 14:32
pmurias jnthn: thanks, I'll look
llfourn m: { .say if /A/ ff /B/; .say if $_ ~~ /A/ && $_ ~~ /B/ } for <AB C D B E F> # worls like that here
camelia AB
AB
llfourn cale2: ^
that was my first time using ff \o/ 14:33
cale2 llfourn: it's a bit different in the docs example. It starts taking at the left hand side and stops taking at the right hand side 14:34
they couple it with gather/take
pmurias jnthn: roast only checks the value returned by native-descriptor is >= :/
llfourn cale2: I literally just copied that from the doc example
jnthn pmurias: Well, it's portable ;-)
DrForr I don't think flipflop is that common in p5 either, I rarely use it msyelf. 14:35
llfourn cale2: ohh you're right
mst cale2: did you look at my example?
llfourn cale2: it's just that example doesn't show it
mst DrForr: certainly not in anything bar old school one liners
14:36 risou is now known as risou_awy
perlpilot DrForr: I used to use it all the time about 15 years ago. :-) 14:36
er, maybe more like 20 years ago now (geez I'm old!)
DrForr So... a sample size of 2 :) 14:37
llfourn m: { say "+$_" if /C/ ff /E/; .say if "-$_" ~~ /C/ && $_ ~~ /E/ } for <A C D B E F>
camelia +C
+D
+B
+E
llfourn so it's an expression that returns true if the LHS has been true until the RHS is true 14:38
cale2 `ff` was an example. I'm just thinking, does having operators like that really improve efficiency. Or does it make better programmers?
llfourn it probably doesn't hurt because I've been using p6 for years and never used it. 14:39
DrForr Aren't the two the same? :)
cale2 Because reading blogs from languages like python and golang, they'd just laugh and say that having those things wouldn't be any benefit at all. Such is the trouble in a polyglot world, I suppose
14:40 movl left
DrForr Lisp has hardly any operators, and it's survived for decades. 14:40
cale2 DrForr: Operators in some languages (like ruby or lisp) are just regular functions, no? I guess they are in P6 too, but there's the precedence added on 14:41
14:41 elaADnlxie left
jnthn In Perl 6, operators really are just function calls, with more interesting parsing. 14:41
14:41 FROGGS joined
jnthn And users can define their own 14:41
Just as they can with functions 14:42
moritz fwiw I haven't found infix ff in use in the ecosystem
jnthn So I guess in Perl 6 we really just don't see operators as a big deal
mst cale2: so you've picked possibly the single most esoteric operator to complain about
Geth ecosystem: 20729145be | (Jonathan Stowe)++ | META.list
Add EventSource::Server

  github.com/jonathanstowe/EventSource-Server
mst cale2: if you don't see the point of it ... you're not the target audience, it's ok, don't use it 14:43
perlpilot This is one of the reasons I favor Haskell over something like Scheme or Lisp. Haskell has more expressivity and allows for making your own operators that aren't necessarily constrained by some artificial idea that everything is a list. :-)
cale2: and I think that's part of the point with Perl 6's operators. 14:44
cale2 perlpilot: I actually prefer to ignore precedence rules and just explicitly use parens. Not sure I trust the computer to know what I want 14:45
llfourn cale2: I think you have an impression that we are crazy and writing spamming operators in our code. But if I were going to list the top 10 most important aspects of Perl 6, its many operators probably wouldn't be on the list.
DrForr Not to distract, but do we have coverage tools yet?
cale2 llfourn: not at all. Though I have read some very confusing P6 :)
14:45 elaADnlxie joined
DrForr Hopefully not mine :) 14:46
perlpilot llfourn: What would your top ten be? I can get to 5 or so right off, but I founder a little in what features are important after that.
cale2: I've read some confusing Python before too :)
llfourn perlpilot: I don't know it's a lazy list
perlpilot llfourn++ well played :) 14:47
llfourn :D
cale2 llfourn: This whole line of thought on operators was after reading the Design Docs on them yesterday. I was just thinking "is all this work really worth it? To add massive precedence tables, etc"
14:47 itaipu left 14:48 erdic left
cale2 perlpilot: Yeah, it's possible in any language, but I think the combo of operators and anonymous vars doesn't help. But of course those things are optional. But programmers are lazy lol 14:48
Geth doc: 55319f716f | (Zoffix Znet)++ | doc/Language/operators.pod6
Expand infix:<andthen> info

  - Include examples
  - Note similarity to `with` to aid understanding of function
perlpilot Hmm. "massive precedence tables"? Perl 6's precedence tables might have more breadth, but they also have less depth than, say Perl 5 (at least that was the case last time I looked)
Though ... that I haven't felt the need to look in a good long while is telling too. :) 14:49
IOninja cale2: so now you rage-quit on the issue? What was the point of my spending time reading about the plugin you proposed and typing all the responses? 14:50
llfourn cale2: Well I all I can after using the language for a while, p6 does operator precedence right and it was worth it.
all I can say*
IOninja cale2: you did the same with the `when` modifications to Pod::To::Text. People say "this may make code slow; let's run benchmarks" and you rage quit. 14:51
Pod::To::Html
cale2 IOninja: Thats a good explanation, cheers. It works differently than I would have expected, so that's helpful.
14:52 IOninja is now known as brokenchicken, brokenchicken is now known as IOninja, itaipu joined
cale2 IOninja: Well regarding the html table, I couldn't get it to work even with the local map.json file. Chrome loading errors with the datatables file. Prob only works with a CDN. Then I looked at the sort library you were using and it seemed to be pretty fast, so I doubted the one I suggested would be faster. 14:53
DrForr That's what code profilers are for :) 14:54
cale2 Regarding the "when" modifications to Pod::to::text, It's like you all said. The existing code is faster, so refactoring for readability would be pointless
14:54 erdic joined
IOninja cale2: no, I first said "Overall, I suspect this has a measurable negative performance impact and our docs build is slow as it is. I'd suggest measuring what that impact is first." on the GitHub Issue, and then re-iterated the point on IRC with "cale2: note the impact may be different in the code you changed. I suggest testing (like running two doc builds with and without the change)". 14:58
And I see in that conversation you call me a bigot because I pointed out desire to keep dirtier code with multies for sake of it being faster 14:59
Or rather because I dismissed your pleas for some sort of "purity" of code despite potential performance impact on an already-too-slow codebase. 15:00
cale2 IOninja: I'm merely a hobbyist programmer. I wouldn't know how to set up a proper testing workflow like that. Just trying to help if I can.
IOninja: The "bigot" comment was when you dismissed me as an "intellectual" or something just because I used the words "list comprehension" and "accumulator". It was tongue in cheek anyway. Apologies 15:02
15:03 wamba left, Technaton joined
IOninja cale2: well, keep in mind we have 270 people in the org. Both because at least a subset of them gets notifications and spend time reviewing the PRs and Issues you open and then close... and at least a subset of them know how to set up a proper testing workflow if you ask. 15:04
15:04 cyphase left 15:07 elaADnlxie left, leah2_ joined 15:08 leah2_ is now known as leah2
llfourn perlpilot: I wrote down my top 10 p6 features for you: gist.github.com/LLFourn/2a59e03c40...ea09f378be 15:08
15:08 cyphase joined
IOninja wow, containers is #1? 15:09
15:09 cdg_ joined
llfourn Yes. I know that will be weird for many people but It's my favorite. 15:09
15:10 erdic left 15:12 cdg left, abraxxa left 15:13 abraxxa joined
IOninja I'd go with these for my list: gist.github.com/zoffixznet/9adc6c9...bd05b61cc5 15:13
15:14 erdic joined
timotimo when i clicked that link i thought there'd be a little elaboration to go with each point 15:16
IOninja :) 15:17
Actually, imma move WhateverCode to #1 spot. I think that's my favourite Perl 6's feature 15:18
llfourn I'll work on that. But brain tired now :)
go sleep o/
IOninja m: (* * * * * * * * * * *)(|(^6+1)).say 15:19
camelia 720
IOninja beauty
15:19 risou_awy is now known as risou
IOninja m: ($ += **)(^20).say 15:20
camelia (0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190)
IOninja \o/
15:22 abraxxa left, abraxxa joined 15:23 Actualeyes left
Geth doc: a4fb28da9e | Cale++ | doc/Type/Signature.pod6
reorganize "constraining return types"
15:27
doc: f9479377ac | Cale++ | doc/Type/Signature.pod6
Merge pull request #1220 from perl6/WildYorkies-patch-3

reorganize "constraining return types"
15:33 llfourn left, Actualeyes joined, pyrimidi_ left 15:34 pyrimidine joined 15:35 mcmillhj left, lukaramu_ left 15:36 risou is now known as risou_awy 15:38 mcmillhj joined
IOninja wonder why I'm getting each response to an RT ticket as three emails sent to me :/ 15:40
15:40 itaipu left
lizmat IOninja: perhaps Zoffix or brokenchicken have something to do with it? 15:40
mst lizmat++ 15:41
IOninja heh 15:42
15:44 Actualeyes left 15:45 mls_ is now known as mls 15:46 adu left
IOninja Interesting rule side note on www.hackerrank.com/womens-codesprint-3 "Winners who reside in Russia will receive $15 USD via Bitcoin in lieu of a World Champion T-shirt" 15:46
Russia has a ban on T-shirts or something? :)
15:46 adu joined
IOninja Cool Booking.com is one of the sponsors 15:47
15:49 agentzh joined 15:50 adu left 15:52 abraxxa left 15:53 agentzh left 15:59 sufrostico left, sufrosti1o left, abraxxa joined, sufrosti2o left 16:01 culb left 16:02 wamba joined 16:04 nightfrog joined 16:15 pyrimidine left, pyrimidine joined 16:16 cale2 left 16:21 itaipu joined 16:22 Actualeyes joined 16:30 abraxxa left, abraxxa joined, llfourn joined, FROGGS left
[Coke] just gave some overstock booking.com swag he had to a coworker with an upcoming business trip who needed a document holder. whee. 16:32
m: +(1..11)==10 16:33
camelia WARNINGS for <tmp>:
Useless use of "==" in expression "+(1..11)==10" in sink context (line 1)
IOninja m: say 1..10 == 10 16:34
camelia True
16:35 llfourn left
[Coke] IOninja: was going to be a commentary on your 1..11 list of top 10s. :) 16:38
IOninja Ah
perlpilot I find the specificity of "lexical $_" and "lazy iterators" interesting. For me, it would be more like "pervasive lexicality" and "rampant laziness" :- 16:40
er :-)
16:40 abraxxa left
timotimo i wouldn't say rampant laziness 16:41
that'd be if your lang does lazy like haskell does
perlpilot oh, maybe so
but P6 is heavily bent towards as much laziness as you can get
16:41 abraxxa joined
IOninja m: say 42/0 + Inf 16:41
camelia Inf
IOninja m: my @a = ^3; for @a <-> $v { $v = $++ }; say @a 16:42
camelia [0 1 2]
IOninja m: my @a = ^3; for @a -> $v is rw { $v = $++ }; say @a
camelia [0 1 2]
IOninja These are the same thing? 16:43
m: <-> {}
camelia ( no output )
IOninja m: say <-> { 42 }()
camelia 42
IOninja interesting... 16:44
16:44 Sound left
IOninja m: my $y = 72; <-> $x { $x = 42 }($y); say $y 16:44
camelia 42
perlpilot If I were making a top 10 for Perl 6, NativeCall would have to be in there somewhere.
IOninja Yeah, it's pretty cool, but I don't know C. 16:45
Geth doc: 37b65252c0 | (Wenzel P. P. Peppmeyer)++ | doc/Language/operators.pod6
:= is a compile time only
16:46 domidumont left 16:49 khw joined
IOninja m: use Test; my @a[3;3]; for @a.pairs -> $p { $p.value = $++ }; is-deeply @a, Array.new(:shape(3, 3), [0, 1, 2], [3, 4, 5], [6, 7, 8]); 16:50
camelia Partially dimensioned views of arrays not yet implemented. Sorry.
in sub _is_deeply at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 579
in sub is-deeply at /home/camelia/rakudo-m-inst-2/s…
16:50 abraxxa left
IOninja seems is-deeply is busted with shaped arrays? 16:50
m: use Test; my @a[3;3]; is-deeply @a, @a 16:51
camelia Partially dimensioned views of arrays not yet implemented. Sorry.
in sub _is_deeply at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 579
in sub is-deeply at /home/camelia/rakudo-m-inst-1/s…
IOninja m: my @a[3;3]; say @a eqv @a
camelia True
IOninja A bug \o/
m: my @a[3;3]; sub _is_deeply (Mu $g, Mu $e ) { $g eqv $e }; say _is_deeply @a, @a 16:53
camelia Partially dimensioned views of arrays not yet implemented. Sorry.
in sub _is_deeply at <tmp> line 1
in block <unit> at <tmp> line 1
IOninja hehe, that's interesting...
16:54 bwisti joined 16:56 robertle joined
IOninja Some Zoffix guy messed it up yesterday: github.com/rakudo/rakudo/commit/f9...6d700335de 16:56
timotimo who might that be 16:57
IOninja Dunno. But he's clearly a n00b. 16:58
16:59 itaipu left, itaipu joined
IOninja m: my @a[3;3]; sub _is_deeply (Mu \g, Mu \e ) { g eqv e }; say _is_deeply @a, @a 17:01
camelia True
IOninja Works if I don't use $ containers... 17:02
17:03 jonas1 left
IOninja m: my @a[3;3]; my @b[3;3]; sub _is_deeply (Mu \g, Mu \e ) { g eqv e }; say _is_deeply @a, @b 17:06
camelia Partially dimensioned views of arrays not yet implemented. Sorry.
in sub _is_deeply at <tmp> line 1
in block <unit> at <tmp> line 1
IOninja Aha. I see
Well, I'll claim I didn't break anything, but changed when it short-curcuits to avoids reaching the NYI area 17:07
17:16 agentzh joined 17:20 risou_awy is now known as risou 17:22 pyrimidine left, pyrimidine joined 17:26 itaipu left 17:27 pyrimidine left 17:28 pyrimidine joined 17:31 llfourn joined
IOninja m: use nqp; my @a[3;3]; sub x(@a, @b) {dd [nqp::eqaddr(@a, @b), nqp::eqaddr(@a.WHAT, @b.WHAT)] }; sub _is_deeply (Mu $g, Mu $e ) { x $g, $e }; say _is_deeply @a, @a 17:31
camelia [1, 1]
Nil
17:31 sufrostico joined, sufrosti1o joined, sufrosti2o joined
IOninja I mean... 17:31
m: use nqp; my @a[3;3]; sub x(@a, @b) { nqp::eqaddr(@a, @b) }; sub _is_deeply (Mu $g, Mu $e ) { x $g, $e }; say _is_deeply @a, @a
camelia 1
IOninja m: use nqp; my @a[3;3]; sub x(\a, \b) { nqp::eqaddr(a, b) }; sub _is_deeply (Mu $g, Mu $e ) { x $g, $e }; say _is_deeply @a, @a 17:32
camelia 0
IOninja The latter is the new version of eqv and since the two things aren't nqp::eqaddrs, it goes in further in the code to try to iterate over the items, but using non-dimentional iterating way 17:33
timotimo doesn't a normal array also implement .values?
so you could "just" compare shapes and then iterate both .values until you find a mismatch?
IOninja Oh, I'm already done with tests: github.com/perl6/roast/commit/1f5dead548 17:34
timotimo OK
IOninja I was just musing on what exactly in my change it was that caused the discrepancy
Wooooo!
I got a dead sha! github.com/perl6/roast/commit/1f5dead548 17:35
that's one step down from deadbeef :)
17:36 llfourn left, perlpilot_ joined
IOninja m: "1f5dead548842b9f26516adb6df995d9108d7ef3".comb.grep({!/\d/}).squish.join.say 17:37
camelia fdeadbfadbdfdef
IOninja Close enough :}
17:37 risou is now known as risou_awy 17:39 perlpilot left 17:40 st_elmo joined 17:42 domidumont joined 17:46 eroux joined 17:47 dakkar left 17:48 itaipu joined, domidumont left 17:49 domidumont joined 17:51 eroux left 17:55 risou_awy is now known as risou 18:00 itaipu left 18:05 raschipi joined
raschipi Oi! 18:05
timotimo greetings 18:06
IOninja \o 18:08
18:13 risou is now known as risou_awy 18:17 pyrimidine left
raschipi m: say rand > .5 ⁇ "yep" ‼ "nope" 18:17
camelia yep
raschipi Noice
18:17 pyrimidine joined 18:20 risou_awy is now known as risou 18:22 pyrimidine left 18:25 pyrimidine joined 18:27 crustycollins joined 18:28 elaADnlxie joined
elaADnlxie runs autoreplace on his projects ;) 18:28
18:30 llfourn joined 18:31 indexme left 18:35 llfourn left 18:37 risou is now known as risou_awy 18:38 Ven left 18:40 Ven joined 18:42 darutoko left 18:53 elaADnlxie left 18:56 sufrosti1o left, sufrostico left, mxco86 left, labster joined, sufrosti2o left
SmokeMachine m: [{:1error, :10data}, {:2error, :20data}].flatmap(*.<error data>).classify({<error data>[$++ % 2]}).say # is there a better way to do it? 18:58
camelia {data => [10 20], error => [1 2]}
raschipi You want an idiom suggestion? #E como foi o carnaval? 18:59
SmokeMachine m: [{:1error, :10data}, {:2error, :20data}].flatmap(*.pairs).map(-> $i {$i.value but role {method c {$i.key}}}).classify(*.c).say # i dont think its better... but works too 19:00
camelia {data => [10 20], error => [1 2]}
IOninja m: say % .push: [{:1error, :10data}, {:2error, :20data}]».pairs.flat' 19:01
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 0310data}, {:2error, :20data}]».pairs.flat7⏏5'
expecting any of:
infix
infix stopper
postfix
statement end
IOninja m: say % .push: [{:1error, :10data}, {:2error, :20data}]».pairs.flat
camelia {data => [10 20], error => [1 2]}
SmokeMachine raschipi: yes... a idiom suggestion! # não muito bem... fiquei doente o carnaval inteiro... mas ao menos subiu uma feature minha no rakudo! e vc?
IOninja: that was a good one!
19:01 andrzejku joined
raschipi SmokeMachine: IOninja++ #Parentes da minha noiva sofreram um acidente de trânsito, fiquei correndo pra cá e pra lá acudindo 19:02
19:08 Sound joined 19:10 ufobat left 19:13 cpage__ left, kurahaupo__ joined
SmokeMachine raschipi: # meus meus pêsames... melhoras p/ eles 19:14
is there a way to classify() change the data classified? 19:16
IOninja nope 19:17
or... 19:19
m: say % .classify-list { *.is-prime }, :as{ .Int }, ('42, '31337', '2')
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected block in infix position (missing statement control word before the expression?)
at <tmp>:1
------> 3say % .classify-list7⏏5 { *.is-prime }, :as{ .Int }, ('42, '313
expecting any …
IOninja m: say % .classify-list: { *.is-prime }, :as{ .Int }, ('42, '31337', '2')
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *
at <tmp>:1
------> 3say % .classify-list: { *.is-pr…
IOninja m: say % .classify-list: *.is-prime, :as{ .Int }, ('42, '31337', '2')
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3y-list: *.is-prime, :as{ .Int }, ('42, '7⏏0531337', '2')
expecting any of:
infix
infix stopper
statement end
s…
IOninja screw you 19:20
m: say % .classify-list: :as{"Value is $_"}, { $_ %% 2 ?? 'even' !! 'odd' }, ^5; 19:21
camelia {even => [Value is 0 Value is 2 Value is 4], odd => [Value is 1 Value is 3]}
IOninja SmokeMachine: ^ that seems to be it
m: say classify :as{"Value is $_"}, { $_ %% 2 ?? 'even' !! 'odd' }, ^5;
camelia {even => [Value is 0 Value is 2 Value is 4], odd => [Value is 1 Value is 3]}
raschipi m: say % .classify-list: :as{$_++}, { $_ %% 2 ?? 'even' !! 'odd' }, ^5; 19:22
camelia Cannot resolve caller postfix:<++>(Int); the following candidates
match the type but require mutable arguments:
(Mu:D $a is rw)
(Int:D $a is rw)

The following do not match for other reasons:
(Bool:D $a is rw)
(Bool:U $a is …
IOninja Ranges don't provide writable containers, and even if they did that ++ is useless 19:23
(in this case)
19:23 Ven left
raschipi It isn't a loop in this case, is that it? 19:24
19:26 domidumont left, kurahaupo__ left, kurahaupo__ joined 19:27 Ven joined
IOninja It's a method call. Its internal implementation is irrelevant. Did you mean $++ (the anonymous state var?) 19:27
m: say % .classify-list: :as{$++}, { $_ %% 2 ?? 'even' !! 'odd' }, ^5;
camelia {even => [0 2 4], odd => [1 3]}
SmokeMachine m: say % .classify-list: :as{.value}, {.key}, [{:1error, :10data}, {:2error, :20data}]>>.pairs.flat 19:30
camelia {data => [10 20], error => [1 2]}
19:31 llfourn joined
RabidGravy boom 19:31
SmokeMachine m: [{:1error, :10data}, {:2error, :20data}]>>.pairs.flat.classify(:as{.value}, *.key).say 19:32
camelia {data => [10 20], error => [1 2]}
19:32 eroux joined
IOninja [Coke]: llfourn I recall you were asking for a routine to parse character names. Comment on proposal to add it to Rakudo: github.com/rakudo/rakudo/pull/1031 19:32
19:34 sQuEE` left 19:35 zakharyas left 19:36 llfourn left
IOninja & # work 19:36
SmokeMachine IOninja: thanks! 19:37
19:41 rurban1 left 19:42 cibs left 19:43 cdg joined 19:44 espadrine joined, cibs joined 19:46 lukaramu joined 19:47 cdg_ left, Actualeyes left, cdg left 19:49 bjz joined
[Coke] IOninja++ 19:52
19:59 pyrimidine left, pyrimidine joined 20:01 Actualeyes joined
IOninja stresstests a tweak to parse-names's code squeeze out another 13% of speed out of it 20:01
Geth Inline-Perl5/create_sub_packages: b5f1f10cc8 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6
Also create sub packages of loaded Perl 5 packages

use Foo:from<Perl5>; will now not only create a "Foo" package in Perl 6, but also Foo::Bar if that's what a "use Foo;" in Perl 5 would do (either because Foo::Bar is in the same file, or because Foo does a "use Foo::Bar" or similar).
Inline-Perl5/create_sub_packages: f162ba6db4 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6
First part of inlining $loaded
20:04 pyrimidine left, andrzejku left, elaADnlxie joined 20:07 Sound left 20:09 itaipu joined 20:13 mr-foobar left 20:16 Actualeyes left
Geth doc: e4d341bbc5 | (Elizabeth Mattijsen)++ | doc/Language/unicode_texas.pod6
Add ⁇ ‼ to list of unicode / texas variants
20:20
20:21 lizmat left, lizmat joined, risou_awy is now known as risou 20:23 Ven left 20:27 Ven joined 20:29 pyrimidine joined 20:33 llfourn joined 20:34 pyrimidine left 20:35 raschipi left 20:38 llfourn left, zakharyas joined 20:39 risou is now known as risou_awy 20:40 pyrimidine joined 20:45 pyrimidine left
Geth doc: b6407d8b7e | (Zoffix Znet)++ | doc/Type/Str.pod6
Document Str.parse-names / &parse-names

Implemented today in Rakudo: github.com/rakudo/rakudo/commit/84cf1d2fb3 Tests in: github.com/perl6/roast/commit/5679afffa1
20:46
20:47 bjz left 20:48 lichtkind_ joined 20:50 pyrimidine joined 20:52 lichtkind left 20:54 itaipu left 20:55 itaipu joined 20:56 mcmillhj left, andrzejku joined 20:58 mcmillhj joined 21:02 elaADnlxie left 21:03 sufrostico joined 21:06 TEttinger joined 21:07 bjz joined, sufrostico left 21:09 khw left, sufrostico joined 21:15 perlpilot_ is now known as perlpilot, mcmillhj left, mr-foobar joined 21:19 bjz left 21:22 wamba left 21:24 itaipu left 21:25 pmurias left, pyrimidine left 21:26 pyrimidine joined, itaipu joined 21:30 pyrimidine left 21:31 ajr_ joined, mcmillhj joined 21:32 crustycollins left
ajr_ Just for information, attempting to install Rakudo* on the Raspberry Pi has run into a problem right at the start 21:34
21:34 llfourn joined
ajr_ Attempting to run Config.pl generates an "illegal instruction" message. 21:34
IOninja :( 21:35
ajr_ It appears to be a known problem with the ARM, though, judging by traffic on Pi sites.
I'll post an update when I've worked out the fix, unless soemone beats me to it.
21:36 mcmillhj left
ajr_ s/soem/some/ 21:36
21:37 cschwenz joined 21:39 llfourn left 21:40 eroux left, cdg joined 21:43 zakharyas left 21:47 cschwenz left 21:50 pyrimidine joined 21:51 kurahaupo_ joined, kurahaupo__ left 21:52 mcmillhj joined 21:55 f3ew_ left, risou_awy is now known as risou, perigrin left 21:56 perigrin joined, cxreg2 left 21:57 ajr_ left 21:58 skids left 21:59 geekosaur left 22:00 pyrimidine left 22:01 mcmillhj left, pyrimidine joined 22:02 mcmillhj joined 22:03 kurahaupo_ left, kurahaupo__ joined 22:04 geekosaur joined 22:07 st_elmo left, mcmillhj left 22:08 mcmillhj joined, RabidGravy left 22:10 girafe left, geekosaur left 22:12 risou is now known as risou_awy, geekosaur joined, girafe joined, andrzejku left 22:16 geekosaur left 22:19 geekosaur joined 22:20 mcmillhj left 22:22 risou_awy is now known as risou 22:30 f3ew joined 22:34 f3ew left 22:36 llfourn joined 22:37 pyrimidine left, pyrimidine joined 22:38 Voldenet left 22:39 risou is now known as risou_awy 22:40 llfourn left 22:43 pyrimidine left, Ven left 22:44 Voldenet joined, Voldenet left, Voldenet joined, f3ew joined 22:45 labster left 22:47 labster joined 22:48 cxreg joined 23:05 cdg left 23:08 bwisti left, dct joined 23:10 elaADnlxie joined 23:12 llfourn joined 23:27 pyrimidine joined 23:32 pyrimidine left, itaipu left 23:34 itaipu joined 23:36 BenGoldberg joined 23:37 girafe left, KDr2 joined 23:39 cpage_ joined, mcmillhj joined, KDr2 left 23:41 itaipu left 23:42 pyrimidine joined 23:44 mcmillhj left 23:47 pyrimidine left 23:51 kurahaupo__ left 23:53 KDr2_m joined 23:56 itaipu joined 23:59 KDr2_m left, KDr2_c joined