»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:07 adhoc_ is now known as adhoc 00:08 aborazmeh left
grondilu m: say ((1 + *) o (2 * *))(1); 00:44
camelia rakudo-moar 058e71: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at /tmp/AaVatGHqN6:1␤␤»
grondilu m: say ((1 + *) o (1 + *))(1); 00:46
camelia rakudo-moar 058e71: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at /tmp/jVxHnY8R4K:1␤␤»
TimToady o needs to be protected from priming
grondilu oh
looks LTA
TimToady it's just a first whack at it
grondilu m: say ({1 + $_} o { 2 * $_ })(1); 00:47
camelia rakudo-moar 058e71: OUTPUT«3␤»
TimToady that works, fo rnow
grondilu ok
dalek kudo/nom: 68eed59 | TimToady++ | src/core/ (2 files):
GLRize the sequence operator

Now defaults to keeping () and [] intact as list elements.
00:48
ast: fd8d2cf | TimToady++ | S02-lexical-conventions/unspace.t:
relax overly specific throws-like
ast: 0e4f1e7 | TimToady++ | S03-sequence/ (3 files):
sequence operators are now slippery

The sequence operator used to require itemization to hide lists and arrays from flattening. Now the default is not to flatten arrays or lists, so you must slip in order to put multiple values into the list instead.
TimToady we can take the $ back out of our sequences now
00:53 helloworldlang joined
Zoffix I think I've recently read that Perl6 now supports fluent method calls, so this should work: gist.github.com/zoffixznet/25ae046...ent-p6-L19 I'm getting this error though: fpaste.scsys.co.uk/499549 what am I doing wrong? 00:53
Oh. I think I shouldn't copy/paste from Wiki and actually read the code :P 00:54
00:54 kid51_ joined
TimToady .tell jnthn thing is, @dest.push(@src.pop) is just wrong, wrong, wrong, because surprise; we really need to separate out the I-expect-to-push-a-list semantics to a different name, .pushem or some such 00:54
yoleaux TimToady: I'll pass your message to jnthn.
ShimmerFairy TimToady: could pushing a list be considered a multi-dim kind of thing? IIRC you can't push to a multidim array, but it still feels like you would want to lean towards that kind of construct if you're trying to make lists of lists. 00:57
00:57 kid51 left
ShimmerFairy So perhaps thinking of it as a vaguely multidim thing can help guide the design of it :) 00:57
00:57 kid51_ is now known as kid51
TimToady the problem is that it's not an "it", it's a "them" 00:57
grondilu m: say 1 xx * 00:58
camelia rakudo-moar 058e71: OUTPUT«(...)␤»
TimToady people want contradictory things out of "push" currently; there are even routines in core that want it both ways
grondilu m: say (1 xx *).perl
camelia rakudo-moar 058e71: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/HYLkfFjdFi:1␤␤Actually thrown at:␤ in block <unit> at /tmp/HYLkfFjdFi:1␤␤»
grondilu ^Not sure that's ok. I suspect it isn't.
m: say (my @ = 1 xx *).perl 00:59
camelia rakudo-moar 058e71: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/filbjd2PE6:1␤␤Actually thrown at:␤ in block <unit> at /tmp/filbjd2PE6:1␤␤»
TimToady well, it really is trying a bit too hard to not iterate the sequence
but .gist should perhaps be considered destructive and read down the lazy list a bit
m: say 1 xx 100000000 01:00
camelia rakudo-moar 058e71: OUTPUT«(1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...)␤»
TimToady but it just gives up current when .is-lazy is true 01:01
*ently
grondilu it's not just .perl though. Got this while trying to golf that: 01:02
m: sub CF(@a, @b) { [\o] map { @a[$_] + @b[$_] / * }, 0 .. * }; say CF((1, 2 xx *), (1 xx *))[10](Inf) 01:03
camelia rakudo-moar 058e71: OUTPUT«Cannot reverse a lazy list␤ in sub CF at /tmp/42bQAACNNp:1␤ in block <unit> at /tmp/42bQAACNNp:1␤␤Actually thrown at:␤ in any at gen/moar/m-Metamodel.nqp:2869␤ in sub CF at /tmp/42bQAACNNp:1␤ in block <unit> at /tmp/42bQAACNNp:1␤␤»
grondilu which comes from rosettacode.org/wiki/Continued_fraction 01:04
TimToady well 1, 2 xx * looks wrong 01:08
grondilu m: sub CF(@a, @b) { [\o] map { @a[$_] + @b[$_] / * }, 0 .. * }; say CF((1, |(2 xx *)), (1 xx *))[10](Inf) 01:09
camelia rakudo-moar 058e71: OUTPUT«Cannot reverse a lazy list␤ in sub CF at /tmp/qOUFTo1gZP:1␤ in block <unit> at /tmp/qOUFTo1gZP:1␤␤Actually thrown at:␤ in any at gen/moar/m-Metamodel.nqp:2869␤ in sub CF at /tmp/qOUFTo1gZP:1␤ in block <unit> at /tmp/qOUFTo1gZP:1␤␤»
TimToady but that's obviously not the problem here
o is now right associative, hence the reverse 01:10
is this a spot where it would make more sense for o to be left associative? 01:11
grondilu I don't think so. It *is* right associative, isn't it?
01:12 travis-ci joined
travis-ci Rakudo build passed. TimToady 'GLRize the sequence operator 01:12
travis-ci.org/rakudo/rakudo/builds/82849158 github.com/rakudo/rakudo/compare/0...eed5936cf5
01:12 travis-ci left
TimToady that's what I thought 01:12
but you can't reverse an infinite list
grondilu but it should not reverse the infinite version, only the finite one
I mean the reverse should only occur while accessing a [$n] element, shouldn't it? 01:13
m: my @f = [\o] { 2 * * } xx *; 01:14
camelia rakudo-moar 058e71: OUTPUT«5===SORRY!5=== Error while compiling /tmp/g0GkBwD20k␤Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *␤at /tmp/g0GkBwD20k:1␤------> 3my @f = [\o] …»
grondilu m: my @f = [\o] { 2 * $_ } xx *;
oops
camelia rakudo-moar 058e71: OUTPUT«Cannot reverse a lazy list␤ in block <unit> at /tmp/JHZpQvmr8e:1␤␤Actually thrown at:␤ in any at gen/moar/m-Metamodel.nqp:2869␤ in block <unit> at /tmp/JHZpQvmr8e:1␤␤»
grondilu oh, weird
I'd swear I successfully created an infinite [\o] earlier 01:15
TimToady using the new builtin? 01:16
01:16 laouji joined
TimToady it was briefly left associative, I think... 01:17
grondilu yes, but I just checked and it was inside a function.
can't you create an infinite triangular version of a right-associative operator? 01:18
01:18 aborazmeh joined, aborazmeh left, aborazmeh joined
TimToady m: my @f = [\[[&[o]]] { 2 * $_ } xx *; 01:18
camelia rakudo-moar 058e71: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eEMuLuGfqc␤Unable to parse expression in bracketed infix; couldn't find final ']' ␤at /tmp/eEMuLuGfqc:1␤------> 3my @f = [\[[&7⏏5[o]]] { 2 * $_ } xx *;␤»
TimToady m: my @f = [\[&[o]]] { 2 * $_ } xx *; 01:19
camelia rakudo-moar 058e71: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tYQCjSCRtb␤Unable to parse expression in bracketed infix; couldn't find final ']' ␤at /tmp/tYQCjSCRtb:1␤------> 3my @f = [\[&7⏏5[o]]] { 2 * $_ } xx *;␤»
grondilu I mean I see the problem, but I'm not sure it's that big a problem
TimToady but you can't do a right associative op on an infinite list, because you need the last two values for your first operation 01:20
it's a little more obvious with [**] 1..* perhaps
doesn't even matter whether it's a triangle 01:21
maybe we need a re-associate-left metaoperator... 01:22
grondilu but you're not supposed to access the first operation unless you reify at some point or something 01:23
01:23 sufrostico left
grondilu though I understand the weird ness, as the first terms depend on the length of the list, which is weird 01:24
(if I'm not mistaken)
TimToady it can't know the operands for previous entries until it evaluates the last one
grondilu wait 01:25
TimToady [**] 1,2,3 -> 1 ** 2 ** 3 so 1 doesn't know what it will have for its RHS till you evaluate 2 ** 3
grondilu I think you're right
something still bugs me about it though 01:26
BenGoldberg m: say [**] 2..4
camelia rakudo-moar 68eed5: OUTPUT«2417851639229258349412352␤»
TimToady [**] 2..* is slightly larger
BenGoldberg Only slightly? 01:27
grondilu funnily enought [**] 1..* is 1 01:28
TimToady it's only ℵ₀ or so
BenGoldberg m: 0 ** 0 01:29
camelia rakudo-moar 68eed5: OUTPUT«WARNINGS:␤Useless use of "**" in expression "0 ** 0" in sink context (line 1)␤»
BenGoldberg m: say 0 ** 0
camelia rakudo-moar 68eed5: OUTPUT«1␤»
ShimmerFairy TimToady: I don't think a metaop is quite what you want in this instance, at least not without changing a fair bit about how metaops work. 01:30
BenGoldberg m: gist.github.com/BenGoldberg1/bc39a...aeb733012a
camelia rakudo-moar 68eed5: OUTPUT«Attempt to return outside of any Routine␤ in block <unit> at /tmp/UnjZSOd4Ds:33␤␤»
ShimmerFairy TimToady: this [**] case is calling for an "iterative" application of ** (if I may call it that), rather than reduceop's purpose of interspersing the list with the given operator
(s:1st/metaop/reduceop/ , btw) 01:31
BenGoldberg m: .say for \[**] 1..*
camelia rakudo-moar 68eed5: OUTPUT«Cannot reverse a lazy list␤ in block <unit> at /tmp/qtzNVKanT8:1␤␤Actually thrown at:␤ in any at gen/moar/m-Metamodel.nqp:2869␤ in block <unit> at /tmp/qtzNVKanT8:1␤␤»
BenGoldberg m: .say for [\**] 1..*
camelia rakudo-moar 68eed5: OUTPUT«Cannot reverse a lazy list␤ in block <unit> at /tmp/qRhP39fVPf:1␤␤Actually thrown at:␤ in any at gen/moar/m-Metamodel.nqp:2869␤ in block <unit> at /tmp/qRhP39fVPf:1␤␤»
grondilu yes, that's wht bugged me. This should work. 01:32
TimToady only if it switches to left associative
grondilu [\**] 1..* is supposed to do [**] 1, then [**]1..2, then [**] 1..3 and so on
and never reverse 01:33
well, not *supposed to* but *could*
TimToady m: say [\**] 2..4 01:34
camelia rakudo-moar 68eed5: OUTPUT«(4 81 2417851639229258349412352)␤»
TimToady currently it does 4, 3**4, 2**3**4
ShimmerFairy m: my @a = 2..4; while +@a > 1 { @a.unshift(@a.shift ** @a.shift) }; say @a # this does (2 ** 3) ** 4
camelia rakudo-moar 68eed5: OUTPUT«[4096]␤»
grondilu ah 01:35
BenGoldberg m: my @a = 2..4; while +@a > 1 { @a.unshift(@a.shift ** @a.shift).say };
camelia rakudo-moar 68eed5: OUTPUT«[8 4]␤[4096]␤»
BenGoldberg m: my @a = 2..5; while +@a > 1 { @a.unshift(@a.shift ** @a.shift).say };
camelia rakudo-moar 68eed5: OUTPUT«[8 4 5]␤[4096 5]␤[1152921504606846976]␤»
TimToady m: sub infix:<***>($a,$b) is equiv(&[**]) is assoc('left') { $a ** $b }; say [\***] 2..4 01:37
camelia rakudo-moar 68eed5: OUTPUT«(2 8 4096)␤»
01:37 makapa joined
TimToady sure looks like what a metaop would do to me 01:37
grondilu I guess you're right
TimToady s/would/could/
Zoffix jnthn, are you able to update your jnthn.net/papers/2015-spw-perl6-course.pdf ? The last line of the code example should return (Str), not (Int). 01:38
Als, jnthn++ great slideshow
ShimmerFairy TimToady: would we want metaops for all the associativity, or on an as-needed basis?
*tivities 01:39
grondilu notice that the "graphical" meaning of the triangular operator strongly suggests left associativity, which is confusing.
TimToady well, this is the first use case I've seen for wanting to violate the natural order, so maybe we've got the wrong associativity on o 01:40
grondilu
.oO([**/])
TimToady m: say [\R**] 2..4
camelia rakudo-moar 68eed5: OUTPUT«(2 9 262144)␤»
grondilu this hurst my brain 01:41
TimToady m: say [\R**] reverse 2..4
camelia rakudo-moar 68eed5: OUTPUT«(4 81 2417851639229258349412352)␤»
ShimmerFairy
.oO(assoc metaops: AL, AR, AN, AC, AX, the second letters matching the table in S03. [AL**] 2..4 :P)
01:41 z8 left
TimToady [AN**] doesn't make a whole buncha sense 01:43
and AX doesn't make sense for operators that have no listy implementation
I only see a use case for L
ShimmerFairy In that case, it could be spelled L instead of AL; I put the A in front because a couple of those are already metaops without it 01:44
(though I suppose some might think there's a relationship between L and R, I dunno) 01:45
TimToady or [\O**] for opposite associtivity
BenGoldberg . o O ( [**] )
geekosaur ...which then gives you a Oo 01:46
TimToady yes, does it matter for anything except reductions?
ShimmerFairy TimToady: maybe triangle reduce is the only case where we want to work from left-to-right, regardless of associativity? That is, triangle reduce only worries about associativity when it gets the list to apply the op to
01:46 yoleaux joined, ChanServ sets mode: +v yoleaux 01:47 yoleaux left, yoleaux joined, ChanServ sets mode: +v yoleaux
ShimmerFairy The theoretical [L**] 2..4 , which is (2 ** 3) ** 4 , might be better handled by having the user just do it manually (see my while loop above) 01:47
TimToady m: say ([1], -> @a { [0, |@a Z+ |@a, 0] } ... *)[^10] 01:50
camelia rakudo-moar 68eed5: OUTPUT«([1] [1 1] [1 2 1] [1 3 3 1] [1 4 6 4 1] [1 5 10 10 5 1] [1 6 15 20 15 6 1] [1 7 21 35 35 21 7 1] [1 8 28 56 70 56 28 8 1] [1 9 36 84 126 126 84 36 9 1])␤»
TimToady yay, pascal is pretty again
01:51 jsimonet left
grondilu m: say ([1], { [0, |@_ Z+ |@_, 0] } ... *)[^10] 01:54
camelia rakudo-moar 68eed5: OUTPUT«([1] [1 1] [1 3 2] [1 3 5 3] [1 3 5 7 4] [1 3 5 7 9 5] [1 3 5 7 9 11 6] [1 3 5 7 9 11 13 7] [1 3 5 7 9 11 13 15 8] [1 3 5 7 9 11 13 15 17 9])␤»
grondilu (golfed it 4u) 01:55
01:55 adu joined
TimToady um, no 01:55
grondilu oh
not sure what's wrong about it
adu hi all 01:56
Zoffix \o\
grondilu oh I see
@_ really is *@a 01:57
m: say ([1], { [0, |$_ Z+ |$_, 0] } ... *)[^10] 01:59
camelia rakudo-moar 68eed5: OUTPUT«([1] [1 1] [1 2 1] [1 3 3 1] [1 4 6 4 1] [1 5 10 10 5 1] [1 6 15 20 15 6 1] [1 7 21 35 35 21 7 1] [1 8 28 56 70 56 28 8 1] [1 9 36 84 126 126 84 36 9 1])␤»
02:09 vendethiel joined 02:10 kid51 left 02:17 dalek left, dalek joined, ChanServ sets mode: +v dalek 02:21 tokuhiro_ joined
grondilu you know, I wonder if we could not have two versions of the triangular metaop. [\op] 1..3 would mean 1, 1op2, 1op2op3 and [op/] would mean 3, 2op3, 1op2op3 02:23
it would behave the same regardless of the associatvity of op 02:24
02:24 lolisa joined
grondilu so that [\o] &f xx * would make some sense 02:25
02:30 zoosha joined 02:33 vendethiel left 02:37 noganex_ joined, AlexDaniel left 02:40 noganex left 02:41 makapa left 02:45 jsimonet joined 02:47 laouji left, laouji joined 02:55 kaare_ joined 02:56 grondilu left 02:57 grondilu joined 03:21 khw joined 03:30 kanishka joined 03:41 kanishka left 03:44 laouji left 03:45 laouji joined 03:49 laouji left 03:59 TEttinger joined 04:13 _28_ria left 04:18 khw left, BenGoldberg left 04:32 telex left 04:34 telex joined 04:39 makapa joined 04:50 [Sno] joined 04:55 laouji joined 04:56 makapa left 04:57 espadrine left 04:59 aborazmeh left, [Sno] left 05:01 bjz joined 05:10 bjz left 05:22 bjz joined 05:23 skids left 05:39 Nandi joined 05:40 Nandi left 05:42 adu left 05:58 laouji left, TEttinger left 05:59 laouji joined 06:11 Khisanth left 06:12 abaugher left 06:13 abaugher joined 06:18 aborazmeh joined, aborazmeh left, aborazmeh joined 06:22 Khisanth joined 06:25 Ven joined
masak morning, #perl6 06:38
06:38 [Sno] joined
moritz \o masak 06:40
06:51 araujo_ left, xfix joined 06:53 lolisa left 06:55 FROGGS joined
[Tux] test 50000 35.926 35.807 07:04
test-t 50000 36.801 36.682
07:11 eugu joined
Ven o/, #perl6! 07:14
DrForr \o
TimToady I now have a version that now distinguishes .push from .pushem, but 'pushem' is a "You think that's cute today", so I've been trying to think up a better "plural push" word 07:16
push-all is taken
nine TimToady: what about append? You're appending an array to the array. 07:17
TimToady thought about that...
but append in FP is usually append non-destructively to a list
nine Python uses append for push and extend for push-list 07:18
@a.push-from(@b)? 07:20
TimToady actually, append isn't so bad, since we might also want prepend on the unshift end 07:21
ShimmerFairy postpend as a mirror to prepend, then :P 07:22
TimToady: to be fair, the (un)shift names never seemed that intuitive to me, but perhaps that's just lacking the historical knowledge.
jdv79 i forgot my passwd on hack. can someone reset it? 07:23
moritz jdv79: yes
jdv79: your new password is oa1kai3Chu 07:24
sorry
that was meant to go via privms
password changed again :-)
DrForr Should probably be removed from the channel log as well :)
moritz DrForr: no, I just changed it again 07:25
there's no harm in having a password in the logs that was valid for all of ten seconds
DrForr Oh, I know, just thinking of privacy and all that. Not really important. 07:26
masak "append" sounds good to me. "non-destructive" isn't what I think when I see that word, even though I know some FP.
jdv79 moritz: mqybe this?: wiki.debian.org/VirtualBox#Debian_...2Jessie.22 07:31
07:33 maddingu1 is now known as maddingue 07:35 FROGGS left 07:36 larion left
moritz jdv79: trying that now 07:41
07:43 CIAvash joined 07:50 CIAvash left 07:51 azawawi joined
azawawi hi #perl6 07:51
07:54 FROGGS joined 07:59 brrt joined
brrt \o #perl6 07:59
DrForr o/
azawawi hi
FROGGS o/ 08:00
yoleaux 29 Sep 2015 20:51Z <jnthn> FROGGS: I'm really tired and about to sleep, so I'll look at those two tomorrow
brrt ohai DrForr :-) and azawawi
FROGGS .tell jnthn no hurry :o)
yoleaux FROGGS: I'll pass your message to jnthn.
brrt i figure this is as good a place as any to ask; is there a way to convert from random unicode characters to their equivalent asscii, in java
azawawi any idea why FileChangeEvent::FileRenamed is always fired even though files are deleted in a $folder monitored by IO::Notification.watch-path($folder) ?
brrt e.g. ß to ss 08:01
08:01 Ven left
brrt that probably depends on the underlying implementation 08:02
azawawi starts reading www.w3.org/TR/webdriver/
ShimmerFairy brrt: at first guess you'd probably want NFKC or NKFD normalization; not quite ASCII, but it does do "compatibility" conversions
brrt azawawi: file system monitoring is notably sensitive to superfluouus changes
DrForr Very few Unicode glyphs will convert to ASCII. Normalization will probably get you close though. 08:03
nine azawawi: are those files really deleted or just moved to some .trash?
brrt i know fribidi has an option to match visually 'close' characters
azawawi nine: let me double check :)
nine: used `rm`. same behavior 08:04
DrForr You could also be inspired by Lingua::Unidecode in perl5 that attempts to do just that.
brrt azawwawi: i've noticed this problem before, also on other implementations, and i don't think there is a single good solution 08:05
08:05 pierrot left
azawawi brrt: i was surprised to find it in core to be honest :) 08:07
brrt hmm yeah, i have no strong opinion about that 08:08
it's not a traditional core service; but 'traditional' IO is, and i see no reason to distinguish them closesly
azawawi brrt: this is going to be a maintenance headache across platforms
brrt well, moarvm is bound by libuv in that regards
so it is going to be a maintenance headache for joyent before it is a maintenance headache for us ^^ 08:09
(or sun, in case you use jvm)
eh, s/sun/oracle/
08:10 pierrot joined 08:11 espadrine joined, abraxxa joined
Timbus_ int flags - one of UV_RENAME or UV_CHANGE, or a bitwise OR of both. 08:12
08:13 darutoko joined
Timbus_ uh.. i guess libuv only has two filechanged flags? 08:13
azawawi Timbus_: my bad, it is already in the spec... doc.perl6.org/type/IO::Notification 08:14
Timbus_ but lame, considering inotify has a whole buncha event types
azawawi Timbus_: true
brrt that's the cost of being cross-platform 08:16
or, cross platform cheaply
azawawi brrt: metacpan.org/source/MIYAGAWA/Files.../Simple.pm 08:17
from metacpan.org/pod/Win32::ChangeNotify, "...Unfortunately, the Win32 API which implements this feature does not provide any indication of what triggered the notification (as far as I know)... " 08:18
brrt perl5 is not a good example of trying to achieve cross-platform compatibility on the cheap :-) 08:22
08:26 Ven joined 08:28 aborazmeh left 08:30 dakkar joined 08:34 Ven left 08:39 Ven joined 08:42 timbunce_ joined 08:44 ifim joined
moritz jdv79: virtualbox installed, btw 08:45
08:48 larion joined
Ulti so looks like in the latest Rakudo MAIN not getting params errors with "Invocant requires an instance of type Int, but a type object was passed. Did you forget a .new?" rather than giving usage 08:52
jdv79 moritz: cool. i'll check it out soon. thanks! 08:53
Ulti m: sub MAIN(Int :$thing) { say $thing; } 08:56
camelia rakudo-moar 68eed5: OUTPUT«(Int)␤»
Ulti m: sub MAIN(Int:D :$thing) { say $thing; }
camelia rakudo-moar 68eed5: OUTPUT«Usage:␤ /tmp/eLRJdQhie3 [--thing=<Int>] ␤»
Ulti :/
dalek kudo/nom: 4f70652 | TimToady++ | / (20 files):
distinguish push/unshift from append/prepend

