»ö« 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 declarationat <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 1Undeclared 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 1Undeclared 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 1Actually 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 followssploops» | ||
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 followssploops» | ||
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 constraintat <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 constraintat <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«1Hash %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]barbazqux» | ||
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 declaredat <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 1Actually 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 1Actually 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 1Actually 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
|