»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:04 llfourn left 00:06 wamba left 00:08 adu joined 00:09 pyrimidine joined 00:13 gdonald_ left, gdonald_ joined, pyrimidine left 00:15 risou_awy is now known as risou
SmokeMachine m: Int.^attributes.map: { .say } # why it happens and what is a BOOTSTRAPATTR? 00:21
00:21 dj_goku left
camelia No such method 'say' for invocant of type 'BOOTSTRAPATTR'
in block <unit> at <tmp> line 1
00:21
SmokeMachine m: Int.^attributes.grep: Int 00:22
camelia X::Multi::NoMatch exception produced no message
in block <unit> at <tmp> line 1
SmokeMachine m: Int.^attributes.grep: {.type ~~ Int} 00:23
camelia ( no output )
SmokeMachine ok... that made sense...
00:24 dj_goku joined
SmokeMachine m: Int.^attributes.grep: Attribute # but not this one 00:24
camelia X::Multi::NoMatch exception produced no message
in block <unit> at <tmp> line 1
00:25 BenGoldberg joined
IOninja It happens 'cause you're poking at low-level internals and trying to feed them to higher-level routines. 00:26
elaADnlxie . 00:30
geekosaur wonders if a p6 convenience method would be possible/useful
er, .p6
00:31 llfourn joined
geekosaur pass through p6 tyypes unmodified, wrap or promote nqp or vm level types 00:31
SmokeMachine IOninja: how could I detect that and only grep if its high-level?
geekosaur (not spec-d, and obviously no going to be portable)
SmokeMachine geekosaur: that could help in my case...
geekosaur it's not just you, pretty much everyoen trying to introspect via nqp hits it every so often 00:32
or via MOPs that leak implementation types
IOninja SmokeMachine: `try`
SmokeMachine IOninja: good idea... 00:33
elaADnlxie hehe, I broke a bot and nobody noticed! Nice!
IOninja SmokeMachine: here's an example where I grep for types; probably will work if you stick attributes instead
SmokeMachine: github.com/perl6/routine-map/blob/...p6#L60-L75
elaADnlxie: I noticed! 00:34
elaADnlxie IOninja: which bug did you find?
00:34 risou is now known as risou_awy
SmokeMachine IOninja: thanks! 00:34
IOninja elaADnlxie: irclog.perlgeek.de/perl6/2017-02-28#i_14181843
elaADnlxie IOninja: I didn't break this!
IOninja :) 00:35
elaADnlxie IOninja: … I simply didn't fix it…
ok ok what should I add to pull tags as well, hmm… 00:36
IOninja git pull --tags?
git pull pulls them for me automagically... 00:37
without needing `--tags`
elaADnlxie that's what I thought too, but apparently not
00:38 agentzh joined
elaADnlxie c: 2017.02 say 42 00:38
committable6 elaADnlxie, ¦«2017.02»: Cannot find this revision (did you mean “2017.01”?)
elaADnlxie ok, if it appears in ≈5 minutes, then I fixed it 00:39
IOninja: any other complaints?
IOninja Nope 00:40
00:41 risou_awy is now known as risou, mcmillhj joined 00:42 agentzh left
elaADnlxie c: 2017.02 say 42 00:45
committable6 elaADnlxie, ¦«2017.02»: 42
elaADnlxie \o/
00:46 mcmillhj left 00:57 risou is now known as risou_awy
TimToady m: my regex abc { ‘aaa’ }; my regex xyz { <&abc> }; say ‘aaa’ ~~ /<xyz>/ 00:59
camelia 「aaa」
xyz => 「aaa」
TimToady elaADnlxie: ^^^ was it you looking for this?
elaADnlxie TimToady: yes! Yes!
TimToady a . means always call the method form
a & means always call the function form
elaADnlxie but <abc> means? 01:00
TimToady leaving it off was supposed to guess based on lexical scope, but seems someone made it synonymous with the . form
elaADnlxie m: my regex abc { ‘aaa’ }; my regex xyz { <abc> }; say ‘aaa’ ~~ /<xyz>/
camelia 「aaa」
xyz => 「aaa」
abc => 「aaa」
MasterDuke m: Int.^attributes.map: { .^name.say } 01:01
camelia BOOTSTRAPATTR
TimToady huh, I thought that wasn't working...
MasterDuke m: Int.^attributes.map: { .gist.say } 01:02
camelia bigint $!value
01:03 Actualeyes joined
MasterDuke m: Int.^attributes.map: { .perl.say } 01:04
camelia BOOTSTRAPATTR.new
MasterDuke SmokeMachine: ^^^, some options
SmokeMachine MasterDuke: thanks! 01:05
IOninja: someone decided something about the mexican version of ?? !! ?
01:06 girafe left 01:07 lukaramu left
IOninja SmokeMachine: don't think so. 01:07
TimToady is right here. Ask him :)
01:10 pyrimidine joined
TimToady the what? 01:13
TimToady is on vacation, and doesn't have to decide anything :P
SmokeMachine m: say True ⁇ "OK" ‼ "NOK" # TimToady, this 01:14
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3say True7⏏5 ⁇ "OK" ‼ "NOK" # TimToady, this
expecting any of:
infix
infix stopper
postfix
statement end
st…
TimToady that doesn't look mexican to me...
SmokeMachine u: ⁇ 01:15
unicodable6 SmokeMachine, U+2047 DOUBLE QUESTION MARK [Po] (⁇)
IOninja Mexical is opposite of Texas :)
TimToady but I'm probably fine with accepting those glyphs
SmokeMachine TimToady: so, would you mind, if I do my PR?
TimToady unless they mke the parser run a lot slower for some strange reason... 01:16
IOninja TimToady: then I know some people will ask if we added ⁇ and ‼, why not add ≥ and ≤? Are those also OK to add? I've seen a giant gist proposing all sorts of these fancy unicode ops and I'm just wondering where the line is drawn.
SmokeMachine TimToady: I have no benchmarks... :(
TimToady IOninja: I dont really have a problem with ≥ and ≤ either, just I'd like to get the chained operators generalizing correctly first 01:17
there's some difficulty with that that I don't recall offhand
user-defined chained ops, that is
I guess putting in ≥ and ≤ doesn't really need that, since they wouldn't be user-defined, per se... 01:18
SmokeMachine the ⁇ ‼ should have roast tests, right?
01:19 Actualeyes left
TimToady why not? 01:19
either we support it as part of the language, or we don't
01:19 Actualeyes joined
SmokeMachine I think we do! :) 01:20
TimToady you should ask me for all the bad decisions you can get while I'm on vacation, and feeling mellow :) 01:22
elaADnlxie IOninja: the gist is mostly for gathering *all* ideas, I'm kinda hoping that half of these will be thrown away 01:24
≤ ≥ were very requested, ⁇ and ‼ less so, but it totally make sense 01:25
u: ⁇‼
unicodable6 elaADnlxie, U+2047 DOUBLE QUESTION MARK [Po] (⁇)
elaADnlxie, U+203C DOUBLE EXCLAMATION MARK [Po] (‼)
IOninja TimToady: Lol. OK, then, I still don't get the Rat/FatRat thing. As I understand it, big numerator/denominator are bad, so that's why we made that distinction. And FatRats are contagious. And currently when we try to create a Rat with its components > uint64 it sets them, but apparently it's wrong. Last I recall you said that maybe we should make > uint64 rats return a RatStr, because it knows how to convert 01:26
to FatRat, but I don't get why it should be a RatStr? Like, would the math operators use the FatRat version but it'd be non-contagious?
.oO( guess it'd help if I read the speculations on the topic first... )
Oh and I recall hearding that >uint64 Rats turn into Nums, but I don't get that. Why not do the FatRat thing?
01:29 zengargoyle left
IOninja 4.9999999999999999999999999 => FatRat automatically; if you don't want the badness of >uint64 Rats, then coerce it to .Rat or .Num, losing precision. And <4.99999999999999999999999999999999999> ends up a FatRatStr; same rules, if you don't want the uber precision, coerce it. 01:30
01:31 zengargoyle joined
IOninja and infectioning is ( (Int => Rat) => Num ) => FatRat; Int + Rat => Rat; Rat/Int + Num => Num; * + FatRat => FatRat 01:31
01:32 markasoftware joined
markasoftware what language is the perl 6 interpreter written in? 01:32
IOninja markasoftware: compiler. Depending on which part you're looking, it's either written in Perl 6 with a sprinkling of NQP or in NQP. NQP is a subset of Perl 6
markasoftware any haskell in it? 01:33
IOninja markasoftware: not really
markasoftware hmm. i read somewhere that it was written in haskell, couldn't find any other sources though
guess it was satire...
IOninja markasoftware: ah, it was long time ago, and was never a production compiler. That one was Pugs
and current one's called Rakudo 01:34
markasoftware ok, so I'm not going crazy, thanks
IOninja :)
01:38 markasoftware left
elaADnlxie that's it??? 01:39
not going to stay for some tea or something?
01:42 mcmillhj joined 01:46 mcmillhj left 01:47 risou_awy is now known as risou 01:58 telex left 01:59 cdg_ joined, telex joined 02:02 cdg left 02:08 agentzh joined 02:27 cdg_ left
elaADnlxie 'night o/ 02:35
SmokeMachine elaADnlxie: I fixed the misalign... 02:37
elaADnlxie: do you have any suggestion about the "copy-paste" thing? 02:38
02:39 mcmillhj joined, elaADnlxie left
samcv i don't really like the copy pasty tbh 02:44
02:44 ilbot3 left, mcmillhj left
SmokeMachine samcv: me neither... but I can't see a better way... any suggestion? 02:47
samcv let me look at it a sec
02:48 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:51 Sgeo_ joined
SmokeMachine is it possible to encapsulate the token inside another token and use the new token on both tokens (<?? !!> and <⁇ ‼>)? 02:52
02:52 Sgeo left 02:53 labster left
samcv well the error code takes up most of it 02:54
02:56 mcmillhj joined
samcv so you could make the error code in its own token 02:56
<EXPR('i=')> [ '‼' | <ternary-explain> ... ] 02:57
something like that
03:03 mcmillhj left
SmokeMachine samcv: great idea! Thanks! 03:07
is there a way to send parameters for a token from inside another token? 03:14
I got it! 03:16
ZzZombo s: Any, grep, \({True}) 03:17
SourceBaby ZzZombo, Ehhh... I'm too scared to run that code.
ZzZombo bad bot, bad
03:21 noganex joined 03:24 noganex_ left 03:27 salva0 left 03:31 mcsnolte left
SmokeMachine samcv: I unified the ternary explanation... could you take look at it? 03:35
github.com/rakudo/rakudo/pull/1029 03:36
03:36 xtreak joined 03:52 ggoebel left 03:59 labster joined 04:01 wamba joined 04:04 salva joined 04:05 ggoebel joined 04:06 Actualeyes left 04:08 cibs left 04:10 cibs joined 04:11 kybr left 04:16 mcmillhj joined 04:21 mcmillhj left 04:24 adu left 04:25 cpage_ joined
BenGoldberg u: interrobang 04:25
unicodable6 BenGoldberg, U+203D INTERROBANG [Po] (‽)
BenGoldberg, U+2E18 INVERTED INTERROBANG [Po] (⸘)
BenGoldberg, 5 characters in total: gist.github.com/8dcf59292f1b61e63c...34b1cea3a7 04:26
BenGoldberg m: sub prefix:<‽> { $^tobe | not $^tobe }; ‽ "the question"; 04:28
camelia ( no output )
04:28 adu joined 04:30 simcop2387 left 04:32 BenGoldberg left 04:35 simcop2387 joined 04:48 Cabanoss- joined 04:52 Cabanossi left, Cabanoss- is now known as Cabanossi 05:02 newbie1 left 05:06 wamba left 05:11 kybr joined 05:13 mcmillhj joined 05:21 gdonald_ left, gdonald_ joined 05:27 Actualeyes joined 05:49 xtreak left 05:52 xtreak joined 05:53 CIAvash joined, mcmillhj left 05:58 skids joined
ZzZombo m: my $x=:children;say $x.key == 'children' 06:06
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5children' (indicated by ⏏)
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
ZzZombo what??
m: my $x=:children;say $x.key() == 'children'
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5children' (indicated by ⏏)
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
ZzZombo m: my $x=:children;say $x.key
camelia children
ZzZombo m: my $x=:children;say $x.key() ~~ 'children' 06:07
camelia True
ZzZombo W H A T
did P6 twisted comparison?
06:09 setty1 left
ZzZombo ah 06:10
06:11 skids left
ZzZombo I keep forgetting they did NOT actually change that. 06:11
06:17 risou is now known as risou_awy 06:18 mcmillhj joined 06:20 labster left 06:22 mcmillhj left 06:30 snowblack joined, bwisti left 06:31 g0d355__ joined
snowblack splicing arrays, does it not suck? 06:31
should I take that as a yes?
06:32 setty1 joined 06:33 lust joined
snowblack anyone want to answer a question, other that this one? 06:33
06:34 mcmillhj joined, snowblack left 06:38 adu left 06:39 snowblack joined, mcmillhj left, risou_awy is now known as risou 06:41 mcmillhj joined
snowblack awake? 06:43
question
06:44 domidumont joined 06:48 domidumont left, mcmillhj left
moritz snowblack: just ask; maybe somebody will answer 06:48
but notbody can answer without a question :-)
06:48 domidumont joined 06:50 RabidGravy joined 06:53 mcmillhj joined
ZzZombo can I create a lazy list with for? 06:54
snowblack I am trying drop an element of a list my @b = < 3 4 5 6 7 8> 06:59
@b.splice( +(@b.grep: 6, :k) , 1)
is almost right, but there must be a better way 07:00
I just want to drop a value from a list, that I suspect is in the list 07:01
07:01 mcmillhj left
snowblack @b.splice( (@b.grep: 6, :k) , 1) doesn't work 07:02
cause "Cannot resolve caller splice(Array: Seq, Int); none of these signatures match:...." 07:03
so I add "+" to make output of (@b.grep: 6, :k) be an Int, but then if the greped element isn't in the list 07:04
the code takes that as zero , and splices out the first element
THere must be an easier way, I used to know perl a decade ago, now I am trying perl6... 07:05
07:05 xtreak left 07:07 eroux joined, eroux left 07:09 darutoko joined 07:10 xtreak joined
CIAvash snowblack: grep returns a Seq, so adding + will return the number of its elements. try @b.splice(@b.first(6, :k) , 1) 07:11
snowblack ZzZombo, is this what you want? for 4...30 ->$z { say $z;} ; lazy , how to prove, I don't know 07:13
CIAvash ZzZombo: `gather for @a { .take }`? 07:15
TimToady or if you just want to remove all the 6's, do @b.grep: none 6 07:16
snowblack ok those answers are very helpful 07:20
07:26 eroux joined 07:33 jonas1 joined 07:40 socomm joined
nine avar: you need to "use Inline::Perl6 'OO';" if you want to use Inline::Perl6->new; Otherwise it's just "use Inline::Perl6; v6::run '"hi".say';" 07:40
avar: that ^^^ is at least the reason for those redefine warnings 07:41
avar: that test failure is odd. But the good news is that it does happen here, too. Will investigate. 07:42
07:46 wamba joined 07:50 wamba left 07:52 abraxxa joined 07:53 cibs left 07:55 cibs joined, adrusi_ is now known as adrusi 07:59 socomm left 08:00 abraxxa left, abraxxa joined 08:01 gfldex left, rindolf joined 08:02 gfldex joined 08:15 gdonald_ left, gdonald_ joined 08:21 g0d355__ left 08:33 TEttinger left 08:35 bjz joined 08:42 dakkar joined 08:44 wamba joined 08:48 astj left
avar nine: Sweet, thanks! 08:48
08:48 mcmillhj joined 08:51 astj joined
nine This works: perl -E 'use Inline::Perl6 "OO"; my $p6 = Inline::Perl6->new; my $tester = $p6->run("use lib <t/lib>; use Perl6Test; Perl6Test.new"); say $tester->get_one' 08:52
08:53 mcmillhj left
nine So I think it's another side effect of lexical module loading. The $p6->use('Perl6Test'); no longer affects the later statements. 08:53
08:55 wamba left 08:58 wamba joined 08:59 astj left 09:01 astj joined 09:02 zakharyas joined 09:04 espadrine joined 09:05 lust left 09:06 astj left 09:08 domidumont left, domidumont joined 09:09 Actualeyes left 09:10 eroux left 09:18 Cabanossi left 09:22 astj joined 09:23 espadrine left 09:30 ufobat joined 09:31 rurban joined 09:44 mcmillhj joined 09:46 xtreak left 09:49 xtreak joined, mcmillhj left 09:52 labster joined 09:57 mxco86 left, Cabanossi joined 10:01 mcmillhj joined 10:06 mcmillhj left 10:07 mcmillhj joined 10:09 wamba left
gregf_ cardiff and brighton are choke 10:10
sorry :/ wrong chat 10:11
Geth doc: 352cd94f02 | (Wenzel P. P. Peppmeyer)++ | doc/Language/containers.pod6
correct example
10:12
10:13 wamba joined 10:15 mcmillhj left
gregf_ m: :k.^name.say 10:21
camelia Pair
10:21 rindolf left
DrForr Perl6::Parser - Cleared up (mostly) a bug that was incorrectly categorizing a lot of token clusters as a single bareword. 10:22
10:27 holyghost joined 10:30 holyghost left 10:31 mxco86 joined 10:37 rindolf joined
ZzZombo m: Inf.WHAT 10:40
camelia ( no output )
ZzZombo m: say Inf.WHAT
camelia (Num)
ZzZombo m: say my Num $n=0 10:42
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot assign a literal of type Int (0) to a variable of type Num. You can declare the variable to be of type Real, or try to coerce the value with 0.Num or Num(0), or just write the value as 0e0
at <tmp…
ZzZombo m: say my Num $n=0e0
camelia 0
ZzZombo but why?..
10:42 obfusk left, xtreak left 10:43 bjz_ joined, bjz left 10:44 obfusk joined
jnthn ZzZombo: Because types are constraints, and 0 is an Int, not a Num 10:47
ZzZombo m: say (1,2,3,4,5).all ~~ * > 0
camelia { ... }
ZzZombo m: say (1,2,3,4,5).all ~~ (* > 0)
camelia all(True, True, True, True, True)
ZzZombo how to get the ultimate result rather than the junction? 10:48
But somehow I expected 0 being silently coerced to Num
jnthn Use "so" 10:49
m: say so (1,2,3,4,5).all ~~ (* > 0)
camelia True
ZzZombo m: say ?(1,2,3,4,5).all ~~ (* > 0)
camelia True
jnthn I think that is wrong precedence though 10:50
ZzZombo m: say (1,2,3,4,5).all ~~ 0
camelia False
ZzZombo why this is different?
jnthn say ?(1,2,3,4,5).all ~~ (* > 0) groups as say (?(1,2,3,4,5).all) ~~ (* > 0) 10:51
And all those numbers are true, so it's like True ~~ (* > 0), which is True > 0, which is True
m: say so (1,2,3,4,-5).all ~~ (* > 0)
camelia False
jnthn m: say ?(1,2,3,4,-5).all ~~ (* > 0) 10:52
camelia True
10:56 zakharyas1 joined 11:04 rindolf left 11:16 risou is now known as risou_awy 11:18 llfourn left 11:20 llfourn joined, xtreak joined 11:24 rindolf joined 11:25 n1ce left 11:27 sena_kun joined 11:39 sena_kun left, bjz joined 11:41 bjz_ left 11:43 wamba left 11:45 notbenh left 11:46 notbenh joined 11:47 ChoHag left 11:49 zakharyas1 left 11:50 labster left 11:53 wamba joined 11:54 kurahaupo joined 11:56 ChoHag joined, n1ce joined 11:59 kurahaupo left 12:01 firefish5000 left 12:07 kurahaupo joined 12:08 xtreak left, kurahaupo_ joined 12:12 kurahaupo left 12:13 kurahaupo_ left 12:22 awwaiid left 12:30 zakharyas left, zakharyas joined, salv0 joined 12:36 ufobat left, aborazmeh joined, aborazmeh left, aborazmeh joined 12:45 lukaramu joined 12:51 ufobat joined
IOninja Side note for ticket reporters: "(HEAD)" is hard to figure out when you view the ticket later on. Would be nice if that included proper commit sha 13:18
Like this one: rt.perl.org/Ticket/Display.html?id...xn-1444346
DrForr Insert your own hash conflict joke here. 13:21
13:21 wamba left
jnthn "No, it's my turn to toke now!" 13:22
[Coke] The list of people who can add bugadmins now includes me, pmichaud, froggs, moritz, and IOninja.
IOninja wooo \o/ 13:23
jnthn Nice :)
IOninja [Coke]: where's the interface to add users? If I go to Configuration -> Rights -> User Rights I only see one user. Enoch Root :} 13:28
13:29 bjz left 13:32 user__ left, lukaramu_ joined 13:33 ggoebel left
[Coke] IOninja: if rt stops hanging, I'll tell you. :| 13:36
(probably my work proxy)
13:36 lukaramu left
IOninja Hanging for me too now. 13:37
[Coke] It's all on the same page; there's a box in the upper right that reads something like 'add user' 13:38
13:43 cschwenz joined 13:44 mcmillhj joined
cschwenz is github.com/kalkin/Ddt a hard fork of github.com/skaji/mi6 ? 13:44
IOninja [Coke]: oh yeah, I saw the box, sorry. I meant to ask how do I see existing users. Basically, someone says "I can't login" or whatever how do I view what sort of perms they got on their account or even if they have account?
cschwenz: what's a hard fork?
cschwenz as in, it really looks like the author or Ddt downloaded to source for App::Mi6 and made some changes before re-uploading the codebase as their own 13:46
13:46 wamba joined
cschwenz s{author or}{author of} 13:46
IOninja cschwenz: sounds about right. Not long ago the author claimed Ddt was a replacement for Mi6
cschwenz: from what I understand, they assumed mi6 was an abandoned project. 13:47
TestML seems to be thoroughly bustified and YAML depends on it... 13:48
cschwenz :-) heheh. reported that one a few days ago. 13:49
IOninja Yes. Fixing ATM but can't run tests.
I mean... Fixing YAML one, but can't run tests..
cschwenz and once you get past that, github.com/perl6-community-modules...6/issues/3 awaits you
ah
13:50 i7f6 left
jnthn Was about to say YAML is working fine in my project, then realized I'm using YAMLish :) 13:51
IOninja heh 13:52
13:52 bbkr left 13:53 bbkr joined, cpage left
Geth yaml-pm6: 224b49627f | (Zoffix Znet)++ | t/Bridge.pm
Blind a MONKEY in test support module