For one-arg semantics, we now use prepend and append. The push and unshift methods/subs are now designed to primarily support pushing or unshifting a single item (without you having to explicitly itemize, which would defeat slippage for things like the sequence operator). So now you can say @dest.push(@src.pop) without worrying about accidental flattening of a single element that happens to be iterable. Plus it will save wear and tear on your $ key when you want to push a single array or list.
ast: 9970b63 | TimToady++ | / (10 files):
catch up with push/unshift -> append/prepend
TimToady heads for bed 08:59
08:59 andreoss joined 09:09 RabidGravy joined
dalek osystem: f9741f0 | moznion++ | META.list:
Add IO::Blob
09:24
osystem: 063421f | RabidGravy++ | META.list:
Merge pull request #61 from moznion/io-blob

Add IO::Blob
09:25 laouji left 09:43 espadrine left
Ven wonders why gcc -O2 -S sometimes generates -4(%rbp), sometimes -1(%rbp) in the program, for what seemed to be equivalent 09:47
brrt well, they most certainly aren't 09:50
09:58 laouji joined
abraxxa i tried to compile 2015.09 on my raspberry pi model B yesterday, failed because it ran out of memory 10:01
anything I can do to lower the memory requirements at the parsing stage?
10:03 araujo joined 10:04 araujo left, espadrine joined 10:05 araujo joined 10:06 helloworldlang left
lizmat abraxxa: short of removing features from the core setting, I wouldn't know of any 10:09
dalek kudo/nom: 649dae1 | lizmat++ | src/core/Process.pm:
Include change in setting as well
abraxxa lizmat: i guess I have to get a model B+ for compiling then... 10:10
lizmat if that has more RAM, yes :-)
10:14 Ven left
abraxxa 256MB vs 128MB 10:20
lizmat that feels still like way too low, hope you have a lot of swap 10:21
_itz abraxxa: try adding more swap 10:25
abraxxa _itz: it already killed the performance to have 128MB swap 10:26
_itz you probably need 1-2GB of swap I'd guess
DrForr No way to crosscompile from another machine? 10:27
_itz I keep meaning to try a qemu arm image 10:29
I can't build panda on 'brew as of now 10:30
Type check failed in binding $p; expected Panda::Project but got Seq 10:31
10:46 mtj_ left 10:49 Peter_R joined 10:50 laouji left 10:53 zakharyas joined, mtj_ joined 10:54 mtj_ left
_itz 4f706 10:55
10:58 mtj_ joined 11:07 mtj_ left
dalek kudo/curli: 7598a62 | lizmat++ | src/core/ (2 files):
Introduce VM.precomp-dir

