»ö« 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. |
|||
dalek | c: 680163f | gfldex++ | doc/Type/Code.pod6: link to Signature |
00:03 | |
tushar | what is the best way to identify whether an array has a specific index or not? I have achieved it this way. | 00:05 | |
m: my @a = [[1,2,3],[4,5,6]]; @a.pairs.[0]:exists; @a.pairs.[3]:exists; | |||
camelia | ( no output ) | ||
tushar | m: my @a = [[1,2,3],[4,5,6]]; @a.pairs.[0]:exists.say; @a.pairs.[3]:exists.say; | 00:06 | |
camelia | rakudo-moar 922afd: OUTPUT«TrueFalse» | ||
TimToady | m: my @a = [[1,2,3],[4,5,6]]; @a[0]:exists.say; @a[3]:exists.say; | ||
camelia | rakudo-moar 922afd: OUTPUT«TrueFalse» | ||
timotimo | "if it has a specific index" should work with just @a[4]:exists | 00:07 | |
dalek | c: 40b0715 | (Zoffix Znet)++ | doc/Type/Code.pod6: Use code block and not a sub in example .of on sub {} uses Callable.of() |
00:08 | |
tushar | timotimo: thanks. | 00:09 | |
aod | say "exists" if 4 == one @a | ||
timotimo | that's not about keys, though :) | 00:10 | |
tushar | TImToday: Thanks. Missed your response at first. | 00:11 | |
aod | ops | ||
00:13
rgrinberg joined
00:14
sufrostico joined
|
|||
tushar | how about checking existence for multiple indexes and receive single response such as true or false. If any index is not present, return false. If all indexes are present, return true. | 00:14 | |
timotimo | you can do it like this: | 00:15 | |
gfldex | tushar: use a Junction | ||
timotimo | m: my @a = 1, 2, 3; say @a[0,2]:exists | ||
camelia | rakudo-moar 922afd: OUTPUT«(True True)» | ||
timotimo | m: my @a = 1, 2, 3; say @a[0,2,4,6]:exists | ||
camelia | rakudo-moar 922afd: OUTPUT«(True True False False)» | ||
gfldex | tushar: see docs.perl6.org/language/subscripts#:exists | ||
00:15
perl6user left
|
|||
tushar | timotimo: I tried your way before asking. But it returns a list with true or false. And I am looking for only true and false -- a single response. Any ways, I can use "all" method. | 00:21 | |
gfldex: Thanks. | |||
m: my @a = [[1,2,3],[4,5,6]]; if all @a[0,1]:exists { say True; } else { say False; } | 00:22 | ||
camelia | rakudo-moar 922afd: OUTPUT«True» | ||
tushar | m: my @a = [[1,2,3],[4,5,6]]; if all @a[0,2]:exists { say True; } else { say False; } | ||
camelia | rakudo-moar 922afd: OUTPUT«False» | ||
ugexe | m: my @a = [[1,2,3],[4,5,6]]; say so all @a[0,2]:exists | ||
camelia | rakudo-moar 922afd: OUTPUT«False» | ||
tushar | ugexe: sweet.. | 00:26 | |
ugexe | m: my @a = [[1,2,3],[4,5,6]]; say @a.map: *.rotor(2).Slip | ||
camelia | rakudo-moar 922afd: OUTPUT«((1 2) (4 5))» | ||
ugexe | m: my @a = 1,2,3,4,5; say @a.rotor(2) | 00:28 | |
camelia | rakudo-moar 922afd: OUTPUT«((1 2) (3 4))» | ||
ugexe | if you can use rotor you can skip checking if there are enough elements | ||
00:29
lichtkind_ left
00:33
perlawhirl joined
|
|||
tushar | ugexe: I might not clear on what I am trying to achieve. I would like to check whether an index of an array has data or not before I actually extract them. So I am checking an existence of the index. Thanks though for all your help. Every day I am learning good stuff here. | 00:34 | |
TimToady | if you just want to "grep" out the existing indices, you can use :k | 00:35 | |
m: my @a = 1,2; say @a[0..100]:k | 00:36 | ||
camelia | rakudo-moar 922afd: OUTPUT«(0 1)» | ||
ugexe | look at the output above. there are 5 elements but only 1 2 3 4 are in the output. the 5th element is skipped because the last iteration does not have 2 elements | ||
rotor(2) | |||
TimToady | otoh, if by "exists" you mean "has a sublist containing something", that's different | 00:37 | |
"exists" has a very specific meaning for an array element | |||
m: my @a = (),(); say @a[1]:exists | 00:38 | ||
camelia | rakudo-moar 922afd: OUTPUT«True» | ||
TimToady | m: my @a = Nil,Nil; say @a[1]:exists | ||
camelia | rakudo-moar 922afd: OUTPUT«True» | ||
timotimo | rotor has a named argument to also give you incomplete tuples | 00:39 | |
only pass it if you're prepared to handle incomplete tuples :) | |||
00:40
BenGoldberg joined
|
|||
TimToady | tushar: but in general, asking if something is there first is kind of a design smell; it's usually better to have an interface where the degenerate case just does nothing, or has an easily trapped failure | 00:41 | |
if you "ask to ask", you set yourself up for race conditions if anything else can change the state between the 1st time you ask and the 2nd | 00:42 | ||
so, for instance, you never see people writing "until eof() {...}" anymore | 00:43 | ||
tushar | TimoToday: Hmmm.. | 00:44 | |
00:44
sufrostico left
|
|||
tushar | TimToday*: apologize for my spelling mistake.. | 00:47 | |
timotimo | i hope timtoady is fine with being mashed up with me | 00:48 | |
tushar | timotimo: haha.. | 00:50 | |
BenGoldberg | s: Pair, "ACCEPTS" | ||
SourceBaby | BenGoldberg, Sauce is at github.com/rakudo/rakudo/blob/922a.../Mu.pm#L12 | ||
00:51
sufrostico joined
00:52
pierre_ joined
|
|||
BenGoldberg | m: dd dir('.')[0]; | 00:52 | |
camelia | rakudo-moar 922afd: OUTPUT«".cpanm".IO(:SPEC(IO::Spec::Unix),:CWD("/home/camelia"))» | ||
BenGoldberg | s: Pair, "ACCEPTS", ".".IO; | 00:53 | |
SourceBaby | BenGoldberg, Ehhh... I'm too scared to run that code. | ||
BenGoldberg | s: Pair, "ACCEPTS", ".".IO | ||
SourceBaby | BenGoldberg, Something's wrong: ERR: Cannot resolve caller sourcery(Pair, Str, IO::Path); none of these signatures match: ($thing, Str:D $method, Capture $c) ($thing, Str:D $method) (&code) (&code, Capture $c) in block <unit> at -e line 6 | ||
TimToady | s: Pair.new, "ACCEPTS" | ||
SourceBaby | TimToady, Sauce is at github.com/rakudo/rakudo/blob/922a.../Mu.pm#L12 | ||
BenGoldberg | s: Pair, "ACCEPTS", (".".IO) | ||
SourceBaby | BenGoldberg, Something's wrong: ERR: Cannot resolve caller sourcery(Pair, Str, IO::Path); none of these signatures match: ($thing, Str:D $method, Capture $c) ($thing, Str:D $method) (&code) (&code, Capture $c) in block <unit> at -e line 6 | ||
BenGoldberg | s: Pair, "ACCEPTS", :(".".IO) | 00:54 | |
SourceBaby | BenGoldberg, Something's wrong: ERR: ===SORRY!=== Error while compiling -eMalformed parameterat -e:6------> put sourcery( Pair, "ACCEPTS", :("."⏏.IO) )[1]; expecting any of: constraint formal parameter | ||
TimToady | that's really only finding the proto | ||
the :D version is in Pair.pm | |||
00:54
dayangkun joined
|
|||
TimToady | m: say $*IO ~~ :r | 00:55 | |
camelia | rakudo-moar 922afd: OUTPUT«Dynamic variable $*IO not found in block <unit> at <tmp> line 1Actually thrown at: in any at gen/moar/m-Metamodel.nqp line 3090 in block <unit> at <tmp> line 1» | ||
TimToady | m: say $*IN ~~ :r | ||
camelia | rakudo-moar 922afd: OUTPUT«True» | ||
00:55
sufrostico left
|
|||
TimToady | m: say :r.ACCEPTS($*IN) | 00:55 | |
camelia | rakudo-moar 922afd: OUTPUT«True» | ||
BenGoldberg | s: :d, "ACCEPTS", ".".IO | 00:56 | |
SourceBaby | BenGoldberg, Something's wrong: ERR: Cannot resolve caller sourcery(Str, IO::Path, :d); none of these signatures match: ($thing, Str:D $method, Capture $c) ($thing, Str:D $method) (&code) (&code, Capture $c) in block <unit> at -e line 6 | ||
BenGoldberg | s: :d, "ACCEPTS" | ||
SourceBaby | BenGoldberg, Something's wrong: ERR: Cannot resolve caller sourcery(Str, :d); none of these signatures match: ($thing, Str:D $method, Capture $c) ($thing, Str:D $method) (&code) (&code, Capture $c) in block <unit> at -e line 6 | ||
TimToady | s: (:d), "ACCEPTS" | 00:58 | |
SourceBaby | TimToady, Sauce is at github.com/rakudo/rakudo/blob/922a.../Mu.pm#L12 | ||
TimToady | that's still just the proto, not the multi | ||
00:58
ka joined,
Actualeyes joined
01:02
sufrostico joined
|
|||
BenGoldberg | m: say $*IN.ACCEPTS((:d)) | 01:02 | |
camelia | rakudo-moar 922afd: OUTPUT«False» | ||
BenGoldberg | m: say $*IN.ACCEPTS((:r)) | ||
camelia | rakudo-moar 922afd: OUTPUT«False» | ||
BenGoldberg | m: say $*IN.ACCEPTS(:r) | ||
camelia | rakudo-moar 922afd: OUTPUT«Cannot resolve caller ACCEPTS(IO::Handle: :r); none of these signatures match: (Mu:U $: \topic, *%_) (Mu:U $: Mu:U \topic, *%_) (Any:D $: Mu:D \a, *%_) (Any:D $: Mu:U \a, *%_) (Any:U $: \topic, *%_) in block <unit> at <tmp…» | ||
BenGoldberg | s: Associative, "ACCEPTS" | 01:03 | |
SourceBaby | BenGoldberg, Something's wrong: ERR: Too many positionals passed; expected 2 arguments but got 3 in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 33 in block <unit> at -e line 6 | ||
01:10
sufrostico left
|
|||
dalek | c: 1c9b0e3 | gfldex++ | doc/Type/Signature.pod6: link to ~~ |
01:10 | |
01:10
dayangkun left
01:17
sufrostico joined
01:20
pierre_ left
01:24
zengargoyle left
01:25
wamba left
01:26
tushar left,
pierre_ joined,
dayangkun joined
01:29
zakharyas joined
01:30
pierre_ left,
labster left
01:32
sufrostico left
01:33
sufrostico joined,
pierre_ joined
01:34
synopsebot6 joined
01:35
zakharyas left,
zakharyas joined
01:41
zakharyas left
01:54
zengargoyle joined
|
|||
aod | guys, how do I redeclare a class? | 01:54 | |
MasterDuke | .seen perlpilot | 01:55 | |
yoleaux | I saw perlpilot 23 Sep 2016 21:55Z in #perl6: <perlpilot> thundergnat: fwiw, it looks like a bug to me too. | ||
aod | class aod { method gist { "Its me" } } | 01:56 | |
===SORRY!=== Error while compiling: Redeclaration of symbol 'aod' | |||
TimToady | you can "augment class aod" but I don't think we've implemented "supersede class aod" yet | 01:58 | |
aod | do I have to restart the interpreter? | ||
geekosaur | oh, this is the repl? at the moment I think you do | ||
01:59
zakharyas joined
|
|||
TimToady | m: class aod { method gist { "It's me" } }; augment class aod { method gist { "It's really me" } }; say aod.new | 01:59 | |
camelia | rakudo-moar 3d2a91: OUTPUT«5===SORRY!5=== Error while compiling <tmp>augment not allowed without 'use MONKEY-TYPING'at <tmp>:1------> 3 gist { "It's me" } }; augment class aod7⏏5 { method gist { "It's really me" } }; s expecting any of: generic rol…» | ||
TimToady | m: use MONKEY; class aod { method gist { "It's me" } }; augment class aod { method gist { "It's really me" } }; say aod.new | 02:00 | |
camelia | rakudo-moar 3d2a91: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Package 'aod' already has a method 'gist' (did you mean to declare a multi-method?)at <tmp>:1» | ||
TimToady | m: use MONKEY; class aod { method ghost { "It's me" } }; augment class aod { method gist { "It's really me" } }; say aod.new | ||
camelia | rakudo-moar 3d2a91: OUTPUT«It's really me» | ||
aod | ok.. use MONKEY is like a python's monkey patching license | 02:02 | |
TimToady | well, it's short for use MONKEY-TYPING in this case | ||
m: use MONKEY-TYPING; class aod { multimethod gist { "It's me" } }; augment class aod { method gist { "It's really me" } }; say aod.new | |||
camelia | rakudo-moar 3d2a91: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared routine: multimethod used at line 1» | ||
02:03
labster joined
|
|||
TimToady | m: use MONKEY-TYPING; class aod { multi method gist { "It's me" } }; augment class aod { multi method gist { "It's really me" } }; say aod.new | 02:03 | |
camelia | rakudo-moar 3d2a91: OUTPUT«Ambiguous call to 'gist'; these signatures all match::(aod $: *%_):(aod $: *%_) in block <unit> at <tmp> line 1» | ||
TimToady | one should never use MONKEY in production code | 02:04 | |
'course, one should never use MONKEY-* in real code either | |||
aod | another question: say I do this: | 02:08 | |
subset naovazio of Str where /\S/; sub imprime (naovazio $s) { say $s }; | |||
then when I do imprime "" I get an error | 02:09 | ||
Constraint type check failed for parameter '$s' | |||
BUT it works when I do it inside a try | |||
try { imprime "" } | |||
but I cannot CATCH the error | |||
02:09
noganex joined
|
|||
TimToady | m: subset naovazio of Str where /\S/; sub imprime (naovazio $s) { say $s }; imprime ""; CATCH { default { say "HERE" }} | 02:10 | |
camelia | rakudo-moar 3d2a91: OUTPUT«HERE» | ||
TimToady | still in the repl? | ||
gfldex | aod: you may be looking for docs.perl6.org/language/objects#Mixins_of_Roles | 02:11 | |
TimToady | the repl fakes it by adding a new lexical scope every line, so a subsequent CATCH is likely to be in a different scope than you want | ||
02:12
noganex_ left
|
|||
aod | ahh got it | 02:14 | |
thx timtoady | 02:15 | ||
zengargoyle | is there any hope for a more normal-ish REPL? | 02:16 | |
aod | So I should really put the CATCH inside the try block, to avoid that in repl? | 02:17 | |
zengargoyle | from what i can tell, you're better off using and editor in one window and save then run the script in th other window. | 02:19 | |
if you're trying to do anything at all fancy. | |||
ugexe | i just write entire monolith apps inside -e | 02:20 | |
zengargoyle | ugexe: me too. :P | ||
or use `fc` | 02:21 | ||
SmokeMachine____ | fc? | ||
geekosaur | list/edit shell history | ||
zengargoyle | bash/*nix, fc == fix command. opens last command in editor and runs on exit | 02:22 | |
SmokeMachine____ | I didn't know that! Thanks! | ||
geekosaur | (ksh, inherited by both bash and zsh) | ||
SmokeMachine____ | I keep pressing up and editing... | ||
geekosaur | (bash dropped the handy 'r' alias though. "r foo=bar [cmd]": find the most recent command starting with "cmd" (or the previous command if omitted), replace foo with bar, rerun) | 02:23 | |
although foo can't be a pattern | 02:24 | ||
zengargoyle | i do the up arrow a bunch, esp with P5 that i know a bunch better. keep a '0liners' file to cut-n-paste things into for future use (after perltidy) if needed. | ||
there should be an 'e' variant that sets environment variables.... that would be handy. | 02:25 | ||
grondilu | you know you can do $ ENVVAR=stuff perl6 -e '...' right? | 02:28 | |
zengargoyle | inotify is also pretty cool. watch a file or directories and execute command when changed. start it up in another window and you have poor man's CI that runs on every save. | 02:29 | |
yeah, i was thinkimg more like: e PERL5LIB=~/perl5 thething | |||
grondilu | I don't see how that's better but * | 02:30 | |
geekosaur | alias e=env | ||
:) | |||
or, just leave it off in Bourne-style shells | 02:31 | ||
PERL5LIB=~/perl5 thething | |||
zengargoyle | missing the search back through history for command matching 'thething' | ||
and having the rest of the arguments after 'thething' | |||
geekosaur | if you have history turned on, PERL5LIB=~/perl5 !thething | 02:32 | |
er, histchars | |||
zengargoyle | there's probably a fancy !/foo/ sort of thing ... :) | ||
geekosaur | !?foo | ||
grondilu | !? | ||
geekosaur | (it's a backward search, after all...) | 02:33 | |
grondilu runs !?Configure all the time after pulling rakudo | |||
zengargoyle | usually w/o the prefix stuff C-r Conf does that bit. | ||
geekosaur | yes, but you don't get to insert stuff :) | 02:34 | |
grondilu | (as it always matches with $ perl Configure.pl --gen-moar --gen-nqp --backends=moar --prefix=/usr/local) | ||
zengargoyle probalby uses C-r too much to learn the other !? things. | |||
but will try it now... | 02:35 | ||
geekosaur usually turns histchars off, but still knows them from years of csh | |||
grondilu finds C-r slightly too awkward a finger technique | |||
geekosaur | (jumped ship to ksh as soon as he got access, never looked back) | ||
grondilu never really tried ksh. Too much used to bash, I guess. | 02:36 | ||
02:37
TEttinger left
|
|||
zengargoyle | i was not too computer-ish during ksh days, bash was there by the time i returned. | 02:37 | |
always wanted to strangle old-timeers at last job who were tcsh fans.... | |||
grondilu has not used tcsh in like 15 years. | 02:38 | ||
02:42
cuonglm joined
|
|||
cuonglm | Hi, anyone get this error when testing rakudo with latest commit from rakudo, moarvm and roast | 02:43 | |
yoleaux | 29 Aug 2016 08:49Z <jnthn> cuonglm: No design doc, though the key data structures are described somewhat in the .h files; of note see github.com/MoarVM/MoarVM/blob/mast...ings/nfg.h and github.com/MoarVM/MoarVM/blob/mast...ormalize.h | ||
cuonglm | "Method 'M' not found for invocant of class 'IO::Path'" | ||
02:44
Zoffix joined
|
|||
Zoffix | cuonglm, no. What test is it? | 02:44 | |
TimToady | recompiling to see if I can repro | 02:45 | |
cuonglm | Zoffix: It's ./S16-filehandles/filetest.t | ||
02:46
BenGoldberg left
|
|||
Zoffix | passes clean for me. | 02:46 | |
cuonglm, what OS are you on? | |||
cuonglm | Zoffix: I'm in OSX | ||
Zoffix is on Linux | |||
TimToady | case-free filesystem issue, maybe? | ||
Zoffix | cuonglm, what's the exact error message? | ||
OSX is case-free? 0.o | 02:47 | ||
geekosaur | yes | ||
cuonglm | Here's the version I use | ||
"This is Rakudo version 2016.09-58-g3d2a919 built on MoarVM version 2016.09-1-gdebb859" | |||
The exactly error message is: | |||
Zoffix is on his is Rakudo version 2016.09-57-g922afd3 built on MoarVM version 2016.09-1-gdebb859 | |||
cuonglm | Method 'M' not found for invocant of class 'IO::Path' in block at ./S16-filehandles/filetest.t line 87 in block <unit> at ./S16-filehandles/filetest.t line 77 | ||
TimToady | you're running the .t without fudging, is the problem | 02:48 | |
cuonglm | I saw the condition "#?rakudo 3 skip ':M, :C, :A'" | ||
is this related | |||
geekosaur | more precisely hfs+ is case-insensitive but case-preserving. you can create ufs filesystems, or case sensitive hfs+ filesystems, but the OS install is only supported on case insensitive hfs+ | ||
TimToady | you can use prove -v -e t/fudgeandrun | ||
geekosaur | (blame adobe, who refused to fix their case bugs in porting stuff to os x) | 02:49 | |
cuonglm | TimToady: Oh, thanks, try it now | ||
Zoffix | cuonglm, yes, that's a "fudge". A way to tell the preprocessor to mark those tests as skipped | ||
TimToady | or just run all the tests, and then run the .rakudo.moar instead of the .t | ||
Zoffix | Or just run make t/spec/S16-filehandles/filetest.t | ||
02:49
Zoffix left
|
|||
TimToady always hates on that particular feature | 02:50 | ||
02:50
grondilu left
|
|||
TimToady | since it violates the spirit of the verb in question | 02:50 | |
me, I just alias prove -v -e t/fudgeandrun to 'pf' | |||
cuonglm | Hmm, I got "Could not execute (t/fudgeandrun t/fudge.t): open3: exec of t/fudgeandrun t/fudge.t failed at /System/Library/Perl/5.18/TAP/Parser/Iterator/Process.pm line 168." | 02:51 | |
sounds like problem with my system | |||
cuonglm try run all test now | |||
TimToady | you have to run it from the top dir | 02:52 | |
so the name of the file is t/spec/S16-filehandles/filetest.t | |||
zengargoyle | TimToady: i just watched YAPC::EU video, have you published rad anywhere yet? | 02:54 | |
cuonglm | TimToady: Works now, thanks. | 03:03 | |
03:06
Actualeyes left
03:09
Actualeyes joined
03:10
dayangkun left
|
|||
cuonglm | TimToady: For related discussion, I'm fixing rt.perl.org/Public/Bug/Display.htm...et-history | 03:12 | |
I saw that both perl6 and perl5 return False with IO.e/-e for broken symlink | 03:15 | ||
In perl6, IO.l called $.e before checking so IO.l throw exception even if symlink is existed | 03:16 | ||
03:18
stmuk_ joined
03:20
stmuk left
03:23
TEttinger joined
03:27
sufrostico left
03:32
Actualeyes left
03:34
pierre_ left,
Actualeyes joined
03:35
pierre_ joined
|
|||
TimToady | zengargoyle: not yet | 03:38 | |
cuonglm: seems a bit wrongihs | 03:39 | ||
03:39
Actualeyes left
03:40
matiaslina joined
|
|||
TimToady | oh, I see you already fixed it in -dev | 03:40 | |
cuonglm | TimToady: Yep, at least perl5 also return True with -l 'broken_symlink' | ||
TimToady | cuonglm++ | ||
cuonglm | i fixed it :D | ||
03:41
wamba joined
03:43
zakharyas left,
pierre_ left,
zakharyas joined
03:48
zakharyas left
03:52
pierre_ joined
|
|||
zengargoyle | TimToady: cool, i poked you probably a year or so ago after first hints. i poke around EDIC and KANJIDICT in the never ending quest to learn Japanese so just a bit more interested than the everage bear. will poke later or put me on a sticky note for when you put it up somewhere. | 03:54 | |
03:55
pierre_ left,
pierre_ joined
03:59
Actualeyes joined,
khw left
04:06
Cabanossi left
04:09
Cabanossi joined
04:10
khw joined
04:17
cuonglm left
04:43
AndyBotwin joined
04:52
wamba left
04:54
jcallen left,
jcallen joined
04:55
pierre_ left
04:57
skids left
05:00
Actualeyes left,
nadim joined
05:01
pierre_ joined
05:03
khw left
05:07
pierre_ left
05:12
Xliff__ joined,
john51_ joined,
mohae_ joined,
[1]ringer1 joined
05:13
zostay_ joined,
bob778 joined,
llfourn_ joined,
zhmylove_ joined
05:14
Upasaka_ joined,
pnu__ joined,
dustinm`_ joined
05:15
obfusk_ joined
05:16
nemo_ joined,
rblackwe_ joined,
f3ew_ joined,
Shozan joined,
ab5tract joined,
Gothmog__ joined,
d^_^b joined,
d^_^b left,
d^_^b joined,
krunen__ joined,
Kaffe_ joined,
atta_ joined,
riatre_ joined,
vcv_ joined,
TheDir_ joined,
krakan_ joined,
TimToady_ joined,
xiaomiao joined,
yubimusubi joined,
captain-1dequate joined,
DrForr_ joined,
profan_ joined,
Woodi_ joined,
ponbiki joined,
a3r0_ joined
05:17
tsadok joined,
ponbiki is now known as Guest2621
05:18
tbrowder_ joined
05:19
PotatoGim_ joined,
bitmap_ joined,
clkao_ joined,
exodist_ joined
05:20
Actualeyes joined,
xxpor_ joined,
musca` joined,
profan left,
melezhik_ left,
b2gills left,
camelia left,
[ptc] left,
bob777 left,
tbrowder left,
giraffe_ left,
john51 left,
PotatoGim left,
vcv left,
pnu_ left,
zostay left,
Xliff_ left,
Possum left,
a3r0 left
05:21
clkao left,
timeless left,
captain-adequate left,
k-man left,
jonadab left,
TheDir left,
mohae left,
bonsaikitten left,
riatre left,
obfusk left,
TimToady left,
Upasaka left,
nemo left,
krunen_ left,
Guest24694 left,
ggoebel left,
f3ew left,
ringer1 left,
llfourn left,
ssm left,
Woodi left,
Gothmog_ left,
akiym left,
zhmylove left,
exodist_ is now known as Exodist,
bitmap_ is now known as bitmap,
bob778 is now known as bob777,
Gothmog__ is now known as Gothmog_,
zostay_ is now known as zostay,
tbrowder_ is now known as tbrowder,
pnu__ is now known as pnu_,
jkramer joined,
[ptc] joined
05:22
wamba joined,
john51_ left
05:23
john51 joined,
dgl joined
05:24
Guest81107 joined
05:25
PotatoGim_ is now known as PotatoGim,
clkao_ is now known as clkao
05:27
ggoebel joined,
k-man joined
05:28
timeless joined,
melezhik_ joined,
salparadise joined,
b2gills joined,
timotimo joined
05:29
ssm joined,
akiym joined
05:30
risou_ joined
05:38
camelia joined
05:39
a3r0_ is now known as a3r0,
ChanServ sets mode: +v camelia
05:40
wamba left
05:44
rgrinberg left
05:58
imcsk8_ joined
06:00
domidumont joined
06:02
imcsk8 left
06:12
pierre_ joined
06:16
pierre_ left
06:20
xinming joined
06:24
matiaslina left,
domidumont left
06:25
pierre_ joined
06:28
firstdayonthejob joined
06:40
firstdayonthejob left
06:50
domidumont joined
06:54
salva joined
07:06
rindolf joined
07:12
[particle]1 left
07:13
[particle] joined
07:19
wamba joined,
ufobat joined
07:21
rurban joined
07:26
zhmylove_ left
07:27
zhmylove joined
07:28
Actualeyes left
07:35
djbkd joined
07:36
CIAvash joined
07:38
perlawhirl left
07:43
darutoko joined
07:46
pierre_ left
07:48
pierre_ joined
07:49
RabidGravy joined
|
|||
DrForr_ | captain-1dequate: Perl::ToPerl6 is the appropriate module space now. | 07:49 | |
scott | is there any subscripting shorthand for `$foo{'key with spaces'}`? | 07:56 | |
err, `%foo` | 07:57 | ||
07:57
djbkd left
|
|||
moritz | no | 07:58 | |
08:01
jonas1 joined,
Actualeyes joined,
dakkar joined
|
|||
scott | can anyone see an obvious way to improve this simple code? I'm just new to perl6 and looking for any tips gist.github.com/solson/410ee20f210...d55e3d81ec | 08:03 | |
mainly wondering if I'm missing any handy shortcuts | |||
$j<seen> is an array of hashes, each with an array of directors, for context | |||
moritz | scott: if you want to count things, a Bag is usually the most idiomatic thing to use | 08:05 | |
m: say Bag.new(<a b c c c c b>) | |||
camelia | rakudo-moar f0b3b5: OUTPUT«bag(a, c(4), b(2))» | ||
scott | nice! | ||
08:08
ocbtec joined
|
|||
scott | oh, of course, I can also just write .key, .value | 08:09 | |
`.sort({ -.value, .key })` is also more what I want, and maybe more readable | 08:12 | ||
the only part I still dislike is `.map(|*<directors>)` - not sure if that's really the best way to flatten those arrays of directors | 08:15 | ||
08:18
kanl joined
|
|||
moritz | scott: if you paste a runnable snippet that includes two or three items of the data structure, I can look for nicer ways | 08:18 | |
08:21
pierre_ left
|
|||
DrForr_ | yoleaux: hi | 08:23 | |
Okey-dokey, no messages, I guess. | |||
08:23
zakharyas joined
|
|||
scott | moritz: I made a simplified sample here, based on the .perl output for these few gist.github.com/solson/5f6872e8e9b...c68b210894 | 08:25 | |
08:25
pierre_ joined
08:27
DrForr_ is now known as DrForr
|
|||
moritz | scott: the best I can come up with right now is .map(*<directors>.Slip), but that just replaces prefix | with .Slip | 08:30 | |
scott | fair enough. thanks for checking! | ||
moritz | scott: unrelated, Bag.new(...) can be bag(...) | ||
scott | also, I found out I can tack .Bag onto the array instead of wrapping in bag(...) | 08:31 | |
which makes it a bit more linear | |||
nadim | Good morning P6! | 08:42 | |
DrForr | Mornin'. | ||
08:42
bjz_ joined
08:47
rurban left
09:05
kurahaupo left
09:06
pierre_ left
09:14
pierre_ joined
09:18
pierre_ left
09:31
araujo joined
09:32
araujo left,
araujo joined
09:33
canopus left,
Dunearhp joined
09:34
araujo left
09:35
araujo joined
09:37
araujo left,
araujo joined
09:40
araujo left,
canopus joined,
araujo joined
09:42
zakharyas left,
zakharyas joined
09:46
zakharyas left
09:51
llfourn_ left
10:01
pierre_ joined
10:07
Actualeyes left
10:09
keix joined
10:22
gregf_ joined
10:26
ka left
10:27
TEttinger left
10:28
_matt joined
10:29
_matt is now known as matt_,
pierre_ left
10:30
krunen__ left,
krunen left
10:32
ka joined
10:35
pierre_ joined
10:39
pierre_ left
10:41
pierre_ joined
10:57
pmurias joined
|
|||
pmurias | hi | 10:57 | |
moritz | ho | ||
11:05
woolfy joined
11:06
bob777 left
|
|||
SmokeMachine____ | zengargoyle: for that '0liners' (but in my case not with that name) for perl5 o use App::Rad | 11:08 | |
DrForr | . o ( Let's go! ) | 11:10 | |
11:12
labster left
11:16
pierre_ left
11:20
rindolf left
11:22
Dunearhp left
11:30
bob777 joined,
rurban joined
|
|||
RabidGravy | there, HTTP::Server::Tiny passing it's tests again :) | 11:37 | |
11:38
pdcawley joined
|
|||
RabidGravy | tokuhirom++ has given me commit so it shouldn't fall apart again (assuming I don't go mad and become a crazy erlang hacker or something) | 11:40 | |
11:44
ka left
11:53
perlawhirl joined
11:55
aod left
11:59
cuonglm joined
|
|||
cuonglm | Zoffix: this issue seems to be fixed in latest version of rakudo rt.perl.org/Public/Bug/Display.html?id=123838 | 11:59 | |
rakudo: my $f = open("x", :w); $f.print("abc"); say $f.tell | 12:00 | ||
camelia | rakudo-moar f0b3b5: OUTPUT«open is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting line 1 in sub open at src/RESTRICTED.setting line 9 in block <unit> at <tmp> line 1» | ||
12:03
rindolf joined
12:12
hackedNODE joined
12:13
profan_ is now known as profan
12:14
tsadok is now known as jonadb,
jonadb is now known as jonadab
|
|||
hackedNODE | cuonglm: out of curiosity, what does that ticket have to do with Zoffix? | 12:14 | |
jkramer | I've asked this some time ago but forgot about the solution. :( How do I get the possible values of an enum? .enums gives me a map of Str => Int, but I want the actual values, not the string representations | 12:17 | |
Bool.pick(*) returns a list of the actual values but I think the RNG is a bit useless overhead here :) | |||
timotimo | m: say Bool::.values | ||
camelia | rakudo-moar f0b3b5: OUTPUT«(True False)» | ||
jkramer | Goddamn me | 12:18 | |
Thanks :D | |||
12:18
hackedNODE left
12:20
hackedNODE joined
12:26
rgrinberg joined
12:27
rgrinberg left,
rgrinberg joined
|
|||
RabidGravy | :) | 12:30 | |
cuonglm | hackedNODE: Hmm, I saw Zoffix have been added to perl6 group in Github, and he recently merged my PRs and response to the RT thread | 12:32 | |
So I just want to ask him to close it | 12:33 | ||
psch | RT bug admin and GH perl6 group permissions aren't directly related | ||
hackedNODE | cuonglm: but there's not even such nick in this channel. If ticket needs to be changed, I think it's best to mention it in #perl6-dev rather than pinging some random specific person :) | 12:34 | |
cuonglm | psch: Yep, but I saw Zoffix closed it in RT | ||
hackedNODE: Ok, will do it next time. | |||
psch | cuonglm: zoffix just likes messing around with their nick all the time and then being snarky about it, don't worry about it :) | ||
hackedNODE | Thanks. | ||
RabidGravy | yeah, I'm in the GH group and can't do anything to the tickets in RT ;-) as it should be .... | 12:35 | |
12:37
wamba left
12:38
nemo_ is now known as nemo
12:41
pdcawley left
12:42
pdcawley joined
12:45
perlpilot_ joined,
perlpilot left,
perlpilot_ is now known as perlpilot
12:48
ka joined
12:49
andrzejku joined
13:01
Actualeyes joined
13:02
pierre_ joined
13:12
cdg joined
13:13
ptolemarch joined
13:17
cdg left
13:21
cdg joined
|
|||
sammers | hi perl6 | 13:21 | |
hackedNODE | \o | ||
moritz | \o sammers | ||
sammers | how is everyone today? | 13:22 | |
tonight? afternoon? | |||
RabidGravy | .seen masak | ||
yoleaux | I saw masak 25 Sep 2016 14:10Z in #perl6: <masak> I mean, if you know up-front exactly what inputs you're going to give, irrespective of any outputs that come back... | ||
hackedNODE | sleepy | ||
moritz | it's always morning in UGT! | ||
13:22
cog__ joined
|
|||
sammers | good morning moritz ! | 13:23 | |
it is almost 2230 here in Japan | |||
question about panda, is there a way to tell panda to exclude files in a folder, something like .gitignore? | 13:25 | ||
hackedNODE | Is there a way to pun a role, while still leaving it as a :U? | ||
moritz | sammers: wow, Japan is more than 200 years ahead of us! :-) | ||
jnthn | hackedNODE: .^pun I think | 13:26 | |
psch | m: role R { }; my $r = R.^make_pun; say $r.WHAT; say $r ~~ R:U | ||
camelia | rakudo-moar f0b3b5: OUTPUT«(R)True» | ||
psch | m: role R { method foo(R:U) { say "okay" } }; my $r = R.^make_pun; $r.foo | ||
camelia | rakudo-moar f0b3b5: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in method foo at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
psch | m: role R { method foo(R:U: ) { say "okay" } }; my $r = R.^make_pun; $r.foo | ||
camelia | rakudo-moar f0b3b5: OUTPUT«okay» | ||
hackedNODE | c: Blob.^pun, 'allocate', \(42, 'meow') | 13:27 | |
Undercover | hackedNODE, The code is NOT hit during stresstest See perl6.WTF/src_core_Buf.pm.coverage.html#L48 for details | ||
hackedNODE | Sweet, jnthn++ thanks | ||
psch | colons everywhere | ||
m: Blob.^pun | |||
camelia | ( no output ) | ||
psch | m: role R { method foo(R:U: ) { say "okay" } }; my $r = R.^pun; $r.foo | ||
camelia | rakudo-moar f0b3b5: OUTPUT«okay» | ||
psch | vOv | ||
sammers | yes moritz, Kirk will be born in a few more years. | ||
psch | that's again one of those .^can vs .^lookup things isn't it | ||
where they have slightly different meaning and i just can't for the live of me figure them out nor remember them :P | 13:28 | ||
andrzejku | hi guys | 13:32 | |
:) | |||
hackedNODE | \o | ||
13:32
mniip left
|
|||
andrzejku | how to build operating system with perl6? | 13:33 | |
13:34
skids joined
|
|||
hackedNODE | hahahaha | 13:34 | |
moritz | andrzejku: what's your goal? | ||
13:35
gregf_ left
|
|||
hackedNODE | .oO( SlowOS... sounds catchy ) |
13:35 | |
andrzejku | ... | ||
I want to learn Perl6 | |||
and C++ | |||
by mixing them | |||
so I got a great idea to make OS | |||
13:36
mniip joined
|
|||
psch | that doesn't sound like a great idea to me, honestly. it's kind of outside of the scope of *both* languages, isn't it | 13:36 | |
moritz | well, I don't think why C++ wouldn't be suited | ||
perlpilot | andrzejku: maybe start with making a command line shell in Perl 6 ? | ||
psch | i mean, sure, C++ probably works but there's a lot of stuff you don't really want or need for building an OS | ||
andrzejku | mmm | 13:37 | |
what about rewriting perl6 vm to c++? | |||
;D | |||
13:37
sufrostico joined
|
|||
timotimo | i think the operating system of the nintendo 3ds is written in C++ | 13:37 | |
moritz | I kinda agree with psch. There are many more things where you can mix those two languages that sound much more workable | 13:38 | |
timotimo | at least the API it provides to user space programs is based on C++ objects | ||
perlpilot | andrzejku: or find a C++ library that's really useful and make a Perl 6 binding for it? | ||
andrzejku | not I want to write C++ | ||
;-) | |||
and Perl | |||
not just checking a documentation | |||
moritz | andrzejku: there's a nice numerical library called Eigen, or Eigen2 | 13:39 | |
andrzejku: the interesting thing is that it uses template expressions | |||
so there's no straight-forward mapping to a C API | |||
hooking Perl 6's MOP to the template expression thingy in C++ sounds like an interesting challenge (if you're into that kind of masochism) | |||
psch | o.o | 13:40 | |
yes, probably a *lot* of fun hidden there | |||
timotimo | if you want to write a C++ compiler in perl6, then yeah, that sounds fun | ||
andrzejku | :-) | ||
too many options | |||
what about Perl6 embedded? | 13:41 | ||
for AVR? | |||
Woodi_ | andrzejku: I have request: vim clone based on Perl6 :) | ||
andrzejku | that would be slow | 13:42 | |
moritz | question of the day: What's more work, writing an OS or a C++ compiler? :-) | ||
13:43
skids left
|
|||
psch | i'm going with "yes" | 13:43 | |
moritz | cheater! | 13:44 | |
hackedNODE | A C++ compiler | ||
Woodi_ | OS is simple. you do OS part that do something and add IP stack, which is hard becouse that must cooperate with other implementations :) | 13:45 | |
moritz | hackedNODE: I tend to agree, simply because C++ has a spec, and you need to implement all of it. An OS can be rather minimal | ||
(nobody mentioned a GUI, or networking. Right? :-) | 13:46 | ||
timotimo | that's correct | ||
13:46
cog__ left
|
|||
timotimo | not even that it has to do any sort of multiprocessing | 13:46 | |
RabidGravy | .tell masak I'm just fixing your github.com/tokuhirom/p6-HTTP-Serve.../issues/28 while I'm in the mood :) | ||
yoleaux | RabidGravy: I'll pass your message to masak. | ||
moritz | RabidGravy++ # while I'm in the mood :) | 13:48 | |
andrzejku | moritz, what's Perl 6 MOP? | 13:49 | |
RabidGravy | "Meta Object Protocol" | ||
andrzejku | docs.perl6.org/language/mop | ||
jkramer | What's the protocol for porting/rewriting P5 modules for P6? Can I just use the name or should I contact the original author first? | 13:52 | |
psch | i think we're on first-come-first-serve basis with namespace spots? | 13:53 | |
moritz | jkramer: you can just use the name (unless the author registered a trademark, I think) | ||
psch | although asking definitely wouldn't hurt | ||
timotimo | since everything has an implicit :auth<github:yourusername> ... :P | ||
psch | oh, yeah, trademark might be a concern potentially | ||
jkramer | Are there trademarks on module names? o_O | ||
psch | hopefully not :) | ||
hackedNODE | Ask mst :) | ||
metacpan.org/release/Nagios-Plugin :) | 13:54 | ||
moritz | jkramer: if you go to a trademark office and register one for YourSuper::Duper::Org::API, I'm sure they'll grant it :/ | ||
timotimo | i'm pretty sure apple is going to sue our asses for having an App:: namespace | 13:55 | |
hackedNODE | :D | ||
jkramer | :D | ||
WTF that actually happened? (Nagios= | 13:56 | ||
13:56
pierre_ left
|
|||
moritz | yes, those guys have a reputation for being nasty on occasion | 13:57 | |
RabidGravy | Also Docker have had github repos beginning with "docker" removed | 13:58 | |
jkramer | o_O | ||
timotimo | nastyos | 13:59 | |
moritz | there's also the piece of nastiness in law that you can lose trademark that you don't defend | 14:00 | |
so if you don't have an explicit policy of allowing such things that contain your trademark'd name, you basically *have* to go after those folks to not lose it | |||
ilmari | moritz: the policing requirement is nowhere near as strict as lots of companies would like you to think | 14:01 | |
RabidGravy | yeah and they could make, if they so wished, specific provision for certain uses | 14:03 | |
14:03
zacts left
|
|||
moritz | ilmari: I guess I should read up on the actual requirements | 14:03 | |
ilmari | twitter.com/RickSandersLaw/status/...2150694916 | 14:04 | |
IMO docker-foo does not dilute the docker trademark if it's a thing for using docker and foo together | 14:05 | ||
jkramer | I shall register IO::File™ and become insanely rich. Or maybe strict™ | 14:07 | |
hackedNODE | jkramer: I'd go for v6 :) | 14:08 | |
14:09
imcsk8_ is now known as imcsk8
|
|||
jkramer | I present to you the great new Log::Dispatch™ for Perl v6™! gist.github.com/jkramer/9e4431b293...e448de502f | 14:10 | |
Sadly you can't use it or I'll sue you | |||
14:10
zoosha_ left
14:11
grondilu joined
|
|||
ugexe | actually its Log::Dispatch:auth<github:jkramer> | 14:13 | |
perl6 needs improvements for commiting traderight infringement by module authors | |||
trademark | 14:14 | ||
ilmari | shouldn't Output be a role, not a class? | 14:15 | |
14:15
zoosha joined
|
|||
timotimo | No Copyright Intended™ | 14:16 | |
jkramer | ilmari: Don't know, does make a big difference in the case for me. What advantage would a role bring here? | 14:18 | |
ugexe | role is 1 letter less to type | 14:19 | |
jkramer | :D | ||
ilmari | jkramer: you can't usefully instantiate Object | ||
abstract classes are a workaround for lack of rolse | |||
*roles | |||
s/Object/Output/ | |||
14:19
rurban left
|
|||
jkramer | Yeah, I ugexe alredy conviced me :) | 14:20 | |
ugexe | you can also abuse parameterized roles to use a different style of class invocation | 14:21 | |
m: role Foo[$bar] { has $.baz; method bar {$bar}; }; say Foo[1].new(baz => 2).bar; | 14:22 | ||
camelia | rakudo-moar f0b3b5: OUTPUT«1» | ||
jkramer | $!fh = open $.path, :a or die $!fh unless $!fh; - is this doing what I want it to do? It seems to work but it looks weird :) | 14:23 | |
ugexe | role Log::Dispatch[Logger $logger] { has IO::Handle $.stdout; has IO::Handle $.stderr; method log { ... } } for instance | ||
14:23
wamba joined
14:25
user9 left
14:26
user9 joined
|
|||
[Coke] stares at irc logs over coffee | 14:26 | ||
timotimo | careful, don't wanna spill irc logs into your coffee | 14:27 | |
RabidGravy | right that's me done with fixing other people's software for the day, let's fix some of mine instead :) | 14:28 | |
14:28
brrt joined
|
|||
RabidGravy | .tell masak I closed that PR on HST on the grounds that it doesn't spew that error any more ;-) | 14:29 | |
yoleaux | RabidGravy: I'll pass your message to masak. | ||
14:29
brrt left
|
|||
RabidGravy | .tell masak err, "issue" not "PR" | 14:29 | |
yoleaux | RabidGravy: I'll pass your message to masak. | ||
14:30
cuonglm left
|
|||
RabidGravy | anyone else notice that the Travis-CI for OS/X is a lot slower than for Linux? | 14:34 | |
14:34
kaare_ joined
|
|||
RabidGravy | or rather it seems to share load in a way that makes the OS/X jobs more likely to stall and time out | 14:35 | |
timotimo | that's just because it uses clang | 14:36 | |
RabidGravy | ah, of course | ||
anyway that's Cache::Memcached back on the straight and narrow, now back to breaking this streaming server | 14:38 | ||
14:39
zacts joined,
bob777 left
14:40
bob777 joined
|
|||
timotimo | the only reason clang times are so bad is because interp.c takes *ages* to compile with it | 14:41 | |
everything else hardly changes, i'd think | |||
RabidGravy | I keep meaning to try and compile it with openwatcom, that used to be by far and away the fastest back in the last century | 14:43 | |
timotimo | openwat | ||
geekosaur can't help but think of watfiv >.> | |||
timotimo | i don't know what that is | 14:44 | |
RabidGravy | that is to say when it was still the "Watcom C compiler" it was the fastest, it has since been bought by someone and then opensourced | 14:47 | |
14:47
girafe joined
14:48
salva left
14:50
perlawhirl left
14:52
bob777 left
|
|||
geekosaur | waterloo fortran iv compiler | 14:53 | |
RabidGravy | yeah they're both from the same place, I think that one was fast as well | 14:54 | |
not that I have done more than about four lines of fortran in the last twenty years | |||
14:57
wamba left
15:01
andrzejku left
15:03
ka left,
gregf_ joined
15:06
wamba joined,
ka joined
15:10
wamba left
|
|||
grondilu | I don't know what's going on but today compiling rakudo takes ages. | 15:18 | |
For once, I'm compiling something else at the same time, but still. | |||
lizmat | grondilu: it is a 1.4MB source file, with 42.5K lines | 15:19 | |
15:19
optikalmouse joined
|
|||
timotimo | is your device swapping? | 15:20 | |
slow hard drive wouldn't make it take ages i don't think | |||
15:21
acrussell joined,
skids joined
|
|||
grondilu | yes, lots of swap. I'm now pretty sure I can blame the other compilation | 15:22 | |
grondilu interrupts the rakudo compilation and waits for the other one to finish | 15:24 | ||
timotimo | vms that do garbage collection like rakudo does have a bad time when you run out of ram | 15:28 | |
15:31
MilkmanD1n left
|
|||
timotimo | when you want to write "nice make" and it comes out as "mike" instead ... | 15:32 | |
moritz would have expected "mice" | 15:33 | ||
optikalmouse | I would have expected mexican spice. | 15:34 | |
but then, I'm hungry. | |||
timotimo | i just had a sammich | ||
ugexe | fortune 500 company asked about possible perl6 uses today :) | 15:37 | |
hackedNODE | what answer did they get? :) | 15:38 | |
awwaiid | I assume they were confused. The first users of new languages tend to be the sorts who don't "ask" | ||
15:39
andrzejku joined
|
|||
ugexe | hackedNODE: that it's not ready from a web framework perspective but that it would fit for our parsing and backend processing needs | 15:41 | |
TimToady_ | jkramer: I'd probably write that as: $!fh ||= open($.path, :a) || die $!; | 15:42 | |
presuming you meant die $! there, not die $!fh | |||
15:43
optikalmouse left
15:47
duncan_dmg joined,
ka left
|
|||
ugexe | awwaiid: why wouldn't they ask? the alternative is to read a bunch of reddit comments from people who have never used it | 15:47 | |
15:50
MilkmanDan joined
|
|||
RabidGravy | of course a fortune 500 company could probably invest some employee time into improving the web framework thing :) | 15:50 | |
if they were keen enough to see Perl 6 as a strategic language of course | 15:51 | ||
timotimo | if the company has enough money, perhaps | ||
15:51
domidumont left
|
|||
RabidGravy | though of course there have always been plenty of large companies who are only interested in passively consuming open source software | 15:52 | |
(there are of course some notable exceptions) | |||
profan | s/large companies/companies/ and it still applies :p | 15:53 | |
ugexe | I imagine they'd like to get their feet wet with the good parts and business logic before getting hit with the idea of investing money into writing a web framework | 15:55 | |
they are a TPF sponsor so they aren't just a passive consumer | 15:56 | ||
RabidGravy | cool | 15:57 | |
15:59
ka joined
|
|||
avuserow | m: multi foo() {nextwith(1)}; multi foo($a) {note "here"}; foo(); # Can someone unconfuse my use of nextwith here? | 15:59 | |
camelia | ( no output ) | ||
RabidGravy | I think now people are becoming more accepting of "mixed architectures" with different languages playing to their strengths in certain subsystems of an application | ||
15:59
optikalmouse joined
|
|||
timotimo | avuserow: "next" will only go through things that are already up for consideration | 15:59 | |
the foo($a) candidate wasn't considered because your call was foo() | 16:00 | ||
you want callwith instead | |||
jnthn | Want samewith, no? :) | ||
callwith also iterates the same candidate lsit | |||
*list | |||
timotimo | oh | ||
good catch | |||
avuserow | ah, didn't know about samewith. looks like that's what I want, thanks | ||
16:01
FROGGS joined
|
|||
avuserow | is it new-ish? it's not mentioned in the docs around nextwith/callwith as far as I can tell (in language/functions for example) | 16:02 | |
moritz | moritz@pete:~/p6/doc$ git grep --word nextwith|wc -l | ||
11 | |||
avuserow | looks like samewith is 2013 vintage, so not super new, but newer than some of the advent stuff I stumbled upon | 16:03 | |
lizmat | I thought of "samewith" at that time | 16:04 | |
RabidGravy | avuserow, you just reminded me to check the PR on Audio::Taglib::Simple :) It''s fixed so I'll close it | ||
jkramer | TimToady_: Yup, I already rewrote pretty much like that | ||
lizmat | but from a performance point of view, you'd probably be better of doing "self.nameofmethod(your params)" | 16:05 | |
at least for the foreseeable future | |||
awwaiid | ugexe: I mean that -- I hypothesize initial use of a new tech (esp without large corporate backing) tends to be bottom-up, from random engineers on small projects, rather than top-down, which is how I interpret the idea of a Company asking things | 16:07 | |
RabidGravy | is it a massive difference in the performance thing? I do tend to use samewith quite a lot | ||
16:08
optikalmouse left
|
|||
lizmat | RabidGravy: i would say massive, yes | 16:09 | |
16:09
optikalmouse joined
|
|||
jkramer | Is there some kind of destructor thing in P6 that gets called when an object's life is over? | 16:09 | |
RabidGravy | Hmm maybe I''ll take a look at that at some point as I say I tend to use it quite a lot | ||
lizmat | fwiw, I think I can make it a bit better, but basically, if you use samewith, you have no chance of it getting optimized atm | ||
16:09
ptolemarch left
|
|||
jkramer | Does DESTROY still exist? | 16:10 | |
lizmat | RabidGravy: samewith is about 30x slower | ||
RabidGravy | yikes | ||
maybe I ought to find a choice module that uses it a lot and swap it then | 16:11 | ||
lizmat | m: multi a() { samewith(42) }; multi a($a) { $a }; my $now = now; for ^10000 { a }; say now - $now | ||
camelia | rakudo-moar 74b5d7: OUTPUT«0.1814039» | ||
lizmat | m: multi a() { a(42) }; multi a($a) { $a }; my $now = now; for ^10000 { a }; say now - $now | ||
camelia | rakudo-moar 74b5d7: OUTPUT«0.0049243» | ||
jnthn | jkramer: DESTROY exists, but you have on promises about when it will be called or, if your object lives until close the program exit, if it will be called at all. | ||
*no promises | |||
16:12
andrzejku left,
andrzejku joined
|
|||
jnthn | (To be specific, it gets run shortly after the GC determines the object can be freed.) | 16:13 | |
16:13
xiaomiao left
|
|||
jkramer | m: class A { sub DESTROY { say "boom!" } }; { my $a = A.new; say "done" }; say "done even more" | 16:14 | |
camelia | rakudo-moar 74b5d7: OUTPUT«donedone even more» | ||
16:14
ptolemarch joined
|
|||
jkramer | Meh | 16:15 | |
16:15
xiaomiao joined
|
|||
jnthn | Right, GC never happened | 16:15 | |
So, don't use it for resource management. | |||
(It's a trade-off. If you ref-count, you give up a bunch of other nice things.) | |||
jkramer | Ok, I was hoping for something that would be called as soon as the object leaves the scope | ||
jnthn | You can write a LEAVE block in the scope itself | ||
16:16
ka left,
rurban joined
|
|||
ugexe | awwaiid: its breaking a perl5 monolith into microservices so it *would* be small stand-alone projects - a mix of perl5 and perl6 each playing to their own strengths | 16:16 | |
TimToady_ | m: class A { }; { my $a will leave { say "boom" } = A.new; say "done" }; say "done even more" | ||
camelia | rakudo-moar 74b5d7: OUTPUT«doneboomdone even more» | ||
hackedNODE | :o | ||
timotimo | leaving a scope is very easy compared to "is no longer referenced by anything" | ||
because leaving a scope is pretty much discoverable statically with a little help for exception handling and such | 16:17 | ||
RabidGravy | ugexe, sounds like something Perl 6 could fit in with nicely | ||
FROGGS | o/ | ||
16:17
andrzejku left
|
|||
hackedNODE | \o | 16:17 | |
psch | i'd like the declarant as $_ in the 'will leave' Block, i think | 16:18 | |
16:18
MasterDuke_ joined
|
|||
TimToady_ | m: { my $a will leave { say "terminating " ~ $_ } = 'your visit'; say "done" }; say "done even more" | 16:18 | |
camelia | rakudo-moar 74b5d7: OUTPUT«doneterminating your visitdone even more» | ||
16:18
rurban left
|
|||
TimToady_ | psch: just went into my time machine and fixed it for you | 16:19 | |
psch | m: class A { method left { "bye" } }; { my $a will leave { .left } = A.new; say "done" }; say "really done" | ||
camelia | rakudo-moar 74b5d7: OUTPUT«donereally done» | ||
psch | TimToady_: you did? :) | ||
TimToady_: time machine is probably right though | |||
TimToady_ | you didn't say it | ||
psch | yeah | ||
MasterDuke_ | while a large number of @LARRY are in the room, any opinion on RT #129248? | 16:20 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129248 | ||
psch | i saw that right then | ||
TimToady++ # responsible time machine use | |||
bit sad we can't have Whatever there, but parsing that would probably be really weird | 16:21 | ||
jkramer | Can I use 'will leave' inside to object so it'll be triggered whenever it leaves any scope? :) | ||
Ah, I guess that's GC-stuff again and not easy to detect | 16:22 | ||
psch | jkramer: i think a new declarator is probably your best bet there | ||
like, my-leaving $a or something | |||
jkramer: just gotta figure out a way to tell it globally what to call :) | |||
16:22
acrussell left
|
|||
psch | jkramer: the thing is, 'will leave' is still phaser-y, which is still always bound to the Block it's in | 16:23 | |
jkramer: so the class itself can't bring it, unless it does black CALLER:: magic in .new at runtime to install phasers | |||
s/runtime/compile time/ | 16:24 | ||
which i don't think we actually *can* do because .new isn't compile time | |||
jkramer | psch: The problem is I don't want to user of the class to take care of the cleanup :) So it should happen transparently somewhere inside the class. But it's not that important, I was just wondering if there's something like that | ||
Woodi_ | maybe Perl6 is good for prototyping (to discover some architecture things) becouse: a) code can look clean/readable during reimplementation; b) chance of skipping reimplementation is very low :) no good GUI is two edge sword... | ||
RabidGravy | okay finding the module with the greatest number of samewith is taking some time | ||
16:25
Woodi_ is now known as Woodi
|
|||
RabidGravy | and strangely the one with the greatest number is not released yet | 16:25 | |
hackedNODE | s: &trait_mod:<will>, \(:leave) | ||
SourceBaby | hackedNODE, Something's wrong: ERR: Could not find candidate that can do \(:leave) in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 37 in block <unit> at -e line 6 | ||
hackedNODE | :( | ||
psch | jkramer: i'm not sure, but maybe you can somehow get EXPORT to install a LEAVE phaser in the importing scope..? | ||
jkramer: i mostly don't know if you can (1) find the right scope to install the phaser in and (2) EXPORT runs early enough | 16:26 | ||
TimToady_ | MasterDuke_: rindex is not symmetrical with index, since positions are measured from the start of the needle, not the end, so I'd say the rindex("1234","2",4) should fail indicating the correct range is 0..3, since the actual allowed range is not 0 .. 4 but rather 0 .. 4 - $needle.chars | 16:28 | |
avuserow | RabidGravy: thanks, been meaning to do a bit of cleanup on my various modules. appreciate the PR, and I'm going to eventually set up travis so I'll catch stuff like that in advance :) | ||
RabidGravy | avuserow, there's still a fail on "bitrate" here though, not sure what that''s all about | ||
jkramer | psch: It's alright, it's not that important that I'd hack weirdo stuff like that :) It'd just be nice to have in this case | ||
TimToady_ | MasterDuke_: though I suppose we could just return Nil up through 4 just for convenience | 16:29 | |
RabidGravy | (I'm only using the module to test Audio::Encode::LameMP3 at the moment) | ||
jkramer | But you reminded me of another question I had. Can I still use somehow use the 'use' parameters for random module options and stuff like in P5 or is it only for 'is export' stuff now? The only thing I found was for export tags. | 16:30 | |
TimToady_ | MasterDuke_: or we could say that if they give us a position within the string that is too long to match, we just force it to the first position that could match | ||
avuserow | RabidGravy: do you remember what OS/arch combination this appears on? | 16:31 | |
TimToady_ | such that rindex("1234","2",4) would simply return 1, and rindex("1234","2",5) would report failure | ||
and then it wouldn't matter if it said 0..3 or 0..4 | |||
RabidGravy | avuserow it's Linux x86_64 | 16:32 | |
TimToady_ | MasterDuke_: so I think the last thing I said is probably the best approach | 16:33 | |
hmm, I seem to have grown a tail... | |||
maybe I'm not really me... | 16:34 | ||
16:34
duncan_dmg left,
TimToady_ is now known as TimToady,
TimToady left,
TimToady joined
|
|||
RabidGravy | avuserow, my working hypothesis is that it's actually the underlying library rather than the module | 16:34 | |
MasterDuke_ | TimToady: thanks for the input | ||
TimToady | hmm, maybe you're not really you :) | 16:35 | |
dogbert2 | TimToady: up for another question wrt duckmap? | ||
TimToady | we should pay attention to iterable if it's undefined, if that's the question | ||
*shouldn't | |||
darn n't key is broken again | 16:36 | ||
RabidGravy | well there's four samewith ridded anyway | ||
avuserow | RabidGravy: certainly possible. if you have a test file, I can take a look. I have an old C++ binary around taglib I can use for this stuff. | ||
dogbert2 | it's probably the question, what should this return: my @a = [1, "a"]; dd duckmap({ $_ ~~ Int ?? $_ !! Any }, @a); | ||
avuserow | RabidGravy: I've also been meaning to write a pure Perl6 parser for some tag formats partially as a demo for Binary::Structured (once I'm happier with its features/API/stability) | 16:37 | |
RabidGravy | I've got an MP3 frame parser in Perl 6 somewhere around | ||
gfldex | i wonder if IO::Handle.open should check for stale symlinks. That file-i-can-clearly-see-does-not-exist-error always trips me of. | 16:38 | |
16:39
robertle joined,
andrzejku joined
|
|||
avuserow | RabidGravy: is it online anywhere? I'm interested in having a look | 16:39 | |
RabidGravy | It's github.com/Perl6-Noise-Gang/Audio-Format-MP3 - if you want a hack you can join the noise gang | 16:41 | |
:) | |||
actually I've just invited you :) | 16:42 | ||
16:42
cog__ joined
16:44
andrzejku left,
andrzejku joined
16:46
dogbert2 left,
dogbert17 joined,
acrussell joined
16:51
dalek left
16:52
dalek joined,
ChanServ sets mode: +v dalek
|
|||
TimToady | dogbert2: it oughta return [1,Any], not try to iterate Any | 16:57 | |
even if it were [1,List], it should return [1,List] rather than trying to iterate a type object | 16:58 | ||
dogbert17 | TimToady: thanks, the docs were a bit vague so for a second I was wondering if it should return [1, "a"] | 17:00 | |
TimToady | actually, duckmap is intended for methods, not functions, so the functional form doesn't really make sense | ||
you can have [1,2,3].foo failing to dispatch, which is what triggers the iteration on a defined [1,2,3] | |||
dogbert17 | m: my @a = [1, [2,3],4]; dd duckmap({ $_ ~~ Int ?? $_ !! Any }, @a) | 17:02 | |
camelia | rakudo-moar 74b5d7: OUTPUT«(1, (2, 3), 4)» | ||
TimToady | but detecting failure to dispatch on a foo([1,2,3]) is a bit more problematic, unless maybe we test explicitly for the appropriate dispatch failure, which {} is never going to produce | ||
17:03
gregf_ left
|
|||
TimToady | I mean, with foo() we know at compile time that the name 'foo' actually exists, but maybe it won't bind to any signature | 17:03 | |
we can't indicate failure to dispatch by returning an undefined value, in any case, because undefined values are a valid return from a duckmap | 17:04 | ||
dogbert17 | so if the expression returns undef and the element in question is NOT iterable, then we should return Any ? | 17:06 | |
17:06
poohman joined,
cog__ left
|
|||
TimToady | so what duckmap really needs to test is that the call returns a failure to dispatch, and then iterate if the input value is defined and Iterable | 17:06 | |
otherwise it should just return the undefined return value, whatever it was | 17:07 | ||
which might or might not be Any | |||
we never test the returned value for definedness, only for failure to dispatch | 17:08 | ||
17:09
optikalmouse left
|
|||
TimToady | you should be able to duckmap to undefined values just fine | 17:09 | |
as long as they aren't dispatch failures | |||
this is all based on, if .quack or quack() works, it's a duck | |||
otherwise see if it's a flock of ducks | 17:10 | ||
where "works" is defined as "dispatches and binds okay" | |||
poohman | Hello all, where can I find documentation about running Perl6 on JVM - eventually in Windows | ||
dogbert17 | I was hoping that something like this would be enough. | 17:11 | |
multi sub duckmap(\op, \obj) { | |||
nodemap(-> \arg { try { op.(arg) } // try { arg ~~ Iterable ?? duckmap(op,arg) !! arg } }, obj); | |||
} | |||
dogbert17 is probably in over his head | |||
TimToady | the // is incorrect there | 17:12 | |
hackedNODE | poohman: no idea about docs, but this can buildd it: git clone github.com/rakudo/rakudo/; cd rakudo; perl Configure.pl --gen-nqp --backends=jvm; make; make test; make install | ||
TimToady | since op.(arg) may have intended to map to an undefined value, which should be allowed | ||
dogbert17 | the src in rakudo is this: nodemap(-> \arg { try { op.(arg) } // try { duckmap(op,arg) } }, obj); | 17:13 | |
psch | poohman: github.com/rakudo/rakudo/blob/nom/...LL.txt#L36 | ||
poohman | Thanks | 17:14 | |
psch | poohman: while that's a linux prompt it's not that different for r-j on windows | ||
17:14
firstdayonthejob joined
|
|||
psch | poohman: you do still need make, as mentioned in INSTALL.txt | 17:14 | |
poohman: also note that rakudo-j is a bit behind feature-wise | 17:15 | ||
TimToady | it's more like: nodemap(-> \arg { my \result = try { op.(arg) }; result ~~ Failure ?? try { arg.defined && arg ~~ Iterable ?? duckmap(op,arg) !! arg } !! result }, obj); | ||
poohman | ok | ||
TimToady | or maybe just arg ~~ Iterable:D | ||
which is probably faster and more better anyway than explicitly calling .defined | 17:16 | ||
poohman | thanks - let me have a look at the Install file | ||
17:17
MasterDuke_ left
17:18
dha joined
|
|||
dogbert17 | TimToady: with your change, my @a = [1, [2,3], 'a']; say duckmap({ $_ ~~ Int ?? $_ !! Any }, @a) would return (1 (Any) (Any)) | 17:18 | |
TimToady | as I said, it makes no sense for a block that has no signature | 17:20 | |
dogbert17 | if that's the intended behavior then you have fixed the bug :-) | ||
TimToady | try it with -> Int { $_ } to get the binding to fail | 17:21 | |
or whatever the correct incantation is :0 | |||
-> Int $x { $x } | |||
17:21
setty1 joined
|
|||
dogbert17 | (1 Nil Nil) if I did this correctly | 17:23 | |
TimToady | arguable whether it should return [1,[2,3],'a'] or [1,[2,3],Nil] | ||
17:24
Dunearhp joined
|
|||
hackedNODE | m: &duckmap | 17:24 | |
camelia | rakudo-moar 6974b8: OUTPUT«WARNINGS for <tmp>:Useless use of &duckmap in sink context (line 1)» | ||
hackedNODE | s: &duckmap | ||
SourceBaby | hackedNODE, Sauce is at github.com/rakudo/rakudo/blob/38ec...ps.pm#L683 | ||
TimToady | m: say try { push(now) }.WHAT | 17:25 | |
camelia | rakudo-moar 6974b8: OUTPUT«Nil» | ||
TimToady | m: try { push(now) }; say $!.WHAT | ||
camelia | rakudo-moar 6974b8: OUTPUT«(NoMatch)» | ||
TimToady | I guess try doesn't actually return the failure | ||
dogbert17 | hackedNODE, could that be an alias for Z... | ||
hackedNODE | nah | 17:26 | |
TimToady | m: my \x = push(now); say x.WHAT | ||
camelia | rakudo-moar 6974b8: OUTPUT«Cannot resolve caller push(Instant: ); none of these signatures match: (Any:U \SELF: |values is raw) in block <unit> at <tmp> line 1» | ||
TimToady | and I guess that doesn't work | ||
hackedNODE | m: sub {CATCH {.return}; push(now)}().WHAT.say | 17:29 | |
camelia | rakudo-moar 6974b8: OUTPUT«(NoMatch)» | ||
dogbert17 | should we commit your fix or do you think more code is necessary? | ||
TimToady | hackedNODE is on the right track | ||
dogbert17 | hackedNODE is as clever as they get :-) | 17:30 | |
tony-o | i'm looking at implementing the pluggable interfaces in zef and looking for input on what actions should be pluggable and what points in each should have interfaces for extension. right now i'm just looking at putting in the pre/post pluggables for build|install|test and the way i have prototyping structured is you just need to 'does' a role and tell zef to attempt to use that as a plugin. curious what | ||
environment variables, data, etc people would want passed around to plugins | |||
RabidGravy | if like me you are afflicted with samewith-mania then "find . -name '*.pm' | xargs grep -c samewith | sort -t ':' -k 2 -g" may help ;-) | ||
17:31
eliasr joined,
wamba joined
17:33
setty1 left
|
|||
TimToady | nodemap(sub (\arg) { { CATCH { return arg ~~ Iterable:D ?? duckmap(op,arg) !! arg }; op.(arg); } }, obj); | 17:33 | |
or so... | |||
17:33
dakkar left
|
|||
TimToady | hmm, useless brackets there | 17:34 | |
nodemap(sub (\arg) { CATCH { return arg ~~ Iterable:D ?? duckmap(op,arg) !! arg }; op.(arg); }, obj); | |||
or possibly: | 17:35 | ||
nodemap(sub (\arg) { CATCH { return arg ~~ Iterable:D ?? duckmap(op,arg) !! $_ }; op.(arg); }, obj); | |||
depending on whether we want to return "a" or the failure | |||
I can argue that either way | 17:36 | ||
which may mean that we want to give the user the choice of behavior | 17:37 | ||
17:37
domidumont joined
|
|||
TimToady | if we make it return the "a", that works out better for "just adjust the nodes you recognize, and leave the others the same" | 17:38 | |
RabidGravy | there all the released modules don't have 'samewith', lizmat++ cheers for the "heads up" | ||
TimToady | which is sort of the spirit of duckmap | 17:39 | |
dogbert17 | yes, sounds better than "(1 (2 3) Type check failed in binding to $x; expected Int but got Str ("a")" | ||
RabidGravy | if nothing else it has improved my apparent productivity for the day ;-) | ||
TimToady | if they really want the failure, they can write a function that returns a handled $failure, which won't throw | 17:41 | |
17:41
optikalmouse joined
|
|||
dogbert17 | your second suggestion, i.e. nodemap(sub (\arg) { CATCH { return arg ~~ Iterable:D ?? duckmap(op,arg) !! arg }; op.(arg); }, obj); it is then | 17:42 | |
maybe hackedNODE has already implemented it | |||
TimToady | also, if they feed it [1,[2,3],"a"], it should really give back [1,[2,3],"a"] rather than (1,(2,3),"a") | ||
mappers should try to preserve structure types | |||
17:43
poohman left
|
|||
TimToady | especially since duckmaps are likely to be applied to wonky iterable types | 17:44 | |
that might or might not quack in the night | |||
dogbert17 | the ordinary map doesn't seem to retain structure either | 17:45 | |
TimToady | m: say ([1,2,3] but role { method quack { say "QUACK!" } }).quack | ||
camelia | rakudo-moar 38ec2e: OUTPUT«QUACK!True» | ||
TimToady | such as that | ||
m: say ([1,2,3] but role { method quack { say "QUACK!" } }).WHAT | 17:46 | ||
camelia | rakudo-moar 38ec2e: OUTPUT«(Array+{<anon|80947680>})» | ||
TimToady | a duckmapper should preserve that anonymous type | ||
well, any mapper should, to the extent possible | 17:47 | ||
dogbert17 | m: my @a = [1,2,3]; say @a.map(-> Int $x { $x }) | ||
camelia | rakudo-moar 38ec2e: OUTPUT«(1 2 3)» | ||
TimToady | arguable that's wrongish | 17:48 | |
17:48
labster joined
|
|||
TimToady | m: my @a = [1,[2,3],4]; say @a.deepmap({ $_ + 1 }) | 17:49 | |
camelia | rakudo-moar 38ec2e: OUTPUT«[2 [3 4] 5]» | ||
TimToady | well, deepmap does it right | 17:50 | |
maybe .map is coercive to list, and that's okay | |||
hackedNODE | dogbert17: nah, I didn't implement anything. I'm a Perl 6 n00b :) | ||
(I've been using it for like three days ;)) | 17:51 | ||
dogbert17 | well, figuring out what destroys the structure is a bit over my tiny head I'm afraid :( | ||
TimToady | so whatever .deepmap is doing to preserve [], .duckmap should too | 17:52 | |
really, the only difference between deepmap and duckmap is whether it gives priority to the duckiness or to the flockiness | 17:53 | ||
well, I said that backwards, one way or the other | |||
deepmap first check flockiness, duckmap first checks duckiness | 17:54 | ||
*checks | |||
so if a flock of geese has a .fly method in order to fly in formation, $flock.duckmap will fly the flock, rather than flying each individual goose | 17:56 | ||
or a flock of ducks will quack in unison, or whatever | 17:57 | ||
dogbert17 | :-) | ||
dogbert17 finds himself in a quackmire | 17:58 | ||
18:02
kyclark joined
|
|||
mst | _o< _o< did somebody say ducks? >o_ >o_ | 18:03 | |
_o< _o< everybody loves ducks >o_ >o_ | |||
geekosaur | possibly better than a quaggamire | ||
18:04
itcharlie joined
18:07
poohman joined
|
|||
masak | duck! mashable.com/2016/09/26/giant-infla...k-glasgow/ | 18:09 | |
yoleaux | 13:46Z <RabidGravy> masak: I'm just fixing your github.com/tokuhirom/p6-HTTP-Serve.../issues/28 while I'm in the mood :) | ||
14:29Z <RabidGravy> masak: I closed that PR on HST on the grounds that it doesn't spew that error any more ;-) | |||
14:29Z <RabidGravy> masak: err, "issue" not "PR" | |||
masak | RabidGravy: oh hey -- thanks | ||
masak chuckles at his "and version * of HTTP::Server::Tiny" | |||
RabidGravy | tokuhirom made the grave mistake of giving me commit on that ;-) | 18:10 | |
masak | *evil cackle* | 18:11 | |
kyclark | panda says that "p6doc" is installed, but it's not found in my path. I get "The 'p6doc' command exists in these Perl 6 versions: moar-2015.12" How do I fix this? | ||
masak | RabidGravy: github.com/tokuhirom/p6-HTTP-Serve...9097086524 -- nice and small fix | ||
too bad about the text-based pattern match... ;) | |||
ugexe | kyclark: rakudobrew rehash | ||
kyclark | I tried that. Same error. | 18:12 | |
"Currently running moar-2016.09" | |||
hackedNODE | kyclark: do you have ~/.rakudobrew/moar-nom/install/share/perl6/site/bin in path? | ||
RabidGravy | yeah, I may track down and Exceptionify the source of that at some point tomorrow | ||
kyclark | $ echo $PATH | sed "s/:/^M/g" | grep rakudo | 18:13 | |
ugexe | you dont point your path to rakudobrew perl6 bin paths | ||
kyclark | "/Users/kyclark/.local/binw/moar-nom/install/share/perl6/site/bin" | ||
ugexe | that defeats the point of rakudobrew | ||
masak | RabidGravy: you're like a golden avocado. precious. | ||
ugexe | ~/.rakudobrew/bin should be at the start of your path | ||
hackedNODE | kyclark: and where is p6doc installed to? (find ...) | ||
masak | er, I mean ++RabidGravy :) | ||
kyclark | ./moar-2015.12/install/share/perl6/site/bin/p6doc | 18:14 | |
well, ~/.rakudobrew/... | |||
RabidGravy | :) | 18:15 | |
geekosaur | suppose there's always rakudobrew exec p6doc | ||
El_Che | RabidGravy: The author of Crust said at FOSDEM that it had trouble (blocking) with > 200 process concurrency. Doe HTTP-Server-Tiny have similar trouble? | 18:16 | |
ugexe | sounds like PATH is incorrect and you're invoking a module installer under a specific rakudo version instead of letting rakudobrew handle it | ||
RabidGravy | El_Che, Crust is typically a layer over HTTP::Server::Tiny so yes, probably ;-) | 18:17 | |
It may have improved with some of the concurrency stabilization work in the last six months | 18:18 | ||
my current interest in HST is switching the streaming server WIP I have to use it rather than the hacked up reinvention it uses now | 18:22 | ||
right lets remove these last samewiths from the yet to be released 'Sofa' | 18:23 | ||
El_Che | I have some questions from people using the built-in go http server (golang.org/pkg/net/http/) and were looking for a perl 6 lib | 18:24 | |
[ptc] | is testers.perl6.org still current? Or is modules.perl6.org the definitive reference for modules and their testing status? | 18:26 | |
just wondering... | |||
18:27
domidumont left
|
|||
awwaiid | I didn't even know there was a testers.perl6.org | 18:27 | |
kyclark | OK, I finally figured out my path problems. Finally I "p6doc Test" and get "No Pod found in Test" --- so, where can I find docs on Test? | 18:28 | |
Nothing here either: modules.perl6.org/ | |||
awwaiid | kyclark: docs.perl6.org/language/testing is what I've looked at | 18:29 | |
[ptc] | awwaiid: it looks very much like cpantesters | ||
however almost all of the modules are currently showing "N/A" for the testing status, so I was wondering if maybe it's not the one to look at anymore | |||
kyclark | Helpful! Thanks awwaiid | ||
awwaiid | [ptc]: I looked and don't see my module on there. dunno | 18:30 | |
18:30
cdg left
|
|||
[ptc] | awwaiid: I think it needs to be submitted, just like how test reports for cpantesters need to be explicitly submitted | 18:30 | |
18:34
labster left
18:40
rgrinberg left
18:41
acrussell left
18:44
Dunearhp left
|
|||
[Coke] | mst: ducksarethebest.com/ | 18:45 | |
18:46
acrussell joined
|
|||
[ptc] | ... except in cricikt | 18:46 | |
*cricket | |||
18:46
labster joined
|
|||
RabidGravy | okay, that's a WOW | 18:48 | |
avuserow | there is also (or used to be) smoke.perl6.org/report but it seems unused at this point... | ||
RabidGravy | my smoke test of all my modules is down to 11 minutes | ||
which is less than a quarter of the high mark | 18:49 | ||
geekosaur | "never pick up a duck in a dungeon" | ||
RabidGravy | and half from the last time | ||
so good work everybody :) | 18:51 | ||
18:51
setty1 joined
|
|||
RabidGravy | that's 57 modules BTW | 18:51 | |
[ptc] | avuserow: yes, I'd forgotten about smoke.perl6.org! | 18:52 | |
18:56
mohae joined
18:57
sjoshi joined,
sjoshi left
18:58
sjoshi joined
18:59
mohae_ left
19:00
BillSussman joined
19:01
AndyBotwin left
19:02
poohman left
19:04
sjoshi left
19:08
domidumont joined
19:12
ka joined
19:16
rgrinberg joined,
ka left
19:18
darutoko left
19:22
TEttinger joined
19:25
pygra1 joined
19:27
ocbtec left
|
|||
skids | m: my $v := array[uint8].new(0,1,2); dd (|$v); Buf[uint8].new(|$v[*]).say; Buf[uint8].new(|(0,1,2)).say; Buf[uint8].new(|$v).say | 19:28 | |
camelia | rakudo-moar 38ec2e: OUTPUT«slip(0, 1, 2)Buf[uint8]:0x<00 01 02>Buf[uint8]:0x<00 01 02>Type check failed in initializing element #0 to Buf[uint8]; expected uint8 but got Int (0) in any at gen/moar/m-Metamodel.nqp line 1752 in block <unit> at <tmp> line 1Actual…» | ||
19:34
pygra1 left
|
|||
hackedNODE | m: my \Perl = so 'gangsta'; for i { .roll, .floor for .reals } | 19:35 | |
camelia | ( no output ) | ||
hackedNODE | m: say q|my \Perl = so 'gangsta'; for i { .roll, .floor for .reals }|.subst: :g, /<-[\w\s]>+/, ''; | ||
camelia | rakudo-moar 38ec2e: OUTPUT«my Perl so gangsta for i roll floor for reals » | ||
hackedNODE | m: say q|my \Perl = so 'gangsta'; for i { .roll, .floor for .reals }|.words; | 19:36 | |
camelia | rakudo-moar 38ec2e: OUTPUT«(my \Perl = so 'gangsta'; for i { .roll, .floor for .reals })» | ||
hackedNODE | aw | ||
19:36
sufrostico left
|
|||
hackedNODE | m: class That's {}; That's.HOW, i.roll | 19:37 | |
camelia | ( no output ) | ||
hackedNODE | ^_^ | ||
19:37
domidumont left,
rindolf left
|
|||
hackedNODE | m: i .tan for Perl | 19:40 | |
camelia | ( no output ) | ||
avuserow | m: i .roll with class {} | 19:41 | |
camelia | ( no output ) | ||
hackedNODE | m: i, gather i.^can, die for Perl | 19:43 | |
camelia | ( no output ) | ||
19:52
perlawhirl joined
|
|||
skids | m: :2b or not :2b | 19:53 | |
camelia | rakudo-moar 38ec2e: OUTPUT«WARNINGS for <tmp>:Useless use of "not " in expression "not :2b" in sink context (line 1)» | ||
19:57
nadim left
20:02
cog__ joined
20:03
perlawhirl left,
cdg joined
20:11
itcharlie left
|
|||
andrzejku | hi | 20:21 | |
;) | |||
20:21
kaare_ left
20:25
optikalmouse left,
telex left
20:26
cog__ left,
telex joined
|
|||
TEttinger | m: say ٢³ | 20:27 | |
camelia | rakudo-moar 38ec2e: OUTPUT«8» | ||
andrzejku | TEttinger, do you know where can I find some Perl 6 friend? | 20:28 | |
TEttinger | I don't really use perl 6! | 20:29 | |
m: say ߃߂³ | |||
camelia | rakudo-moar 38ec2e: OUTPUT«32768» | ||
20:32
setty1 left
20:33
setty1 joined,
aindilis joined
20:37
edehont joined,
edehont left
20:41
nadim joined
20:42
cpage_ left
20:43
devmikey joined
20:52
lichtkind joined
|
|||
tony-o | [ptc]: modules.zef.pm has a listing of modules - testing results from actual people's systems are not yet but in the works | 20:54 | |
modules.zef.pm has travis pass/fail but no logs | |||
20:57
CIAvash left
|
|||
dalek | line-Perl5: 2f6ca76 | niner++ | / (2 files): Save 4 native calls on each function/method/coderef call Use an rw flag to communicate whether an error occured and only if it actually did, try to handle it. Saves 4 native calls (p5_err_sv, p5_type, p5_sv_utf8 and p5_sv_to_char_star) when no error occured (which is quite often). Saves ~ 16 % in the csv-ip5xs.pl benchmark. |
21:01 | |
21:03
wamba left
|
|||
jnthn | nine++ # nice! :) | 21:04 | |
21:04
acrussell left
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/09/26/...oar-tests/ | 21:06 | |
lichtkind | jnthn: greetings is the mail from your jnthn site still valifd? | 21:07 | |
21:07
skids left
|
|||
lichtkind | valid | 21:07 | |
21:08
dha left
21:09
pmurias left
|
|||
jnthn | lichtkind: Yes | 21:11 | |
21:11
BillSussman left
|
|||
jnthn | lichtkind: Are you planning to send me something, or did I miss something/should go hunt in my spam folder? :) | 21:11 | |
El_Che | lizmat: maybe for the next P6W: native linux packages of the monthly rakudo releases github.com/nxadm/rakudo-pkg/releases <-- it's probably only dogfood at the moment :) | 21:15 | |
nine_ | We're now down to 10 native calls per iteration of the benchmark (which calls 3 methods). | ||
(used to be 70 native calls not long ago) | 21:21 | ||
21:22
andrzejku left
21:24
robertle left
|
|||
lichtkind | jnthn: its basically a resent bu i got fresh information too | 21:27 | |
jnthn: its out | 21:32 | ||
21:36
canopus left,
sufrostico joined
21:42
canopus joined,
sufrostico left
21:43
bbkr joined
|
|||
jnthn | lichtkind: Moc dobře, that one arrived. :-) | 21:46 | |
Will reply shortly (or tomorrow :)) | 21:47 | ||
21:51
cpage_ joined
22:00
perlawhirl joined
22:02
rgrinberg left
22:04
Unavowed left
|
|||
stmuk_ | I think MoarVM/issues/410 affects linux | 22:05 | |
22:09
sufrostico joined
22:17
cpage_ left
22:20
RabidGravy left
22:21
cpage_ joined
22:24
Unavowed joined
|
|||
gfldex | m: sub f( | ( :$a) where $a.defined ) {}; f 42 | 22:24 | |
camelia | rakudo-moar 447d59: OUTPUT«Cannot call method 'defined' on a null object in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
gfldex | i | ||
i'm quite sure that is a bug but am not sure where | |||
m: sub f( | ( :$a) where :$a.defined ) {}; f 42 | |||
camelia | rakudo-moar 447d59: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in sub-signature in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
gfldex | m: sub f( | ( :$a) where :$a.defined ) {}; f :a(42) | ||
camelia | ( no output ) | ||
gfldex | m: sub f( | ( :$a) where $b.defined ) {}; f 42 | 22:25 | |
camelia | rakudo-moar 447d59: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$b' is not declaredat <tmp>:1------> 3sub f( | ( :$a) where 7⏏5$b.defined ) {}; f 42» | ||
SmokeMachine____ | do you guys know if is there any open perl6 job position? | 22:29 | |
22:29
bjz_ left
|
|||
SmokeMachine____ | *are | 22:29 | |
22:29
ShimmerFairy left
|
|||
gfldex | singular was the right pick, see news.perlfoundation.org/2016/09/jon...ent-g.html | 22:30 | |
22:30
firstdayonthejob left
|
|||
gfldex | and that open position is already taken :-> | 22:30 | |
stmuk_ | SmokeMachine____: plenty of open volunteer roles! | ||
22:31
Matias[m] joined
|
|||
SmokeMachine____ | stmuk_: I am studying to try to get those too... :) | 22:32 | |
22:34
ShimmerFairy joined
22:36
ShimmerFairy left
22:38
aries_liuxueyang joined
22:40
ShimmerFairy joined
22:41
Unavowed left,
ShimmerFairy left,
Unavowed joined
22:43
ab6tract left
22:57
skids joined
23:02
Unavowed left,
Unavowed joined
23:04
bjz joined
23:07
bjz left
23:16
mr-foobar left
23:21
BenGoldberg joined
23:22
cog__ joined
23:23
vytas left
23:24
cpage_ left
23:25
vytas joined
23:27
Unavowed left,
cpage_ joined,
adu joined
23:28
bjz joined,
cpage_ left
23:30
bjz left
23:32
Dunearhp joined,
cpage_ joined
23:33
Dunearhp left,
ptolemarch left
23:34
Unavowed joined
23:36
devmikey left
23:41
cpage_ left
23:42
bjz joined,
bjz left
23:47
cdg left
23:49
cog__ left,
stevieb left
23:55
sufrostico left
23:57
cpage_ joined
|