Fixes #3
13:53
13:54 ttkp6 left 13:57 lucasb joined
[Coke] IOninja: existing bug admins are in the list on the left. the list of all possible users is in the dropdown. 13:59
13:59 llfourn left
[Coke] for example, our names are at the bottom of the list on the left. 14:00
IOninja [Coke]: is this the right page? temp.perl6.party/rt.png
lucasb m: Seq.Int 14:02
camelia Cannot look up attributes in a Seq type object
in block <unit> at <tmp> line 1
lucasb m: Seq.elems
camelia Cannot look up attributes in a Seq type object
in block <unit> at <tmp> line 1
lucasb ^^ these should be multis instead of only methods, no?
so, they can give the helpful message: Invocant requires an instance of type Seq, but a type object was passed 14:03
IOninja Well, I give up with TestML. It looks for routine Point in a support test module and I don't know whether it shouldn't be looking of whether it should be there.
cschwenz IOninja: :-( 14:04
IOninja huggable: eco YAMLish
huggable IOninja, nothing found
IOninja I guess YAMLish is a Perl 5 thing...
cschwenz github.com/Leont/yamlish
YAMLish is a pure Perl6 implementation of YAML 14:05
IOninja huggable: eco Test
huggable IOninja, nothing found
IOninja huggable: you lie to me, robot!!!!
huggable IOninja, nothing found
IOninja Oh, wait, wrong robot.
buggable: eco YAMLish
cschwenz thinks the huggable bot is b0rken
buggable IOninja, Nothing found
IOninja buggable: you lie to me, robot!!!! 14:06
cschwenz :-P
IOninja buggable: eco Test
buggable IOninja, Found 30 results: Testing, Test::Mock, PSpec, Test::Builder, TestML. See modules.perl6.org/#q=Test
IOninja buggable: eco YAML
buggable IOninja, Found 2 results: YAML, YAMLish. See modules.perl6.org/#q=YAML
14:06 aborazmeh left
IOninja buggable: eco YAMLish 14:06
buggable IOninja, YAMLish 'An implementation of a useful subset of YAML': github.com/Leont/yamlish
IOninja ...
Now it's just messin' with me
14:06 cale2 left
cschwenz maybe the string 'you lie to me' forces it to (re-)validate its cache? 14:07
IOninja lol
m: List.elems 14:09
camelia ( no output )
IOninja m: List.elems.say
camelia 1
IOninja m: List.Int.say
camelia Use of uninitialized value of type List in numeric context
in block <unit> at <tmp> line 1
0
cschwenz anyhow, in github.com/Leont/yamlish/blob/master/TODO.md … anyone have pointers for how to go about implementing any of the listed bullet points?
IOninja lucasb: not just, also need (::?CLASS:D:) in the sig (or Seq:Dr) 14:10
Seq:D
lucasb yes, Seq:D :)
cschwenz (as their lack of existence is why i tried using the Perl6 YAML module in the first place)
14:10 ggoebel joined
lucasb also, why it needs 3 methods that does the same thing? github.com/rakudo/rakudo/blob/nom/...m#L87-L113 14:11
only .elems check for lazyness
I tried to make a lazy seq and call .Int and .Numeric, but it seems the lazyness is checked somewhere else 14:12
IOninja m: (lazy 1, 2).Seq.is-lazy.say
camelia No such method 'Seq' for invocant of type 'Seq'
in block <unit> at <tmp> line 1
lucasb because they end up calling .elems somehow and triggers the "Cannot .elems a lazy list" message 14:13
IOninja Man, Range and Seq need .Seq :/
m: (lazy 1, 2).is-lazy.say
camelia True
IOninja m: (lazy 1, 2).Numeric.say
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja lucasb: "somehow" is via .cache that returns a List 14:14
lucasb: so it seems the laziness check in elems() isn't needed
lucasb ah, understood. thanks IOninja
IOninja Oh wait
Yeah, it is
m: (1..*).Seq.Numeric.say
camelia No such method 'Seq' for invocant of type 'Range'
in block <unit> at <tmp> line 1
IOninja rages
lucasb about the other thing you said, should the methods Range.Range, Range.Seq and Seq.Seq exists? 14:15
IOninja m: (1...*).Numeric.say
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja hm
s: (1...*), 'Numeric', \()
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/cf93...Seq.pm#L99
IOninja m: (1...*).list.say
camelia (...)
IOninja Ah, ok. Yeah, it ain't needed in elems()
lucasb wishes there was method/sub aliases 14:16
14:17 risou_awy is now known as risou
lucasb so you could just implement the .elems method and say that .Numeric and .Int are aliases of it 14:17
instead of duplicating its body
I remember lizmat++ implemented an "aka" trait, unfortunately it didn't get into core 14:18
In ruby I can say "alias length size" to have 1 method with 2 names, to use the name that I want at each moment. Sure, this lead to confusion, but anyway :) 14:21
14:21 wamba left
IOninja We already had this discussion. 14:21
14:21 risou is now known as risou_awy, risou_awy is now known as risou 14:22 skids joined
lucasb sorry to rehash this again, I forgot :) 14:22
IOninja "should the methods … exist". Maybe. Maybe not. this is on the same level as rt.perl.org/Ticket/Display.html?id=130867 in that this should be made consistent across the entire codebase instead of making it piece-meal a few types here and there. 14:23
m: FatRat.FatRat
camelia Invocant requires an instance of type FatRat, but a type object was passed. Did you forget a .new?
in block <unit> at <tmp> line 1
[Coke] IOninja: ... I've never seen that page before in my life. :) 14:24
give me a moment.
IOninja [Coke]: hm... remember some time ago you told me I can't comment on tickets I did not create, but I could because I had some special account somehow. Maybe that's the case here?
I don't even remember how I got my RT account. 14:25
[Coke] IOninja: is the URL I sent you redirecting you to the other URL you're getting to?
IOninja Oh, I didn't notice you sent me a URL
[Coke]: the url you sent me works and has the users... Wonder how to get to that page from the menus... 14:26
[Coke]: if I go to user defined groups, I get "Parrot commit" 14:27
14:27 newbie1 joined
[Coke] IOninja: there is no way to get there from the menus 14:29
you have to go to the URL I sent you
IOninja Ah. OK then 14:30
Cool, then it works.
[Coke] \o/
14:30 rurban1 joined
IOninja Looks like I have really root-like perms... I have an option to disable perl5 queue, for example. 14:31
14:32 rurban left
IOninja does the maniacal laugh thing 14:33
cschwenz o_0 14:34
IOninja :)
[Coke] be good. :| 14:40
IOninja m: use Test; is-deeply ().Seq, () 14:41
camelia ok 1 -
IOninja Looks like is-deeply is bustified a bit... I'd expect the above to fail :/
m: dd ().Seq eqv ()
camelia Bool::True
IOninja uumm... OK then :|
14:41 cyphase left
IOninja m: sub (@a, @b) { dd [@a.WHAT, @b.WHAT] }(().Seq, ()) 14:43
camelia [List, List]
IOninja Feels like I've discovered this before....
IOninja has bugjavu
14:44 cibs left
IOninja m: sub (\a, \b) { dd [a.WHAT, b.WHAT] }(().Seq, ()) 14:44
camelia [Seq, List]
IOninja m: sub (Positional \a, Positional \b) { dd [a.WHAT, b.WHAT] }(().Seq, ())
camelia [List, List]
IOninja ... I don't get it :/
Oh, seq is not positional duh 14:45
m: sub (Iterable \a, Iterable \b) { dd [a.WHAT, b.WHAT] }(().Seq, ()) 14:46
camelia [Seq, List]
14:46 cibs joined, bwisti joined
IOninja Well, worth trying this out... 14:46
IOninja puts on the bomb suit
14:46 cyphase joined
IOninja ahem 14:46
*saper's suiit
DrForr gets ready to run.
IOninja huh, sapper is "a soldier who digs trenches" in English? Weird. In Russian it's the bomb defusal guy 14:47
14:48 cschwenz1 joined 14:50 cschwenz left, rurban1 left, Actualeyes joined
stmuk I think it means both in English 14:52
"soldier engineer"
IOninja Ah 14:53
14:55 llfourn joined
lucasb m: sub f(List) {}; f ().Seq 14:55
camelia Internal error: inconsistent bind result
in sub f at <tmp> line 1
in block <unit> at <tmp> line 1
IOninja :| 14:56
lucasb I was expecting "Calling f(Seq) will never work with declared signature (List)"
IOninja m: sub f(List $) {}; f ().Seq
camelia Internal error: inconsistent bind result
in sub f at <tmp> line 1
in block <unit> at <tmp> line 1
lucasb also, how come you managed to bind a Seq to a Positinal parameter and got a List as result? 14:57
m: sub f(Positional $x) { say $x.WHAT }; f (1,2,3).Seq
camelia (List)
lucasb do Seqs get mutated somehow in argument lists? 14:58
IOninja hm, changing infix:<eqv> (@a, @b) to (Iterable \a, Iterable \b) crashes S32-hash/map.t test... hm, but inside Test.pm6
m: use Test; is-deeply Hash.Map, Map 15:00
camelia ok 1 -
IOninja fails for me...
15:00 llfourn left
IOninja m: sub (Mu $got, Mu $expected) {say $got eqv $expected}(Hash.Map, Map) 15:01
camelia True
IOninja Actually this case crashes, but not `Hash.Map eqv Map` ... wtf :/
nm, see it 15:03
m: Map.elems
camelia Invocant requires an instance of type Map, but a type object was passed. Did you forget a .new?
in block <unit> at <tmp> line 1
IOninja tis why
ZzZombo How can I declare a throw-away named argument?
IOninja m: $ = Seq eqv Seq 15:04
camelia Cannot look up attributes in a Seq type object
in block <unit> at <tmp> line 1
timotimo maybe :thename($) works
IOninja m: sub (:thename($), *%_) { dd %_ }(:meow, :thename) 15:05
camelia {:meow}
IOninja does
timotimo isn't it nice when you expect something to work and it does 15:06
IOninja :)
m: sub z (Iterable \a) { dd [a.WHAT, a.elems] }; my $s = (24, 55).Seq; z $s; say $s.elems 15:08
camelia [Seq, 2]
2
IOninja How come this doesn't trigger the "this seq has been iterated before" thing?
timotimo it potentially knows it's backed by a constant list OSLT? 15:09
IOninja What's OSLT? On Stack.. List... T?
Oh that seq isn't lazy? 15:10
timotimo or something like that
IOninja m: sub z (Iterable \a) { dd [a.WHAT, a.Bool] }; my $s = lazy 24, 55; z $s; say $s.elems
camelia [Seq, Bool::True]
This Seq has already been iterated, and its values consumed
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
IOninja ah yeah
timotimo i can't believe my hunch was correct
IOninja :D 15:11
so... 15:14
m: say ().Seq eqv ()
camelia True
IOninja That's a bug, right?
I have a fix with a spotless stresstest run... But wondering a bit if that was on purpose... 15:15
cschwenz1 p6: say ().Seq eqv ().List 15:16
camelia True
cschwenz1 p6: say ().Seq eqv ().Array
camelia False
IOninja In particular, lucasb's question... 15:17
that makes me wonder
m: sub (@a) {}( ().Seq )
camelia ( no output )
IOninja why does it get accepted
m: sub (@a) {}.signature.params[0].type.say
camelia (Positional)
timotimo ?
IOninja m: say Seq ~~ Positional
camelia False
timotimo that's the positional bind failover 15:18
IOninja Ah
IOninja looks that up
timotimo: what about ().Seq eq () giving True?
15:18 araraloren joined
timotimo no idea 15:19
15:19 elaADnlxie joined
elaADnlxie eq or eqv? ;) 15:19
timotimo eqv
15:20 andrzejku left
IOninja m: say ().Seq.Str 15:21
camelia
IOninja m: say (1, 2, 3).Seq.Str
camelia 1 2 3
IOninja m: say (1, 2, 3).Str
camelia 1 2 3
IOninja Hm.
I'll stash it in a branch and ask jnthn or TimToady
whether ().Seq eq () should give true (as it does now) or false (as in my fix) 15:22
elaADnlxie m: say (1, 2, 3).Seq eqv [1, 2, 3] 15:23
camelia False
elaADnlxie m: say (1, 2, 3).Seq eqv (1, 2, 3)
camelia True
elaADnlxie m: say [1, 2, 3] eqv (1, 2, 3)
camelia False
elaADnlxie unless there's some magic reason for it to give true, it is kinda obvious that it should be false 15:24
IOninja elaADnlxie: well, what's the magic reason for positonalbindfailover? 15:26
elaADnlxie reads 15:27
15:29 awwaiid joined
IOninja .ask jnthn would you have a second to look at github.com/rakudo/rakudo/pull/1030 ? It passes stresstest but I'm not 100% sure the original behaviour wasn't intended. 15:29
yoleaux IOninja: I'll pass your message to jnthn.
15:29 cdg joined
elaADnlxie IOninja: is it related to this? 15:30
IOninja waits for the this....
elaADnlxie to the eqv issue
IOninja elaADnlxie: yes, the reason it ends up True is because we use (@a, @b) in the sig and the failover thing turns seq into a list 15:31
15:31 cdg left
elaADnlxie IOninja: so it caches it unnecessarily? 15:31
IOninja I guess.
15:31 cdg joined
IOninja Well, I dunno 15:31
m: say (lazy 2, 3) eqv 54 15:32
camelia False
IOninja m: my $x = (lazy 2, 3); $ = $x eqv 54; say $x.elems
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja It's not like you can use it afterwards
m: my $x = (lazy 2, 3); $ = $x eqv 54; say $x.cache.elems
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja m: my $x = (lazy 2, 3); $ = $x eqv 54; say $x.cache.Array.flat
camelia (...)
IOninja m: my $x = (lazy 2, 3); $ = $x eqv 54; put $x.cache.Array.flat 15:33
camelia ...
IOninja jesus
m: my $x = (lazy 2, 3); $ = $x eqv 54; put $x.cache[1]
camelia 3
IOninja well... that still works on my version...
elaADnlxie: I don't know how the bind thing works, but unless types mismatch `eqv` goes to check each element and reifies everything when things are the same 15:35
elaADnlxie: why did you change nick. This one's hard to remember and I can't .tell you stuff 15:36
15:36 n1ce left
IOninja And you don't read `AlexDaniel: ...` stuff 15:36
15:37 n1ce joined
araraloren Oh, elaADnlxie is AlexDaniel .. :) 15:37
Magic .
IOninja And LeCamarade is Zoffix 15:38
We're all cross-nickers
DrForr Don't get your nicks all in a twist.
15:39 elaADnlxie left 15:40 [Coke] is now known as Cok, Cok is now known as [Coke]
moritz [Coke]: re RT bugadmin, how does that work? 15:41
[Coke] people complain they can't update tickets. You verify they are upstanding citizens, then go to that link, and add their RT login id (or email) and submit. 15:42
I have never had occasion to remove someone from the list, but you could do that too. 15:43
moritz [Coke]: is rt.perl.org/Admin/Groups/Members.html?id=178234 "that link"? 15:44
no, "parrot commits" sounds wrong
[Coke] no 15:45
ZzZombo m: say 0e0=>Inf
m: say Inf=>0e0
camelia 0 => Inf
Unexpected named argument 'Inf' passed
in block <unit> at <tmp> line 1
[Coke] I sent you the link
ZzZombo :s
[Coke] Was in the email.
ZzZombo is there a Pair analog for any values as the key? 15:46
15:46 wamba joined
IOninja ZzZombo: what makes no sense. 15:47
ZzZombo what or that, if the first, I
moritz [Coke]: haven't got any emails yet; will check my spam filter
m: say Pair.new(2, 2).key.^name
camelia Int
ZzZombo 'm confused by the dot at the end of the sentence
[Coke] it's on your RT email addy, if that helps.
IOninja ZzZombo: is there a car analog for any human as the passenger? 15:48
moritz ZzZombo: ^^ a pair with non-Str key
[Coke] ZzZombo: do you mean "Any", not any?
IOninja Oh, now I understand
[Coke] moritz++
ZzZombo m: say Pair.new(Inf,0e0)
camelia Inf => 0
[Coke] m: say Pair.new(Inf,0e0).perl; 15:49
camelia (Inf) => 0e0
IOninja m: (42 => 42).key.^name.say
camelia Int
ZzZombo thanks, moritz
IOninja Actually, no I wasn't wrong.
moritz found an email from my wife in the spam filter, but not from [Coke]++ :(
IOninja Pairs do not stringify keys
m: ((Inf)=>0e0).key.^name.say 15:50
camelia Num
IOninja m: %(Inf=>0e0).keys[0].^name.say
camelia Str
timotimo are you saying we need a %:() syntax?
[Coke] irc'd it. 15:51
IOninja timotimo: what would it do?
[Coke] ... that looks some sort of ASCII animal.
timotimo it'd give you an object hash
much like :{ } does
IOninja ....
[Coke] m: :{ } :cookie!
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus postfix
at <tmp>:1
------> 3:{ } :cookie7⏏5!
expecting any of:
infix
infix stopper
statement end
statement modifier
statement modifie…
[Coke] m: :{ }, :cookie!
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus postfix
at <tmp>:1
------> 3:{ }, :cookie7⏏5!
expecting any of:
infix
infix stopper
statement end
statement modifier
statement modifi…
[Coke] aw.
IOninja timotimo: ... and so we don't need any syntax? 15:52
m: :{Inf=>0e0}.keys[0].^name.say
camelia Str
IOninja m: :{(Inf)=>0e0}.keys[0].^name.say
camelia Num
timotimo *shrug*
IOninja m: $_ = 42; :{ $_ =>0e0}.keys[0].^name.say
camelia Int
timotimo that's probably correct
15:54 cschwenz1 left
jnthn IOninja: PositionalBindFailover is so that you can have `sub foo(@a) { }` and call it with stuff like foo(@b.grep(*.bar)), which should not work otherwise since Iterable is not Positional 15:56
yoleaux 15:29Z <IOninja> jnthn: would you have a second to look at github.com/rakudo/rakudo/pull/1030 ? It passes stresstest but I'm not 100% sure the original behaviour wasn't intended.
15:56 llfourn joined 15:57 pyrimidine left 15:58 pyrimidine joined
IOninja m: say ().Seq eqv () 15:58
camelia True
IOninja ^ is that not a bug for the same reasons, then?
jnthn It's a bug because eqv is meant to distinguish by type
IOninja \o/
I'll merge the PR thenm 15:59
jnthn I'd guess eqv was a casualty of the GLR behavior change
16:00 araraloren left 16:01 cdg left 16:02 llfourn left, cdg joined, pyrimidine left
IOninja ugh, GitHub seems to be bent on making the site as ugly as possible. 16:03
They now changed all the merge colors to Burn-Out-Your-Retina Blue
And I bet this was because after the top bar change people told them notifications icon was hard to notice -_- 16:04
[Coke] I see the code links are now a deeper blue. Reminds me of C64
IOninja oh god, yes, the links changed too >_< 16:05
Reminds me of the 90s when all the sites had default blue link colours.
[Coke] FWIW, I am not bothered by their color choices. 16:06
16:06 telex left
IOninja I'm terribly annoyed. 16:07
16:07 telex joined
IOninja The old colours were very welcoming. The new style—especially with this caustic blue—just make me want to close the page ASAP 16:08
There are always user styles, I guess....
16:08 domidumont left
timotimo *sigh* the good old times when all your site needed to stand out was non-default links for normal, hover, and visited ... 16:12
16:14 pyrimidine joined
Geth ecosystem: fd233e6de7 | (Jonathan Worthington)++ | META.list
Add SSH::LibSSH.
16:17
16:19 bbkr_ left 16:22 CIAvash left
IOninja The good old times when www.csszengarden.com was the ideal and not "some nerd booed us for using default bootstrap colours so let's change them by banging our head on the number pad!" 16:22
timotimo %) 16:23
that face when your buddy has a hexadecimal number pad and you just can't stand that every keyboard out there only has decimal numpads 16:24
IOninja :) 16:25
16:27 pyrimidine left, pyrimidine joined 16:28 lucasb left
IOninja Having trouble reproing this to write a test: rt.perl.org/Ticket/Display.html?id=127403 16:30
At least via a bot...
IOninja builds 2016.01 release...
[Coke] win 32
IOninja [Coke]: you won!
[Coke] oops
16:31 aindilis left 16:32 pyrimidine left
timotimo i'm glad microsoft finally built a proper win64 16:32
16:33 khw joined
[Coke] timotimo: nerdist.com/smash-mouths-all-star-m...our-brain/ 16:33
timotimo all star is a fantastic base upon which to build memeperiums 16:34
16:34 gdonald_ left 16:35 gdonald_ joined
IOninja Can't repro with a build either.... 16:35
Guess I'll close it without a test...
timotimo so sad that the linux/opensource people haven't yet built a worthy replacement for Space Cadet
it's very clear that linux has only such a weak presence on the desktop because of lack of space cadet 16:36
i mean, they already have solitaire and spider solitaire and also minesweeper
16:41 elaADnlxie joined
elaADnlxie . 16:42
16:42 elaADnlxie is now known as AlexDaniel
AlexDaniel . 16:42
16:42 AlexDaniel is now known as elaADnlxie
elaADnlxie IOninja: nobody .tells me anyway :) 16:42
IOninja I suspect this bug hits OSX only. If anyone has OSX and can build 86a90be to repro the bug and write the test to cover it: rt.perl.org/Ticket/Display.html?id...xn-1451967 16:43
elaADnlxie IOninja: thing is, I'm wondering what should happen if you eqv two Seqs
IOninja: or even a Seq and something else
pretty sure they should not be reified
IOninja elaADnlxie: 'cause you were using this weird nick and I didn't bother using the bot, it was just amention in hopes you at least read the log
elaADnlxie I do, sometimes :) 16:44
IOninja Well, I said something
I forget what
Oh, no I didn't 16:45
But I wanted to
elaADnlxie now you understand how we feel… :)
IOninja It's about (HEAD) in tickets. I've no idea what HEAD is when reading the ticket, so if that's bot-generated the bot should say what SHA the head is
mc: say 42 16:46
committable6 IOninja, ¦«2015.12»:
elaADnlxie right! I've never thought about it
IOninja: and now you finally noticed how I broke the bot!
timotimo we can probably convert a date/time into "what is HEAD in commitable right now?"
IOninja Oh hehe
elaADnlxie e: say 42
evalable6 elaADnlxie, rakudo-moar dd1dab2e3: OUTPUT«42»
elaADnlxie evalable kinda does it already
wow, what a SHA…
c: HEAD say 42 16:47
committable6 elaADnlxie, ¦«HEAD»: 42
timotimo it's easy as 1 2 3
elaADnlxie committable doesn't
there's this ticket also: github.com/perl6/whateverable/issues/49
(if open, then not fixed)
SmokeMachine Im fixing the ?? !! PR... I have a question: do you the unicode ⁇ should match the not unicode !! and vice-versa? in my opinion it shouldn't... but I just want to be sure... 16:54
16:55 eroux joined 16:56 llfourn joined
moritz is there a good reason to require a match? 16:56
m: say ༩9 16:57
camelia 99
moritz we allow mixing of scripts in numbers, so I think it would be consistent to allow a mixing here too
IOninja m: say 42 »+« 55 16:58
camelia 97
IOninja m: say 42 »+<< 55
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing « or »
at <tmp>:1
------> 3say 42 »+7⏏5<< 55
expecting any of:
infix
infix stopper
SmokeMachine moritz: match, I mean: ⁇ !! and ?? ‼ be OK
IOninja We don't allow that here, and IMO we shouldn't
SmokeMachine IOninja: ok! i agree!
IOninja The `⁇ !!` looks like "it works only by accident" to me. There's no good reason to mix them that way when writing code. 16:59
SmokeMachine IOninja: I trying to make ?? !! and ⁇ ‼ a single token...
IOninja: I agree...
17:01 llfourn left
IOninja m: "༩9".comb».uniprop.say 17:01
camelia (Nd Nd)
IOninja And these work because they have the same Unicode property 17:02
17:02 rurban joined
elaADnlxie I'd say it should work, but then »<< stuff has to be changed as well. Therefore no :) 17:02
SmokeMachine IOninja: Im trying something like this... but the $*GOAL inside of the [] isn't working... www.irccloud.com/pastebin/gQSxKzMR/ 17:03
IOninja SmokeMachine: stick {} before it 17:04
SmokeMachine IOninja: do you mean {$*GOAL} ? 17:05
IOninja That's not before it :)
Hold on. 17:06
SmokeMachine IOninja: sorry, but {}$*GOAL didn't make sense for me... :P
IOninja m: grammar { token TOP { <foo> {} :my $*GOAL = $<foo> eq 'foo' ?? 'x' !! 'y'; [$*GOAL ]}; token foo { .**3 } }.parse('foox').say 17:07
camelia 「foox」
foo => 「foo」
IOninja m: grammar { token TOP { <foo> :my $*GOAL = $<foo> eq 'foo' ?? 'x' !! 'y'; [$*GOAL ]}; token foo { .**3 } }.parse('foox').say
camelia Use of Nil in string context
in regex TOP at <tmp> line 1
Nil
IOninja Right, before the `:my` thing
SmokeMachine IOninja: thanks! 17:08
IOninja SmokeMachine: updating $/ is very expensive so it's not done willy-nilly and empty {} forces the update, so that ~$<sym> inside the :my thing has proper value
SmokeMachine thanks! I got it!
IOninja SmokeMachine: and $*TERNARYBEGIN stuff... that can probably be avoided by just using the ~$<sym> instead 17:10
like, don't store it in a variable
SmokeMachine IOninja: yes, Im going that way!
IOninja And in `~$<sym> eq '??'` eq already stringifies, no need for `~`
SmokeMachine ok 17:11
17:12 ribasushi left
IOninja Well, any block forces the update, not just the empty one. But if you don't got any code to run in a block, you can use an empty ojne. 17:15
perlpilot wonders how to type the unicode ?? on his keyboard without needing to know the hex value. 17:16
I may need to remap <compose>?? to be ⁇ instead of ¿
IOninja same 17:17
¡
perlpilot yeah, that too
17:18 esh left
IOninja u: ⁇‼ 17:18
unicodable6 IOninja, U+2047 DOUBLE QUESTION MARK [Po] (⁇)
IOninja, U+203C DOUBLE EXCLAMATION MARK [Po] (‼)
elaADnlxie you can add it to your compose file, or you can add it to your keyboard layout directly
IOninja The codes are pretty easy to remember :)
elaADnlxie or you can configure your editor
IOninja m: say 42 ⁇ "heh" ‼ "meow"
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3say 427⏏5 ⁇ "heh" ‼ "meow"
expecting any of:
infix
infix stopper
postfix
statement end
statement modifier…
elaADnlxie … or you can learn to use your editor so that you can search characters by name…
IOninja Hm, these are starting to grow on me :} 17:19
elaADnlxie IOninja: wait for ≤ ≥ ;)
SmokeMachine is mon broken?
IOninja elaADnlxie: And the =/=
elaADnlxie oh, ≠, right 17:20
IOninja No idea what the code for it is
u: ≠
unicodable6 IOninja, U+2260 NOT EQUAL TO [Sm] (≠)
IOninja SmokeMachine: what's 'mon'?
n
SmokeMachine sorry, nom 17:21
IOninja eyes ≢ and ≣
SmokeMachine: nope, passed all stresstests on its last commit.
elaADnlxie note for emacs users: C-x 8 RET to enter characters by name, and helm can help you with the search
IOninja SmokeMachine: did you pull from rakudo/rakudo tho?
SmokeMachine git pull --rebase github.com/rakudo/rakudo 17:22
IOninja Yeah, and did that succeed?
SmokeMachine: and... did you do it recently to pull all the changes?
Oh, reminds me, I need to write the test for ().Seq eqv () thing
SmokeMachine: also is t/spec perl6/roast/master or is it your fork that's now outdated? 17:23
SmokeMachine yes... but its not I just did it... and now make doesn't work... 17:24
IOninja run configure 17:25
perl Configure.pl --gen-moar --gen-nqp --backends=moar; make; make test; make install
SmokeMachine of course! sorry!
about the t/spec, I do this: www.irccloud.com/pastebin/Fd5FBqrF/ 17:26
IOninja m: use Test; cmp-ok 42, '!eqv', 43
camelia not ok 1 -

