»ö« 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 BenGoldberg joined, mcmillhj left
japhb Who is Zoffix right now? I need to ask about IRC::Client ... 00:05
timotimo elfoonto 00:06
japhb ... but not here? Hmmm
timotimo zoffix tends to pop in and out of existence 00:07
japhb How do you .tell someone who keeps changing nick all the dang time?
geekosaur they left, yes
(and I see I pegged them without much evidence :)
bioduds yay, worked
00:07 cdg left 00:09 cognominal left
japhb Gah, well: Anyone currently in here successfully use IRC::Client in a Rakudo built today? 00:09
00:09 labster left
bioduds I guess you could md5 before installing, geekosaur? 00:10
japhb I'm trying to figure out if I failed my daily stupidity check, or I got unlucky and IRC::Client is allergic to a recent commit.
bioduds to check if a man in the middle attack occurred, no?
geekosaur I hope you mean sha256; md5 is long since compromised for that use, and sha1 is unreliable 00:11
bioduds could be, yes
would prevent such hotspot geeks, right?
timotimo https should already be good enough, if we can get the certificate pinned in the curl commandline maybe? 00:12
bioduds excellent
yes, there is no session
no hijacking I guess
Im putting up a whole series of linux distros now to test it 00:13
first was ubuntu 14.04
later ill try on my old mac
00:14 cognominal joined
bioduds obscuring the file also helps 00:14
with https, am I right?
I mean, along with https
00:15 mcmillhj joined
dalek c: 51d7a8d | gfldex++ | doc/Language/control.pod6:
alias swtich to given for search
00:16
MasterDuke japhb: bisectable6, benchable6, and committable6 all use IRC::Client
with a somewhat recent Rakudo
timotimo if someone gets a trusted certificate for rakudo.org and MITMs you, you can still be pwned ... 00:17
geekosaur and unfortunately that kind of thing is a somewhat common occurrence 00:18
timotimo like if you have an antivirus or something the OEM installed that ships a CA in order to "protect" you from stuff in https encrypted connections
geekosaur cf. various entities getting certs for both microsoft.com and google.com
timotimo and when the software also accidentally ships the private key to go with that certificate authority ...
geekosaur or deliberately, in the dell case
timotimo lenovo also had a case of that
MasterDuke japhb: This is Rakudo version 2016.07.1-148-g9cbd855 built on MoarVM version 2016.07-17-g40948f6 00:19
bioduds who would be responsible for acquiring such a certificate for perl6.org, guys?
im using 2016.04 00:20
00:20 mcmillhj left 00:25 richi235 left
geekosaur what? 00:27
I have the feeling you did not understand what was said there and now you want a fake perl6.org cert to hijack the site with?
00:28 eyck joined
geekosaur also I have the feeling you are so convinced that something *fundamentally insecure* is critically important to have and therefore cannot possibly be fundamentally insecure, it's just a matter of tweaking things right to make it safe 00:28
and yes, I have seen lots of justifications for why "just set the server up right and it's perfectly safe" that prove that the people that wrote them *do not understand network security* 00:29
00:31 girafe left 00:32 mcmillhj joined 00:35 mempko left
japhb MasterDuke: I figured out the problem -- no SSL support in IRC::Client. 00:35
00:37 mcmillhj left
MasterDuke ahh, didn't realize that. good to know 00:37
00:42 mcmillhj joined 00:47 gfldex left, mcmillhj left 00:49 pierre_ joined 01:05 mcmillhj joined, ItayAlmog left 01:08 labster joined 01:13 bjz joined 01:14 Actualeyes joined, mcmillhj left 01:16 mcmillhj joined 01:19 bjz_ joined 01:20 bjz left 01:21 mcmillhj left 01:23 lambd0x left, bjz_ left 01:24 BenGoldberg left 01:25 MasterDuke left 01:26 bjz joined 01:27 BenGoldberg joined 01:30 ItayAlmog joined 01:31 pierre_ left 01:32 pierre_ joined 01:45 ilbot3 left 01:47 ilbot3 joined 01:49 bjz_ joined 01:50 bjz left 01:52 skrshn left 01:53 mcmillhj joined 01:57 mcmillhj left 02:00 itaipu joined
SmokeMachine____ If I want to "create" a "alias" for the class word, I can use the EXPORTHOW... Is there anything like that for the has word? 02:11
02:13 labster left 02:14 pierre_ left, labster joined
SmokeMachine____ m: module EXPORTHOW {constant DEFINE::just-a-class = Metamodel::ClassHOW}; say just-a-class Name {} 02:16
camelia rakudo-moar ec9e81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing initializer on constant declaration␤at <tmp>:1␤------> 3module EXPORTHOW {constant DEFINE:7⏏5:just-a-class = Metamodel::ClassHOW}; sa␤»
SmokeMachine____ m: module EXPORTHOW {module DEFINE {constant just-a-class = Metamodel::ClassHOW}}; say just-a-class Name {} 02:18
camelia rakudo-moar ec9e81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤ Name used at line 1␤Undeclared routine:␤ just-a-class used at line 1␤␤»
SmokeMachine____ m: package EXPORTHOW {package DEFINE {constant just-a-class = Metamodel::ClassHOW}}; say just-a-class Name {} 02:22
camelia rakudo-moar ec9e81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤ Name used at line 1␤Undeclared routine:␤ just-a-class used at line 1␤␤»
SmokeMachine____ Something like that...
But is there a way to do that with the "has" key word? 02:23
02:23 pierre_ joined
SmokeMachine____ And for methods? 02:24
02:27 mcmillhj joined, pierre_ left 02:32 mcmillhj left 02:39 aries_liuxueyang left, noganex joined 02:42 noganex_ left
ugexe Slangs 02:43
02:46 aries_liuxueyang joined 02:51 labster left, mcmillhj joined 02:53 bob777 joined, eliasr left 02:56 mcmillhj left 02:59 atweiden left, richi235 joined 03:02 mempko joined, pierre_ joined 03:12 cibs left 03:15 cibs joined 03:26 mcmillhj joined 03:30 mcmillhj left 03:38 beatdown left 03:46 MilkmanDan left 03:48 MilkmanDan joined 03:52 mcmillhj joined 03:56 mcmillhj left 03:58 mempko left 04:08 mcmillhj joined 04:09 Actualeyes left 04:10 mempko joined 04:13 mcmillhj left 04:15 Cabanossi left 04:16 khw left 04:19 Cabanossi joined 04:21 mcmillhj joined 04:22 labster joined 04:26 mcmillhj left 04:27 zapwai left 04:34 mcmillhj joined 04:35 mempko left 04:36 gabiruh left, sftp left, mindos left 04:37 pierre_ left, canopus left, kipd left, DrParis left 04:38 zostay left, peteretep left, Lucas_One left, olinkl left, mcmillhj left, sftp joined 04:39 mindos joined 04:40 zostay joined, peteretep joined, kipd joined, olinkl joined, Lucas_One joined 04:41 kent\n left, kent\n joined 04:42 DrParis joined, gabiruh joined 04:44 ponbiki joined, ponbiki is now known as Guest43351, canopus joined 04:46 Matthew[m] left, pierre_ joined, kent\n is now known as kentnl 04:48 JimmyZ joined 04:49 kentnl is now known as kent\n 04:50 ItayAlmog left 04:51 pierre_ left 04:52 Matthew[m] joined 04:54 mcmillhj joined 04:55 skids left 04:59 mcmillhj left 05:03 pnu_ left, mrsolo left, tbrowder left, Guest58374 left 05:04 pnu_ joined 05:05 Guest58374 joined, tbrowder joined 05:06 mrsolo joined, PotatoGim joined 05:07 woolfy joined, w4and0er96 joined 05:13 jnap_ joined 05:18 mcmillhj joined 05:23 mcmillhj left
Woodi tail -3 ~/.bashrc\nexport PATH\nPATH=$HOME/.rakudo/bin:$PATH\nexport PATH\nYou have new mail.\n$ should work :) 05:25
geekosaur except when you use virtual environment managers which expect that .bashrc does not undo the path changes they just made 05:27
Woodi geekosaur: err... .bashrc are now autogenerated too ?? :) 05:28
geekosaur (some uses of perlbrew; rvm; hsenv; more generally stuff like modules)
05:31 canopus left 05:37 canopus joined 05:38 Actualeyes joined
Woodi geekosaur: looks hsenv introduces new layer so installation needs to be level-up from this. or just implementation of meta-tools that operate on environment from inside is needed :> 05:40
geekosaur so, the real point is, you use an environment manager to point your current shell to a particular installation of something. you fire up vim, and expect it to also be using that. but vim loads your .bashrc when it runs an external command, which undoes the modified $PATH --- oops 05:41
Woodi err... there was RFC discussion on #perl6-dev yesterday... do this means that pasting links from HN is now prohibited without thinking&proposing RFC paper ?? 05:42
05:42 ufobat joined
Woodi geekosaur: that's why you need meta-part there, it needs to modify .bashrc template for every env usage :) 05:44
geekosaur that's not scalable to modules or nikola or other such systems where the sysadmins manage the environment configs for possibly hundreds of users with different shells 05:46
05:47 pierre_ joined
Woodi finally become proper X desktop user by learning to use that virtual desktop feature from twm/fvwm times :) 05:50
05:52 pierre_ left 05:57 pierre_ joined
moritz Woodi: welcome to the 20th century! :-) 05:59
06:00 pierre_ left 06:01 pierre_ joined 06:11 itaipu left 06:15 mcmillhj joined 06:18 Wiertek joined 06:19 woolfy left, woolfy1 joined 06:20 pierre___ joined, mcmillhj left, wamba joined 06:21 wtw_ joined, pierre_ left, wtw left, wtw_ left, wtw_ joined, firstdayonthejob joined 06:22 pmurias joined 06:24 zacts joined 06:28 mempko joined 06:29 brrt joined
moritz ok, I'm not sure fvwm had that in 1999 06:30
06:30 nadim joined 06:34 firstdayonthejob left, AlexDaniel left 06:36 berthos joined 06:39 berthos left, domidumont joined 06:43 domidumont left 06:45 domidumont joined, mcmillhj joined
geekosaur it did 06:45
original twm didn't 06:46
06:47 darutoko joined 06:49 mcmillhj left
geekosaur probably thinking of ctwm, from 1992 06:49
06:50 nine joined 06:54 Wiertek left 06:56 domidumont left 06:57 domidumont joined 07:00 mcmillhj joined 07:01 CIAvash joined 07:03 brrt left 07:04 mcmillhj left 07:12 mohae_ joined 07:14 mohae left 07:18 BenGoldberg left 07:19 labster left, gucore joined 07:22 dsp_ left 07:23 dsp_ joined 07:25 espadrine_ joined 07:31 Wiertek joined 07:34 woolfy1 left, woolfy joined 07:35 canopus left 07:36 zakharyas joined 07:40 canopus joined 07:46 mempko left 07:49 domidumont left 07:50 RabidGravy joined 07:51 mcmillhj joined 07:56 mcmillhj left 08:01 girafe joined 08:03 labster joined 08:04 vendethiel left 08:06 espadrine_ left 08:07 grondilu joined, nightsh joined
grondilu how do I recursively list all regular files in a directory? 08:07
08:08 dolmen joined
nine grondilu: use File::Find or Path::Iterator 08:09
08:09 pierre___ left
grondilu yeah, just saw it on rosettacode 08:10
08:11 dakkar joined 08:14 pierre_ joined 08:16 yoleaux joined, ChanServ sets mode: +v yoleaux 08:19 leont joined 08:21 nightsh left
masak good antenoon, #perl6 08:22
08:26 Actualeyes left 08:29 brrt joined 08:31 mcmillhj joined 08:34 vendethiel joined, jonas3 joined, smls joined 08:36 mcmillhj left 08:45 ItayAlmog joined 08:47 Sgeo_ joined 08:48 rindolf joined, ItayAlmog left 08:49 ItayAlmog joined 08:51 Sgeo left, mcmillhj joined, perl6p4 joined 08:52 ab6tract joined
ab6tract o/ #perl6 08:52
i seem to be confused about array slicing 08:53
m: my @a = [ 1 xx 5 ], [ 2 xx 5], [3 xx 5], [4 xx 5]; say @a[][2]; say @a[*][2]
camelia rakudo-moar ec9e81: OUTPUT«[3 3 3 3 3]␤[3 3 3 3 3]␤»
lizmat ab6tract: or you found a bug :)
ab6tract i thought for sure one of those syntaxes (or another that i am forgetting) used to give a list of all the second elements of the arrays
08:54 ItayAlmog left, vendethiel left
ab6tract lizmat: are you saying i ain't crazy (at least not about this)? 08:55
08:56 mcmillhj left
lizmat well, @a[*] is basically the same as @a[], which is basically the same as @a 08:56
masak m: my @a = [1 xx 5], [2 xx 5], [3 xx 5], [4 xx 5]; say @a[*;2]
camelia rakudo-moar ec9e81: OUTPUT«(1 2 3 4)␤»
lizmat so that's just saying @a[2], which looks correct
masak ab6tract: ^^
ab6tract right, but wasn't there a slice syntax for getting at every second element? 08:57
of a multi dim
lizmat I think that's still NYI ?
ab6tract oh
lol
masak just showed me :)
lizmat ah, ok, must not be awake then :-)
there's something wrt to multidim slicing that's NYI still
DrForr Of *course* Perl6 does APL-style slicing. :/ 08:58
masak DrForr: you seem disappointed at this.
08:58 perl6p4 left
DrForr It means I have *more* work :) 08:58
ab6tract maybe we can bacronym APL to be Another Perly Language :)
08:58 nine left, nadim left, ufobat left, aries_liuxueyang left, imcsk8 left, Ulti left, hanekomu left, mtj_ left, jdv79 left, mniip left, broquaint left, dylanwh left, shadowpaste left, xdbr left, jervo left 08:59 mniip joined, sjohnson joined, rafl joined, remmie joined 09:00 dylanwh joined
DrForr The major problem is that APL does strict L-to-R evaluation; I'd need to add a slang that ignores precedence in order to make the operations properly line up. 09:00
09:01 ggherdov left 09:02 leont left, leont_ joined 09:03 jervo joined, nine joined, nadim joined, ufobat joined, aries_liuxueyang joined, imcsk8 joined, Ulti joined, hanekomu joined, mtj_ joined, jdv79 joined, broquaint joined, shadowpaste joined, xdbr joined, TheDir_ joined, jeek joined, gypsydave5 joined, jast joined, margeas joined, aries_liuxueyang left 09:04 ggherdov joined, MorayJ joined 09:05 mcmillhj joined 09:06 aries_liuxueyang joined 09:07 gucore is now known as fridim___ 09:08 ggherdov left 09:09 ggherdov joined, mcmillhj left 09:18 pierre_ left 09:19 Sgeo_ left, mcmillhj joined 09:20 Sgeo_ joined 09:21 girafe left 09:23 pierre_ joined 09:24 mcmillhj left 09:25 leont_ left
TEttinger DrForr: does it? isn't there some precedence so "1 2 3 4 rho 2 2" knows that the first block of numbers are an array, and "2 2" is another array passed as argument to rho? 09:26
09:27 domidumont joined 09:28 pierre_ left
DrForr Well, that was at least the impression I got when I last read the official manual (which I have in storage back in the States.) I'm sure the memory has faded, though. 09:28
09:36 pierre_ joined 09:38 TEttinger left, pierre_ left, pierre_ joined 09:45 brrt left 09:47 CIAvash left, michiamodiego joined, brrt joined 09:48 michiamodiego left 09:49 di_ego joined 09:52 di_ego left 09:54 CIAvash joined
dalek osystem: 81e535d | ab5tract++ | META.list:
Update Terminal::Print META6.json location
10:13
10:18 Sgeo_ left 10:22 girafe joined
nine nadim: you've already missed a lot of interesting discussion over in #perl6-toolchain starting at irclog.perlgeek.de/perl6-toolchain/...i_13112051 10:23
nadim: also my proposal at github.com/perl6/toolchain-bikeshe...r/build.md
10:23 pierre_ left 10:24 Sgeo joined 10:30 lambd0x joined
lambd0x Hi everyone! 10:30
10:37 margeas left 10:42 bioduds left
DrForr Afternoon. 10:42
10:43 itaipu joined 10:48 eyck left 11:02 labster left 11:07 eyck joined 11:11 kaare__ joined
melezhik Hi! 11:13
Hwo can I get an exception object inside CATCH { ... } ?
lizmat $_
melezhik thanks! 11:14
lizmat m: die "foo"; CATCH { dd $_ }
camelia rakudo-moar f0e6ae: OUTPUT«X::AdHoc.new(payload => "foo")␤foo␤ in block <unit> at <tmp> line 1␤␤»
melezhik ok, thanks lizmat: 11:15
sorry, for silly question, I read about payload , but still can't understand how to use it in my exception classes ... 11:16
lizmat die "foo" is basically short for X::AdHoc.new(payload => "foo").throw 11:19
other exceptions have other parameters
melezhik so payload method only makes a sense for X::AdHoc class? 11:20
lizmat yes 11:21
m: say 24 / my $ = 0; CATCH { dd $_ } # other example
camelia rakudo-moar f0e6ae: OUTPUT«X::Numeric::DivideByZero.new(using => "div", numerator => 24)␤Attempt to divide 24 by zero using div␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
11:21 pmurias left
melezhik ok, thanks lizmat: 11:22
how to disable variables interpolation inside regular expressions ?
to have something /$foo/ where $foo is not a variable ... 11:23
timotimo just put it in single quotes
that'll guarantee no interpolation happens
nadim nine, I'll look at it right now 11:24
nine: so when I explain a problem you profit of the occasion to cleanup your nose and get a small raccoon out of it. imgur.com/a/mBNte 11:26
melezhik thanks timotimo: , I guessed this, probably had some other errors in other parts of my regexps ...
timotimo could be, yes 11:28
nine LOL
nadim hehe
nine Well if the image was larger, I could talk myself out of this...
timotimo melezhik: have you tried perl6-debug-m yet? (you need to install a front-end module)
melezhik perl6-debug-m for what ?
nadim nine: IMVHO, and I know a lot of people will not get it, forget make, forget make, forget make. also, in my experience, declarative systems will fail. or rather they will deprecate rapidly. Maybe we can continue this on the toolchain channel. 11:29
timotimo melezhik: for your regex parsing?
nine nadim: please. I wouldn't mind you reposting that
melezhik ah, I am confident enough to manage on my own, thanks for advise anyway ... 11:30
lizmat nadim: that was just nine switching the tape recorder up his nose to "record" :-)
melezhik can't find to how to have tests without plan at docs.perl6.org/language/testing if I have only done-testing at the end, I still have a Parse errors: No plan found in TAP output 11:31
lizmat just a done-testing at the end should be enough 11:32
m: use Test; ok 1; done-testing
camelia rakudo-moar f0e6ae: OUTPUT«ok 1 - ␤1..1␤»
melezhik ahh, got now, seems like program flow does not reach a done-testing call
that's the reason ...
it's ok now
DrForr Or 'plan 42;' at the top, if you know the number of tests or can compute them. 11:33
timotimo worst case, just END { done-testing } :P
nadim lizmat: he's sneaky like that
11:33 jonadab left
melezhik strange enough if I have asserts in CATCH {} block seems like done-testing also needs to be called inside CATCH {} block; If I have done-testing just at the end of the file I have "No plan found in TAP output" 11:35
lizmat m: say 24 / my $ = 0; CATCH { default { dd $_ } } # use default to disarm the exception 11:38
camelia rakudo-moar f0e6ae: OUTPUT«X::Numeric::DivideByZero.new(using => "div", numerator => 24)␤»
lizmat m: use Test; die; CATCH { default { dd $_ } }; done-testing
camelia rakudo-moar f0e6ae: OUTPUT«X::AdHoc.new(payload => "Died")␤»
lizmat m: use Test; ok "foo"; die; CATCH { default { dd $_ } }; ok "bar"; done-testing 11:39
camelia rakudo-moar f0e6ae: OUTPUT«ok 1 - ␤X::AdHoc.new(payload => "Died")␤»
lizmat hmmm
m: use Test; ok "foo"; die; CATCH { default { dd $_ } }; ok "bar"; END done-testing
camelia rakudo-moar f0e6ae: OUTPUT«ok 1 - ␤X::AdHoc.new(payload => "Died")␤1..1␤»
melezhik was able to reproduce lizmat: ?
lizmat melezhik: I guess using END is best then :-)
melezhik yes, but this one is obscure , don't you think? 11:40
11:42 MilkmanDan left
jnthn Having a CATCH block in the mainline of your test file is sure obscure :) 11:42
melezhik yeah, tests need to get improved , for sure, I just trying to say that I expect that done-testing works at the end of my code, without any additional magic with END { ... } 11:44
lizmat m: use Test; ok "foo"; die; CATCH { .resume }; ok "bar"; done-testing
camelia rakudo-moar f0e6ae: OUTPUT«ok 1 - ␤ok 2 - ␤1..2␤»
lizmat I think the misunderstanding was about what CATCH does
the CATCH doesn't prevent the exception to be thrown per se
melezhik why you focus on CATCH? I just found that done-testing does not work for some cases 11:45
lizmat melezhik: what is the case it doesn't work ?
melezhik ok, let me write an explanatory code
I thought you already did ... 11:46
11:46 itaipu_ joined
Xliff I've tracked weird behavior in a custom sub EXPORT I am writing. 11:46
If I send anything but an empty map, I get the following error: "Cannot find method 'package_at_key': no method cache and no .^find_method
"
Maybe related to rt.perl.org/Public/Bug/Display.html?id=128010 11:48
??
11:49 itaipu left, brrt left 11:50 girafe left 11:54 mcmillhj joined 11:55 vendethiel joined, smls left
jnthn melezhik: After a CATCH has handled the exception, the block enclosing the CATCH is left (which in your case is the mainline of the program). done-testing isn't something magical, it's just a normal subroutine call (like all the test subs). So you exit the mainline of the program before there's any chance to reach done-testing and run it. 11:55
melezhik gist.github.com/melezhik/5a3b0b77e...ad60b0a542 11:57
please take a look at this
11:57 rindolf left
lizmat melezhik: after the CATCH block is executed, execution stops: it never reaches the done-testing in that case 11:58
dalek c: 37999cd | MasterDuke17++ | doc/Language/glossary.pod6:
Fix typo in 'Colon Pair' indexing
11:59 mcmillhj left, MorayJ left
melezhik "after the CATCH block is executed, execution stops: it never reaches the done-testing in that case" does it stated at docs.perl6.org/language/exceptions ? 12:00
12:00 rindolf joined 12:01 itaipu_ left, itaipu joined
masak melezhik: yes. 12:02
melezhik: from that page: "Exceptions interrupt control flow and divert it away from the statement following the statement that threw it."
lizmat docs.perl6.org/language/exceptions...Exceptions
masak (in fact, the sentence is not completely correct. interruption happens at the resolution of sequence points, not statements.) 12:03
melezhik masak: it's about exceptions , but not that clear (at least I can't this that everything going _after_ CATCH blocks will be never executed ... ) 12:04
12:04 domidumont left
timotimo not quite 12:05
masak melezhik: "Exceptions interrupt control flow"
12:05 domidumont joined
masak melezhik: it's right there in those words 12:05
timotimo m: { die "oh no!"; say "not executed"; CATCH { default { } }; say "also not executed?" }; say "end of the thing"
camelia rakudo-moar f0e6ae: OUTPUT«end of the thing␤»
timotimo ah.
jnthn melezhik: It's not about "not after the CATCH block", it's about "not after the point of the throw"
masak yes, it's not about "after the CATCH"... what jnthn++ said 12:06
melezhik masak: and? ... I know what exceptions are , please reread my lines about catch blocks
masak melezhik: plonk
jnthn But yes, I agree that page could be more clear.
12:06 Wiertek left
jnthn melezhik: If you expect control to reach your done-testing statement, your understanding of exceptions has some way to go :) 12:06
The easiest way to deal with this is just to shove the throwing statement and your CATCH inside of a try { ... } 12:07
lunch time &
melezhik guys forget about done-testing, I am just tying to say that according to exceptions docs it's not clear that code goes after CATCH {} will be never executed
12:08 ItayAlmog joined
melezhik it is not about I can't have my tests done in right way, it's about ,,, well more about documentation, imho 12:08
moritz melezhik: you're welcome to open an issue on the perl6/docs repo, or even contribute the docs yourself 12:09
perl6/doc that is
on github
melezhik yes, sure , I just want to be sure that I do not want judge anybody I just want to be sure, that other get my thoughts ...
12:11 domidumont left
melezhik now I know how CATCH works in perl6, thanks for explanations, I just tried to say this behavior is not clear after my reading perl6 exceptions docs, that is it. 12:11
won't tell more on this topic :)) 12:12
mst right, but we're saying "we don't know how to make it clearer if you don't help, so please help, we'd love that"
12:12 domidumont joined
melezhik mst: sure 12:13
moritz melezhik: don't stop with that topic. Please use your newly gained understanding to improve the docs.
mst melezhik++ # I look forward to the patch
melezhik moritz: , mst: will think about perl6 doc contribution
12:13 mcmillhj joined
DrForr It's just a Git PR away :) 12:14
melezhik DrForr: sure ... :) 12:15
12:15 bjz_ left
DrForr Fork, checkout a new doc branch, hack hack, commit, PR. *boom*. 12:15
timotimo good boom or bad boom? :) 12:16
jast only one way to find out
DrForr Boom today, boom tomorrow. There's *always* a boom tomorrow. 12:17
timotimo hm. when's next boomday?
fish: ddate: command not found... - grrrrrr
DrForr Tomorrow, of course. (Good grief, have you all forgotten Babylon 5?...) 12:18
12:18 MasterDuke joined
arnsholt <3 Babylon 5 12:18
melezhik btw, if perl6 CATCH {} has something similar like "ensure" block like in ruby, where someone could put a code which will be executed _unconditionally_, right after all the "when" blocks executed ... ?
12:19 vendethiel left
timotimo melezhik: yeah, LEAVE should do that 12:19
melezhik ahh, good
timotimo who's the boom king? 12:20
arnsholt Well, masak used to be king of the bug reports, so maybe he is? =)
timotimo no, no, no. i'm the boom king!
anyway, AFK for a bit 12:21
DrForr . o ( Say hello to my *BOOM* stick )
timotimo (if you don't know what i was referencing, it's "She's So Hot Boom" by Flight of the Conchords, and it comes highly recommended - especially with the video that goes with it)
12:22 garu joined
dalek line-Perl5/raccoon: e746858 | niner++ | / (3 files):
Experimental support for experimental raccoon build system
12:23
12:29 CIAvash left
garu hi everyone! not sure if it's a bug, a not-implemented-yet or a by-design thing, but "my regex fú { \. }; say 'w00t' if 'a.b' ~~ / <fú> /;" is borking with "Error encoding ASCII string: could not encode codepoint 250" 12:29
if I change fú with fu it works, of course 12:30
(tested against moar-nom aa5e494. running rakudobrew build moar now) 12:32
12:32 bjz joined 12:34 sufrostico joined
MasterDuke bisect: my regex fú { \. }; say 'w00t' if 'a.b' ~~ / <fú> / 12:35
bisectable6 MasterDuke, On both starting points (good=2015.12 bad=ec9e814) the exit code is 1 and the output is identical as well
MasterDuke, Output on both points: ===SORRY!===␤Error encoding ASCII string: could not encode codepoint 250
12:35 n1lp7r joined
masak timotimo: thanks for the "boom" reference. I enjoyed watching www.youtube.com/watch?v=a-sawvtJxDI :) 12:36
have heard the song before but not seen the video
garu p6: my regex fú { \. }; say 'w00t' if 'a.b' ~~ / <fú> /;
camelia rakudo-moar f0e6ae: OUTPUT«===SORRY!===␤Error encoding ASCII string: could not encode codepoint 250␤»
garu I guess it fails on HEAD as well :/ 12:37
moritz that's a bug :(
garu moritz: excelent! is it easy enough that someone who's never had any contact with the codebase *cough*me*cough* can take a stab a it? Or will I be doing more damage than good? :D 12:38
moritz garu: I don't know 12:39
garu: it's not immediately obvious where the bug comes from, so I can't tell
garu then I guess the answer is no. no worries, I'm happy I could help spotting it anyway :) 12:40
masak what's codepoint 250? is there any non-ASCII in that camelia eval? 12:41
12:42 ItayAlmog left
moritz masak: regex fú 12:43
the ú isn't ASCII :-)
.u ú
yoleaux U+00FA LATIN SMALL LETTER U WITH ACUTE [Ll] (ú)
masak geez, I gotta set up this term correctly... 12:48
timotimo masak: i more thought of www.youtube.com/watch?v=JT5AQIlmM0I when i mentioned the video that goes with it :) 12:50
it has a bit of the story from the series at the beginning, but it's super funny, too.
other favourites include "i'm not crying", "you don't have to be a prostitute", "carol brown", "frodo don't wear the ring", "mother uckers", and so many more :) 12:54
12:54 neuron joined 12:55 tonar joined
tonar bisect: :१x 12:56
bisectable6 tonar, For the given starting points (good=2015.12 bad=ec9e814), exit code on a ‘good’ revision is 1 (which is bad), bisecting with inverted logic
tonar, bisect log: gist.github.com/20bd24e49edd56c973...da0224876d
tonar, (2016-06-12) github.com/rakudo/rakudo/commit/054a54a
tonar committable6: 2016.04 :१x 12:57
committable6 tonar, ¦«2016.04»: ===SORRY!===␤Error encoding ASCII string: could not encode codepoint 2407 «exit code = 1»
tonar garu: ^ the fix for your thing is likely the same. (see commit from bisectable)
12:57 darutoko left
tonar s/same/similar/; 12:57
And the docs for nqp ops are here: github.com/perl6/nqp/blob/master/d...s.markdown 12:59
You don't need the radix one, but maybe something or other :) 13:00
13:00 tonar left
timotimo so what's RT #128306 exactly? 13:02
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128306
timotimo thank you, synopsebot6
oh, does that mean the fix got b0rked in the mean time? then why did bisectable show that commit and not the one that b0rked it recently(ish)? 13:03
13:05 eliasr joined 13:06 Sgeo left 13:07 tonar joined
melezhik github.com/perl6/doc/pull/876 - CATCH blocks and the following code 13:07
my vision of it
tonar timotimo: the 128306 is a resolved ticket. It had the same error as garu's issue, and thus its fix may be at least helpful to garu's desire to attempt to fix the bug. Nothing got broken after it got fixed. I've used commitable robot to execute code on a pre-fix commit. 13:08
DrForr melezhik: Yay! 13:09
tonar melezhik: that's not accurate. The CATCH block can go anywhere in the block. It's the code after the thrown *exception* that will never get executed. 13:10
melezhik tonar: I see 13:11
tonar melezhik: you can put that CATCH and LEAVE right at the start of the block and effect would be nearly* the same (*the only difference is when they are at the very end, which affects block's return value)
melezhik "The CATCH block can go anywhere in the block" , what do you mean by <block> ? A some other block, like try { ... } ? 13:12
moritz the block outside of CATCH 13:13
melezhik ок, moritz: makes a sense now
tonar m: CATCH { default { 'sploops'.say } }; die "zomg!"; say 'we are OK' 13:14
camelia rakudo-moar a45202: OUTPUT«sploops␤»
melezhik I will probably adjust my patch soon
tonar m: CATCH { default { 'sploops'.say } }; say 'this still gets printed because it is before the exception thrown by die that follows'; die "zomg!"; say 'we are OK'
camelia rakudo-moar a45202: OUTPUT«this still gets printed because it is before the exception thrown by die that follows␤sploops␤»
timotimo tonar: you know a lot about stuff, but i never read your name before ... are you The Z? :P 13:15
tonar m: say 'this still gets printed because it is before the exception thrown by die that follows'; die "zomg!"; say 'we are OK'; CATCH { default { 'sploops'.say } };
camelia rakudo-moar a45202: OUTPUT«this still gets printed because it is before the exception thrown by die that follows␤sploops␤»
melezhik tonar: make a sense for me, will update my MR soon
tonar timotimo: Tthe Z? Never heard of her.
13:15 skids joined
tonar :) 13:15
13:17 itaipu left 13:19 cdg joined, ufobat left 13:20 MilkmanDan joined 13:21 tonar left 13:23 girafe joined 13:26 itaipu joined 13:29 wamba left
timotimo huh, this "Girls Who Code DSM" account apparently has only a single tweet and it's about perl6 ... strange 13:34
mst that's really weird, the DSM's only at version 5 13:35
13:36 MilkmanDan left
timotimo what does DSM stand for in your context? 13:37
13:38 MilkmanDan joined
mst enwp.org/DSM_V 13:39
timotimo oh, that thing 13:40
as long as it doesn't classify perl 6 as a disorder ...
13:42 neuron left 13:44 darutoko joined 13:46 jonadab joined
ugexe its spectrum now 13:51
timotimo Perl Spectrum Disorder?
13:51 mspo joined
timotimo could be either 5, or 6, or in some older patients, 4? :) 13:51
13:56 MilkmanDan left 13:58 zacts left
melezhik tonar: have just updated my MR - github.com/perl6/doc/pull/876/files 14:00
14:02 gfldex joined 14:06 MilkmanDan joined
timotimo melezhik: "upper block" instead of "outer block"? 14:06
melezhik yeah, outer is better name for this 14:08
14:08 Wiertek joined, rindolf left 14:10 tokomer joined 14:13 MilkmanDan left 14:14 rindolf joined, bobv joined 14:15 darutoko left, MilkmanDan joined 14:19 woolfy left 14:23 woolfy joined 14:26 Guest43351 is now known as ponbiki
gfldex m: enum Options(<Foo Bar>); sub f(+@a where @a.all ~~ Options){ dd @a }; f(Foo, Bar); 14:27
camelia rakudo-moar a45202: OUTPUT«[Options::Foo, Options::Bar]␤»
melezhik s/upper/outer/
commited
lizmat melezhik: looks good to me, but I'm also a bit distracted :-) 14:30
14:32 itaipu left
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); sub f(+@a where @a.all ~~ (Options|Options2)){ dd @a }; f(Foo, Buzz); 14:33
camelia rakudo-moar a45202: OUTPUT«Constraint type check failed for parameter '@a'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); sub f(+@a where @a.all ~~ (Options,Options2).any){ dd @a }; f(Foo, Buzz);
camelia rakudo-moar a45202: OUTPUT«Constraint type check failed for parameter '@a'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
gfldex i did expect that to work
melezhik lizmat: that's ok, so do I ;-) , at my regular job ... 14:34
14:34 itaipu joined
gfldex i do not expect that to work anymore :) 14:36
m: enum Options(<Foo Bar>); enum Options2(<Buzz>); sub f(+@a where @a.any ~~ (Options,Options2).any){ dd @a }; f(Foo, Buzz);
camelia rakudo-moar a45202: OUTPUT«[Options::Foo, Options2::Buzz]␤»
gfldex that works but is wrong 14:37
how do I say "all members of LHS must be member of either of the members of RHS"? 14:38
14:41 khw joined
lizmat all(@lhs) (elem) any(@rhs) "? 14:44
14:45 rindolf left
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); sub f(+@a where @a.all (elem) (Options,Options2).any){ dd @a }; f(Foo, Buzz); 14:45
camelia rakudo-moar a45202: OUTPUT«Constraint type check failed for parameter '@a'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
14:46 AlexDaniel joined
lizmat gfldex: does it work outside of a where clause ? 14:46
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say (Foo, Buzz).all (elem) any(Options,Options2) 14:47
camelia rakudo-moar a45202: OUTPUT«all(any(False, False), any(False, False))␤»
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say (Foo, Buzz) (elem) any(Options,Options2)
camelia rakudo-moar a45202: OUTPUT«any(False, False)␤»
14:48 rindolf joined 14:51 zacts joined
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say all(Foo, Buzz) (elem) (Foo, Bar, Buzz) 14:52
camelia rakudo-moar a45202: OUTPUT«all(True, True)␤»
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say all(Foo, Buzz, 5) (elem) (Foo, Bar, Buzz)
camelia rakudo-moar a45202: OUTPUT«all(True, True, False)␤»
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say so all(Foo, Buzz, 5) (elem) (Foo, Bar, Buzz)
camelia rakudo-moar a45202: OUTPUT«False␤»
14:53 pmurias joined
pmurias nine: what's racoon? 14:53
lizmat pmurias: it's basically a module installer that can be included in the distribution itself 14:54
use case: install Inline::Perl5 without needing panda
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say Options (|) Options2; 14:55
camelia rakudo-moar a45202: OUTPUT«set((Options), (Options2))␤»
gfldex m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say Options::.keys (|) Options2::.keys;
camelia rakudo-moar a45202: OUTPUT«set(Foo, Bar, Buzz)␤»
gfldex i would expect (|) on enums to return a union of enum keys (objects, not Str) 14:56
m: enum Options(<Foo Bar>); enum Options2(<Buzz>); say Options::.values (|) Options2::.values; 15:00
camelia rakudo-moar a45202: OUTPUT«set(Foo, Buzz, Bar)␤»
gfldex .values actually
15:03 Actualeyes joined 15:07 pyrimidine left
[Coke] .seen supernovus 15:07
yoleaux I saw supernovus 22 Apr 2016 23:27Z in #perl6: <supernovus> Well, I'm going to have to run. Have a great day/night everyone. I hope to fix up some of my long neglected libraries at some point when I'm not completely overloaded with work! :-)
15:08 mempko joined 15:13 AlexDaniel left 15:15 darutoko joined
dalek c: 66b49f8 | MasterDuke17++ | doc/Language/terms.pod6:
Add :123abc form to Pair description
15:18
nine pmurias: a raccoon is like a panda but smaller :) It's meant as a bootstrapping and packaging tool. Cases where you don't need all the features that panda or zef provide. Most notably installation of dependencies. 15:19
b2gills It looks like the DSM in "Girls Who Code DSM" is short for Des Moines 15:22
15:26 khw left 15:31 fridim___ left 15:37 pyrimidine joined 15:38 tokomer left 15:39 mempko left
[Coke] is http::easy not async? 15:39
TimToady gfldex: please rakudobug that 15:40
15:41 lostinfog joined
TimToady m: enum Options <Foo Bar>; sub f(Foo $foo?){}; f(Foo); 15:43
camelia ( no output )
TimToady m: enum Options <Foo Bar>; sub f(Foo() $foo?){}; f(0);
camelia rakudo-moar a45202: OUTPUT«Method 'Options' not found for invocant of class 'Int'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TimToady m: enum Options <Foo Bar>; sub f(Foo() $foo?){}; f();
camelia rakudo-moar a45202: OUTPUT«Method 'Options' not found for invocant of class 'Any'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TimToady that one, I mean
m: enum Options <Foo Bar>; sub f(Foo $foo?){}; f();
camelia rakudo-moar a45202: OUTPUT«Invocant requires an instance of type Int, but a type object was passed. Did you forget a .new?␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
TimToady er, that one
15:44 zacts left
gfldex TimToady: filed as #129160 15:45
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129160
15:46 pmurias left 15:48 cibs left 15:49 pmurias joined
[Coke] What's the Foo type there? only that specific enum value? 15:49
m: sub f(3 $a) { $a }; say f(4); say f(3); 15:50
camelia rakudo-moar a45202: OUTPUT«Constraint type check failed for parameter '$a'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
15:50 cibs joined
[Coke] m: sub f(3 $a) { $a }; say f(3); 15:50
camelia rakudo-moar a45202: OUTPUT«3␤»
[Coke] huh.
specifying an instance value seems not entirely helpful, but ok. 15:52
(moreso on multis, I suppose.)
TimToady m: sub f(3 $a?) { $a }; say f()
camelia rakudo-moar a45202: OUTPUT«Invocant requires an instance of type Int, but a type object was passed. Did you forget a .new?␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
15:53 pmurias left
TimToady arguably it might not be a bug, but we should think about it 15:53
m: sub f(3 $a = 2) { $a }; say f() 15:54
camelia rakudo-moar a45202: OUTPUT«Constraint type check failed for parameter '$a'␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
[Coke] ... should I tag it RFC instead of BUG? ;)
TimToady yeah
lizmat TimToady: forgetting a comma: sub f(3 $a?) versus sub f(3,$a?) becomes an easy bug to miss ?
TimToady you take your chances in life... 15:55
lizmat true
TimToady sometimes missing commas blow up rockets
I mean, we could certainly require an absence of TTIAR inside siggies, but then you'd have to write sub f (Int & $x) {} or some such 15:56
so we've always gone with "implicit and" inside sigs
[Coke] could use a sig today. 15:57
TimToady m: sub foo (Int 3 $x) {}
camelia rakudo-moar a45202: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤A parameter may only have one prefix type constraint␤at <tmp>:1␤------> 3sub foo (Int 37⏏5 $x) {}␤»
TimToady in the original design, that would just work 15:58
m: sub foo (Int Str $x) {say $x}; foo(<42>) 15:59
camelia rakudo-moar a45202: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤A parameter may only have one prefix type constraint␤at <tmp>:1␤------> 3sub foo (Int Str7⏏5 $x) {say $x}; foo(<42>)␤»
TimToady m: sub foo (IntStr $x) {say $x}; foo(<42>)
camelia rakudo-moar a45202: OUTPUT«42␤»
TimToady m: sub foo (Int $x where Str) {say $x}; foo(<42>) 16:00
camelia rakudo-moar a45202: OUTPUT«42␤»
TimToady we shoved most of that into the 'where' category
16:03 bob777 left 16:05 ab6tract left 16:06 araujo_ joined 16:08 MilkmanDan left 16:10 araujo left, araujo__ joined 16:12 araujo_ left 16:16 araujo__ left 16:21 leont_ joined, khw joined, itaipu left 16:22 MilkmanDan joined 16:26 MilkmanDan left 16:27 kyclark joined
kyclark I think I've asked this sort of thing several times, but how do I write a MAIN sig that requires a list of existing files? lpaste.net/182555 16:28
16:28 domidumont left 16:29 tofu_ joined
gfldex kyclark: where @files>>.f.all 16:30
(i think)
16:31 tofu_ left
kyclark This seems to work: sub MAIN (*@files where all(@files) ~~ File) { 16:34
but the error message is unclear for the user "Constraint type check failed for parameter '@files'" 16:35
ilmari can types have custom error messages? 16:37
kyclark I can say [email@hidden.address] to get files -- how can I negate the grep?
To get not-files?
timotimo m: sub test (*@a where (all(@a) ~~ Int or die "oh no!") { }; test (1, 2, 3); test (9, 9, "nine") 16:38
camelia rakudo-moar a45202: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unexpected block in infix position (missing statement control word before the expression?)␤at <tmp>:1␤------> 3a where (all(@a) ~~ Int or die "oh no!")7⏏5 { }; test (1, 2, 3); test (9, 9, "nine"␤…»
timotimo m: sub test (*@a where (all(@a) ~~ Int or die "oh no!")) { }; test (1, 2, 3); test (9, 9, "nine")
camelia rakudo-moar a45202: OUTPUT«oh no!␤ in sub test at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
timotimo kyclark: you can grep for (none(File))
kyclark Hecking sweet. 16:39
16:39 leont_ left 16:41 MilkmanDan joined 16:42 dakkar left
timotimo i wonder if we should introduce an optimized Junction for none of only one argument ... 16:43
gfldex kyclark: the open method will do the check and produce a proper error message for you. Working with file systems and assuming eagerness may provide you with surprises. 16:44
16:46 jonas3 left, MilkmanDan left 16:48 mempko joined 16:54 MilkmanDan joined 17:02 andrzejku joined 17:03 domidumont joined
gfldex kyclark: it's nice to provide absolute paths and check for dangling symlink (what does not work right now because of rakudobug) gist.github.com/gfldex/6c6b1fc11ee...91e90702c3 17:06
17:09 firstdayonthejob joined
kyclark Right now I'm just doing "unless $file.IO.f" check in the loop. Good enough? 17:09
17:10 Wiertek left
gfldex you will get odd error messages, esp. for your audience who may never have heared of symlinks 17:10
kyclark: also that a file is there doesn't have to mean that you can read it. But .open should handle that case. 17:11
grondilu given a hash %h and an array such as my @abc = <a b c>, how do I access %h<a><b><c> ?
gfldex goes to check
avuserow m: class Hats {has uint8 $.f;}; my $h = Hats.new; my uint8 $u = -1; $h.^attributes(:local)[0].set_value($h, $u); say $u; say $h.f 17:12
camelia rakudo-moar a45202: OUTPUT«255␤-1␤»
avuserow I would've expected both to be 255... any ideas here?
kyclark m: my %h = 'a'..'c' Z=> 1..*; say %h<a b c>.join(', ') 17:13
camelia rakudo-moar a45202: OUTPUT«1, 2, 3␤»
grondilu kyclark: nope, that's a slice. I was refering to a nested structure. 17:14
17:14 wamba joined
kyclark Dang it, I thought I had the answer. :-) 17:14
avuserow m: my %h = a => b => c => 4; my @path = <a b c>; my $a = %h; $a = $a{$_} for @path; say $a # grondilu
camelia rakudo-moar a45202: OUTPUT«4␤»
kyclark Mostly I do asking, so I got excited I might answer.
gfldex grondilu: see: github.com/gfldex/perl6-rakudo-slippy-semilists
grondilu: also, expect slowness. You may be better of with stiching the key together by hand. But you have to be careful with your values in that case. 17:16
17:16 zakharyas left
timotimo m: my %a; %a<a><b><c> = "hi"; my @l = <a b c>; say (%a, |@a).reduce(-> %a, $e { %a{$e} }); 17:17
camelia rakudo-moar a45202: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '@a' is not declared. Did you mean '%a'?␤at <tmp>:1␤------> 3><c> = "hi"; my @l = <a b c>; say (%a, |7⏏5@a).reduce(-> %a, $e { %a{$e} });␤»
timotimo m: my %a; %a<a><b><c> = "hi"; my @l = <a b c>; say (%a, |@l).reduce(-> %a, $e { %a{$e} });
camelia rakudo-moar a45202: OUTPUT«hi␤»
masak m: constant %FOO = a => 1, b => 2, c => 3; say "OH HAI"
camelia rakudo-moar a45202: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Type check failed in constant declaration of %FOO; expected Associative but got List (List)␤at <tmp>:1␤------> 3constant %FOO = a => 1, b => 2, c => 37⏏5; say "OH HAI"␤ expecting any of:␤ …»
masak TimToady: why is it that `my %foo` works, but not `constant %FOO` in the above. feels to me it violates Least Surprise :) 17:18
timotimo m: my %a; %a<a><b><c> = "hi"; my @l = <a b c>; sub infix:<(HE)>(%a, $e) { %a{$e} }; say [(HE)] %a, |@l
camelia rakudo-moar a45202: OUTPUT«hi␤»
MasterDuke m: my %h; %h<a><b><c> = 1; my $a = %h; $a = $a{$_} for <a b c>; say $a
gfldex masak: IIRC constant got implicit binding
camelia rakudo-moar a45202: OUTPUT«1␤»
17:18 awwaiid left
timotimo right, constants with sigils don't really work ATM 17:19
grondilu and as a lvalue?
gfldex grondilu: the module I linked should support lvalues
grondilu m: my %h; my $e = %h; $e := $e{$_} for <a b c>; $e := "foo"; say %h<a><b><c>; 17:20
camelia rakudo-moar a45202: OUTPUT«(Any)␤»
masak timotimo: "ATM"? so in the cuture, my eval above might not fail? 17:21
grondilu gfldex: I'll look into it. Btw travis seems broken for this module. 17:22
gfldex m: my %h; say %h{'a';'b';'c'} = 1; dd %h; my $e := %h{'a';'b';'c'}; $e = 2; dd %h; 17:23
camelia rakudo-moar a45202: OUTPUT«(1)␤Hash %h = {:a(${:b(${:c(1)})})}␤Cannot assign to an immutable value␤ in block <unit> at <tmp> line 1␤␤»
17:26 shinobicl joined, dustinm` left
gfldex grondilu: travis is fine, the readme was wrong 17:26
grondilu indeed, for some reason the travis logo did not show up I had to hard refresh. 17:27
gfldex i sneaked in and added one "s" twice 17:28
grondilu oh ok
I'm slightly confused, though. If this postfix operator is specced why is it NYI and requires a module? 17:29
gfldex it's designed, not specced
17:30 MilkmanDan left
grondilu also I said postfix but you describe it as postcircumfix and use is as a prefix. Not sure what's going on. 17:30
gfldex i did add postcircumfix:<{; }>:exists to rakudo but failed for the other two
grondilu oh silly me 17:31
it's postcircumfix:<{|| }> not prefix:<||> 17:32
17:32 Ancient__ joined
gfldex techically it could be prefix:<||> if there would be a buildin type called SemiList (or somesuch) 17:32
with that it would become trivial to add it to rakudo
17:33 Ancient__ left, Ancient__ joined
timotimo masak: i have no clue :S 17:33
grondilu Have you considered making a SemiList module instead? 17:34
gfldex grondilu: it would need to go into 6.d anyways and it ain't no december yet 17:35
17:37 Ancient__ left
grondilu m: proto extract(%, $) {*}; multi extract(%h, Str $p) { %h{$p} }; multi extract(%h, Pair $p) { extract(%h{$p.key}, $p.value) }; (my %h)<a><b><c> = "foo!"; say extract(%h, [=>] <a b c>) 17:39
camelia rakudo-moar a45202: OUTPUT«foo!␤»
kyclark On one machine, I installed Perl 6 from Rakudo Star, so how do I build panda now? On another machine, I used rakudobrew.
17:39 vendethiel joined
grondilu lol, I'm happy with that one. 17:39
gfldex kyclark: * comes with panda build in 17:40
grondilu maybe what we just need is define AT-KEY(Pair $)
Or make a lisp-style list role.
17:41 MilkmanDan joined
grondilu m: proto extract(%, $) is rw {*}; multi extract(%h, Str $p) { %h{$p} }; multi extract(%h, Pair $p) { extract(%h{$p.key}, $p.value) }; my %h; extract(%h, [=>] <a b c>) = "foo"; say %h<a><b><c> 17:41
camelia rakudo-moar a45202: OUTPUT«Type check failed in binding to <anon>; expected Associative but got Any (Any)␤ in sub extract at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: proto extract(%, $) is rw {*}; multi extract(%h, Str $p) { %h{$p} }; multi extract(%h, Pair $p) { extract(%h{$p.key}, $p.value) }; (my %h)<a><b><c> = Mu; extract(%h, [=>] <a b c>) = "foo"; say %h<a><b><c> 17:42
camelia rakudo-moar a45202: OUTPUT«Cannot modify an immutable Mu␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: proto extract(%, $) is rw {*}; multi extract(%h, Str $p) { %h{$p} }; multi extract(%h, Pair $p) { extract(%h{$p.key}, $p.value) }; (my %h)<a><b><c> := "foo"; extract(%h, [=>] <a b c>) = "foo"; say %h<a><b><c>
camelia rakudo-moar a45202: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: proto extract(%, $) is rw {*}; multi extract(%h, Str $p) { %h{$p} }; multi extract(%h, Pair $p) { extract(%h{$p.key}, $p.value) }; (my %h)<a><b><c> = "foo"; extract(%h, [=>] <a b c>) = "bar"; say %h<a><b><c>
camelia rakudo-moar a45202: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at <tmp> line 1␤␤»
grondilu hum, lvalue is challenging
gfldex m: my %h; say %h{'a';'b';'c'} = (my $a = 1); dd %h; %h{'a';'b';'c'} = 2; dd %h 17:44
camelia rakudo-moar a45202: OUTPUT«(1)␤Hash %h = {:a(${:b(${:c(1)})})}␤Hash %h = {:a(${:b(${:c(2)})})}␤»
gfldex you need to assign a container
m: my %h; say %h{'a';'b';'c'} = (my $ = 1); dd %h; %h{'a';'b';'c'} = 2; dd %h
camelia rakudo-moar a45202: OUTPUT«(1)␤Hash %h = {:a(${:b(${:c(1)})})}␤Hash %h = {:a(${:b(${:c(2)})})}␤»
grondilu m: proto extract(%, $) is rw {*}; multi extract(%h, Str $p) { %h{$p} }; multi extract(%h, Pair $p) { extract(%h{$p.key}, $p.value) }; (my %h)<a><b><c> = my $ = "foo"; extract(%h, [=>] <a b c>) = "bar"; say %h<a><b><c> 17:45
camelia rakudo-moar a45202: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at <tmp> line 1␤␤»
gfldex we don't need no stinkin' variable names ofc
grondilu m: proto extract(%, $) is rw {*}; multi extract(%h, Str $p) { %h{$p} }; multi extract(%h, Pair $p) { extract(%h{$p.key}, $p.value) }; (my %h)<a><b><c> := my $ = "foo"; extract(%h, [=>] <a b c>) = "bar"; say %h<a><b><c>
camelia rakudo-moar a45202: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <unit> at <tmp> line 1␤␤»
17:46 domidumont left
gfldex m: my %h; %h{1} = 2; %h{1} = 3; 17:46
camelia ( no output )
gfldex actually I vote for bug. It's a normal Hash even if it's keys are multidim. And Hash is not Map. 17:47
17:47 domidumont joined
gfldex gets his rakudobug form 17:48
grondilu how would you golf it?
gfldex m: my %h; %h{1;2;3} = 1; %h{1;2;3} = 2; 17:49
camelia ( no output )
17:50 Ven joined
grondilu that does not die, does it? 17:50
gfldex m: my %h; say %h{1;2} = 1; dd %h; my $e := %h{1;2}; $e = 2; dd %h; 17:51
camelia rakudo-moar a45202: OUTPUT«(1)␤Hash %h = {"1" => ${"2" => 1}}␤Cannot assign to an immutable value␤ in block <unit> at <tmp> line 1␤␤»
gfldex m: my %h; say %h{1} = 1; dd %h; my $e := %h{1}; $e = 2; dd %h; 17:52
camelia rakudo-moar a45202: OUTPUT«1␤Hash %h = {"1" => 1}␤Hash %h = {"1" => 2}␤»
17:52 domidumont left
grondilu ok, I see the issue better now 17:53
well, I don't want to be negative or anything, but that confirms what I say sometimes.
gfldex not well tested those multidim Hashs 17:54
grondilu "everytime I try to do something more or less serious in Perl 6, I encounter a bug"
gfldex i do encounter to but less and less these days
grondilu though "more or less serious" is not exactly what I mean.
I mean more like: "something that has a purpose per se, not just toying with the language". 17:55
gfldex that's how you find bugs in a compiler/language after all 17:56
grondilu I guess.
it might also be an observational biais. I don't pay nearly as much attention when everything goes fine.
gfldex it took python 9 years to become useful, so we are well within the deadline :) 17:57
grondilu I use multidim hashes whenever I want to deal with a small database. I tend to put it all in a single Hash, and then I encounter bugs like this. 17:59
so if multidim Hashes are not well tested, it may be LTA 18:00
grondilu suddenly wonders if he really understand what a multidim Hash is. 18:01
gfldex it may be a very simple fix
18:01 dustinm` joined
gfldex it's a nested Hash (unless someone goes in with the big optimisation hammer) 18:01
grondilu ok, "nested Hash" is easier to understand for me. 18:02
gfldex but it autovivifies wrong. It binds to a value where it could copy the value into a new container and bind to that
kyclark Along those liines, I was playing yesterday with wanting a Hash of Arrays, e.g., %h{'key'} = <val1 val2 val3> and I was having a bear of a time figuring out how to get the list out of the hash.
grondilu should be straightforward. 18:03
m: (my %h)<key> = <a b>; say %h<key>.perl 18:04
camelia rakudo-moar a45202: OUTPUT«$("a", "b")␤»
grondilu not sure what's the issue. Maybe you forgot to slip it?
m: (my %h)<key> = <a b>; say |%h<key>, 'c'
camelia rakudo-moar a45202: OUTPUT«abc␤»
grondilu m: (my %h)<key> = <a b>; d |%h<key>, 'c' 18:05
camelia rakudo-moar a45202: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ d used at line 1␤␤»
grondilu m: (my %h)<key> = <a b>; dd |%h<key>, 'c'
camelia rakudo-moar a45202: OUTPUT«"a"␤"b"␤"c"␤»
kyclark You can see my progress here: github.com/kyclark/metagenomics-bo...semble.pl6
gfldex m: my %h; %h.push: (a=>1); %h.push: (a=>2); dd %h;
camelia rakudo-moar a45202: OUTPUT«Hash %h = {:a($[1, 2])}␤»
kyclark m: my %h; %h{'key'} = <val1 val2 val3>; my @list = %h<key>; dd @list; 18:06
camelia rakudo-moar a45202: OUTPUT«Array @list = [("val1", "val2", "val3"),]␤»
kyclark vs my $list = %h<key>;
vs my @list = |%h<key> 18:07
gfldex m: my %h; %h{'key'} = <val1 val2 val3>; my $list = %h<key>; dd $list;
camelia rakudo-moar a45202: OUTPUT«List $list = $("val1", "val2", "val3")␤»
gfldex you assigned a list to an Array
likely not what you want
18:07 spider-mario joined
gfldex m: my %h; %h{'key'} = <val1 val2 val3>; my $list := %h<key>; dd $list; 18:08
camelia rakudo-moar a45202: OUTPUT«List %h = $("val1", "val2", "val3")␤»
kyclark Right, but I knew the value was a list-y/sequence-y/array-ish thing
gfldex also, as long as you don't want to change the Array, leave it a list and use binding
grondilu so, use brackets
[<val1 val2 val3>]
18:08 cygx joined
kyclark The differences seem very subtle to me, and I don't feel confident explaining them to beginners. 18:08
cygx m: my %h; %h{1;2} = 42; say %h{1;2}.VAR.WHAT # ??? 18:09
camelia rakudo-moar a45202: OUTPUT«(List)␤»
grondilu tell them <val1 val2 val3> is like a tuple.
kyclark I thought about using %h.append to build up the hash, but when only one item exists, then it's just a Str
gfldex use .push with a Pair as argument
grondilu all the more reasons to use brackets
18:09 AndyBotwin joined, jonadab left
gfldex kyclark: to actually understand what is going on you need to know the difference between iterators and Arrays. One is behaviour the other is storage of data. 18:11
those are very different concepts
grondilu nods
gfldex that is a problem with a Last Language ofc. You get problems with seamingly magic behaviour in the eye of the noob. 18:12
masak I disagree in principle.
"we're a last language" shouldn't be an excuse not to explain things in a simple way. 18:13
18:13 araujo joined
mspo if I had enough ram to compile rakudo I'd love to do a docs :) 18:13
18:15 jonadab joined 18:18 mcmillhj left 18:20 Actualeyes left, mcmillhj joined 18:21 jt__ joined
kyclark So this is interesting (to me): 18:22
m: my %h1; for <val1 val2 val3> -> $v { %h1<key>.push($v) }; say %h1<key>.WHAT 18:23
camelia rakudo-moar a45202: OUTPUT«(Array)␤»
kyclark When I build it up with "push" it's an Array, but when declared like this it's a List
m: my %h2; %h2{'key'} = <val1 val2 val3>; say %h2<key>.WHAT
camelia rakudo-moar a45202: OUTPUT«(List)␤»
kyclark Regardless, I can't do my @l1 = %h<key>;
geekosaur m: <val1 val2 val3>.WHAT.say 18:24
camelia rakudo-moar a45202: OUTPUT«(List)␤»
kyclark And I think what bothers me about that is that I would expect the context of the assignment to determine the shape of the data structure
18:24 domidumont joined
gfldex i would not because <a b c> is a List of Str values _literal_ 18:25
18:25 mcmillhj left
gfldex the idea behind .push creating an Array container is that you will likely push more after pushing once 18:25
kyclark m: my @list = <a b c>; put @list.join(', ') 18:26
camelia rakudo-moar a45202: OUTPUT«a, b, c␤»
kyclark m: my $list = <a b c>; $list.join(', ') 18:28
camelia ( no output )
kyclark m: my $list = <a b c>; put $list.join(', ')
camelia rakudo-moar a45202: OUTPUT«a, b, c␤»
kyclark Either way Perl seems to handle the list-y thing properly there.
geekosaur actually, the real reason is: 18:29
m: my %h; %h<z> = <a b c>; %h<z>.push: 'd'; dd %h
camelia rakudo-moar a45202: OUTPUT«Cannot call 'push' on an immutable 'List'␤ in block <unit> at <tmp> line 1␤␤»
geekosaur Array is the mutable version of List
kyclark Either way I feel that assiging something list-y to a @list should do that without the "|" slip business. Just my opinion. 18:30
As someone trying to teach this to beginners, I'm trying to justify the extra syntax and understanding. 18:31
18:31 mcmillhj joined
kyclark m: my $list = <a b c>; $list.push('d') 18:32
camelia rakudo-moar a45202: OUTPUT«Cannot call 'push' on an immutable 'List'␤ in block <unit> at <tmp> line 1␤␤»
kyclark m: my @list = <a b c>; @list.push('d')
camelia ( no output )
gfldex it's actually easier to explain with Hash and Map. You want an enum to be constant (constant both for the "length"-part as of the value part), so you need a type that is Hashy but immutable.
kyclark m: my @list := <a b c>; @list.push('d') 18:33
camelia rakudo-moar a45202: OUTPUT«Cannot call 'push' on an immutable 'List'␤ in block <unit> at <tmp> line 1␤␤»
geekosaur m: my @list = <a b c>; @list.push('d'); dd @list
camelia rakudo-moar a45202: OUTPUT«Array @list = ["a", "b", "c", "d"]␤»
18:33 Actualeyes joined
geekosaur ihg right, @ doesn't itemize but $ does and the things *inside* a @ or % do 18:34
18:34 labster joined
gfldex listy immutability becomes very important when you program functional but explaining functional takes time (and footgun use on the side of the beginners) 18:34
kyclark I've taught Perl 5 to beginners many times. I believe that the removal of sigil inflection (e.g., $list[0], $hash{'key'}) def makes it easier to understand that variables. I was under the impression that @ would always mean "items in a series" and $ means "one thing" but that "one thing" can also be "items in a series" and so I'm a bit confused 18:36
18:36 smls joined 18:37 mcmillhj left
gfldex if you know what pointers are (if you come from C or C++) it makes sense very easily 18:38
cygx kyclark: @ talks about the array as a collection of objects, $ talks about the array itself as a single object
18:41 mcmillhj joined
kyclark m: say ["a", "b", "c"].WHAT 18:41
camelia rakudo-moar a45202: OUTPUT«(Array)␤»
kyclark m: say ("a", "b", "c").WHAT
camelia rakudo-moar a45202: OUTPUT«(List)␤»
kyclark m: my @list = ("a", "b", "c"); say @list.WHAT
camelia rakudo-moar a45202: OUTPUT«(Array)␤»
cygx assignment is copying, and @-variables default to Array
kyclark It's odd to me that "()" == List in one context and Array in another
cygx kyclark: see above ;) 18:42
kyclark Right, not trying to be dense.
But check this:
m: my @list = ["a", "b", "c"]; dd @list
camelia rakudo-moar a45202: OUTPUT«Array @list = ["a", "b", "c"]␤»
kyclark I would almost expect the data structure to be [[["a", "b", "c"]] 18:43
geekosaur it's still List in all contexts. it's assigning a List to a @-sigil that deconstructs the list and reconstitutes it as an Array
kyclark which is what I get when I try to copy the List out of the Hash
grondilu kyclark: single argument rule
m: dd my @ = [<foo bar>],
camelia rakudo-moar a45202: OUTPUT«Array @ = [["foo", "bar"],]␤»
18:44 cdg left
grondilu add a comma if you want to bypass it 18:44
grondilu is not sure about the spelling here :/
m: say <coma comma>.pick
camelia rakudo-moar a45202: OUTPUT«comma␤»
grondilu neh it's gotta be coma 18:45
gfldex m: my $a = <a b c>; my @a = <a b c>; put Q:a:s/$a @a/;
camelia rakudo-moar a45202: OUTPUT«a b c @a␤»
gfldex i'm pretty sure :a used to work
avuserow (it's spelled comma :P)
gfldex m: my $a = <a b c>; my @a = <a b c>; put Q:qq/$a @a/;
DrForr m: say <, , chameleon>
camelia rakudo-moar a45202: OUTPUT«a b c @a␤»
rakudo-moar a45202: OUTPUT«(, , chameleon)␤»
18:45 AlexDaniel joined 18:48 cygx left 18:49 MilkmanDan left 18:50 jt__ left 18:52 sufrostico left 18:54 perlawhirl joined, labster left 18:57 labster joined, cygx joined, itaipu joined, cygx left
perlawhirl kyclark: just reading backlog... i too was confused at first with listy things inside hashes. 18:58
18:58 awwaiid joined
perlawhirl the key to understanding them is the second sentence of the Hash doc: "The values are all scalar containers" 18:58
scalars are singular. if you want to iterate over the values as a list, you need to destructure it as so... 18:59
m: my %x; %x<foo> = [<bar baz qux>]; .say for %x<foo>; .say for %x<foo>.list
camelia rakudo-moar a45202: OUTPUT«[bar baz qux]␤bar␤baz␤qux␤»
18:59 domidumont left 19:02 n1lp7r left, mohae joined
[Coke] docs.perl6.org - doesn't say what qqx// does with out or err on the process. 19:03
19:05 mohae__ joined, mohae_ left 19:08 mohae left 19:09 TheLemonMan joined 19:11 darutoko left
bobv m: say $A::a; 19:12
camelia rakudo-moar a45202: OUTPUT«(Any)␤»
bobv say $a;
m: say $a;
camelia rakudo-moar a45202: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$a' is not declared␤at <tmp>:1␤------> 3say 7⏏5$a;␤»
bobv Why does the $A::a seem to be a valid (though uninitialised) variable?
gfldex m: say A::a; 19:13
camelia rakudo-moar a45202: OUTPUT«Could not find symbol '&a'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
bobv That looks fine. 19:14
19:17 Cabanossi left 19:20 Actualeyes left 19:28 perlawhirl left 19:30 mr-foobar left 19:32 rindolf left 19:36 jonadab left
shinobicl hi all 19:38
19:38 canopus left
shinobicl is there an equivalent of Perl Dancer for Perl6 already? Something like a Dancer2? 19:38
geekosaur bailador? 19:42
19:43 Actualeyes joined 19:44 canopus joined
tadzik bailador is close 19:45
Prancer I think is also a Dancer clone, no?
bailador now has an active maintainer, unlike most of my other project s:P
19:46 TEttinger joined 19:49 andrzejku left
[Coke] they aren't on #perl6, are they? 19:57
20:02 bobv left 20:06 mcmillhj left
MasterDuke [Coke]: FYI, RT #117739 and RT #118607 can be closed/resolved 20:10
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117739
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118607
ugexe why doesnt perl6 have monotheic protonbeams yet? 20:11
MasterDuke and both are or were closed already, thanks all 20:14
harmil_wk ugexe: I would imagine it's because no one found a shark to mount them on... 20:15
20:15 smls left 20:18 itaipu left 20:21 mcmillhj joined 20:22 zakharyas joined
grondilu m: say "foo-bar" ~~ /<ident>+/ 20:22
camelia rakudo-moar a45202: OUTPUT«「foo」␤ ident => 「foo」␤»
grondilu thought '-' was in ident 20:23
masak no, it's in <identifier>
token identifier { <.ident> [ <.apostrophe> <.ident> ]* } 20:24
20:24 zengargoyle left
grondilu ok, good to know 20:25
20:26 mcmillhj left
grondilu but can't I use it? 20:26
m: say "foo-bar" ~~ /<identifier>/ 20:27
camelia rakudo-moar a45202: OUTPUT«Method 'identifier' not found for invocant of class 'Cursor'␤ in block <unit> at <tmp> line 1␤␤»
20:29 mr-foobar joined
El_Che for the people that do the releases, please check github.com/nxadm/rakudo-pkg (with the result packages here: claudio.ulyssis.be/perl6/ ). The idea is to create native Linux packages with docker (no VMs or dangling local sources). 20:31
skids
.oO(packaging wheel-shoulderers++)
20:32
20:32 mcmillhj joined
TheLemonMan hmm, do twigils in signature parameters make any sense ? 20:34
El_Che well, nine wasn't happy with rakudobrew for non core devs, and we need to keep nine happy :)
TheLemonMan: you mean for this: docs.perl6.org/type/Signature#Opti...Parameters 20:36
TheLemonMan El_Che, nope, the '!' and '.' twigils
20:37 mcmillhj left
geekosaur the problems with rakudobrew are: (1) every so often it gets confused and you have to toss its repos and start over (2) it gets you WIP stuff that isn't ready for end users yet 20:37
20:37 aries_liuxueyang left
El_Che TheLemonMan: yes, I thought so. But what usage do you have in mind 20:37
20:38 aries_liuxueyang joined 20:39 kaare__ left
El_Che geekosaur: yeah, I agree. But packaging is painful, hence the docker-fpm compromise. However, it would be good to know what's expected/needed so they are used on the rakudo site. Otherwise, the packages will not be discoverable. 20:39
20:40 wamba left
El_Che An advanced user can use it to create his/her own packages of course, maar the end products is not the pkg creation tools, but the packages themselves 20:40
skids TheLemonMan: Yes, they are used in BUILD all the time to bind directly to attributes. 20:41
20:42 setty1 left
TheLemonMan skids, can you point me to a place where they're used ? 20:42
El_Che TheLemonMan: docs.perl6.org/language/classtut#i...ntry-BUILD
20:43 setty1 joined
skids Unfortunately, there's also RT#125437 regarding them. 20:43
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125437
20:48 mcmillhj joined 20:53 mcmillhj left
[Coke] is amused by: boingboing.net/2016/08/31/puke-i-a...de-th.html 20:54
20:59 MilkmanDan joined, itaipu joined 21:01 skids left
grondilu m: "foo" ~~ /$<name> = <.ident>++/; (my %){$<name>} 21:02
camelia ( no output )
21:02 zakharyas left
grondilu m: "foo" ~~ /$<name> = <.ident>++/; (my %){$<name>}<bar> 21:02
camelia rakudo-moar a45202: OUTPUT«Type List does not support associative indexing.␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: "foo" ~~ /$<name> = <.ident>++/; (my %){~$<name>}<bar>
camelia ( no output )
grondilu not sure why I have to enfore string conversion here 21:03
m: "foo" ~~ /$<name> = <.ident>+/; (my %){~$<name>}<bar> 21:04
camelia ( no output )
grondilu m: "foo" ~~ /$<name> = <.ident>+/; (my %){$<name>}<bar>
camelia rakudo-moar a45202: OUTPUT«Type List does not support associative indexing.␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: "foo" ~~ /$<name> = [<.ident>+]/; (my %){$<name>}<bar>
camelia ( no output )
grondilu meh 21:05
21:05 mcmillhj joined, perlpilot left, cdg joined 21:06 cdg left, cdg joined
[Coke] is the complaint that you have to the string conversion instead of {} doing it for you automatically? 21:08
to *do
21:10 MilkmanDan left 21:11 Zoffix joined
Zoffix El_Che, what about that repo? 21:12
El_Che, or re-phrased... what do you want me to do?
21:12 Actualeyes left
El_Che Zoffix: hi, I would like to know what's needed to put native packages on the download link 21:13
21:13 leont_ joined
El_Che So beginners have a more accessible option than building from source 21:13
(at least on Linux) 21:15
21:15 itaipu left 21:16 itaipu joined
kyclark perlawhirl, that helps immensely! Thanks. 21:16
Sorry was in class. 21:17
El_Che Zoffix: the idea is to create an infra to easily build packages. 21:18
Zoffix El_Che, can all of them be built on debian?
21:18 leont_ is now known as leont
El_Che Zoffix: yes 21:19
it just used dockers, it will run on any 64-bit host
Zoffix I'm currently working on automating the entire Rakudo release process. I would guess creating those packages can be just part of it. And we can upload them to rakudo.org/downloads/ ... say in `pre-built-packages` dir 21:20
well, the release bot would upload them there
El_Che as long as the download links are deterministic (as they are now) it should be a full automated process 21:21
Zoffix \o/
Cool. I bookmarked that repo and will look at it closer when I have fewer beers in my hand :P
El_Che we need to make sure they are tested before putting them for the first time on the webpage. So far, "they work for me" 21:22
:)
21:22 ItayAlmog joined
SmokeMachine____ :) 21:24
El_Che have fun with the beers, and ping me to change whatever needed
Zoffix will do 21:25
21:27 Actualeyes joined 21:28 mohae__ left 21:29 mohae joined 21:30 bstamour joined, kyclark left
bstamour Hi everyone, I'm having issues installing the module DOM::Tiny using panda. 21:31
It downloads fine, passes all tests, but afterward, I am receiving the following message
"Failed to open file /home/bryan/.panda-work/1472764873_1/lib/DOM/Tiny.pm: no such file or directory"
I created the .panda-work directory manually, and re-ran panda install DOM::Tiny 21:32
SmokeMachine____ hi! what means "Error while importing from 'JSON::Schema': no such tag 'qwer'" ?
bstamour But to no avail. In fact, the directory I created was removed as well. Has anyone else experienced this kind of issue?
Zoffix bstamour, it got broken META file. Once sec 21:33
SmokeMachine____ Im running: use JSON::Schema :qwer<asdf>;
bstamour Zoffix: thanks. 21:34
Zoffix bstamour, cd $(mktemp -d); git clone github.com/zoffixznet/p6-DOM-Tiny; git checkout patch-1; panda install .
SmokeMachine____ hum!!! it thinks thats something like :ver<>, right?!
Zoffix bstamour, I sent a PR to get it fixed, but unsure when it'll get merged: github.com/zostay/p6-DOM-Tiny/pull/1
SmokeMachine____ so, I can't use a sub EXPORTER(*%pars){...} ? 21:35
sub EXPORT(*%pars){...}
zostay Looking now 😊 21:36
Zoffix \o/
bstamour Zoffix: so far so good. Running tests.
zostay Merged
bstamour :-) 21:37
El_Che wow, that's what I call service
Zoffix :)
zostay Perfect timing. Just say down at the lappy after coming back from my kiddos guitar lessons. 21:38
bstamour zostay: does that mean I'll be able to panda install it directly now?
i.e. panda install DOM::Tiny
Zoffix bstamour, should be able to, yeah
zostay If that's all that was broke, yes
bstamour okay. Testing now. Thanks for the quick help everyone.
zostay If it doesn't just go, let me know and I can fix it
Zoffix namedrops Test::META to avoid such issues :D
bstamour Will do.
zostay I need dzil or something for p6 to automate that stuff. I suck at mundane tasks that computers should do for me. 21:39
Zoffix nods 21:40
zostay But yeah, I've messed up my metas pretty consistently
bstamour worked like a charm 21:42
one more round of thanks.
:-)
Zoffix \o/ 21:43
SmokeMachine____, IME no. I've looked at docs.perl6.org/language/modules#EXPORT_ and I see sentence "Whereas UNIT::EXPORT packages deal with the named parameters passed to use," but I've not explored that further 21:45
21:45 espadrine_ joined
zostay bstamour: let me know of any bugs, it's still pretty new and relatively untested 21:46
21:46 cpage_ left 21:47 mcmillhj left
SmokeMachine____ hum! thats it! thanks Zoffix! 21:47
21:48 Ven left 21:49 MilkmanDan joined 21:51 n1lp7r joined 21:54 bjz left 21:55 bjz joined, bjz left 21:57 MasterDuke left 21:59 bjz joined, vendethiel left 22:00 mcmillhj joined 22:01 Sgeo joined 22:07 mcmillhj left 22:11 n1lp7r left 22:12 bjz left 22:13 bjz joined, john51 joined, cdg left, cdg joined 22:15 Sgeo left, Sgeo joined 22:16 MasterDuke joined 22:17 firstdayonthejob left 22:18 bisectable6 left, mcmillhj joined, bisectable6 joined 22:19 firstdayonthejob joined 22:22 mcmillhj left 22:24 firstdayonthejob left
raydiak :q 22:24
yoleaux 14 Aug 2016 21:57Z <grondilu> raydiak: github.com/raydiak/Math-Symbolic/issues/3
22:25 pierre_ joined 22:28 bjz left 22:29 pierre_ left 22:30 daedalus_ joined, nadim left, leont left, mcmillhj joined, Zoffix left 22:31 MorayJ joined 22:34 daedalus_ left, TheLemonMan left 22:35 mcmillhj left 22:36 mcmillhj joined, felher joined 22:37 lostinfog left 22:38 spider-mario left 22:41 mcmillhj left 22:44 cpage_ joined 22:48 bjz joined 22:49 mcmillhj joined, RabidGravy left 22:50 cdg left 22:53 espadrine_ left 22:54 mcmillhj left 22:58 skids joined, bjz left
timotimo oh lord, the cat is holding my hand against his head with both his paws 23:03
23:05 cpage_ left 23:06 cpage_ joined
TEttinger good kitty 23:11
23:13 sufrostico joined, labster left 23:16 mcmillhj joined 23:21 mcmillhj left 23:22 labster joined 23:27 mcmillhj joined 23:31 mcmillhj left 23:41 mcmillhj joined, labster left 23:44 girafe left 23:46 mcmillhj left 23:52 aries_liuxueyang left 23:53 itaipu left, mcmillhj joined 23:57 jonadab joined 23:58 mcmillhj left 23:59 mr-foobar left