»ö« 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.
squashable6 🍕🍕🍕 First contribution by samcv++! ♥ 00:03
Geth rakudo: 4a989a5e4f | (Samantha McVey)++ | tools/build/NQP_REVISION
Bump NQP: MVM revert throw when windows1252 errors. JVM add 1251

Changes: 2018.01-33-g99493b0..2018.01-44-ga860fd310 a860fd310 Bump MoarVM to revert throwing on windows-1252/1 decode errors d32d84d4b [jvm] Add windows-1251 as an available encoding b348d45cf [js] Check for known encoding in codecs 273850777 [js] Update dep ... (7 more lines)
samcv woo
samcv i get pizza
rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....ga860fd310
f473216452 | (Zoffix Znet)++ | src/Perl6/Actions.nqp

We actually go through whatever curry on each curryeable thing like a method call or some op. Avoiding the dynvar and caching the lookup of Whatever, WhateverCode, and HyperWhatever in lexical vars comes out about 10x faster.
Makes compilation of 3000-line file ~6% faster. Not a lot but... Whatever
squashable6 🍕 skids++ wrote a comment on “Array.reverse with holes…”: github.com/rakudo/rakudo/issues/14...-362748442 00:14
🍕🍕🍕 First contribution by skids++! ♥
Geth rakudo: b93656d82d | (Zoffix Znet)++ | src/Perl6/Actions.nqp
Revert "Elevate statevars to enclosing block when wrapped"

This reverts commit 299e85264b50104ad82411e9c3999dc727154091.
Travis is unhappy. Try to figure out what it is that makes it blow up.
00:51
Geth rakudo: 42af2a35b6 | (Zoffix Znet)++ | src/Perl6/Actions.nqp
Revert "Revert "Elevate statevars to enclosing block when wrapped""

This reverts commit b93656d82d81a5f93780f11bed055114d2095fc7.
Taht ain't it
01:06
Geth rakudo: 01ce5632bc | (Zoffix Znet)++ | src/core/VM.pm
Revert "Use a more descriptive desc for $*VM"

This reverts commit 86e926c76d6b3c47a2a9ffa11d43e34744493ac7.
Travis fix attempt #2
01:07
doc: gfldex++ created pull request #1754:
doc Proc::Async::bind-(stdin|stdout|stderr)
doc: 244e3713da | (Wenzel P. P. Peppmeyer)++ | doc/Type/Proc/Async.pod6
doc Proc::Async::bind-(stdin|stdout|stderr)
01:08
doc: 796c31b67b | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Proc/Async.pod6
Merge pull request #1754 from gfldex/#1470

doc Proc::Async::bind-(stdin|stdout|stderr)
synopsebot Link: doc.perl6.org/type/Proc::Async
gfldex github.com/perl6/doc/issues/1470 might be closed 01:10
Geth rakudo: 07f30e4bab | (Zoffix Znet)++ | src/core/VM.pm
Revert "Revert "Use a more descriptive desc for $*VM""

This reverts commit 01ce5632bc9a4359870fa9c68347b9217d949995.
That ain't it either. I'm stumped :|
01:16
Geth rakudo: 7d42e33637 | (Zoffix Znet)++ | src/core/Exception.pm
Try to make travis error say what's actually wrong
01:20
Geth rakudo: 4929651929 | (Zoffix Znet)++ | src/core/Exception.pm
Coaxe travis some more
01:34
Geth rakudo: 85ae1d1ee6 | (Zoffix Znet)++ | 5 files
Revert "Initialize $*PERL during setting compilation to avoid runtime cost"