# Failed test at <tmp> line 1
# Could not use '"!eqv"' as a comparator.
IOninja m: use Test; cmp-ok 42, &[!eqv], 43 17:27
camelia ok 1 -
IOninja Str version should prolly do the same thing; though I recall the code for it is tricky as it is....
SmokeMachine IOninja: running stress tests... 17:31
IOninja don't forget TEST_JOBS var 17:32
SmokeMachine does dubious tests mean error?
IOninja yes, that's often due to them failing to compile 17:33
17:34 sufrostico left, sufrosti1o left, sufrostico joined 17:35 sufrosti1o joined
SmokeMachine IOninja: now I have to ride my girls to the movies... should I update my PR to get more comments and see what happened with the tests when I get back? or should I update when the tests are passing? 17:37
IOninja SmokeMachine: update when tests are passing. 17:38
SmokeMachine ok
IOninja And well,. show the tests on IRC, maybe some failures aren't due to your PR
timotimo especially since we also have added some roast commits and some rakudo commits since that PR started 17:44
IOninja lulz S03-operators/eqv.t has seriously Perl-5-ish tests in it 17:46
timotimo it's probably 10 years old
IOninja my $a = \3; my $b = \3; ok ($a eqv $a), "eqv on scalar references (1-1)";
timotimo "references" %)
m: my $a = \3; dd $a
camelia Potential difficulties:
To refer to a positional match capture, just use $0 (numbering starts at 0).
Parenthesize as \(...) if you intended a capture of a single numeric value.
at <tmp>:1
------> 3my $a = \7⏏053; dd $a
Cap…
timotimo yeah
that's skipped, right? 17:47
IOninja No
That's just a warning.
timotimo oh
IOninja m: $*ERR.close; my $a = \3; dd $a 17:48
camelia Potential difficulties:
To refer to a positional match capture, just use $0 (numbering starts at 0).
Parenthesize as \(...) if you intended a capture of a single numeric value.
at <tmp>:1
------> 3$*ERR.close; my $a = \7⏏053;…
IOninja :(
m: BEGIN $*ERR.close; my $a = \3; dd $a
camelia ( no output )
IOninja m: BEGIN $*ERR.close; my $a = \3; say $a
camelia ( no output )
timotimo need to ... yeah
IOninja orly
17:48 pyrimidine joined
IOninja Ah, tis the bot quirk 17:50
Doesn't do anything in normal terminal
"You have POTENTIAL difficulties in your code, but I won't stfu, so you may as well go ahead and change them right now. Love. Perl6" 17:51
timotimo haha 17:52
it does offer something to shut the compiler up
in this case \(3) instead of \3
IOninja heh
timotimo which is also how it prints it out
17:53 dakkar left, ZzZombo_ joined, mcmillhj left, mcmillhj joined 17:54 ZzZombo left 17:56 Sound joined, ambs joined 17:57 llfourn joined, ribasushi joined
IOninja m: use MONKEY; class Foo { method message { say "class" } }; role Bar { method message { say "role" } }; augment class Foo does Bar {}; Foo.new.message 17:59
camelia class
IOninja Is there a way to replace a method in a class?
18:02 llfourn left
timotimo well, putting a method into a class that's the same as in a role is how you resolve conflicts in multiple-inheritance situations 18:02
[Coke] m: use MONKEY; class Foo { method message { say "class" } }; agument class Foo {method message { say "ook"}; Foo.new.messsage; 18:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Redeclaration of symbol 'Foo'
at <tmp>:1
------> 3age { say "class" } }; agument class Foo7⏏5 {method message { say "ook"}; Foo.new.m
expecting any of:
generic role
18:05 aindilis joined
[Coke] m: use MONKEY; class Foo { method message { say "class" } }; augment class Foo {method message { say "ook"}; Foo.new.messsage; 18:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Package 'Foo' already has a method 'message' (did you mean to declare a multi-method?)
at <tmp>:1
IOninja m: class Foo { method message { say "class" } }; Foo.^lookup('message').wrap: method () { say "role" }; Foo.new.message
camelia role
IOninja m: \3 18:11
camelia Potential difficulties:
To refer to a positional match capture, just use $0 (numbering starts at 0).
Parenthesize as \(...) if you intended a capture of a single numeric value.
at <tmp>:1
------> 3\7⏏053
IOninja m: BEGIN X::Comp::Group.^lookup('gist').wrap: -> | { say "'You're the boss, boss! I'll keep my face shut'" }; \3 18:12
camelia 'You're the boss, boss! I'll keep my face shut'
True
IOninja ehehe. I showed it who's boss :}
18:12 esh joined, zakharyas left
IOninja m: BEGIN X::Comp::Group.^lookup('gist').wrap: -> | { "'You're the boss, boss! I'll keep my face shut'" }; say \3 18:12
camelia 'You're the boss, boss! I'll keep my face shut'\(3)
IOninja m: BEGIN X::Comp::Group.^lookup('gist').wrap: -> | {''}; say \3 18:13
camelia \(3)
[Coke] Any sixers in NYC? I'll be visiting for perl things on the 14th. 18:15
18:17 esh left
IOninja m: sub infix:<?> is tighter(&postfix:<i>){ $^a || $^b }; say 42 ? 5 18:18
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3hter(&postfix:<i>){ $^a || $^b }; say 427⏏5 ? 5
expecting any of:
infix
infix stopper
postfix
statement end
st…
IOninja Can't define your own op that's a `?`, eh?
timotimo bah, smls beat me by about 2 minutes on stackoverflow
18:19 risou is now known as risou_awy 18:20 risou_awy is now known as risou 18:21 jonas1 left
IOninja heh, that person with PCRE jumping in :P 18:21
18:22 cyphase left
timotimo yeah 18:23
18:27 esh joined, cyphase joined, pyrimidine left 18:28 pyrimidine joined, esh left
IOninja keeps mixing up meanings of <before>/<after> 18:31
18:34 pyrimidine left, esh joined
IOninja
.oO( Pro::Test )
18:36
Gonna make a testing module. 18:37
tony-o IOninja: check out 'Green' 18:38
IOninja buggable: eco green
buggable IOninja, Green 'Parallel testing utility, it's really great': github.com/tony-o/perl6-green
tony-o if you want to contribute/have feedback i'd love to have/hear it
IOninja no docs?
tony-o ugexe.com/parallel-testing-and-a-pe...ilgrimage/
i have a bug that was filed, i'm writing docs as we speak, actually 18:39
(writing docs in the README rather than a link to the blog post in the README) 18:40
IOninja My first impression is it looks really ugly.
What's with that epileptic skull at the end?
tony-o my sweet profile photo 18:41
IOninja tony-o: so does it produce TAP?
tony-o what do you mean it looks ugly, the output?
IOninja: it consumes TAP
IOninja Oh
No I meant the code. All the brace-fest 18:42
IOninja installs
`zef install github.com/tony-o/perl6-green` don't work... I thought it was the future!
tony-o it's doable without all of the braces (with the exception of the subs) 18:43
lol, really?
IOninja I think it expects a ZIP archive or something
tony-o oh my zef is in the middle of changes
and it's borked
18:44 jdickens joined
tony-o `zef install Green` should work, though 18:44
IOninja I just cloned and zef install .
tony-o that works too
IOninja Seems to be just hanging... Unless it's compiling a gajillion of modules :/
tony-o terminal::ansicolor 18:45
is the only module it uses
18:45 Actualeyes left
IOninja This is what I'm trying: gist.github.com/zoffixznet/4a7e298...901eb25407 18:45
And I get no output, it just sits there
18:46 espadrine joined
jdickens Does anyone remeber the name of the video where a guy from a big perl shop (perhaps bookings.com) say they choose perl because they got tired of going with the latest fad framework/language 18:46
IOninja jdickens: dunno, but that sounds like something Curtis 'Ovid' Poe might say....
tony-o IOninja: you'd run that file with green, not perl6 18:47
IOninja Ohh
tony-o still hangs, looks like i need to remove some dust from that one too - arg 18:48
IOninja :)
tony-o there is a lot of shorthand ways without all of the braces, checkout the examples/ folder 18:49
IOninja tony-o: I assume in the shorthand `ok 1 == 1;` I can still add proper description?
tony-o yessir 18:50
IOninja tony-o: FWIW, I'm a bit amused with the description on the site about making it easy to run, but the first thing I tried running is green my-test-file and it complained that there's no such such directory and I had to create one and move the test file there :) 18:51
tony-o yea i know
looks like i have a queue of old modules i need to maintain :-) 18:52
IOninja :)
tony-o it *was* easy to run when it was working, though 18:54
that's my excuse, anyway
IOninja has 6p alias to run tests :P
`prove -e 'perl6 -Ilib' -vlr` 18:55
DrForr IOninja: '6p' and '6' here :)
tony-o i just use !pro and it runs the same prove command i originally used 3 years ago
18:58 llfourn joined 19:00 effbiai left 19:01 cdg_ joined 19:02 effbiai joined 19:03 llfourn left
tony-o found the issue IOninja , the errors aren't bubbling out of scope anymore, doh 19:03
Geth ecosystem: bradclawsie++ created pull request #300:
add Context
19:05 cdg left 19:06 cdg_ left
Geth ecosystem: 2cf6648946 | (Brad Clawsie)++ | META.list
add Context (#300)

  github.com/bradclawsie/Context
19:07
IOninja tony-o: but in any case, for Pro::Test I was thinking more of re-touching Test.pm6 a bit. Its routines are basically Perl 5's copies, which don't fit well into Perl 6. 19:08
19:08 darutoko left
IOninja Not a whole 'nother system of testing 19:08
tony-o i'd love to see that 19:09
IOninja Like, `is`. I'll burn it with fire.
tony-o and i could integrate green with it
IOninja Cool.
Won't happen any time soon, 'cause I gotta do IO stuff for the next 2 months :P 19:10
19:10 nowan_ joined
IOninja ninjaing /o/ -o- \o- 19:10
tony-o i'm a fan of getting the IO stuff tip top
not that it's not already pretty ++ 19:11
IOninja
.oO( you clearly haven't seen the code :o )
:D
Hm, and after IO I wanted to sort out the FatRat stuff. 19:12
19:12 risou is now known as risou_awy, nowan left
IOninja Time to quit my job and be hobo! I can always program at a local library :P 19:12
19:13 risou_awy is now known as risou
tony-o i have seen it, i've spent a lot of time digging around in it and chatting with timotimo and jnthn :-), it works and it's come a long ways since 2012 when i first started digging around in there 19:16
IOninja :) 19:17
El_Che IOninja: weren't you a hobo already? ;) 19:18
19:18 jdickens left
IOninja El_Che: why do you say that? 19:19
tony-o Green fixes are pushed up to github IOninja
IOninja I actually have been a hobo for about a month in my teens but didn't really realize it at the time...
tony-o: cool 19:20
tony-o being a hobo is fun, ultraromance++
El_Che IOninja: you change nicks al the time. I thought you used the one on whatever public pc was used ;) 19:22
IOninja lol
19:30 alphah joined, labster joined 19:31 risou is now known as risou_awy
alphah Hello Perl6, How to disable the error message when try to shift empty array? 'p6: my @a.shift or die "Usgae:"' 19:33
[Coke] m: my @a; @a.shift; 19:34
camelia Cannot shift from an empty Array
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja p6: try (my @a.shift) or die "Usgae:"
camelia ( no output )
IOninja was hoping for output there... 19:35
alphah: back up a bit. Why do you need this?
[Coke] @a // @a.shift
IOninja :/
useless use of // :) 19:36
timotimo IOninja: i expect your try was swallowing the whole statement
i.e. do it like this:
p6: (try my @a.shift) or die "Usage: " 19:37
IOninja timotimo: mhm, paren in wrong place
camelia Usage:
in block <unit> at <tmp> line 1
[Coke] perhaps I meant @a && @a.shift. :P
IOninja perhaps .shift should die :) I don't get why it does
timotimo um but it does already die? 19:38
IOninja *shouldn't
timotimo oh
IOninja alphah: you still alive?
19:38 Ven joined
timotimo m: my @a.pop # also dies 19:38
camelia Cannot pop from an empty Array
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja alphah: kinda sucks that you ask a question and leave, while the rest of ask asked you questions and waiting for response...
alphah @IOninja I need to shift the array based on user input (it's Arguments array) and I need to assign an Arg. A value. 19:40
I did not leave, I'm just rying to explain why I need it,, (English is my not first so it take time)
DrForr alphah: 'my @a.shift;' would throw away the shifted value, if it did work. You probably wanted 'my $arg = @a.shift;' which would preserve the argument. 19:41
IOninja alphah: but how do you end up with an array that has stuff that you want to shift in the first place?
moritz alphah: maybe you want @a && @a.shift ?
DrForr alphah: Also, you might want to read the documentation for MAIN - It can do some things that you might be overlooking. 19:42
alphah I'll post the code, one minute
IOninja OK
timotimo and of course looking at the multiple GetOpt and similar modules also probably helps 19:43
[Coke] (use a paste service, please)
alphah I dont want to use getopt, i need the program args to look like Human sentences,, without "--" or "-":any way here is the code: 19:46
19:46 lep_ left
alphah while @!laws.shift -> $law { 19:46
given $law { -> $law {
IOninja alphah: would you use a pastebin please? It's hard to read (or run) code pasted into IRC
19:46 lep-delete joined
IOninja alphah: here: gist.github.com/ paste code. Press button, and give us the url of the page 19:47
alphah alright one secone (Have not used it before), and sorry guys I'm tottaly noop
IOninja noop :P{
19:47 bjz joined
DrForr alphah: We all had to start somewhere :) 19:48
IOninja Except me. I was born awesome.
[Coke] IOninja: really? What happened?
IOninja Hm?
I don't get it. 19:49
[Coke] is implying that you are no longer awesome, and then asks what happened to cause the change.
19:49 esh left, esh joined
IOninja Oh, ok 19:49
timotimo haha ooooh
[Coke] ¿uɹnq ǝɥʇ ʃǝǝɟ 19:50
IOninja While we wait: on the subject of things dying.... .push dies, but .pop returns a Failure
and .unshift, .shift return Failures
alphah gist.github.com/anonymous/e7a70d17...dc3f63be65
IOninja hahaha 19:51
I knew Perl 6 with 8-space tab looked mental :P
alphah: but that's not all the code. Where do you get @!laws from?
timotimo i'd get neck cramps from coding like that
IOninja alphah: AND where is that used afterwards that you're shifting from it? 19:52
alphah I actually have 2-tab but "cat" and copy/paste converted it 19:53
timotimo ah, of course
alphah anyway @!laws = @*ARGS
IOninja alphah: what I mean is... you do know you can write it with a `for`: gist.github.com/zoffixznet/3462578...2b051765a0
19:53 pyrimidine joined
IOninja alphah: OK, but why shift it? As opposed to leaving it as is. 19:53
moritz Please vote for covers for the "Perl 6 by Example" book: en.99designs.de/contests/poll/f5ls74 19:54
alphah say the use will run the program is program.p6 arg1 valu1 arg2 val2 arg3bool
IOninja moritz: #57 by far 19:55
alphah: but you just wanna loop over all the args, right.
alphah yes 19:56
moritz IOninja: thanks
IOninja alphah: right, so toss shift outta the window. It's for modifying arrays and you don't care about it. Just loop over it with `for`
19:56 ggoebel left
moritz IOninja: can you please also leave a vote on that page, so that I don't lose overview? :-) 19:57
IOninja Done. I think.
moritz I says votes (0) :( 19:58
ah no
only on the overview
thanks! 19:59
IOninja m: @*ARGS = 'origin'; multi MAIN (@ ('origin')) { say "meow"; }
camelia Usage:
<tmp> <Positional>
IOninja It doesn't like literals in subsigs?
19:59 llfourn joined
IOninja Ah, need a slurp 20:00
Um, nope
m: @*ARGS = 'meow meow meow'; multi MAIN (*@ ('origin')) { say "meow"; }
camelia Usage:
<tmp> [<Positional> ...]
IOninja :/
nm... PEBKAK
20:02 labster left
alphah @IOninja will see if I can get rid of shift 20:03
IOninja alphah: it's in the first gist I showed you. Just use `for @!laws -> $law`
alphah: also, you can do stuff like this: gist.github.com/zoffixznet/737ba01...189cce19b8
oh wait, you don't need the slurpy :} 20:04
alphah: I meant this: gist.github.com/zoffixznet/399d32f...85d1e97980 20:05
20:05 llfourn left
alphah alright will take a look at these, Thanks for help 20:05
IOninja m: my @laws = <power force meow>; for @laws { when 'power' { say 'Power overwhelming' }; when 'force' { say 'Use the force, Luke' }; when 'meow' { say 'KITTY!' } } 20:08
camelia Power overwhelming
Use the force, Luke
KITTY!
IOninja m: my @laws = <power force meow>; while (try @laws.shift) { when 'power' { say 'Power overwhelming' }; when 'force' { say 'Use the force, Luke' }; when 'meow' { say 'KITTY!' } } 20:09
camelia ( no output )
IOninja Glitch?
works if you declare explicit -> $_ sig 20:10
20:10 ajr_ joined
IOninja m: Nil.head 20:11
camelia Cannot resolve caller head(Nil: ); none of these signatures match:
(Any:D $: *%_)
(Any:D $: $n, *%_)
in block <unit> at <tmp> line 1
IOninja Another area in need of polish. Our "safe call" operator ain't that safe. 20:12
ajr_ By dint of some scary fiddling with swap space, I have managed to install Perl 6 on a Raspeberry Pi 3
IOninja wooo \o/
ajr_: how much spaw did you use?
ajr_ Some of the tests for Rakudo* failed, but Perl 6 REPL says "Hello" back to me 20:13
IOninja Cool
[Coke] \o/
ajr_ I changed the multiplier to 3 and assigned it to a USB key 20:14
IOninja cool
m: say Cool xx 5
camelia ((Cool) (Cool) (Cool) (Cool) (Cool))
ajr_ (Do not assign unlimited swap to your SD card; the result will be very painful
)
That was with 2016.10. I'll try 2017.01. If I get test failures, where's the best place to report them? 20:16
IOninja huggable: rakudobug 20:17
huggable IOninja, Report bugs by emailing to [email@hidden.address]
IOninja ^ there
ajr_: FWIW, instead of building Rakudo Star just build the compiler.
ajr_: rakudo.org/downloads/rakudo/
ajr_: do you have git on that thing? After you install the compiler, just clone github.com/ugexe/zef and run perl6 -Ilib bin/zef install . in the repo to bootstrap it 20:18
ajr_: oh, also I misspoke. The failures: if they're Rakudo's tests, report them by emailing to [email@hidden.address] but if these are module failure tests, report them to the appropiate module author. You can usually get the repo by going to modules.perl6.org/repo/THE_MODULE_NAME 20:19
20:20 ajr_ left
IOninja heh 20:21
20:21 cpage_ left
IOninja Hope they got the correction about where to report stuff. 20:21
20:23 ZzZombo_ left
IOninja huggable: zef 20:25
huggable IOninja, nothing found
IOninja huggable: zef :is: To install Perl 6's zef package manager: cd $(mktemp -d); git clone github.com/ugexe/zef .; perl6 -Ilib bin/zef install .
huggable IOninja, Added zef as To install Perl 6's zef package manager: cd $(mktemp -d); git clone github.com/ugexe/zef .; perl6 -Ilib bin/zef install .
IOninja huggable: zef :is: To install Perl 6's zef package manager: cd $(mktemp -d) && git clone github.com/ugexe/zef . && perl6 -Ilib bin/zef install . 20:26
huggable IOninja, Added zef as To install Perl 6's zef package manager: cd $(mktemp -d) && git clone github.com/ugexe/zef . && perl6 -Ilib bin/zef install .
20:27 ZzZombo joined, ZzZombo is now known as Guest11969 20:32 ajr_ joined
ajr_ Sorry, flaky connection dropped me. Why do you recommend compiler-only, rather than R*? 20:33
timotimo we didn't make a rakudo star release for the past month yet 20:34
20:34 wamba left, Guest11969 left
geekosaur r* always lags a bit, rakudo dev moves quickly whacking bugs in key areas 20:36
like, if you're playing with threads, you almost always want to track rakudo git
20:37 labster joined
IOninja ajr_: not to the the most regular users, but you're doing something tricky and it sounds like you could benefit from NOT installing all the modules that come with Rakudo Star that you most likely won't ever use. 20:37
ajr_: I mean... Rakudo Star *is* for most regular users who just want to push button and receive bacon
ajr_ I'm nowhere near that bleeding-edge. Isn't verifying the building process for the masses useful?
I'm concerned about all the Python hissing, especially on the Pi. I want to make sure that noobs have a guide 20:39
IOninja ajr_: what sort of RPi you got? I wanna get one myself... 20:41
The one that managed to build Perl 6
Though, I suppose fixing all the test failures on Windows would be a more desirable task. 20:43
If anyone wants to have a go: github.com/perl6/roast/issues/197 20:44
20:48 lichtkind_ joined, f3ew_ joined, garu_ joined, mls_ joined, b^_^d joined, ggoebel joined
stmuk I've built R on a RPI3 before although I had to upgrade GCC (the one Raspian ships with or shipped with gave me an odd internal error) 20:50
ajr_ IOninja - the one that came with a Pi-Top CEED pi-top.com/product/ceed - a 3
(Using the Pi-top OS) 20:51
20:51 lichtkind__ left, Util_ joined
[Coke] IOninja: did jnthn's recent \n | \r\n fix help any of those? 20:52
20:53 Util left, mls left, d^_^b left, garu left, f3ew left, eroux left
ajr_ stmuk - what did you do about swap space? 20:53
stmuk I think I added an extra swap file 20:54
ajr_ BTW, giving make -j 4 seemed to be worthwhile. Watching top, at least a couple of times it seemed to be running > 1 job 20:58
21:00 cdg joined 21:01 llfourn joined 21:02 TEttinger joined
ajr_ stmuk - where did you put it? I set the swap file to a USB key, which seemed to work, despite only being USB 2 21:05
stmuk I think I had a total of 2GB VM and it took several hours (forget exactly how long). Next time I shall try -j
21:05 mr-foobar left
stmuk ajr_: I forget exactly where 21:06
21:06 llfourn left
IOninja [Coke], haven't tried but I doubt it's more than a couple 21:07
21:07 kurahaupo__ joined 21:09 ajr_ left
lucs (bis) Inline::Perl5 problem: gist.github.com/lucs/dd83de28db512...5878eb00c2 21:09
21:10 bjz left 21:12 gdonald_ left 21:15 risou_awy is now known as risou
lucs My description is probably pretty thin to help for debugging, but maybe someone can suggest what else would be needed to make a proper issue report. 21:16
The Perl 5 code I happen to be inlining is not mine, and I don't quite know how to make extract a small working (or rather, failing) example. 21:17
s/make //
21:18 pyrimidine left 21:19 pyrimidine joined 21:21 sena_kun joined 21:22 darthdeus joined
darthdeus hey guys, I just found out about perl6 today and holyshit :O how is this not the best language ever? :D 21:22
IOninja It is :) 21:23
What do you like about it?
darthdeus huffman coding syntax :P metaoperators, perfect lambda syntax, exception/error handling, grammars :P 21:25
elaADnlxie darthdeus: you're welcome in our efforts to make rakudo faster!
IOninja :)
darthdeus I have yet to write my first line of code though, only been on a lecture that was kinda "why is perl6 better than everything else"
elaADnlxie: yeah I've heard that performance is the current issue
elaADnlxie well, start with something like… 21:26
IOninja hah, cool
elaADnlxie m: say ‘hello world’
camelia hello world
DrForr What lecture was that?
darthdeus DrForr: my university has a new course on perl6
IOninja :o wow
elaADnlxie :O
[Coke] Color us surprised.
elaADnlxie darthdeus: ok, what university is that?
[Coke] What school?
21:26 lichtkind joined
DrForr This needs to be tweeted :) 21:27
darthdeus it's kinda one-off though, I doubt it will repeat ... there was one on perl5 two years ago too
IOninja Yes
darthdeus elaADnlxie: www.mff.cuni.cz/to.en/
gfldex darthdeus: could you forward some hugs from the Perl 6 docs departement to that class?
El_Che nice
[Coke] mmm, tell the prof. we said hi. :) 21:28
darthdeus will do :P btw here's the course overview, though not much detail there is.cuni.cz/studium/eng/predmety/in...od=NDMI094
21:28 pyrimidine left 21:29 sufrosti2o left, sufrosti1o left, sufrostico left
lizmat seems to be from last summer ? 21:29
IOninja cringes at that description
darthdeus elaADnlxie: btw regarding rakudo performance, I would love to dive deep into the implementation, but is it reasonable to think that I could actually improve anything? :P
lizmat: yeah looks like the semester is wrong, it's running the first time this year 21:30
El_Che IOninja: behave :)
IOninja darthdeus, yes. I started with Perl 6 just over a year ago and made lots of core fixes. A lot of it is Perl 6, some NQP (subset of Perl6) and C at the VM level
elaADnlxie darthdeus: yes. Most things are written in perl 6 + nqp, and you can optimize a bunch of stuff even on that level
IOninja El_Che: ? 21:31
El_Che IOninja: about the cringing. It one of the first perl6 uni courses 21:32
elaADnlxie IOninja: maybe we should start a choir or something. That was close enough!
DrForr Well, I have a potential textbook sitting at my elbow :)
IOninja El_Che: yeah, but it deacribes Perl 6 as experimental language and sucxessor to Perl 6
21:32 pyrimidine joined
IOninja El_Che: to Perl 5 I mean 21:32
El_Che: neighter are true, so that makes me question the content 21:33
lizmat it's all in the eye of the beholder :-)
El_Che lizmat: now I need to ask you to behave :)
IOninja haha
fair enough
darthdeus what's wrong about perl6 being successor of 5? even if they're not compatible
lizmat some people have other ideas about that
IOninja darthdeus: MASSIVE political one. 21:34
darthdeus but I see your point, since to this day I've dismissed perl6 as literally "another version of PHP"
IOninja darthdeus: many Perl 5 people wish Perl 6 would crawl into a hole and die so they get vocal when claims are made about Perl 6 replacing Perl 5
lizmat ooh, wow :-)
IOninja lol
DrForr It's always fun when chunks of the building hit my balcony. 21:35
IOninja o_O do you live inal a gingerbread house? :)
DrForr Welcome to Romania :/ 21:36
mst darthdeus: many perl5 people spent years hearing perl6 people vocally wish perl5 would crawl into a hole and die 21:37
darthdeus: basically, humans are tribal and it's all dumb
IOninja :)
El_Che amen, mst
mst would note he's mostly a perl5 person ... who regularly yells at perl5 people for banging on perl6 21:38
darthdeus mst: why? I understand others not really liking perl, I mean I kinda wish PHP would crawl into a hole and die, but why would perl5 people hate perl6?
mst darthdeus: ...
darthdeus: did younot even read what I said? :(
IOninja darthdeus: change is scary
darthdeus: also, Perl 6 had a rocky start that did massive marketing damage to Perl brand
darthdeus mst: I did :P sorry but just because perl6 wishes perl5 to die doesn't mean they're wrong ... I mean it's kinda like when c++11 wishes c++98 to die 21:39
mst darthdeus: NO IT ISN'T THAT IS THE WHOLE POINT
avar For a while in the 2000s the message with p6 was "it'll be done real soon", and as a result perl5 suffered since everyone thought it was worthless to maintain / contribute since surely it would be replaced by perl6 in a year or two
El_Che hahaha
mst they are DIFFERENT LANGUAGES
lucs mst: HI, HOW ARE YOU?
mst darthdeus: from the perl5the narrative coming out of the perl6 community was "we're the replacement when we get there, perl5 is already dead" for some years
El_Che it cold and rainy outside, let's have this discussion again
avar But now it's 2017 and while there's a p6 distro and stuff now, no big company/project aside from perl6 itself uses it...
elaADnlxie btw, even though I see no perl 6 being taught at my university just yet, I've been using it for a couple of courses now. Obviously, other students get some exposure as well, because of me :) The most impressive case was with the course on programming languages (about writing parsers, compilers, etc.), where I was using Perl 6 for almost everything (the focus of the course was on flex+bison :P)
mst right, so perl5 development picked up again, and we went "hmm, maybe there's two good perl futures here" 21:40
the trick is to stick to that narrative
so we don't end up with wilful misinformation like darthdeus mistakenylu thinking comparing two versions of the C++ spec has any bearing on reality
21:40 sufrostico joined
IOninja darthdeus: don't mind mst yelling, it's his thing. He's nice on the inside :) 21:40
21:40 sufrosti1o joined
IOninja Also SHIBOLEET!! SHIBOLEET! 21:41
21:41 sufrosti2o joined
avar mst: Although if perl6 actually becomes a viable replacement, as the 2000s promised, the two good futures thing might not be needed :) 21:41
mst I've spent the best part of a decade trying to stamp out that sort of misinformation from everywhere so we don't get stupid drama yet again
darthdeus mst: I understand that perl6 is completely different than perl5 in a lot of ways, but for me c++11 is also completely different than c++98 ... but I understand that they might be different distance apart :P
avar but that's shoulda coulda territory
21:41 risou is now known as risou_awy
El_Che if we're using the hole metaphore, infighting results in one big hole big enough for two 21:41
IOninja Read the comic xkcd.com/806/
mst avar: it might not be needed but 'shoot for both and let the technology fight, not the humans' is my preference
darthdeus mst: all things considering, should it even be named perl6 then?
IOninja darthdeus: no
darthdeus rakudo sounds better :P 21:42
avar mst: Yeah 100% agree, just explaining that a lot of the butthurt is because in the 2000s everyone was just assuming that the p6 tech would replace the p5 tech in a year or two...
IOninja darthdeus: but for historical reasons and the wish of creator of both languages the name stuck
RabidGravy it's all a bit late for that
mst right, it might have been better having been named something else originally
but at this point it's probably more trouble than its worth to try and retcon it
DrForr darthdeus: Unfortunately that horse left the proverbial barn several years ago.
RabidGravy anyhow tomorrow I will write Perl 6 and get paid for it 21:43
darthdeus afaik the docs said somewhere that perl6 is "a language for the next 200 years" ... in light of that, saying it's too late because it's 10 years old doesn't mean much :P
avar This is made more complex by the fact that. "Originally" perl6 wasn't a new language at all, it was more like what python 3 became
I.e. we'll fix this wart and that wart, but we'll use the same runtime (or compatible), 99.5% of the source is compatible etc.
mst darthdeus: nobody's saying it's too late, only that it's probably too late for changing the name to be that helpful 21:44
but "two languages, one family" is what all the official docs say now
and please just keep to that narrative for the avoidance of drama
whatever you may think about C++ :)
RabidGravy and write software in a language that pleases you 21:45
mst likes both perls :D
tony-o mst++
21:45 pyrimidine left
RabidGravy I do too 21:45
21:46 pyrimidine joined
El_Che mst is the perl dalai lama 21:46
darthdeus I just have to find a use case for p6 now :( 21:47
also probably a silly question, but why is there both zef and panda? don't they do the same thing? 21:48
21:48 kurahaupo__ left
elaADnlxie darthdeus: I think we're slowly moving to zef 21:48
21:48 kurahaupo__ joined
RabidGravy but one day there may even be another one 21:48
IOninja slowly? I thought we were done moving... 21:49
21:50 kurahaupo__ left, salv0 left
RabidGravy as a complete aside I have put aside the IBM MQ client as the interface doesn't play well with NC 21:50
IOninja darthdeus: for next 100 years. It's a reference to The 100-Year Language essay: paulgraham.com/hundred.html
avar I was packaging rakudo yesterday, so I look up module on github being installed by zef, and the readme says "install with panda this way" :)
IOninja RabidGravy: do you use `is-deeply` a lot? I may have broke it… err… made it better by detecting failures, I mean! 21:51
darthdeus IOninja: cool, thanks :) 21:52
IOninja avar: grepped the repo and don't realle see where...
21:52 pyrimidine left
darthdeus and also, in the light of rakudo being slow, how slow is slow? is it slow compared to perl5 and other scripting languages, or slow compared to what it could? 21:52
RabidGravy IOninja, let's see 21:53
I don't use it a lot
IOninja darthdeus: a lot depends on what you're doing, but definitely slow compared to what it could be. There's a ton of performance work to be done (and is being done).
21:53 sena_kun left
[Coke] wonders how chromatic ended up on that listing. 21:54
IOninja darthdeus: and well, of course that means that if you compare it to 20-25 year old products like Python and Ruby and Perl 5, it'd be much slower too (or first production release was just over a year ago)
RabidGravy as I've said a milliuon times, it;s fast enough to strean 320K mp3 - it's fast enough
IOninja [Coke]: which one?
[Coke] is.cuni.cz/studium/eng/predmety/in...od=NDMI094
IOninja "Chromatic (editor): Using Perl 6 (pracovní verze). Available online at github.com/perl6/book/" 21:55
The author of the course used the horribly-outdated book mabby?
21:55 rindolf left
[Coke] ah, github.com/perl6/book/blob/a5f3c17...k.sty#L308 maybe. 21:55
IOninja Ah
RabidGravy IOninja, 26 times in 59 modules so not a lot :) 21:56
IOninja darthdeus: also "speed" is a relative concept. A rough comparison between my Perl 5 and Perl 6 code lands Perl 6 versions about half the size. If you have to pay a programmer for 10 hours instead of 20 hours to write a program runs once a night that completes in 1 minute instead of 1 second, that's a huge win 21:57
*a program that runs once.. 21:58
RabidGravy indeed
darthdeus IOninja: yeah, the reason I was asking was kinda if I could take my current miniproject that's an erlang/elixir websocket service and write in perl6 instead while still having it reasonably fast :P but I guess I should just start with scripting hehe
avar IOninja: It's the repos of modules on modules.perl6.org 21:59
21:59 skids left
avar But I can't remember which module it was, even though this was yesterday memory-- 22:00
22:00 robertle joined 22:01 robertle left
RabidGravy well I have 57 modules that mention *panda* 22:01
*shrug*
IOninja I think some modules mention `ufo` as installer still :P 22:02
RabidGravy I fixed all of mine that did
IOninja That was fast :D
22:03 llfourn joined
RabidGravy [jonathan@coriolanus modules]$ grep ufo */README.md 22:03
[jonathan@coriolanus modules]$
but 22:04
[jonathan@coriolanus modules]$ grep -l panda */README.md | wc
61 61 1518
apparently
[jonathan@coriolanus modules]$ grep -l zef */README.md | wc
55 55 1360
anyhow toodles 22:05
IOninja \o
avar u rakudo-star-2017.01 (280K) $ grep -r panda modules/
wc -l on that => 169 22:06
IOninja :S
there are only like... 20-30 modules in the distro
IOninja downloads
only 69 if you exclude panda's repo itself 22:07
tony-o zoffix sent out a ton of PRs a while ago to fix that and p6 version in METAs 22:08
IOninja And only 33 if you exclude travis config
tony-o also, RabidGravy, are your machines all shakespeare themed?
IOninja buggable: eco
buggable IOninja, Out of 785 Ecosystem dists, 87 have warnings and 3 have errors. See modules.perl6.org/update.log for details
22:08 llfourn left
IOninja Used to be like 600 warnings or something :P 22:08
22:09 Sound left 22:10 RabidGravy left
IOninja all those error look bogus 22:10
temp github outage
tony-o s3 issues? 22:11
22:14 mcmillhj left
IOninja Can anyone clue me in on what PROCESS:: thing is about? I see PROCESS::<$VM>, PROCESS::<$CWD>, etc. What's the difference between those and $*CWD? 22:15
and $*VM
22:16 cog__ joined 22:17 labster left
jnthn PROCESS:: is the last place that a $*foo lookup looks 22:17
IOninja And that's it? 22:18
jnthn (After the call stack, the callstack of the thing that started you if you're in a start block, and GLOBAL) 22:19
22:19 cog_ left, pyrimidine joined
jnthn That's all with regard to how it relates to $*foo, yes 22:19
It's purpose is to be a process-global palce
*place
More global than global
IOninja What's this &chdir stuff is about? github.com/rakudo/rakudo/blob/dd1d...#L147-L162 22:20
jnthn Since GLOBAL is actually subject to where you are
IOninja m: say &*chdir
camelia sub chdir ($path) { #`(Sub|61400920) ... }
22:20 labster joined
IOninja like why have two 22:20
22:20 labster left
jnthn Normally chdir doesn't do anything expcet update $*CWD 22:20
PROCESS::<&chdir> actually does an OS-level chdir 22:21
IOninja Thanks.
(I see it now in the code :P)
jnthn This is because a process can only have one cwd 22:22
Which plays rather badly with multiple threads of execution.
tony-o m: $*CWD.say;
camelia "/home/camelia".IO
jnthn It's the same reason why %*ENV can be localized, and we never call setenv (which is also a rather bad idea in a multi-threaded application)
tony-o m: $*CWD.say; PROCESS::<&chdir> '/tmp'; $*CWD.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3$*CWD.say; PROCESS::<&chdir>7⏏5 '/tmp'; $*CWD.say;
expecting any of:
infix
infix stopper
statement end
stateme…
tony-o m: $*CWD.say; PROCESS::chdir '/tmp'; $*CWD.say; 22:23
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3$*CWD.say; PROCESS::chdir7⏏5 '/tmp'; $*CWD.say;
expecting any of:
infix
infix stopper
statement end
statement …
tony-o m: $*CWD.say; PROCESS::chdir('/tmp'); $*CWD.say;
camelia "/home/camelia".IO
Could not find symbol 'chdir'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
tony-o bleh
jnthn PROCESS::<&chdir>
tony-o m: $*CWD.say; PROCESS::<&chdir>('/tmp'); $*CWD.say;
camelia "/home/camelia".IO
"/tmp".IO
tony-o too impatient today.
22:27 snowblack left
IOninja m: $*CWD.say 22:28
camelia "/home/camelia".IO
lucs In a *.t file for example, is it possible to wrap a 'todo' test in such a way that perl6 won't even attempt to compile it? (because for example, since its code is 'todo', it doesn't yet compile) 22:32
Geth doc: 4e48f6ab4e | (Zoffix Znet)++ | doc/Language/packages.pod6
Add mention of dynamic vars last look in PROCESS::
IOninja lucs: no, todo code is run and it's expected to fail. 22:33
lucs Aha, so I guess that's not precisely what I want.
IOninja lucs: you want to `skip`. skip 1, 'stuff hangs'; if 0 { ... the tests }
Dunno what better than if 0 to put in there.
I guess just ensure it doesn't run at all
lucs Trying, thanks 22:34
IOninja lucs: some examples here: docs.perl6.org/language/testing#in...t_%3D_1%29
if $can-run { do a bunch of tests } else { skip 5, 'your system sucks; cannot run some tests' } 22:35
Oh, I got the order wrong
One thing I'll do right in Pro::Test is to make skip and todo DWIM with the skippage count 22:36
lucs Hmm... How would I write a test for a yet non-implemented operator for example? Would it need to be protected by an eval so the compiler doesn't see it? 22:38
22:39 Voldenet left
lizmat either that, or mark the test as "skip" ? 22:39
lucs I don't quite understand how to use 'skip' correcly I guess :( 22:40
IOninja lucs: and try, because EVAL is not Perl 5's eval. You could add a dummy op tho
m: sub infix:<♥> {@_; False}; use Test; cmp-ok 42, &[♥], 5, '42 ♥ 5' 22:41
camelia not ok 1 - 42 ♥ 5

# Failed test '42 ♥ 5'
# at <tmp> line 1
# expected: '5'
# matcher: 'infix:<♥>'
# got: '42'
IOninja lucs: I dunno, why skip? Write them as normal
22:42 dct joined
lizmat IOninja: but then the test won't compile ? 22:42
IOninja lucs: and let the test crash. Or put (try ::('&infix:<♥>')) or skip-rest 'cannot run this' 22:43
lizmat unless you add a dummy op, but then that would mask the implemented op ?
IOninja lizmat: oh right.
lucs Okay, my generic question was: how do I write a test so that the compiler won't even see the code if something like 'todo' or 'skip', or whatever it takes, is used.
IOninja lizmat: but I don't see too much wrong with letting the test not compile :)
lucs Here's my real case:
Inline::Perl5 appears to fail correctly handle inner packages. 22:44
22:44 Voldenet joined, Voldenet left, Voldenet joined
lizmat good night, #perl6! 22:44
IOninja m: use Test; BEGIN (try ::infix('&infix:<♥>')) || skip-rest 'Cannot proceed; no love'; ok 42 ♥ 5
camelia 5===SORRY!5=== Error while compiling <tmp>
No such symbol 'infix'
at <tmp>:1
------> 3use Test; BEGIN (try ::infix7⏏5('&infix:<♥>')) || skip-rest 'Cannot pro
IOninja m: use Test; BEGIN (try ::('&infix:<♥>')) || skip-rest 'Cannot proceed; no love'; ok 42 ♥ 5
camelia 5===SORRY!5=== Error while compiling <tmp>
An exception occurred while evaluating a BEGIN
at <tmp>:1
Exception details:
A plan is required in order to use skip-rest
in sub skip-rest at /home/camelia/rakudo-m-inst-2/share/perl6/sources…
IOninja really
lucs So a successful test would be something like is(InnerPackage.foo, 42) , but that won't even compile if InnerPackage wasn't found.
Using todo or skip, that code still doesn't compile (unless the feature is correctly implemented). 22:45
IOninja m: use Test; BEGIN { plan 1; (try ::('&infix:<♥>')) || skip-rest 'Cannot proceed; no love' }; ok 42 ♥ 5 22:46
camelia 1..1
ok 1 - \# SKIP Cannot proceed; no love
5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3-rest 'Cannot proceed; no love' }; ok 427⏏5 ♥ 5
expecting any of:
infix
infix stopper
IOninja m: use Test; BEGIN { plan 1; (try ::('&infix:<♥>')) || skip-rest('Cannot proceed; no love'), exit }; ok 42 ♥ 5 22:47
camelia 1..1
ok 1 - \# SKIP Cannot proceed; no love
IOninja m: use Test; sub infix:<♥> { @_ }; BEGIN { plan 1; (try ::('&infix:<♥>')) || skip-rest('Cannot proceed; no love'), exit }; ok 42 ♥ 5
camelia 1..1
# Looks like you planned 1 test, but ran 0
IOninja :(
m: use Test; sub infix:<♥> { @_ }; BEGIN { plan 1; (try ::('&infix:<♥>')) || (skip-rest('Cannot proceed; no love'), exit) }; ok 42 ♥ 5
camelia 1..1
ok 1 -
IOninja lucs: well, this works. Dunno why skip-rest doesn't exit of its own volition 22:48
lucs: if I were writing it, I'd just write it as normal test and leave it failing to compile; if it matteres that it doesn't, I'd just comment out the code
No need to overthink things.
lucs You're probably right. 22:50
Yeah, I'll just 'todo' some bogus code and a message letting the maintainer that the real code is currently commented out. 22:51
*know
22:52 espadrine left
alphah IOninja: Seems I couldnot use "for" to resolve the issue I posted earlier, I have to use while @laws.shift, to get value for Args; I'll use example you posted above to clear my point 22:53
your examle m: my @laws = <power force meow>; while (try @laws.shift) -> $_ { when 'power' { say 'Power overwhelming' }; when 'force' { say 'Use the force, Luke' }; when 'meow' { say 'KITTY!' } } 22:54
I modified it to :
m: my @laws = <power>; while @laws.shift -> $_ {when 'power' {@laws.shift or die "Usage:"}; when 'force' {say 'Use the force, Luke' }; when 'meow' {say 'KITTY!' } }
camelia Usage:
in block <unit> at <tmp> line 1
IOninja alphah: why cannot?
22:56 mcmillhj joined
alphah because the next value in the foor loop may be "a value in argument" for example say "power" arg takes a value "9999" 22:57
IOninja alphah: what's your end goal? You got a bunch of words in @!laws... what're doing with them?
alphah if a shift failed, the next Arg will be "9999" in the for loop
22:57 girafe joined
IOninja So far, it feels like you're greatly over-complicating with shifts code that's already over-complicated 22:57
alphah I want to create a config hash,, with keys and value for each arg passed to the script 22:58
but I want htese args to be human readable words, without using "--" or "-" 22:59
some of these args are Boolean,, some take values
IOninja m: my @laws = <power trip>; with @laws { when ('power', **) { say "some power command" }; when ('force', **, 42) { say 'some force command with 42' }; say "wrong laws, bruh" }
camelia some power command
IOninja m: my @laws = |<force power to>, 42; with @laws { when ('power', **) { say "some power command" }; when ('force', **, 42) { say 'some force command with 42' }; say "wrong laws, bruh" } 23:00
camelia some force command with 42
IOninja m: my @laws = <do stuff>; with @laws { when ('power', **) { say "some power command" }; when ('force', **, 42) { say 'some force command with 42' }; say "wrong laws, bruh" }
camelia wrong laws, bruh
IOninja alphah: you could do this sort of matching too
23:00 mcmillhj left
IOninja or stringify them and use a grammar 23:01
23:01 kyan joined
IOninja shrugs 23:01
Each set of commands end up as one action tho, don't they? I'd use a bunch of MAIN multies for tha 23:02
alphah Each set of commands will create an object from different class 23:03
IOninja perfect; use the multies..
23:04 llfourn joined
IOninja Right now you have to loop through the array in your head and keep all the shifts in two separate places in mind to make out what's being called. Whereas with multies or hyperstar smartmatches you have a nice list of "command pattern -> do this thing" 23:04
23:07 mcmillhj joined
alphah I will end up with around 10 multis, I iwll do it in multis and see if it looks nicer... but one last question as I already did it using while.shift, and only thing remaining is to hide the error message thrown when trying to shift empty array, I would like to replace this message with Usage function... so my question is how can i replace that error with a custom error and exit 23:07
m: my @laws = <power>; while @laws.shift -> $_ {when 'power' {@laws.shift or die "Usage:"}; when 'force' {say 'Use the force, Luke' }; when 'meow' {say 'KITTY!' } } 23:08
camelia Usage:
in block <unit> at <tmp> line 1
alphah in this case I want to get rid of "in block <unit> at <unknown file> line 1" line
IOninja alphah: don't use die just say() and exit() 23:09
m: class Force { has $.v }; class Power { has $.v }; multi process ('force', $v, |c) { take Force.new: :$v; process |c }; multi process ('power', $x, $n, |c) {take Power.new: :v($x - $n); process |c }; multi process (|) { die "your args suck, bruh" }; say gather process <force 42 power 70 31>;
camelia your args suck, bruh
in sub process at <tmp> line 1
in block <unit> at <tmp> line 1
23:09 llfourn left
IOninja I was hoping this would work, but apparently the candidate resolution doesn't let it :( 23:09
wonder why... 23:10
OH
m: class Force { has $.v }; class Power { has $.v }; multi process ('force', $v, |c) { take Force.new: :$v; process |c }; multi process ('power', $x, $n, |c) {take Power.new: :v($x - $n); process |c }; multi process () {}; multi process (|) { die "your args suck, bruh" }; say gather process <force 42 power 70 31>;
camelia your args suck, bruh
in sub process at <tmp> line 1
in block <unit> at <tmp> line 1
IOninja dammit
no idea why that don't work
23:10 imcsk8 left 23:11 imcsk8 joined 23:12 mcmillhj left
alphah no idea, also I dont understand why this doesn't throw error: 23:12
m:my @laws = <power>; while @laws.shift -> $_ {when 'power' {@laws.shift}; when 'force' {say 'Use the force, Luke' }; when 'meow' {say 'KITTY!' } } 23:13
IOninja m: class Force { has $.v }; class Power { has $.v }; multi process ('force', $v, |c) { say Force.new: :$v; process |c }; multi process ('power', $x, $n, |c) {say Power.new: :v($x - $n); process |c }; multi process(){}; multi process (|) { die "your args suck, bruh" }; say gather process |<force 42 power 70 31>;
camelia Force.new(v => IntStr.new(42, "42"))
Power.new(v => 39)
()
alphah and this one throws:
IOninja Yey! It works. Almost.
alphah m:my @laws = <power>; while @laws.shift -> $_ {when 'power' {say @laws.shift }; when 'force' {say 'Use the force, Luke' }; when 'meow' {say 'KITTY!' } }
IOninja m: class Force { has $.v }; class Power { has $.v }; multi process ('force', $v, |c) { take Force.new: :$v; process |c }; multi process ('power', $x, $n, |c) {take Power.new: :v($x - $n); process |c }; multi process(){}; multi process (|) { die "your args suck, bruh" }; say gather process |<force 42 power 70 31>;
camelia (Force.new(v => IntStr.new(42, "42")) Power.new(v => 39))
IOninja Now it does \o/
23:14 robertle joined
IOninja m: my @laws = <power>; while @laws.shift -> $_ {when 'power' {@laws.shift}; when 'force' {say 'Use the force, Luke' }; when 'meow' {say 'KITTY!' } } 23:14
camelia ( no output )
IOninja m: my @laws = <power>; while @laws.shift -> $_ {when 'power' {say @laws.shift }; when 'force' {say 'Use the force, Luke' }; when 'meow' {say 'KITTY!' } }
camelia Cannot shift from an empty Array
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
IOninja alphah: <IOninja> Right now you have to loop through the array in your head and keep all the shifts in two separate places in mind to make out what's being called
alphah: oh wait, never mind that last one :) 23:15
alphah hmm 23:16
IOninja alphah: the reason is because .shift on empty array doesn't throw or die, it returns a Failure, which doesn't explode in some instances... I'd expect it to here, I think
alphah makes sense
IOninja m: say while rand > .7 { when {True} {"x"} }
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of bare "say"; in Perl 6 please use .say if you meant to call it as a method on $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun
at <tmp>:1
--…
IOninja m: say (while rand > .7 { when {True} {"x"} })
camelia ()
IOninja m: say (while rand > .7 { when {True} {"x"} })
camelia ()
IOninja m: say (while rand > .7 { say "looping"; when {True} {"x"} })
camelia looping
(x)
IOninja m: say (while rand > .7 { say "looping"; when {True} {"x"} })
camelia looping
(x)
IOninja :S dafuq 23:17
alphah: and `or` on a Failure is one way to defuse it, so your `@laws.shift or ... report usage...` was the right thing
alphah got that 23:18
IOninja and yeah, looks like `when` never sinks its last value. This may be a bug.
23:18 labster joined
IOninja hm 23:19
m: given 42 { when *.so {Failure.new} } 23:20
camelia Failed
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
23:20 llfourn joined
IOninja This does sink it. 23:20
m: { when *.so {Failure.new} }
camelia ( no output )
IOninja but not this
lucs Er, grammar (English) question: does one "help resolve" or "help to resolve" a problem? (if one can that is :-) 23:22
23:22 pyrimidine left, pyrimidine joined
IOninja #english can help resolve that... 23:23
:o
lucs :)
IOninja lucs: I've no idea. I think `help to` is the right one, but I use whatever sounds better in a particular situation
23:23 mcmillhj joined 23:24 dct left, dct joined
lucs I was hoping a native English speaker would answer (no offense :_) 23:24
-
23:24 felher left
IOninja ouch :) 23:25
lucs :)
IOninja Well, I was for real about asking in #english. They've helped me many times.
lucs Ah, I'll go there :) 23:26
23:27 pyrimidine left 23:28 cibs left, mcmillhj left 23:30 cibs joined 23:33 committable6 left, rurban left, committable6 joined, ChanServ sets mode: +v committable6
elaADnlxie mch: say 42 23:35
committable6 elaADnlxie, ¦«2015.12,HEAD»: 42
23:37 felher joined 23:38 ZzZombo joined, ZzZombo left, ZzZombo joined 23:39 mcmillhj joined 23:40 robertle left 23:43 lep-delete left 23:45 kyan left 23:48 lep-delete joined, mcmillhj left 23:53 dct left, dct joined