This will be the compilation-id dependent directory where rakudo will store its precompiled files by default.
11:07
kudo/curli: ff8e04d | lizmat++ | CURLI:
The text version of the CURLI discussion gist

Also lives at gist.github.com/lizmat/f3807956c354c14902a3
kudo/curli: bedd43a | lizmat++ | src/core/CompUnit.pm:
Introduce CompUnit.precomp-path

Since the precomped files will no longer live side-by-side with their associated source files, we need to keep the path separately.
lizmat yes, this breaks some of the build at the moment, so I put it in a branch
11:08 jkva joined 11:11 pecastro joined
[Tux] panda is broken again 11:13
Rakudo has been built and installed.
Updating panda as well
X11 forwarding request failed on channel 0
Failed to get the directory contents of '/pro/3gl/CPAN/rakudobrew/moar-nom/install/share/perl6/site/panda': chdir failed: no such file or directory
in any at /pro/3gl/CPAN/rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:1
_itz [Tux]: yes I can't build with the 4f706 change try rakudobrew build moar 68eed5 11:14
11:17 laouji joined
[Tux] ==> panda depends on File::Find, Shell::Command, JSON::Fast 11:19
==> Shell::Command depends on File::Find
I'll just wait for the next update :)
11:21 Ven joined
brrt well, that doesn't look like my bug [Tux] :-) 11:25
(yes, i'm lousy for not having fixed it yet)
11:27 azawawi left 11:28 RabidGravy left
hahainternet is there a timezone implementation for p6 yet? i guess i should get googling 11:33
11:33 rindolf joined
hahainternet aha well that was easy 11:33
i really like the docs site
masak :)
moritz++ # most likely; also, others++ 11:34
hahainternet i think the aesthetics probably need a bit of improvement, but honestly i'm aesthetically challenged
but the fact i can find what i'm looking for easily and they're well structured is a godsend after trying to deal with python docs
masak yes, we can tweak the styles some more 11:35
moritz aesthetics patches welcome :-)
brrt often finds python docs to be decent... enough, i guess?
moritz just hates docs that let you chase in superclasses' docs on your own 11:36
hahainternet brrt: i find there's a lot of waffle and beginner tutorials, rather than straightforward implementation descriptions
brrt well, that's a point
hahainternet also moritz i've mentioned that to a designer i work with
brrt that is pythons lament, i guess.
python is designed to be easy to learn and use. 11:37
hence beginners learn python
hence beginners use python, a lot
hence a lot of python is beginners' code
hahainternet yeah i don't disagree with any of that
i want to say it was 'yield' that i was having the most trouble finding a succinct authoritative source on, but i might look stupid now as you pull it out of google instantly ;) 11:38
brrt well, i recall struggling with the same, actually
so as far as i'm concerned, you're not looking stupid :-) 11:39
hahainternet the conceptual model for it seems really confused, but i just went to golang instead
i would have used perl6 to be perfectly honest, but performance is a big motivator there
brrt the thing about yield is that it secretly converts a function-or-method-call into a generator constructor
and i dislike the 'secretly' part about that 11:40
moritz afaict "yield" is a bit like "take" in Perl 6, except that it's implicitly scoped to the current routine, not to a "gather" block
hahainternet right, i was using it to batch up a very large gzipped file, as none of the typical patterns for that in python worked with non iterable instances
brrt moritz: gather and take are exception-based, aren't they?
hahainternet oh, that reminds me
moritz brrt: yes, because take is dynamically scoped
hahainternet so it was also hard to find the semantics for allocating an array buffer within this loop, passing off its reference and allocating a new one 11:41
11:41 jkva left
hahainternet in the end i just experimented until it made sense, secret pass-by-ref is quite a niggle too 11:41
s/non iterable/non indexable/ ^^ 11:42
brrt hahainternet: you could use the array module, perhaps? 11:43
not sure what you mean actually
hahainternet brrt: i just gave up and used golang, so job done
brrt that's actually quite clever moritz.....
hahainternet brrt: python has some weirdnesses where for example, if you pass a plain 'counter = 0' between functions, each gets a new instance, but if you use an array, the reference is passed 11:44
anyway this is #perl6, not #python, so i'll shut up and write my timezone sub, thanks again @ ++all
brrt that seems like 'ordinary' call-by-ref with value-object syntax
eh semantics, not syntax
m: sub foo(Int $x) { $x++; say $x; }; my Int $y = 4; foo($y); say $y; 11:45
camelia rakudo-moar 649dae: OUTPUT«Parameter '$a' expected a writable container, but got Int value␤ in sub foo at /tmp/GQvlA0xDcO:1␤ in block <unit> at /tmp/GQvlA0xDcO:1␤␤»
brrt hmm, that's right
perl6 is more complex still :-) 11:46
hahainternet indeed, but can you do 'is rw' to make that mutable?
but it's just the lack of any clear distinction i know of in python
ilmari m: sub foo(Int $x is rw) { $x++; say $x; }; my Int $y = 4; foo($y); say $y;
camelia rakudo-moar 649dae: OUTPUT«5␤5␤»
brrt yes, but that is actually not what i want
ilmari m: sub foo(Int $x is copy) { $x++; say $x; }; my Int $y = 4; foo($y); say $y;
camelia rakudo-moar 649dae: OUTPUT«5␤4␤»
ilmari brrt: did you want "is copy"?
hahainternet ^^ is actually what i'd expect in a quality language
which is why every time i read perl6 i go a little gooey inside
brrt yes, that is what i want
masak moritz: one difference: since some version, Python's `yield` is *two-way* -- that is, it has a return value which is an (optional) value sent by the caller as it steps forward with iter.next(val) 11:47
brrt that's a pretty recent addition iirc
masak moritz: which (I think) is needed for it to be actual co-routines
moritz masak: aye. Though when I want a value from my caller, I use map 11:48
11:48 araujo left 11:49 araujo joined 11:50 co-gnome joined
masak moritz: if I understand you correctly, that still requires that the map closure and the caller share some resource to communicate through 11:50
(even if that's just a shared scope)
in Python, they are talking through the iterator object itself 11:51
not saying one model is better than the other, just that they are differently factored
11:51 araujo left
moritz masak: I agree with your analysis 11:51
def some_func(a): C1; b = yield x; C2 basically translates to sub some_sub($a, \input_iter) { C1; return input_iter { my $b = $_; C2; $x } } 11:53
11:55 AlexDaniel joined
masak yes; you just did a CPS transform there 11:55
they keep rocking my world
in the general case, you need a $state variable, a bunch of numbered states, a loop and a given statement 11:56
11:56 co-gnome left
moritz you mix them all into a big bowl, knead them for a while, and then let them rest in the fridge. 11:58
masak aye
there's a nice example culminating on page 238 of www.lirmm.fr/~ducour/Doc-objets/ECO...op/233.pdf showing this 11:59
11:59 araujo joined, araujo left, araujo joined 12:00 araujo left 12:01 araujo joined
brrt actually, that's not really true moritz; because just calling the iterator doesn't yet cause it to be executed 12:02
12:03 araujo left 12:04 araujo joined, co-gnome joined
moritz brrt: which part? 12:06
12:10 FROGGS left
brrt about the transform from the python function with yield to a perl6 sub 12:11
12:11 co-gnome left
brrt it's more like 12:11
hmmm
not sure how to translate it, in fact
moritz you mean that the python function can return its first value without an input iterator being available 12:14
maybe? 12:15
in that case, easy enough to work around by prepending a value to the return iterator
brrt class some_func_iter { my $!a; my $!after-yield; sub BUILD($a) { $!a = $a; $!after-yield = false; }; submethod next($?input-arg) { if ($!after-yield) { C2; } else { C1; $!after-yield = true; return $yield-value; }}} 12:16
hmm, /me wonders about that
it's really an function-to-object transform, is what i mean
it also supports a loop and stuff 12:17
the whole function scope becomes the object scope
for example: 12:18
def foo(x): print(x); yield x*2; print(x*4); foo(); # will not print 12:19
whereas next(foo()) will
dalek kudo/curli: d5583c6 | lizmat++ | src/core/CompUnit.pm:
Unbreak build

To my surprise, creating precomp files already used CompUnit objects. For now, it will first see if a precomp file exists next to the original source file. If so, then it will assume that for now.
12:21 kid51 joined
brrt randomly interesting paper: people.csail.mit.edu/brooks/papers/...-cheap.pdf is fascinating, particularly if you consider that the method they describe for autonomic control is pretty much precisely the strategy of biological systems 12:24
12:27 co-gnome joined 12:31 mtj_ joined
masak brrt: wow, 1989. I wonder what's changed since then. 12:33
12:34 co-gnome left 12:37 makapa joined
dalek kudo/curli: 20954d7 | lizmat++ | src/core/CompUnit.pm:
Don't need the extension twice
12:38
brrt microprocessors are faster and use less power ^^
12:42 Ven left
brrt the description of how they make ghenghis (a 6 legged robot) walk is utterly brilliant 12:50
12:50 pecastro left, pecastro joined 12:52 tokuhiro_ left 12:54 makapa left 12:55 Ven joined 13:00 eugu left
cognominal_ I have not closely followed things lately. In a signature, what is the diff between +values and *@values ? 13:04
moritz cognominal_: *@values flattens
timotimo oof, such unrestful sleep ...
moritz cognominal_: whereas +values implements (non-flattening) according to the "single argument" rule
see doc.perl6.org/type/List#Items%2C_Fl...and_Sigils 13:05
cognominal_ thx, moritz++ 13:06
lizmat moritz FROGGS is there a reason why we have all the rakudo install logic in a Makefile 13:11
moritz FROGGS instead of in a Perl 6 script that runs after the core settings have been compiled ?
moritz lizmat: well, it's just traditional and convenient to have a 'make install' step 13:12
lizmat ah, yes, don't disagree with that
but is there a reason why that should not just run a Perl 6 script ?
moritz no
_itz building the rakudo star tarball does have a dependency on gnu make I noticed 13:13
13:15 FROGGS joined
FROGGS o/ 13:15
brrt lizmat: the Makefile has knowledge of the build state, a script does not
in fact, you can - if you'd so desire - have a Makefile that installs only the changed files 13:16
FROGGS that's what my v5 did btw
brrt has much love for make
FROGGS especially at the time where it was only usable *after* installation
lizmat argh... we want ./perl6 to work *before* installing anything, right ? 13:18
FROGGS aye 13:19
dalek c: cbd9403 | (Steve Mynott)++ | bin/p6doc:
fix p6doc -f postGLR github issue #138
c: ffd9d49 | (Steve Mynott)++ | lib/Language/nativecall.pod:
Merge branch 'master' of github.com:perl6/doc
timotimo masak, brrt, moritz: don't forget about take-rw, which also allows you to communicate between the gathering routine and the consumer :) 13:21
Woodi hallo #perl6 :) 13:22
anyone can tell me how to precompile a script ? on Moar
timotimo precompiling scripts doesn't work terribly well 13:23
moritz --target=mbc --output=script.moarvm
Woodi thanx
moritz except that I don't think you can execute the result
but you didn't ask for that, right? :-)
FROGGS moritz: you kinda can
Woodi err... hmm
FROGGS perl6 -I. -Mscript -e""
13:24 ifim left
moritz except that you're now subject to module loading semantics 13:25
FROGGS aye
well, -I. gives you a CURLF, which should be okay for this task 13:26
moritz but still it must be called script.pm{6,}
masak timotimo: that is true, about `take-rw`. in that case, the caller->callee communication kind of happens *after* the `take-rw` (and the callee doesn't await it) 13:27
timotimo mhm 13:28
Woodi --output part not work for me or is putting not in . 13:29
moritz define "not work", please
are blue flames coming out of your computer?
Woodi just output=script not create file 'script' in . 13:31
moritz do you get an error message?
did you add -- before "output"?
did you put it where all the options should go? (that is, before the first non-option argument)? 13:32
Woodi moritz: no error, all looks correct on my side :) 13:33
ok, it's need .pm :) 13:34
timotimo huh, is that so? 13:36
FROGGS the output must be *.pm(6).moarvm 13:38
lizmat timotimo: yes, because the only way to currently load a precomp, is as a module with -M
or -use- :-)
Woodi no, I put options in wrong place too :)
timotimo ah, fair enough
jdv79 hack seems sluggish 13:41
[Coke]: what are you java'ing? 13:42
Woodi I was just thinking: hey, Perl5 do not have precompilation (standard) but Perl6 have ! do you run C programs *without* compilation ??
jdv79 my vm can't wake up
Woodi but anyway I kip getting Malformed UTF-8 13:43
timotimo is some process eating up cpu endlessly again?
13:43 synbot6 joined
Woodi and possibly 'perl6 -I ....' is a bug 13:44
AlexDaniel m: 25 . WHAT
camelia rakudo-moar 649dae: OUTPUT«===SORRY!===␤Method call must either supply a name or have a child node that evaluates to the name␤»
AlexDaniel the output is not colored, there is no line number… 13:45
13:45 mr_ron joined
AlexDaniel
.oO( and again I'm stupid enough not to understand this error )
13:45
lizmat AlexDaniel: I think you stumbled on a side-effect of the recent infix:<.> addition 13:46
that was not anticipated by TimToady, please rakudobug 13:47
AlexDaniel lizmat: well, that's what I was testing, so…
timotimo moritz: kindly help me with accessing hack? what's my user name again? the stored password i have doesn't work for either timo or timotimo :|
AlexDaniel lizmat: sure :)
moritz timotimo: there's a "timo" user
timotimo: shall I reset your password? 13:48
timotimo that'd help, thanks
moritz btw I highly recommend ssh-key based authentication :-) 13:49
jdv79 [Coke]: around?
timotimo i thought i had already set that up, but it didn't trigger
jdv79 that takes moer effort
timotimo i'm confused about the status of this, tbh
now i get in via ssh id 13:50
moritz fwiw ssh-copy-id is a very handy tool :-)
timotimo that's what i used :) 13:51
mr_ron Could somebody please help with merging perl6-community-modules/uri PR 14? If I just sit and wait nobody seems to get to it.
lizmat URL ? 13:52
mr_ron URI
yes thanks.
moritz mr_ron: what's your github ID?
lizmat I meant, URL of the PR
mr_ron moritz: ronaldxs
github.com/perl6-community-modules/uri/pull/14 13:53
13:53 tokuhiro_ joined
moritz mr_ron: I've given you access to the perl6-community-modules org 13:53
lizmat mr_ron: it seems to have conflicts ?
13:53 FROGGS left
mr_ron I am not familiar with resolving conflicts on github. I suspect it is a small change made by one other person that I will be happy to integrate. 13:55
thank you moritz
13:57 tokuhiro_ left
lizmat .tell jnthn should a MoarVM upgrade invalidate precomps? Should a NQP upgrade ? 13:59
yoleaux lizmat: I'll pass your message to jnthn.
moritz mr_ron: you can't resolve conflicts on github; you must resolve them on the command line
mr_ron: and then push the resolution to the branch from which you made the pull request
(or directly to master, now that you have direct push access) 14:00
mr_ron moritz: thank you for your help. I am trying to google how to find the conflict but if you can tell me easily I will be happy to read. 14:01
timotimo lizmat: moarvm upgrade should only ever be invalidating if the serialization format used has become unsupported, which happens *very* rarely 14:02
moritz mr_ron: in you git repo, do a git checkout master; git pull; git checkout yourbranch; git merge master
mr_ron: that should show you the conflict, and include instructions on how to resolve it
timotimo lizmat: nqp upgrade on the other hand will force a rakudo upgrade as well, which means the core setting gets regenerated and no module can ever be loaded with a "new" version of rakudo again
mr_ron thank you very much ... working on it now ...
lizmat timotimo: so if we want any SHA indicating precomp compatibility, it would require the serialization format version to be part of it 14:04
timotimo the thing is that moarvm supports multiple versions of the serialization format at the same time 14:05
lizmat is feeling she's getting drawn into a ever deeper rabbit hole :-(
*an
14:06 pmurias joined
pmurias lizmat: a NQP upgrade should invalidate precomp 14:06
lizmat: I would invalidate precomp on MoarVM upgrade too 14:09
14:09 Ven left 14:10 jasanj` joined
pmurias lizmat: it seems like it's possible to for example change an op number from MoarVM 14:10
jasanj` m: <1 2 3>.WHAT 14:11
camelia ( no output )
lizmat I just realised that the directory layout in gist.github.com/lizmat/f3807956c354c14902a3 won't work :-(
jasanj` m: say <1 2 3>.WHAT
camelia rakudo-moar 649dae: OUTPUT«(List)␤»
lizmat so I need to look at alternatives
pmurias lizmat: re CURLF not supporting precompilation don't we want to use precompilation while developing too? 14:14
lizmat potentially, yes
but it's going to be tricky to get all dependencies right 14:15
pmurias IMHO it's really important when doing something like make test 14:17
lizmat suppose we have Foo::Bar precompiled 14:18
it uses Zippo, but you changed it
moritz then loading Foo::Bar must load all dependencies
lizmat by removing an exported sub
moritz one of them has a modification timestamp newer than the precompiled file 14:19
lizmat and also precomp then
moritz so you have to re-precomp it, and all its reverse dependencies
lizmat but can you tell from the pre-comped file what its dependencies are ?
timotimo pmurias: we don't change op numbers
moritz lizmat: well, that must be added if it's not there already 14:20
timotimo pmurias: we've got a few numbers already in moar that just "die 'deprecated op hit'" or something like that
lizmat I think you very quickly get into a situation where you would need to precomp everything you're working on
timotimo and when you add new ops or change old ones, you have to get a new QASTCompiler anyway
lizmat goes cycling to get some fresh ideas 14:21
moritz lizmat: I don't think there's a way around that
lizmat moritz: so what is the use of precomp in a CURLF then ?
pmurias timotimo: ok, so it seems like it's not necessary unless someone is trying to be evil on purpose
lizmat: re precomp everything you'r working on, I think that's what we should be aiming for
timotimo at least us moar devs wouldn't be evil like that; or letting evil commits through 14:22
and in any case, there's the MOAR_REVISION in between
moritz lizmat: the use is that if you you change some files once, and run 20 test files, you still need only one recompile cascade when running the first test file, and the other 19 don't need one
pmurias moritz: you don't need to recompile the reverse dependencies 14:23
moritz: you can just leave them invalidated and recompile as needed
is there much cost for precompiling vs just compiling and not saving the bytecode? 14:24
moritz pmurias: yes; I meant the reverse dependencies that made us look at the changed file in the first place
timotimo i wouldn't say there's really a difference between "we have to recompile all the revdeps" and "invalidating one will cause a cascade of invalidation that'll recompile everything" 14:25
moritz timotimo: the difference is that if you have A1 and A2 depend on B, B changes, and you only use A1, you don't need to recompile A2 14:27
14:28 RabidGravy joined 14:29 jasanj` left
timotimo ah 14:31
good point
14:32 xinming left 14:33 laouji left
jdv79 moritz: do you know if hack as the "Intel Virtualization" set on in the bios? 14:33
*has 14:34
moritz jdv79: uhm, hack itself is a virtual machine
jdv79 oh i thought it was hw
moritz no, kvm
jdv79 that complicates thingss
ugh
14:35 brrt left
[Coke] jdv79: Daily, I build nqp-j and rakudo-j, and run the full test suite on both. 14:35
(nqp-j actually gets built 2x.)
timotimo jdv79: but we own the machine that hosts hack
jdv79: so if you need a vm for something, you can "hoist it up", so to speak
[Coke] I was going to ask why were running a virtual machine on hack. :) 14:36
moritz though running docker on hack shouldn't be a problem 14:37
(and iirc vagrant also supports containers by now)
[Coke] looks like jdv79 is running virtual box 2x.
jdv79 i only have the vagrant/virtualbox setup
[Coke] er, on 2cpus. 14:38
jdv79 if you guys know how to get that running that'd be nice 14:39
i know very little about such things
i just want a quick and easy way to protoype the metacpan stuff 14:40
14:47 Skarsnik joined
moritz jdv79: sorry, I can't invest too much energy/time; loads of other unfinished construction sites :/ 14:48
Skarsnik Hi, I have issue installing panda. It fail on a module check it seems : pastebin.com/zYVt7HdD 14:52
14:54 tokuhiro_ joined 14:59 tokuhiro_ left
tony-o did you try nuking it? 14:59
colomon do we have a rakudo on Win32 MSI?
colomon needs to get GLR on his ancient Windows VM 15:00
TimToady probably borked panda last night 15:02
there are several instances of push that need to be append now 15:03
colomon …. append?
TimToady push is now primarily for pushing a single thing, and append is for appending lists 15:04
moritz we're going full python without our Array method names :-)
*with
jnthn .tell lizmat MoarVM's backcompat should be strong enough that you don't need to invalidate on a MoarVM update. And from a development/debugging perspective, I'd really like to not cause a Moar update to invalidate also. 15:07
yoleaux 29 Sep 2015 22:45Z <ShimmerFairy> jnthn: I agree with you on the exceptions, I wonder if the introduction of +args would let us roll back some of the exceptions. Needing for @$foo { ... } (or zen slice) for Scalar containers is particularly unfortunate to me :(
00:54Z <TimToady> jnthn: thing is, @dest.push(@src.pop) is just wrong, wrong, wrong, because surprise; we really need to separate out the I-expect-to-push-a-list semantics to a different name, .pushem or some such
08:00Z <FROGGS> jnthn: no hurry :o)
13:59Z <lizmat> jnthn: should a MoarVM upgrade invalidate precomps? Should a NQP upgrade ?
jnthn: I'll pass your message to lizmat.
jnthn .tell lizmat NQP upgrade should, but that you already get for free with the compilation unit ID from in Perl6::Compiler
yoleaux jnthn: I'll pass your message to lizmat.
jnthn TimToady: I see you ended up with separate methods, one of which follows the one-arg rule; I guess push now only accepts a single value? 15:08
jnthn is fine with that, anyways...
TimToady not exactly
it's ** now, but mainly because we need to be able to slip on it
jnthn ah
TimToady seq op depends on it 15:09
jnthn isn't clever enough to understand the seq op implementation :)
TimToady but yeah, the BDLF wasn't very B last night... 15:10
jnthn I'm OK-er with us getting append/prepend that follow the single arg rule than just a .push that doesn't. 15:11
mr_ron moritz and lizmat I fixed the conflicts for the pull request github.com/perl6-community-modules/uri/pull/14
jnthn wonders if unshift also got a **@a version... 15:12
ah, yes 15:15
though it'll want a single arg multi candidate for perf reasons
As will push
mr_ron moritz: sorry I hadn't accepted your invitation yet. Now I did and I just did the merge ... thanks again
15:18 dha joined
mr_ron Sorry - to finish the PR on URI and keep LWP::Simple and rakudo star from breaking I need help with one more small pull request: github.com/cosimo/perl6-lwp-simple/pull/59 15:21
It's not a big pull request - can anyone help? 15:22
In the worst case when the user authentication test for LWP::Simple fails someone may notice my PR and merge it ... 15:26
TimToady is generating a pull request to fix panda 15:29
15:30 Ven joined
TimToady pull request generated, now someone with panda access needs to apply it 15:37
15:40 zakharyas left 15:45 khw joined, larion left 15:46 skids joined
jdv79 moritz: can you install and start elastic search? 15:46
TimToady and one patch to rakudobrew, though it might have other deps that need fixing 15:51
15:52 Ven left 15:55 Ven joined 16:00 lichtkind joined
lichtkind good morning 16:00
is here an aadmin of the gihub group? 16:01
16:01 liztormato joined
liztormato TimToady: will merge the panda PR when I'm home again in about 2 hours. Unless someone beats me to it 16:03
jdv79 moritz: hold off - it seems latest is not good:(
TimToady on those pull requests, I did s/push/append/ but if you wish to be backward compatible to older perl6es you can s/push: stuff/push: |stuff/ instead
lichtkind moritz: can you create a new github prject? 16:05
16:07 dha left
liztormato On a similar note. I wonder whether it would be a good idea to separate map into a map and a filter function. Map guaranteeing always 1 return value. An filter 16:08
And filter could return 0 or more values
moritz lichtkind: yes
timotimo huh, my intuition would be that filter would only ever return 1 or 0 results 16:09
just from the name alone, i mean
lichtkind moritz: i want to do a parallel tutorial to my already existing 9 part perl 5 tut
something like notable tutorial or something like this 16:10
liztormato Well. One function guranteeing 1to1 mapping. The other 1to0+. Mapping
lichtkind i man i can host it on my account but maybe better bundeld here
since i want to complete it till dezember
TimToady liztormato: one could intuit itemish return from --> Type
16:10 jasanj` joined
liztormato Good point. ;-) 16:11
16:11 telex left, Ven left
timotimo oh, and depending on the return type fall back to a simpler implementation that may run faster? 16:11
liztormato Yup 16:12
16:12 telex joined
timotimo the first time type hints (apart from native types of course) actually give a performance improvement :P 16:12
TimToady er, nevermind on the rakudobrew PR, since it's P5 code... 16:15
jnthn I suspect we can get the Slip check pretty fast once Moar's inlining and/or tracing is better
As in, probably get it removed in a lot of cases. 16:16
timotimo: Putting a Str type hint on something you interpolate into a regex also has quite drastic impact :)
liztormato Slip check?
timotimo oh! of course
jnthn liztormato: The only case a map isn't n-to-1 is when it returns a Slip 16:17
16:17 cognominal_ left, schmoost1r left
liztormato Ok. But a block could be returning a Slip in on iteration. Amd 16:18
And something else in another
16:18 schmooster joined, schmooster left, schmooster joined
jnthn liztormato: Not if it has a return type decl saying otherwise ;) 16:18
liztormato: Or if we can dynamically figure out that can't happen 16:19
(At spesh time)
TimToady that's part of why I wanted to make sure -> --> worked right
jnthn :)
16:20 rivarun joined
TimToady m: say map -> $x --> True { say $x }, 1..5 16:20
camelia rakudo-moar 649dae: OUTPUT«1␤2␤3␤4␤5␤(True True True True True)␤»
TimToady when last I checked, -> --> didn't work, but either it fixed itself in the last month or two, or my definite return changes fixed it somehow 16:22
liztormato 1m: say map -> $x --> True { say $x; 42 }, 1..5
tony-o
TimToady doesn't really matter, but it works now anyway
16:23 lichtkind left
TimToady hopes push -> append is the last major breaking change 16:24
jnthn also
jnthn was a little surprised to see the o operator sneak in too 16:25
TimToady that's just more for FP cred, and wasn't breaking anything
jnthn :)
16:26 kid51 left
liztormato 1Fluent or Functional cred? 16:26
TimToady liztormato: your comments aren't coming through
Skarsnik hum, it there a way to tell rakudobrew to put everything it install on another dir? 16:27
liztormato ... 16:28
Skarsnik I mean, without having to cp -r manually after
16:31 Ven joined
TimToady oh wow, it's raining, maybe we're finally getting a bit of the promised El Niño deluge 16:31
I'd better go wash the Yellowstone dirt off my car, which is, like 3 months old (the dirt, not the car) 16:32
16:33 captain-adequate joined
liztormato Don't you have geysers for that? 16:34
jdv79 could someone install curl-config on hack? 16:35
16:37 Ven left
moritz jdv79: done 16:37
jdv79 thanks 16:38
16:48 ilbot3 left, Ven joined 16:50 abraxxa left 16:51 PerlJam left, [Coke]_ joined, ilbot3 joined, sergot left, [Coke] left, Util left, Util joined, sergot joined, psch left 16:53 moritz joined, PerlJam joined 16:54 psch joined, liztormato left 16:55 z448 joined, tokuhiro_ joined 16:57 pmurias_ joined 16:59 Util left 17:00 tokuhiro_ left, pmurias left 17:01 ribasushi left 17:07 Util joined 17:09 ribasushi joined, Ven left
[Coke]_ lizmat: your comments were black on black here. 17:24
17:24 [Coke]_ is now known as CokeZero, CokeZero is now known as [Coke] 17:27 dakkar left 17:37 spider-mario joined
jdv79 successs. i think. i *believe* i have a workable metacpan instance on hack. 17:37
of course since the wifi on my end is a bit < a 14.4 modem i can't see it so i'll set it up when i can. 17:38
thanks moritz
17:41 ribasushi left
[Coke] jdv79++ 17:45
17:49 ribasushi joined 17:51 sufrostico joined 17:55 espadrine left 17:59 ribasushi left 18:01 TEttinger joined 18:03 andreoss left
[Coke] tries TEST_JOBS=400 make spectest. 18:04
yay, that's a bad idea. :) 18:05
18:07 ribasushi joined
[Coke] (surprisingly, only bad, not horrible) 18:08
18:09 vendethiel joined
vendethiel hopes he'll be able to persuade TimToady++ to remove every kind of implicit flattening/one-arg-rule-thing in Perl7 :P 18:11
moritz jdv79: fwiw hack had a bit of trouble with its uplink
18:12 supernovus joined 18:13 ribasushi left, Hor|zon left
[Coke] S06-operator-overloading/sub.t seems slow for what it's doing. adding unicode operators slow, maybe? 18:14
18:16 ribasushi joined
[Coke] m: END { say "hi"}; exit; 18:16
camelia rakudo-moar 649dae: OUTPUT«hi␤»
jnthn [Coke]: Adding operators in general is, 'cus it has to derive a new parser, and so compute a new set of LTM tables, and we're not clever enough to re-use the unaffected ones yet
[Coke] jnthn: fair enough. 18:17
jnthn: OOC, did you see the ticket about ./perl6 --profile -e "exit" ? 18:18
18:19 Hor|zon joined, larion joined
jnthn [Coke]: yeah; didn't work out what's going on yet 18:20
18:31 leont joined 18:32 Hor|zon left
lizmat jnthn: if there is an nqp:: op that needs to be done for the profiler 18:33
yoleaux 15:07Z <jnthn> lizmat: MoarVM's backcompat should be strong enough that you don't need to invalidate on a MoarVM update. And from a development/debugging perspective, I'd really like to not cause a Moar update to invalidate also.
15:07Z <jnthn> lizmat: NQP upgrade should, but that you already get for free with the compilation unit ID from in Perl6::Compiler
lizmat we could add it to sub exit ?
or maybe nqp::exit should be made smarter ? 18:34
nine++ # beating me to merging TimToady's panda PR
timotimo hm 18:36
18:36 yqt joined
timotimo from nqp code, what's the easiest way to get a stack trace without causing an exception to fly? 18:37
18:38 FROGGS[tab] joined
supernovus Was there a bot that takes code snippets or error messages and creates a pastebin of them? 18:38
yoleaux 27 Oct 2014 04:37Z <tony-o> supernovus: i'm trying to use xml::query and when i do .new(xml => $xml) i'm getting 'Cannot create an instance of that type', any clues? Tests are now failing when I install from panda as well
28 Oct 2014 04:36Z <tony-o> supernovus: im getting install errors only with panda . the way it suggests testing passes if i clone your repo (just fyi)
20 Mar 2015 08:18Z <moritz> supernovus: in HTTP::Easy and XML::Query, please replace at_pos by AT-POS
14 Apr 2015 04:46Z <tony-o> supernovus: is supernovus
jdv79 moritz: ah 18:40
FROGGS[tab] o/
lizmat FROGGS[tab] \o 18:41
[Coke] lizmat: if I read the code right, the profiler is creating an END block to get invoked. in general, exit calls END blocks. 18:42
lizmat yup, it does...
m: END say "goodbye"; exit
camelia rakudo-moar 649dae: OUTPUT«goodbye␤»
supernovus Anyway, I just tried bootstrapping panda, and got the following message: pastebin.com/RepEgnNL
18:42 yqt left
Skarsnik hm, I still can't build panda. does copy an already rakudo install work? or do I need to edit some path? 18:42
moritz Skarsnik: rakudo isn't relocatable 18:43
Skarsnik: currently you have to recompile if you want it to run in a different location
18:43 ribasushi left 18:44 sufrostico left
Skarsnik ok. I get this error when trying to build panda with rakudobrew pastebin.com/zYVt7HdD 18:45
supernovus Skarsnik: looks like we both are having problems installing panda, but weirdly, they are different problems! (I'm installing with my own script which may need some updates, as it's been a while since I've been active in the Perl 6 world.) 18:46
18:47 yqt joined
supernovus I need to run. Be back later. 18:47
18:47 supernovus left, ribasushi joined 18:49 rindolf left, Hor|zon joined
dalek kudo/curli: 1c4fc58 | lizmat++ | CURLI:
Some directory layout changes (work in progress)
18:50
18:53 rindolf joined
dalek rl6-most-wanted: 427d731 | (Zoffix Znet)++ | most-wanted/modules.md:
Pastebin::Shadowcat for App::Nopaste

Mentioned Pastebin::Shadowcat for App::Nopaste entry
18:55
18:57 tokuhiro_ joined
rindolf Zoffix: nice! 18:58
18:58 cognominal joined
rindolf Zoffix++ 18:58
TimToady Skarsnik: your panda needs the latest panda patch that nine++ just merged 18:59
dunno what's wrong with the other one 19:00
Skarsnik how I do that? x)
TimToady git clone?
git clone github.com/tadzik/panda.git 19:01
19:01 [Sno] left 19:02 tokuhiro_ left
PerlJam Skarsnik: rakudobrew nuke moar; before you rakudobrew build moar 19:02
TimToady will that reclone panda?
PerlJam rakudobrew build-panda should, but I've found the only way to get everything reliably up to date is to nuke first 19:03
Skarsnik I rm the panda directory and relaunch rakudobrew build-panda 19:04
ok, thx, it works now :) 19:07
TimToady whew!
PerlJam cool
TimToady now we just have to fix Everything Else I Broke Last Night
19:12 shlomif joined 19:13 rindolf left, shlomif is now known as rindolf 19:14 araujo left 19:15 araujo joined
[Coke] TimToady: Or, as well call that here, Wednesdays. 19:16
19:17 vendethiel left
geekosaur heh 19:17
19:19 larion left
TimToady Trouble is, I'm getting into the habit of believing six possible things after dinner... 19:21
which reminds me, lunch & 19:22
PerlJam notes that "after dinner" is still "before breakfast" 19:23
so all you need to do is twiddle the possibility knob and you're set!
colomon Is there any difficulty in believing six *possible* things? 19:27
PerlJam difficulty? no. utility? probably not. 19:28
Skarsnik ah yes LWP::Simple fail it tests like someone ention earlier x) 19:30
19:32 larion joined
jnthn lizmat: My first guess is that the exit op in Moar needs to get smarter 19:33
19:37 darutoko left 19:42 n_i_c_k left, n_i_c_k joined 19:54 ribasushi left 20:00 ribasushi joined
lizmat m: say (-> --> Int { }).returns # shouldn't that need to say "(Int)" ? 20:00
camelia rakudo-moar 649dae: OUTPUT«(Mu)␤»
lizmat Ah, it seems Blocik.returns gets its .returns from Callable 20:01
dalek ast: 4f47646 | usev6++ | S32-array/pop.t:
Fudge test ('todo') for code which doesn't die, actually
ast: de0e1f1 | usev6++ | S (11 files):
Replace more eval-dies-ok with throws-like
20:03 rindolf left
lizmat m: say (-> --> Int { }).signature.returns 20:03
camelia rakudo-moar 649dae: OUTPUT«(Int)␤»
lizmat seems we need to move Routine.returns up to Block.returns
or maybe even to Callable ?
jnthn Block 20:06
Code.returns doesn't really make sense, I don't think
20:09 zoosha left, zoosha joined
lizmat jnthn: but Code has an $!signature attribute ? 20:10
20:10 vvz joined
jnthn lizmat: For now, but not sure it will forever :) 20:13
lizmat: Would rather keep the option to slim thunks down a little in the future, if we can.
lizmat well, if it gets moved, the methods can move as well? Seems more logical to keep them close to the place where we can say $!signature
but if you rather I put them in b 20:14
jnthn lizmat: Not sure we'll be able to easily "just move methods" after 6.christmas :)
lizmat Block and use nqp::getattr, that would be fine by me as well
but why *is* $!signature now an attribute of Code and not of Block ?
jnthn Not sure, possibly mostly historical reasons.
20:15 ZoffixWork joined
lizmat want me to try moving it to Block and see what breaks ? 20:15
jnthn You can if you're curious enough ;)
ZoffixWork Hey. What's the idiomatic way in Perl 6 to handle errors? In Perl 5, for example, it common to "return undef or an empty list". 20:16
timotimo you can throw an exception
jnthn Exceptions of failures.
s/of/or/
ZoffixWork Thanks. I'll look that up.
TimToady fail lets the caller decide how to handle things
20:16 colomon left
jnthn Failures are "lazy" exceptions that can be defused by testing them for definedness or truth 20:17
TimToady or fatalized by 'use fatal'
ZoffixWork :O Perl 6 sounds so awesome!
jnthn *nod*
heh, that was to TimToady, but works for ZoffixWork's comment too :D
TimToady *nod*
ZoffixWork :D
20:18 _dolmen_ joined 20:19 [Sno] joined
Skarsnik hm, how you can deference? a cpointer pointing to a struct to get its member with zavolaj? I found a self.bless : $surface on Cairo. is that the way? 20:23
20:24 vendethiel joined
dalek ast: c3e76c4 | usev6++ | S06-operator-overloading/imported-subs.t:
Remove test for behavior of eval-dies-ok
20:25
ast: c549562 | usev6++ | S32-str/substr.t:
Remove fudged test, substr works with Any as argument

The removed test was based on RT #76412. Nowadays substr is implemented in src/core/Str.pm and coerces its argument to Str.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=76412
[Coke] is zavolaj still a separate thing, or is that all Nativecall now? 20:26
Skarsnik from github.com/jnthn/zavolaj Starting from 2015.02, the NativeCall module ships with the Rakudo Perl 6 compiler, so there is no need to install it separately. 20:27
[Coke] That's what I thought. 20:29
jnthn The repo is only there to point people at the fact they don't need to be looking at it any more :) 20:30
And yeah, I guess I have to say goodbye to a cute project name :)
20:30 Ven joined
Skarsnik so where is the updated document if it exists? x) still here? 20:32
jnthn doc.perl6.org/language/nativecall 20:33
If you mean the docs for how to use it :)
20:34 colomon joined
Skarsnik too sad, searching NativeCall does not point to it x) 20:34
dalek kudo/nom: dd46c30 | TimToady++ | src/core/Junction.pm:
Junction ops can be pure again
Skarsnik TBD? To be done? 20:36
[Coke] Skarsnik: good find, will open that as a bug. 20:37
to be determined, usually
S99:TBD
synbot6 Link: design.perl6.org/S99.html#TBD
[Coke] ... ah well.
Skarsnik: search for "native" 20:38
dalek ast: 3c166d9 | usev6++ | S12-methods/trusts.t:
Fix test for trust relation, passed for the wrong reason
[Coke] but yes, we should still find nativecall
20:40 larion left 20:44 ribasushi left 20:45 tokuhiro_ joined 20:46 Ven left 20:47 ribasushi joined
dalek ast: f9a512e | usev6++ | S12-enums/thorough.t:
Fudge test ('todo') which passed for the wrong reason
20:49
20:49 saaki joined
ZoffixWork BTW, what's GLR? I keep seeing it mentioned all over the place. 20:50
PerlJam Great List Refactor 20:51
ZoffixWork Thanks.
PerlJam The G and R words a a little fluid, but the L is always List
jnthn ZoffixWork: It was a bunch of work to improve list/iterator handling in Perl 6 that's now completed. :)
PerlJam s/a a/are a/ 20:52
lizmat jnthn: I was curious and got this far: gist.github.com/lizmat/bc4111d25b34e52c5489
then it became too meta for me... :-)
Skarsnik jnthn, so there is no way to access member of a struct given with a cpointer? 20:53
jnthn lizmat: Some of the places changing Code to Block in Actions/World look a tad suspect to me also :)
Skarsnik: NativeCall has evolved a good bit since I last worked on it, but I think you would cast the CPointer to the CStruct. 20:54
20:55 tokuhiro_ left 20:57 xfix left 20:59 kaare_ left
Skarsnik cast? like my Struct $s = $pointer; ? 20:59
20:59 sufrostico joined 21:00 ribasushi left
masak 'night, #perl6 21:01
21:03 ribasushi joined
ZoffixWork \o 21:03
dalek ast: 0a36554 | usev6++ | S06-signature/closure-parameters.t:
Fudge test which passed for the wrong reason
21:05
ast: 10a849d | usev6++ | S06-signature/definite-return.t:
Replace another two eval-dies-ok with throws-like
lizmat bartolin++ # finding tests that passed for the wrong reason
21:07 supernovus joined
supernovus I changed my build script so instead of using bootstrap.pl it uses rebootstrap.pl and it appears to work properly now. 21:08
bartolin lizmat: speaking of those tests: there are some more in S04-statements/return.t. I made a PR for roast the other day: github.com/perl6/roast/pull/70 21:11
bartolin wonders if there is a better way to test for that error (Attempt to return outside of any Routine) than resorting to 'run' 21:12
21:12 colomon left
bartolin m: use Test; throws-like q[return 1], X::ControlFlow::Return # does not die 21:13
camelia rakudo-moar dd46c3: OUTPUT« 1..2␤ not ok 1 - 'return 1' died␤ ␤# Failed test ''return 1' died'␤# at /tmp/jFh3ELhGuL line 1␤ ok 2 - # SKIP Code did not die, can not check exception␤ # Looks like you failed 1 test of 2␤not ok 1 - did we throws-like X::Cont…»
bartolin m: return 1 21:14
camelia ( no output )
bartolin $ perl6-m -e 'return 1'
Attempt to return outside of any Routine
jnthn m: return 1; CATCH { defualt { say "caught $_" } } 21:16
camelia rakudo-moar dd46c3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1A715f3XfY␤Undeclared routine:␤ defualt used at line 1␤␤»
jnthn m: return 1; CATCH { default { say "caught $_" } }
camelia ( no output )
jnthn hm, not like that :)
bartolin yeah, I think i tried that :-)
21:16 skids left
bartolin I couldn't even catch them with 'is_run' ... 21:17
lizmat even a return inside an EVAL works
m: sub a { EVAL "return; say q/bar/" }; a; say "foo" # not sure if that's ok 21:18
camelia rakudo-moar dd46c3: OUTPUT«foo␤»
lizmat m: sub a { EVAL "return"; say q/bar/ }; a; say "foo" # better
camelia rakudo-moar dd46c3: OUTPUT«foo␤»
21:20 supernovus left 21:23 vendethiel left, ribasushi left
jnthn Bumper catch-up progress report: 6guts.wordpress.com/2015/09/30/tho...-progress/ 21:26
dalek c: cc4d77c | (Zoffix Znet)++ | lib/Language/regexes.pod:
Fix typo
21:27
21:28 ribasushi joined 21:32 colomon joined
bartolin jnthn++ # very interesting progress reports (and all those other good things) 21:33
dalek kudo/nom: 83e9013 | lizmat++ | src/core/ (2 files):
Move Routine.of/returns to Block
21:34
ast: e3494e2 | usev6++ | S13-overloading/typecasting-long.t:
Replace another eval-dies-ok with throws-like
21:36
21:37 ribasushi left
jnthn 'night, #perl6 21:38
bartolin o/ 21:39
lizmat gnight jnthn
21:43 ribasushi joined
ZoffixWork I'm having trouble finding how to do regex replacement in Perl 6. In Perl 5 it's the s/// operator, and in p5-to-6 docs, I see it's mentioned as "still exists in Perl 6", with a link to regex Adverbs, but I'm not seeing anything relevant in adverbs: docs.perl6.org/language/5to6-perlfunc#s%2F%2F%2F 21:45
m: say 'a' ~~ s/a/A/; # and this doesn't seem to do what I think it would do
camelia rakudo-moar dd46c3: OUTPUT«Parameter '$self' expected a writable container, but got Str value␤ in block <unit> at /tmp/Z2uO0hcBBa:1␤␤»
geekosaur m: my $s = 'a'; $s ~~ s/a/A/; 21:46
camelia ( no output )
geekosaur whoops
m: my $s = 'a'; $s ~~ s/a/A/; say $s;
camelia rakudo-moar dd46c3: OUTPUT«A␤»
geekosaur were you really expecting it to work on a literal/constant?
ZoffixWork Is there a s///r version? Something that returns the replaced version, while keeping the original intact? 21:47
hoelzro m: my $s = '
camelia rakudo-moar dd46c3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TTQ8oNzYj7␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/TTQ8oNzYj7:1␤------> 3my $s = '7⏏5<EOL>␤ expecting any of:␤ single quotes␤ term␤»
hoelzro m: my $s = 'foo'; my $t = $s.subst(/foo/, 'bar'); say($s, $t)
camelia rakudo-moar dd46c3: OUTPUT«foobar␤»
hoelzro ZoffixWork: the subst method will do that 21:48
ZoffixWork Thanks. geekosaur++ hoelzro++
geekosaur yeh, I think smartmatch is not the right tool for that operation; you want to use the actual methods (.match or .subst) in that case 21:49
you could think of perl 5's =~ as binding $_ locally; perl 6's ~~ is an actual match operator 21:51
ZoffixWork Ah
21:54 ribasushi left 21:55 z448 left 21:57 ribasushi joined 21:58 maettu1 left
[Coke] I'm having trouble githubbing from hack. 22:00
leont Did 􏿽xABmy/has TYPE @array􏿽xBB change behavior recently? 22:01
22:01 synbot6 left
_itz hmm p6doc is broken by the changes of the last day or so 22:01
leont Or am I observing fallout from the GLR change?
timotimo probably the latter 22:02
what's it about? 22:03
leont Method 'method-from-role' must by implemented by Role because it is required by a role 22:04
timotimo oh?
i wonder how you got that now, but didn't get it before
22:05 _dolmen_ left
leont Only element in that list is certainly having that method 22:05
I really don't get it
timotimo that error happens when you compose a role into a class 22:06
oh, wait
22:07 kid51 joined
timotimo m: role TestRole { method Foo { ... } }; my TestRole @foo; 22:07
camelia ( no output )
timotimo m: role TestRole { method Foo { ... } }; my TestRole @foo; @foo[0] = 1 but TestRole
camelia rakudo-moar 83e901: OUTPUT«Method 'Foo' must be implemented by Int+{TestRole} because it is required by a role␤ in any compose_method_table at gen/moar/m-Metamodel.nqp:2666␤ in any apply at gen/moar/m-Metamodel.nqp:2676␤ in any compose at gen/moar/m-Metamodel.nqp:2812␤ i…»
timotimo hm.
leont Smells like a bug to me
timotimo what does? 22:08
leont Oh wait, that's a tripple dot
timotimo yeah
leont Interesting fact: in my case it's triggered by 􏿽xABdie @array􏿽xBB
22:08 Skarsnik_ joined
leont Or actually, die @array.perl 22:09
timotimo m: role TestRole { method Foo { ... } }; my TestRole @foo; say @foo.perl
camelia rakudo-moar 83e901: OUTPUT«Method 'Foo' must be implemented by TestRole because it is required by a role␤ in any compose_method_table at gen/moar/m-Metamodel.nqp:2666␤ in any apply at gen/moar/m-Metamodel.nqp:2676␤ in any compose at gen/moar/m-Metamodel.nqp:2812␤ in any …»
timotimo like that?
22:12 Skarsnik_ left, Skarsnik left
leont Something like that 22:12
Actualy code is more like: 22:13
m: role TestRole { method Foo { ... } }; class TestClass does TestRole { method Foo { say "Awesome" } }; my TestRole @foo = TestClass.new,; say @foo.perl
camelia rakudo-moar 83e901: OUTPUT«Method 'Foo' must be implemented by TestRole because it is required by a role␤ in any compose_method_table at gen/moar/m-Metamodel.nqp:2666␤ in any apply at gen/moar/m-Metamodel.nqp:2676␤ in any compose at gen/moar/m-Metamodel.nqp:2812␤ in any …»
timotimo right
leont but I think yours already shows the bug
timotimo for some reason, the .perl is trying to pun the role
_itz bdfl?
timotimo benevolent dictator for life
lizmat is it not the my TestRole @foo?
_itz hahahaha 22:14
timotimo it is not, lizmat
lizmat m: my role Foo { method a { ... } }; my Foo $a
camelia ( no output )
timotimo the same code without the say won't blow up
lizmat indeed, I would say rakudobug
dalek c: c6bc991 | (Steve Mynott)++ | lib/Perl6/TypeGraph.pm:
push to append
22:16
kudo/nom: 329f9ec | lizmat++ | src/core/Any-iterable-methods.pm:
Change whitespace in sequential-map

For better readability / understandability for optimizations to come.
22:25 oetiker joined 22:26 oetiker left 22:39 skids joined 22:51 tokuhiro_ joined 22:53 mr_ron left 22:54 mr_ron joined 22:55 sufrostico left 22:56 tokuhiro_ left 23:01 ribasushi left 23:02 bjz left 23:04 ribasushi joined 23:07 spider-mario left 23:10 RabidGravy left
leont I would help too if those errors gave useful line numbers :-s 23:14
23:17 erdic left 23:19 erdic joined 23:26 pmurias_ left 23:27 pmurias joined 23:47 Peter_R left