This reverts commit 671c3d60161053809415a2eb85097b0714417b56.
Try to unbust travis
01:51
squashable6 🍕 skids++ wrote a comment on “Array.reverse with holes…”: github.com/rakudo/rakudo/issues/14...-362764080 01:53
zacts what main features would Perl6 add to OOP if I am coming from Ruby? 02:01
Geth rakudo: 2339d8dd00 | (Zoffix Znet)++ | src/core/Exception.pm
Travis unbusted; restore X::Comp::BeginTime to former glory
skids zacts: Not a ruby person myself, but types are not duck-typed, interfaces (here called "roles") may be parameterized. Probably a lot more but hard to say not knowing ruby. 02:07
Zoffix zacts: I don't know Ruby, but we do have a "from Ruby to Perl 6" guide. Perhaps it mentions something (I see there's "Object Orientation" up in there): docs.perl6.org/language/rb-nutshell 02:07
zacts cool ok 02:07
I'll check it out
is Perl6 OOP based on CLOS? 02:08
Zoffix has no idea, sorry :) 02:09
zacts s'ok :-)
I'll look into it. 02:10
skids reading en.wikipedia.org/wiki/Common_Lisp_Object_System most of those features are available. The MMD may work slightly differently. Inheritance is C3. 02:11
zacts oh so it seems that Perl6 provides PEG parsers. cool.
zacts I'll ahve to try this all out 02:12
Zoffix \o/
skids It can also inline the grammars through a mechnism called "slang" and you can alter the local Perl6 grammar by subclassing it. 02:13
ctilmes What is "Serialization Error: missing static code ref for closure 'run' (gen/moar/stage2/NQPHLL.nqp:1834)" 03:27
Zoffix ctilmes: sounds like an internal compiler error. 03:34
Any chance you got the code that produces it?
Some sort of --profile option? 03:35
--profile-stage
ctilmes I figured it out -- I'll try to make a small example that triggers it. I was re-exporting a bunch of symbols by some I forgot to include my module that exported them. 03:37
ctilmes Zoffix: Put this in a module and 'use' it: "my package EXPORT::DEFAULT {}; BEGIN EXPORT::DEFAULT::{'this'} = ::('this') }" 03:41
Zoffix Reproed. Thanks. 03:42
squashable6 🍕 zoffixznet++ opened issue “LTA error: Serialization…”: github.com/rakudo/rakudo/issues/1471 03:44
🍕 zoffixznet++ labeled issue “LTA error: Serialization…”: github.com/rakudo/rakudo/issues/1471
squashable6 🍕 zoffixznet++ wrote a comment on “EVAL is not thread safe (by design?)”: github.com/rakudo/rakudo/issues/13...-362779931 04:50
squashable6 🍕 skids++ wrote a comment on “Array.reverse with holes…”: github.com/rakudo/rakudo/issues/14...-362780918 05:11
squashable6 🍕 ugexe++ opened issue “sort(&by) is broken when elems == 2”: github.com/rakudo/rakudo/issues/1472 05:40
🍕🍕🍕 First contribution by ugexe++! ♥
squashable6 🍕 zoffixznet++ self-assigned issue “sort(&by) is broken when elems == 2”: github.com/rakudo/rakudo/issues/1472 05:48
Geth rakudo: 2e65de2999 | (Zoffix Znet)++ | src/core/Rakudo/Sorting.pm
Fix broken 2-arity sort of 2-el list

Phixes github.com/rakudo/rakudo/issues/1472
When we have a 2-el list, we need to swap only if Order::More is received from the comparator, but the test was checking whether to leave it alone if Order::Less is received.
Fix by leaving it alone for Order::Same as well.
06:48
roast: 6fd123a1bf | (Zoffix Znet)++ | S32-list/sort.t
Remove trailing whitespace
roast: 5dc25f13e6 | (Zoffix Znet)++ | S32-list/sort.t
Cover degenerate cases of `sort`

Closes github.com/rakudo/rakudo/issues/1472 Rakudo fix: github.com/rakudo/rakudo/commit/2e65de2999
06:49
squashable6 🍕 zoffixznet++ closed issue “sort(&by) is broken when elems == 2”: github.com/rakudo/rakudo/issues/1472
AlexDaniel squashable6: status 12:40
squashable6 AlexDaniel, 🍕🍕 SQUASHathon is in progress! The end of the event in ≈23 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel, Log and stats: gist.github.com/81bbfcdb83515d6dfd...21737c1d53
AlexDaniel buggable: tag testneeded
buggable AlexDaniel, There are 27 tickets tagged with TESTNEEDED; See fail.rakudo.party/t/TESTNEEDED for details
squashable6 🍕🍕🍕 First contribution by timo++! ♥ 14:11
Geth rakudo/udp_receive_hostname_port: 3b35f64c64 | (Timo Paulssen)++ | src/core/IO/Socket/Async.pm
first draft of "datagram"-oriented API for udp sockets

ask the .Supply to give you :datagrams and you'll receive instances of IO::Socket::Async::Datagram with
  .data being the string or buffer of data and
  .hostname and .port being the sender's address.
rakudo: timo++ created pull request #1473:
[RFC] first draft of "datagram"-oriented API for udp sockets
14:14
squashable6 🍕 timo++ opened pull request “[RFC] first draft of "da…”: github.com/rakudo/rakudo/pull/1473
🍕 timo++ edited pull request “[RFC] first draft of "da…”: github.com/rakudo/rakudo/pull/1473 14:15
🍕 timo++ wrote a comment on “[RFC] first draft of "da…”: github.com/rakudo/rakudo/pull/1473...-362811810 14:16
titsuki m: say unique 1, -2, 2, 3, 'as' => { abs $_ }; 14:51
camelia (1 -2 2 3 as => -> ;; $_? is raw { #`(Block|59810144) ... })
MasterDuke m: say unique 1, -2, 2, 3, :as( { abs $_ } ); 15:01
camelia (1 -2 3)
evalable6 (1 -2 3)
Geth roast: 3dab7c7745 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S32-exceptions/misc.t
Test malformed sigs with return types

Adds tests for RT#127100.
15:02
AlexDaniel haha
synopsebot RT#127100 [new]: rt.perl.org/Ticket/Display.html?id=127100 [LTA] error message when specifying return type before parameters ( --> Bool, Int $x, Int $y )
skids m: say unique 1, -2, 2, 3, as => { abs $_ };
camelia (1 -2 3)
titsuki m: say unique 1, -2, 2, 3, :as(;;;;;;; -> { abs $_ });
camelia (1 -2 2 3)
MasterDuke m: say unique 1, -2, 2, 3, :as( *.abs ); 15:03
camelia (1 -2 3)
evalable6 (1 -2 3)
MasterDuke m: say unique 1, -2, 2, 3, :as( *.abs ); 15:04
camelia (1 -2 3)
skids m: (:as(;;;;;;; -> { abs $_ })).perl.say
camelia :as((Nil, Nil, Nil, Nil, Nil, Nil, Nil, -> { #`(Block|71017600) ... }))
MasterDuke huh, evalable6 was doing that because of the space before the 'm:' 15:04
AlexDaniel yea, wrote that down already: github.com/perl6/whateverable/issu...-362818980 15:05
I guess it thinks that m: is a label
and also does not understand that it's a m: command 15:06
MasterDuke fix as simple as ltrim the message before checking? 15:07
araraloren_ m: sub p(|c) { dd c; }; p 1, -2, 2, 3, 'as' => { abs $_ }; 15:29
camelia \(1, -2, 2, 3, :as(-> ;; $_? is raw { #`(Block|68484960) ... }))
araraloren_ m: sub p(|c) { dd c; }; p 1, -2, 2, 3, as => { abs $_ }; 15:30
camelia \(1, -2, 2, 3, :as(-> ;; $_? is raw { #`(Block|59952088) ... }))
titsuki m: say unique(1,2,3,3,:as(10)) 15:31
camelia (1 2 3)
skids m: say unique 1,2,3,3:as({10}) # has to be a callable 15:32
camelia 5===SORRY!5=== Error while compiling <tmp>
You can't adverb 3
at <tmp>:1
------> 3say unique 1,2,3,3:as({10})7⏏5 # has to be a callable
skids m: say unique 1,2,3,3,:as({10}) # has to be a callable
camelia (1)
titsuki Why "as(<something Int object>)" doesn't cause error? 15:35
skids Good question, maybe it should.
titsuki ok. I see.
skids m: sub f(:&as) { &as.perl.say }; f(:as(10)) 15:36
camelia Type check failed in binding to parameter '&as'; expected Callable but got Int (10)
in sub f at <tmp> line 1
in block <unit> at <tmp> line 1
skids Should probably do that. 15:37
Though...
Maybe with MMD... 15:38
m: multi sub f(:&as!) { &as.perl.say }; multi sub f() { "NO ARG".say }; f(:as(10)) 15:39
camelia Unexpected named argument 'as' passed
in sub f at <tmp> line 1
in block <unit> at <tmp> line 1
skids hrm. Well that error may be LTA. 15:40
m: multi sub f(:&as!) { &as.perl.say }; multi sub f(|c) { "NO ARG".say }; f(:as(10)) # probably what is happenning with unique 15:42
camelia NO ARG
skids m: multi sub f(:&as!) { &as.perl.say }; multi sub f(:$as!) { "bad type on :as".say } ; multi sub f(|c) { "NO ARG".say }; f(:as(10)) 15:44
camelia bad type on :as
skids So just adding a candidate like that could deliver an error message.
skids but not for .unique method due to interface consistency. 15:45
skids Adding that candidate though might mess up people trying to add a 'unique' multi sub that takes :as(Int). 15:49
So maybe a more generic candidate that takes and looks for unknown/badly typed nameds and warns, but then runs. 15:51
AlexDaniel commit: say 42 16:07
evalable6 42
AlexDaniel MasterDuke: I don't think it's that simple :)
MasterDuke: but it's probably as simple as adding something here to just special-case it 16:08
MasterDuke: github.com/perl6/whateverable/blob...ble.p6#L46
or just slap \s+ right on that line
comborico1611 Does p6 have pointers? 16:18
geekosaur only for NativeCall 16:19
comborico1611 Thanks! 16:20
Herby_ o/ 16:22
Herby_ reading a little about the history of p6: i didn't realize there is/was a haskell based implementation 16:28
Voldenet What's the preferred way to reduce writing `MyClass.new(:field1($x), $field2($y));` into `MyClass($x, $y);` 16:33
a subroutine, or maybe some more elegant way? 16:34
Voldenet m: class X { has $.n; multi method Str() { "value: $.n" } }; sub X-n ($v) { X.new(:n($v)) }; say ~X-n(42); 16:40
camelia value: 42
Voldenet that's what I came up with, but this doesn't seem very elegant 16:41
Juerd Voldenet: Provide your own BUILD submethod 16:47
Geth doc: 3bf1d5efe2 | (Luca Ferrari)++ | doc/Language/regexes.pod6
Explain $/ resets each time a new match is run.

See discussion in #1752
synopsebot Link: doc.perl6.org/language/regexes
Geth doc: 26c5cdd0e8 | (Luca Ferrari)++ | doc/Language/regexes.pod6
Add a section to explain $/ changes each time ~~ is used.

Explained also named captures. See issue #1752
Voldenet Juerd: but doesn't that leave me with .new everywhere?
Juerd Voldenet: I assumed leaving out .new was a mistake. Why would you want to get rid of that?
Voldenet because I'm making large trees and it seemed unwieldy in cases where I'd need to use a lot of them 16:50
geekosaur nobody said your constructor has to be called .new 16:51
Juerd geekosaur: But leaving out the constructor completely, is that even feasible? 16:51
Juerd It looks pythonesque, but I don't see any advantage 16:52
Voldenet it's shorter ;D
geekosaur er? it's in there still, it's hidden inside X-n
but it could be a class method instead. (also, uh, can I suggest you not use X as a class name? the eception namespace *will* bite you at some point)
Juerd Voldenet: If you just want short, use a single-letter subroutine :D 16:53
Maybe an operator even
Voldenet > equation-n(mul-n(sum-n(expr-n('a'), expr-n('b'), expr-n('a'))))
it'd be way more unwieldy if I wrote this with .new everywhere 16:54
not that it's any good, I made some mistakes on the way
but I'm writing tests for some expression reducers, just for fun
Juerd m: class Point { has $.x; has $.y; }; sub infix:<`>($x, $y) { Point.new(:$x, :$y) }; say (42`69).x 16:55
camelia 42
Juerd That's short! :)
Voldenet actually, that is pretty clever 16:56
geekosaur this is starting to look like apl, though >.>
Juerd geekosaur: Well, if someone values brevity over clarity, that's their fate anyway :) 16:57
Voldenet I bet I'll be pretty surprised
later
Juerd Anyhow, to be honest, if I read things like mul-n and sum-n, I think operators would be better anyway.
Voldenet m: class X { has $.n; multi method Str() { "value: $.n" } }; sub prefix:<@> ($v) { X.new(:n($v)) }; say ~@42; 16:58
camelia value: 42
Voldenet Juerd++ for the apl powers ;) 16:59
Juerd Maybe even just define an operator for expr-n and overload existing operators (I mean provide new multi candidates for them) to do the rest
Juerd Voldenet: X is already used by the language for exception stuff, @ is used for array stuff. You may want to pick different characters. 16:59
Most of unicode is still available! :D
Voldenet Watch me when I reimplement + and - operators >.> 17:00
geekosaur this has been a fertile source of weird bugs n the past
even more so if someone actually did some of the things discussed in dev where spesh assumes you did not so overload various things 17:01
Juerd geekosaur: On the other hand, nothing like fuzzing and chaos monkeys to find bugs and harden something
Also, if there's a "just don't do that", it should be documented imho
So it might just be a good way to find those things
geekosaur if that spesh thing ahppened, you will lose that bet; you will have to declare that you are breaking the rules 17:02
Juerd use MONKEY-WAR;?
geekosaur but I don;t think it has as yet, specifically because someone needs to work out how to make it clear that problems await
Juerd use CHAOS-MONKEY;?
geekosaur neither really. monkey wrench :) 17:03
Juerd Nice one 17:03
Voldenet if the problems await, I just have to give them some nice promises
Voldenet m: sub prefix:<.> ($a, $b) { say $a ~ $b }; say "two" . "three" 17:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of . to concatenate strings; in Perl 6 please use ~
at <tmp>:1
------> 3.> ($a, $b) { say $a ~ $b }; say "two" .7⏏5 "three"
Juerd . is used for method things and special cased in the parser iirc
Note that operators don't have to be a single character 17:06
m: class Point { has $.x; has $.y; }; sub infix:<ook>($x, $y) { Point.new(:$x, :$y) }; say (42 ook 69).x
camelia 42
Voldenet yeah, it's pretty cool when they are a single character though 17:10
Voldenet m: sub prefix:<sub> { $^a }; sub test { say ":>"; }; 17:19
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
test used at line 1
Voldenet fun features
Voldenet okay, I can overload operators, but how do I overload operators precedence? 17:31
m: sub infix:<_*> { $^a * $^b }; sub infix:<_+> { $^a + $^b }; say 2 _+ 2 _* 2 17:32
camelia 8
AlexDaniel buggable: tag testneeded 17:33
buggable AlexDaniel, There are 26 tickets tagged with TESTNEEDED; See fail.rakudo.party/t/TESTNEEDED for details
tadzik Bailador has flyers and stickers on fosdem <3 17:34
geekosaur is tighter / is looser 17:38
look up the details, you'll need another operator to relate them to
Voldenet m: sub infix:<_*> { $^a * $^b }; sub infix:<_+> is looser(&infix:<_*>) { $^a + $^b }; say 1 _+ 2 _* 2 _+ 1 17:46
camelia 6
Voldenet that's pretty awesome
Geth roast: 3ca315596c | (Aleks-Daniel Jakimenko-Aleksejev)++ | S29-os/system.t
Test Proc.encoding

Resolves RT#129296
18:07
synopsebot RT#129296 [open]: rt.perl.org/Ticket/Display.html?id=129296 Splitting non-binary handles no longer works (run(:out, "ls").out.split: 0.chr)
AlexDaniel squashable6: status 18:08
squashable6 AlexDaniel, 🍕🍕 SQUASHathon is in progress! The end of the event in ≈17 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel, Log and stats: gist.github.com/52988a88ab1209c973...bf6f1a32da
TimToady titsuki: I assume you know that -> { abs $_ } does not, in fact, pass anything in to $_ there, since the signature is essentially () 18:13
ctilmes m: use NativeCall; class Foo is repr('CStruct') { has int32 $.x = 7 }; class Bar is repr('CStruct') { has Foo $.foo; submethod BUILD(:$foo) { $!foo := $foo } }; my $foo = Foo.new; my $bar = Bar.new(:$foo); 18:47
camelia Can only store CStruct attribute in CStruct slot in CStruct
in submethod BUILD at <tmp> line 1
in block <unit> at <tmp> line 1
ctilmes How do I initialize a CStruct pointer to another CStruct? 18:49
ctilmes I figured it out, I have to declare the type of the argument to BUILD, then it works 19:42
AlexDaniel squashable6: status 21:27
squashable6 AlexDaniel, 🍕🍕 SQUASHathon is in progress! The end of the event in ≈14 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel, Log and stats: gist.github.com/599bf994a0c1a9ce9c...37ae164a87
Geth rakudo: df1712d81c | (Nick Logan)++ (committed using GitHub Web editor) | src/core/CompUnit/RepositoryRegistry.pm
Fix home repository to point at correct location

Fixes the following incorrect blead-only behavior:
  ```
perl6 -e 'say CompUnit::RepositoryRegistry.repository-for-name("home")' inst#/Users/ugexe ... (11 more lines)
22:19
Geth roast: ceabda6337 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S32-exceptions/misc.t
Test line number of the corresponding starter

Adds tests for RT #130261. I don't find this test elegant, but it should be enough to close the ticket.
22:22
synopsebot RT#130261 [new]: rt.perl.org/Ticket/Display.html?id=130261 [LTA] Error message for unclosed curly quote points to the last line of the file
AlexDaniel would be great if others chimed in to squash the remaining testneeded tickets :) 22:24
buggable: tag testneeded 22:25
buggable AlexDaniel, There are 25 tickets tagged with TESTNEEDED; See fail.rakudo.party/t/TESTNEEDED for details
Geth roast: ff0472adfc | (Moritz Lenz)++ | S32-temporal/DateTime.t
RT#125555: DateTime comparison ops
22:31
squashable6 🍕🍕🍕 First contribution by moritz++! ♥
synopsebot RT#125555 [open]: rt.perl.org/Ticket/Display.html?id=125555 [NYI] Comparison ops for DateTimes in Rakudo
AlexDaniel buggable: pizza moritz 22:34
buggable moritz, enjoy this slice of Four Cheese pizza, my friend! Yummy 🍕
Geth roast: 7557eef426 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S02-lexical-conventions/unspace.t
Tests unspace + map + constants

Adds tests for RT #125985.
22:51
synopsebot RT#125985 [open]: rt.perl.org/Ticket/Display.html?id=125985 [BUG] Internal error when a constant, unspace, and a map are involved in Rakudo
AlexDaniel should reread his commit messages before pushing :) 22:53
Zoffix tadzik: pics or it never happend 23:51