Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-01-07

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 mr_micawber Have a rational question now: How do I turn an Array of Lists into a flat Array.  .flat doesn't cut it.
00:01 ugexe .map(*.flat) or .map(*.flat).flat
00:01 leont .flatmap(*.flat) ?
00:01 avenj joined #perl6
00:01 avenj joined #perl6
00:02 leont m: [ ( 1, 2), (3, 4) ].map(*.flat).perl.say
00:02 camelia rakudo-moar 0fa13c: OUTPUT«((1, 2).Seq, (3, 4).Seq).Seq␤»
00:02 leont m: [ ( 1, 2), (3, 4) ].flatmap(*.flat).perl.say
00:02 camelia rakudo-moar 0fa13c: OUTPUT«(1, 2, 3, 4).Seq␤»
00:02 leont m: [ ( 1, 2), (3, 4) ].flatmap(*.flat).list.perl.say
00:02 camelia rakudo-moar 0fa13c: OUTPUT«(1, 2, 3, 4)␤»
00:03 mr_micawber Seems quite wordy ;-)  Back to hacking!
00:04 * leont tends to flatten things all the time, that may just be his style
00:04 AlexDaniel mr_micawber: https://rt.perl.org/Public/​Bug/Display.html?id=127121
00:04 AlexDaniel mr_micawber: may be relevant to your question
00:05 mr_micawber Studying...
00:06 bpetering rosettacode /%
00:06 bpetering * /^B/ half done
00:06 bpetering about half work, I'll fix the rest soon
00:06 vividsnow joined #perl6
00:07 Skarsnik good night #perl6
00:07 bpetering night!
00:10 mr_micawber left #perl6
00:13 xpen joined #perl6
00:17 grondilu Juerd: you tagged http://rosettacode.org/wiki/Arith​metic-geometric_mean/Calculate_Pi as broken but it works fine with me.
00:18 grondilu $ perl6 --version
00:18 felher_ joined #perl6
00:18 grondilu This is Rakudo version 2015.12-69-g3568c1e built on MoarVM version 2015.12
00:18 grondilu implementing Perl 6.c.
00:19 bpetering works fine for me too ("This is Rakudo version 2015.12 built on MoarVM version 2015.12
00:19 bpetering implementing Perl 6.c")
00:20 * grondilu pulls the very latest rakudo and compiles
00:21 flussence works on 2015.12-116-g0fa13c0e85ef too
00:23 joydo joined #perl6
00:24 llfourn joined #perl6
00:30 timotimo uh ... bwuh?
00:31 timotimo https://gist.github.com/timo/aba86c6375b4c1857839  -  why do i get a bunch of allocations regarding an X::Dynamic::NotFound every time the loop there runs?
00:32 bobh joined #perl6
00:32 timotimo it doesn't cause much of time usage, but why does it do that at all?
00:35 skids Some code is generating a soft Failure object and then handling it before it gets thrown.
00:35 bpetering huggable: life, the universe and everything
00:35 huggable bpetering, nothing found
00:36 dalek rakudo/nom: f6b956d | timotimo++ | src/core/HyperSeq.pm:
00:36 dalek rakudo/nom: remove debug output, see also RT #127190
00:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f6b956d3e4
00:36 skids Though odd that the X::AdHoc and the X::Dynamic::Notfound are both alloced -- I would expect a failure to only need one X::
00:36 itaipu joined #perl6
00:36 Mouq depends on when INITIALIZE_DYNAMIC gets called; that's the only thing that creates those, AFAICT
00:37 Juerd grondilu: It works fine here too. I probably just used the wrong tag. Thanks for letting me know.
00:38 timotimo skids: i think the X::AdHoc is there just to get a backtrace ...
00:40 timotimo oh
00:40 timotimo i think i know what that is
00:40 timotimo probably the code for filtering out repetitions in .gist
00:41 timotimo i wonder if there's some magic nqp:: op that can figure out if a dynamic variable "exists"
00:42 skids If Backtraces could be serialized (I tried they cannot) then one might be able to, when conditions merit it, create one static Failure object that just serves as a marker for a particular area of code, which would never need allocation of anything until it got thrown.  You don't always need a freshly created creation-time bt.
00:43 timotimo i ... don't think that'd work
00:43 timotimo the earlier parts of the bt are unlikely to match whatever earlier object you've built
00:44 Mouq nqp::isnull(nqp::getlexdyn(nqp::unbox_s(name))) ?
00:45 skids Yeah but sometimes you just want the first backtrace to give a line number somewhere near the right place to look, and it is otherwise useless (the second one is what matters).
00:46 skids Often the first bactrace is mostly redundant to the second one.
00:46 skids In general we could use some more flavors of Failure behavior.
00:46 Mouq m: use nqp; my $*foo = 1; { say nqp::isnull(nqp::getlexdyn('$*foo')) }
00:46 camelia rakudo-moar 0fa13c: OUTPUT«0␤»
00:46 Mouq m: use nqp; my $*foo = 1; { say nqp::isnull(nqp::getlexdyn('$*bar')) }
00:46 camelia rakudo-moar 0fa13c: OUTPUT«1␤»
00:47 lsm-desktop k/
00:47 timotimo cool
00:47 timotimo Mouq++
00:47 timotimo this is unlikely to be worthwhile, but i'll patch it in anyway :)
00:47 Hotkeys since we have List.flatmap can we get List.flatgrep?
00:47 Hotkeys :p
00:49 leont Why would that make sense?
00:49 Hotkeys it might not I'm just doing some golfing and it would save a character
00:49 Hotkeys :p
00:50 zwu joined #perl6
00:50 pjscott joined #perl6
00:50 leont Fair enough :-p
00:59 timotimo so anyway ... looking at the output for a few different classes, it seems like the BUILDALLPLAN costs only very, very little time all in all
01:00 timotimo er, i mean executing the BUILDALLPLAN via BUILDALL
01:00 timotimo before i measured i had been thinking about maybe implementing jumplists in the optimizer or inside spesh, as that'd trigger in the BUILDALL "interpreter"
01:03 timotimo hm, actually i put the start time measurement before the call to BUILDALLPLAN
01:03 timotimo i wonder if that changes things
01:04 Psyche^_ joined #perl6
01:06 pjscott joined #perl6
01:07 zwu Hi, what is signature binding. Please give me an example code, thanks. The code line in doc my (*@x) := foo(); # signature binding, but I didn't see the variable @x.
01:12 timotimo i don't understand
01:17 BenGoldberg joined #perl6
01:19 uruwi joined #perl6
01:20 Mouq zwu: 'my (...) := ...' is a lot like the calling function 'sub baz (...) {}; baz(...)', and you can use many of the same symbols. For example:
01:20 Mouq m: my (|c) := (1,2,3, :foo<bar>); say c
01:20 camelia rakudo-moar f6b956: OUTPUT«\(1, 2, 3, :foo("bar"))␤»
01:20 Mouq m: my (*@a, *%h) := (1,2,3, :foo<bar>); say @a; say %h
01:20 camelia rakudo-moar f6b956: OUTPUT«[1 2 3]␤foo => bar␤»
01:20 Mouq m: my ($a,:$foo,|) := (1,2,3, :foo<bar>); say $a; say $foo
01:20 camelia rakudo-moar f6b956: OUTPUT«1␤bar␤»
01:21 Mouq Does that address you question?
01:23 kaare_ joined #perl6
01:24 zwu yes, thanks Mouq. Finally understand the signature binding to each individual variables, is the * in the *@a here for the whatever?
01:25 Mouq Kinda :) http://doc.perl6.org/type/Signature#Slurpy_%28A.K.A._Variadic%29_Parameters
01:25 llfourn joined #perl6
01:28 zwu Great! Thanks!
01:28 zwu I love it!
01:31 zwu it is more flexible in the form of signature binding, and I prefer my (*@a, *%h) := (1,2,3, :foo<bar>) over my (@a,*%h) := ([1,2,3],:foo<bar>)
01:32 ykk_ joined #perl6
01:32 Juerd m: my @foo = ^3; @foo ,= 3; say @foo;
01:32 camelia rakudo-moar f6b956: OUTPUT«(\Array_65238112 = [Array_65238112 3])␤»
01:32 Juerd ,= was really neat pre-glr. Oh well.
01:34 Juerd Although someone might find a use for it anyway :)
01:34 zwu sorry, what is the ,= here
01:34 Juerd m: my $foo = 1; $foo ,= 2; say $foo;
01:34 camelia rakudo-moar f6b956: OUTPUT«(\List_57377656 = (List_57377656 2))␤»
01:35 yeahnoob joined #perl6
01:35 Juerd zwu: Oh, don't pay much attention to it. It's an operator like += but it isn't really useful :)
01:35 Juerd zwu: Perl 6 lets a lot of operators exist automatically, so if you define an infix operator ♥ you get ♥= for free.
01:35 Juerd zwu: Likewise, FOO ,= BAR means FOO = FOO , BAR
01:36 Juerd At some point in Perl 6 history, that worked like .append
01:36 kid51 joined #perl6
01:36 zwu thanks, I know how powerful the operators features!
01:38 Mouq m: sub infix:<♥> ($a,$b) { "$a loves $b" }; my $info = "Mouq"; $info ♥= $*PERL; say $info
01:38 camelia rakudo-moar f6b956: OUTPUT«Mouq loves Perl 6␤»
01:38 * Juerd still really loves .= and how that works out with type objects
01:38 Juerd Mouq: Nice example!
01:39 timotimo aye, .= is neato
01:40 Mouq . is an infix now, isn't it? So .= isn't as much of a hack anymore either
01:40 Mouq m: say "abcd" . comb
01:40 camelia rakudo-moar f6b956: OUTPUT«(a b c d)␤»
01:40 [MadcapJake] joined #perl6
01:40 Juerd m: sub infix:<♥> ($a,$b) { "$a loves $b" }; my &infix:<loves> := &infix:<♥>; my $info = "Juerd also"; $info loves= $*PERL; say $info;
01:40 camelia rakudo-moar f6b956: OUTPUT«Juerd also loves Perl 6␤»
01:40 Mouq Haha :)
01:40 Juerd Texas love.
01:40 [MadcapJake] lol
01:41 Juerd Mouq: . is an infix iff you use whitespace.
01:41 ugexe heh. so on the topic of windows invalid paths again... my $path = "foo:bar"; $path.IO.spurt("xxx"); say $path.IO.slurp.chars #`(3) say $path.IO.e #`(True) say $*CWD.dir[0].e #`(False) (also cmd.exe dir shows `foo` and Explorer shows `foo`)
01:41 Juerd Mouq: Whitespaceless . is still a specially parsed thing, with very tight precedence.
01:42 [MadcapJake] That was my first irc message seen inside Solus OS, I'm going to try and wire up some Solus packages for installing Rakudo and Panda
01:42 Mouq Juerd: right :)
01:42 ugexe so you can use invalid characters in file names just fine, except `.dir` doesnt handle them properly
01:42 Juerd Mouq: So I guess that while .= is no longer a hack, . can now rightfully be considered one... ;)
01:43 timotimo . ?
01:44 timotimo oh, i see
01:44 Mouq Push down in one place and it pops up in another vOv
01:46 Mouq ugexe: I'd file it :/
01:47 ugexe i think its more windows problem
01:52 timotimo Mouq: such is the life of the waterbed
01:53 zwu I know the powerful named parameter as adverb, most time it is using the bool variable. Can we just have a naming tag for that name parameter such as foo($a, Mu :$adverb), in which $adverb can be undefined but just for the purpose of method dispatch?
01:57 Juerd m: multi sub foo (:$bool where so *) { say "Yay" }; multi sub foo (:$bool) { say "Nay" }; foo(:bool); foo(); foo(:!bool); :foo(bool => 42);
01:57 camelia rakudo-moar f6b956: OUTPUT«WARNINGS for /tmp/2ZZSVBp4Jz:␤Useless use of ":foo(bool => 42)" in sink context (line 1)␤Yay␤Nay␤Nay␤»
01:57 Juerd Argh, a : too many.
01:57 Juerd m: multi sub foo (:$bool where so *) { say "Yay" }; multi sub foo (:$bool) { say "Nay" }; foo(:bool); foo(); foo(:!bool); foo(bool => 42);
01:57 camelia rakudo-moar f6b956: OUTPUT«Yay␤Nay␤Nay␤Yay␤»
01:57 timotimo for multiple dispatch, named parameters are only ever used for stalemate breaking, so you'll have to put the candidates in the right order in your source code
01:57 Juerd zwu: Something like that?
01:57 zwu given the multimethod dispatch, can we have similar generic template in c++, which instantiates to multiple methods/class from the template?
01:58 * Juerd doesn't know C++ well enough to answer that question
01:59 timotimo hm, we don't have multi roles, eh? that'd be weird.
02:01 timotimo but we do have parametric roles, and you can mix in at run time
02:01 zwu I think the :named parameter restriction used for the multiple dispatch maybe more powerful and flexible than C++ template functions,
02:03 Juerd If there's any language feature that C++ does better than Perl 6 something went wrong ;)
02:08 timotimo "speed"? ;)
02:08 timotimo the way c++ and java restrict subclasses method signatures can be useful
02:08 timotimo for static analysis and such
02:11 Juerd timotimo: Speed is not a language feature :)
02:12 Juerd And yes, restrictions can be useful, but it's hard to argue that it's better to not have features because it enables other features.
02:13 Juerd I think that in general, more expressive languages tend to be slower and harder to analyse.
02:14 xpen joined #perl6
02:16 Juerd m: sub foo (@bar[4]) { say @bar }; my @x[4] = ^3; say @x; say foo(@x);
02:16 camelia rakudo-moar f6b956: OUTPUT«5===SORRY!5=== Error while compiling /tmp/v7QDOVhL9c␤Variable '@bar' is not declared␤at /tmp/v7QDOVhL9c:1␤------> 3sub foo (@bar[4]) { say 7⏏5@bar }; my @x[4] = ^3; say @x; say foo(@␤»
02:17 timotimo hm, shapes in argument lists are not parsed, eh?
02:17 Juerd The same code compiles in my local rakudo
02:17 Juerd This was not the bug I was looking for...
02:19 timotimo it's sad that there's still more than one bug in rakudo
02:19 Juerd Huh? It stopped working after I restarted the repl.
02:19 Juerd That's not fair :(
02:19 Juerd > sub foo(@bar[4]) { say @bar }
02:19 Juerd sub foo (@bar[4] where { ... }) { #`(Sub|106348200) ... }
02:20 Juerd But when I try it again it fails exactly like camelia did.
02:20 Juerd Oh, I already had an outer @bar
02:20 Juerd So it allows the signature but doesn't declare @bar...
02:21 Juerd m: sub foo (@bar[4]) { say "can haz bar" }; my @x[4]; foo(@x);
02:21 camelia rakudo-moar f6b956: OUTPUT«can haz bar␤»
02:21 Juerd m: sub foo (@bar[4]) { say "can haz bar" }; my @x[3]; foo(@x);
02:21 camelia rakudo-moar f6b956: OUTPUT«Constraint type check failed for parameter '@bar[4]'␤  in sub foo at /tmp/SkM7ctyXC7 line 1␤  in block <unit> at /tmp/SkM7ctyXC7 line 1␤␤»
02:21 Juerd The type check works though
02:22 Juerd Although I'm not certain that it does the right thing, because a 3-element array will fit perfectly in a 4-element one.
02:27 llfourn joined #perl6
02:30 Juerd Rakudobugged as #127195
02:33 colomon joined #perl6
02:45 pjscott joined #perl6
02:45 awwaiid Well I have no idea how to get "use CSV:from<Ruby>" to work, but I did a proof-of-concept with something like "ruby_require 'csv'"
02:45 awwaiid https://gist.github.com/aw​waiid/6751d2897f63054c82ab
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
02:47 hoelzro and then call that registration method I mentioned earlier
02:47 awwaiid hoelzro: all cool, I'll try that
02:47 hoelzro (disclaimer, I haven't tried this!)
02:47 iml_ joined #perl6
02:48 [Coke] anyone else having trouble loading RC? lots of 404 resources.
02:49 timotimo may have to set $p6ml to be Mu perhaps
02:49 awwaiid I also want the user to list what they want imported, something like: use csv:from<Ruby> <CSV> # because the name of the class and the name of the include file aren't predictable enough. Though eventually I guess I might be able to have it introspect what classes get created upon require on the ruby side.
02:49 hoelzro timotimo: good call
02:50 timotimo that's often what happens when you get something from nqp space
02:50 timotimo though i think the module loader is now implemented in pure perl6?
02:50 timotimo wasn't that one of the big things in the last refactor?
02:50 colomon joined #perl6
02:50 hoelzro is it? I have no idea =/
02:51 awwaiid hoelzro: wait is that a colon after your use statement?
02:51 hoelzro er, sorry
02:51 hoelzro typo
02:51 hoelzro use nqp;
02:51 awwaiid ok great. was going to have to add another colon to my collection
02:52 timotimo you hate colons, i take it?
02:52 geekosaur colons in perl 6 are starting to seem like dots in haskell: too many different meanings >.>
02:53 hoelzro how many different meanings do they have in Perl 6?
02:53 hoelzro I can think of two off the top of my head
02:53 hoelzro (namespace separator and invocant marker)
02:53 hoelzro er, labels
02:53 hoelzro that's 3
02:53 hoelzro adverbs
02:53 hoelzro 4
02:54 hoelzro adverbial pair forms...4½
02:54 timotimo marking named parameters
02:54 hoelzro hmm
02:54 timotimo in the signature, i mean
02:54 hoelzro I kinda lump that under adverbial pair forms, but true
02:56 awwaiid prefix for signature literal
02:56 timotimo and for object hashes
02:56 hoelzro ah, true
02:56 hoelzro damn, that's a lot
02:56 awwaiid colon pairs count as a few since :foo -> :foo<True> but looks different
02:56 timotimo in type smileys
02:56 hoelzro timotimo: that's an adverb, right?
02:57 timotimo hm, you could perhaps call it that
02:57 awwaiid probably a type adverb; as we use this over and over they'll probably feel more like adverbs instead of different :)
02:58 awwaiid we should try to get all the usages onto one line
02:58 awwaiid did you get the one off of map: ?
02:58 hoelzro awwaiid: invocant marker
02:59 awwaiid ah. did you get the backwards method call then?
02:59 hoelzro which is that?
02:59 TimToady no, that one is more like Haskell's $
02:59 awwaiid method(obj: args...)
03:00 hoelzro awwaiid: you mean like method foo($self: *@args) ?
03:00 awwaiid TimToady: I definitely see why you said everyone wants the colon :)
03:00 TimToady all of these kinda fit in the category of "here's one thing that corresponds to the following things"
03:00 awwaiid hoelzro: yes
03:00 hoelzro awwaiid: I would also call that invocant marker
03:01 TimToady that one is invocant marker, yes
03:01 timotimo that's exactly the invocant marker :)
03:01 awwaiid oh. then what is the map: one
03:01 TimToady but $obj.map: 1,2,3 isn't
03:01 awwaiid right
03:01 timotimo oh hey TimToady, didn't hear you come in
03:01 TimToady that's really a precedence dropper like a listop
03:01 hoelzro ahhhh
03:01 [Coke] ~~
03:01 TimToady and like $ in Haskell
03:02 TimToady it's a left paren that doesn't require a right paren, as it were
03:02 timotimo did IO::ArgFiles disappear?
03:02 timotimo m: say IO::ArgFiles
03:02 camelia rakudo-moar f6b956: OUTPUT«Could not find symbol '&ArgFiles'␤  in block <unit> at /tmp/n_GRGvd8qj line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/n_GRGvd8qj line 1␤␤»
03:02 timotimo two tests in S02-types/which.t depend on IO::ArgFiles existing
03:03 timotimo i can't find it in the generated core setting at least
03:04 noganex joined #perl6
03:07 colomon What’s the current state of p6 JSON?
03:08 hoelzro timotimo: I think it was on the chopping block
03:10 timotimo colomon: i have a fast json implementatoin that's not full-featured, there's at least one nativecall-based one around some C parser and we still have JSON::Tiny
03:10 colomon and JSON::Pretty, I see.
03:10 Mouq There's also
03:10 Mouq m: my $a = 1; say $a.:<++>
03:10 camelia rakudo-moar f6b956: OUTPUT«2␤»
03:11 colomon and isn’t something built in?
03:11 Mouq And also the :, ::, and ::: forms in Regexes
03:11 colomon timotimo++
03:12 vendethiel joined #perl6
03:12 awwaiid Mouq: I kinda think of regexes as a separate embedded language
03:12 Mouq True enough :)
03:12 awwaiid Mouq: so what is the colon doing there, saying the next thing is quotes?
03:13 colomon actually, for my purposes at this very moment, I’d be perfectly happy with something which can pretty print a JSON structure.
03:13 awwaiid was the colon in infix:<+> listed already?
03:13 Mouq In the first? $a.:<++> is the same as ++$a
03:13 Mouq m: my $a = 1; say $a.:<!>
03:13 camelia rakudo-moar f6b956: OUTPUT«False␤»
03:14 Mouq That counts as namespace separator, I think
03:14 awwaiid hm. I think there is one like that for multi-dispatch full names too (or same thing)
03:15 xpen joined #perl6
03:15 hoelzro oh, longname? (I think that's what it's call)
03:15 awwaiid ya that
03:15 hoelzro like method term:sym<...>
03:15 pjscott joined #perl6
03:19 gfldex m: my @c = Nil, a => 42; dd Nil ∈ @c;
03:19 camelia rakudo-moar f6b956: OUTPUT«Bool::False␤»
03:19 gfldex :-|
03:20 nomenclature joined #perl6
03:22 timotimo is "Not In List" an element of every list?
03:22 awwaiid m: :hmm(5).key.what.say ; :hmm<5>.key.what.say
03:22 camelia rakudo-moar f6b956: OUTPUT«Method 'what' not found for invocant of class 'Str'␤  in block <unit> at /tmp/9ajCZdvM1v line 1␤␤»
03:23 timotimo has to be WHAT
03:23 awwaiid m: :hmm(5).key.WHAT.say ; :hmm<5>.key.WHAT.say
03:23 camelia rakudo-moar f6b956: OUTPUT«(Str)␤(Str)␤»
03:23 awwaiid I expected the first to be Int
03:23 timotimo um, why would the key be Int? when the key is "hmm"?
03:23 awwaiid er
03:23 awwaiid oops
03:24 awwaiid m: :hmm(5).value.WHAT.say ; :hmm<5>.value.WHAT.say
03:24 camelia rakudo-moar f6b956: OUTPUT«(Int)␤(IntStr)␤»
03:24 awwaiid nothing to see here :)
03:28 llfourn joined #perl6
03:33 awwaiid timotimo: no, I like the colons. That's why I collect them :)
03:33 timotimo hmm
03:35 awwaiid so for $a.:<++>, that is the prefix operator as-method invocation; are there other similar things for postfix etc?
03:36 gfldex m: sub f(){Nil}; my @c; @c[0] := f; dd @c; say so do for @c { .&infix:<===>(Nil) }
03:36 camelia rakudo-moar f6b956: OUTPUT«Array @c = [Nil]␤True␤»
03:36 gfldex m: sub f(){Nil}; my @c; @c[0] := f; dd @c; say Nil ∈ @c;
03:36 camelia rakudo-moar f6b956: OUTPUT«Array @c = [Nil]␤False␤»
03:37 timotimo well, i know an infix could be invoked on an object with .&[+], but how to do a postfix? i think just .++ would do it
03:37 gfldex m: sub f(){Nil}; my @c; @c[0] := f; dd @c; say so do for @c { .&postfix:<++> }
03:37 camelia rakudo-moar f6b956: OUTPUT«Array @c = [Nil]␤Cannot call postfix:<++>(Nil); none of these signatures match:␤    (Mu:D $a is rw)␤    (Mu:U $a is rw)␤    (Int:D $a is rw)␤    (int $a is rw)␤    (Bool:U $a is rw)␤    (Bool:D $a is rw)␤    (Num:D $a is rw)␤    (Num:U $a…»
03:37 gfldex m: sub f(){Nil}; my @c; @c[0] := 1,2; dd @c; say so do for @c { .&postfix:<++> }
03:37 camelia rakudo-moar f6b956: OUTPUT«Array @c = [(1, 2),]␤Cannot call postfix:<++>(List); none of these signatures match:␤    (Mu:D $a is rw)␤    (Mu:U $a is rw)␤    (Int:D $a is rw)␤    (int $a is rw)␤    (Bool:U $a is rw)␤    (Bool:D $a is rw)␤    (Num:D $a is rw)␤    (Num…»
03:38 Mouq awwaiid: just $a.++
03:38 Mouq :P
03:38 gfldex m: sub f(){Nil}; my @c; @c] = 1,2; dd @c; say so do for @c { .&postfix:<++> }
03:38 camelia rakudo-moar f6b956: OUTPUT«5===SORRY!5=== Error while compiling /tmp/C659bJbQyL␤Unexpected closing bracket␤at /tmp/C659bJbQyL:1␤------> 3sub f(){Nil}; my @c; @c7⏏5] = 1,2; dd @c; say so do for @c { .&pos␤»
03:38 gfldex m: sub f(){Nil}; my @c; @c = 1,2; dd @c; say so do for @c { .&postfix:<++> }
03:38 camelia rakudo-moar f6b956: OUTPUT«Array @c = [1, 2]␤True␤»
03:38 Mouq That works too :)
03:38 gfldex m: sub f(){Nil}; my @c; @c[0] := f; dd @c; say Nil ∈ @c;
03:38 camelia rakudo-moar f6b956: OUTPUT«Array @c = [Nil]␤False␤»
03:38 gfldex that should work too
03:39 gfldex only sub infix:<<"∈">>($a, $b --> Bool)
03:39 gfldex but it wont with that signature
03:39 awwaiid oh! := is another colon. good one.
03:39 Mouq ::=
03:39 awwaiid ::=?
03:39 gfldex compile time binding
03:40 Mouq bind-read-only
03:43 Mouq Colon isn't one of those hypothetical twigils is it?
03:44 hoelzro =:=
03:44 hoelzro dammit, you're right Mouq
03:44 gfldex https://doc.perl6.org/langua​ge/variables#The_%3A_Twigil
03:44 hoelzro $:k
03:44 Mouq Oh, not even hypothetical, that's right
03:50 awwaiid good one
03:51 awwaiid https://gist.github.com/aw​waiid/268cf5a3517a87806897 is a collection (though I got distracted with the fun of writing out lots of colon-pairs)
03:52 geekosaur perl 6 colonoscopy?
03:56 awwaiid Golfing this down to one line is going to be tough
03:56 * awwaiid goes to bed instead
03:57 hoelzro night awwaiid
03:57 Juerd Argh, why is reading code with one-letter variables so hard, and why do people continue to use them?
03:57 Juerd I was thinking maybe it would be worth looking into why stringification of integers was so slow. Python stringifies its integers very fast.
03:58 Juerd So I dived into libtommath's mp_toradix_n and into Python's long_to_decimal_string.
03:58 lucs joined #perl6
03:59 Juerd Only to find that I can't really read that code because of the combination of really dense code (single letter variables) and my lack of math skills.
04:00 Juerd I can definitely follow what's going on with *str... But a, i, j, p, aa, z, t, d, w, and q are isn't quite so obvious.
04:01 Juerd They probably make more sense to people who already roughly know what the code does.
04:02 awwaiid Unfortunately deep-math is one of the places that I tend to forgive that ... because the long name of the variables would be like first-number, second-number, first-fudge-factor, second-fudge-factor. Though already I've contradicted myself because fudge-factor would be better than a delta-triange
04:03 Juerd I'm giving up anyway.
04:03 Juerd I don't know enough to fix this.
04:06 Juerd What I did find is that Python has a special and optimized case for base 10 numbers, whereas libtommath uses the generic case for base 10 stringification
04:06 gfldex m: my @c; @c := 1,Nil,2; dd @c; say so Nil === any(@c);
04:06 camelia rakudo-moar f6b956: OUTPUT«(1, Nil, 2)␤True␤»
04:08 MadcapJake joined #perl6
04:12 Mouq Juerd++ regardless :) even reading good code sucks
04:13 dalek doc: 9582910 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Nil.pod:
04:13 dalek doc: doc binding to Nil and test against Nil
04:13 dalek doc: review: https://github.com/perl6/doc/commit/9582910980
04:13 dalek doc: b25cfbd | (Wenzel P. P. Peppmeyer)++ | / (4 files):
04:13 dalek doc: Merge remote-tracking branch 'upstream/master'
04:13 dalek doc: review: https://github.com/perl6/doc/commit/b25cfbd527
04:13 dalek doc: 258f79b | (Wenzel P. P. Peppmeyer)++ | doc/Type/Nil.pod:
04:13 dalek doc: Merge pull request #323 from gfldex/master
04:13 dalek doc:
04:13 dalek doc: doc binding to Nil and test against Nil
04:13 dalek doc: review: https://github.com/perl6/doc/commit/258f79bd90
04:15 colomon joined #perl6
04:16 xpen joined #perl6
04:24 itaipu joined #perl6
04:29 llfourn joined #perl6
04:33 yurivish What does the ~ mean in headers => $<header>.map({ ~.<header-name> => ~.<header-value> })?
04:34 TimToady coerce to string
04:34 yurivish oh, right. It confused me because it looked like it was the object on which the method was being invoked.
04:35 yurivish is the code there something more-or-less like ~($_).<header-name>?
04:35 yurivish I mean ~($_.<header-name>)
04:38 TimToady yes, that's what it means
04:38 yurivish thanks.
04:38 molaf joined #perl6
04:42 nige1 joined #perl6
04:43 inokenty joined #perl6
04:44 itaipu joined #perl6
04:56 xpen joined #perl6
04:57 xpen joined #perl6
05:09 n0tjack joined #perl6
05:20 woodruffw joined #perl6
05:21 jeek joined #perl6
05:23 pjscott joined #perl6
05:27 jeek joined #perl6
05:32 alber joined #perl6
05:34 avenj joined #perl6
05:34 avenj joined #perl6
05:36 alber Greetings! Could someone advise please what the simplest way to read a web page in perl6? I tried to use 'LWP::Simple', but the line 'my $page = get('http://example.com')' causes an error 'get() is not a method of Str'.
05:39 Cabanossi joined #perl6
05:40 alber qualifying the name solved the problem
05:41 alber ...although all examples used the unqualified name
05:43 TimToady m: my $x = get('foo')
05:43 camelia rakudo-moar f6b956: OUTPUT«Method 'get' not found for invocant of class 'Str'␤  in block <unit> at /tmp/XWGKt0qxQT line 1␤␤»
05:43 TimToady I'd say that 'get' was not properly imported, somehow
05:43 TimToady so it tried to use CORE::get instead, which just delegates to method get
05:59 jeek joined #perl6
06:12 dalek doc: a7e0056 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
06:12 dalek doc: doc Hash subscript adverbs
06:12 dalek doc: review: https://github.com/perl6/doc/commit/a7e0056da0
06:12 dalek doc: d2b00f6 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
06:12 dalek doc: Merge pull request #324 from gfldex/master
06:12 dalek doc:
06:12 dalek doc: doc Hash subscript adverbs
06:12 dalek doc: review: https://github.com/perl6/doc/commit/d2b00f6b14
06:14 pjscott joined #perl6
06:20 pjscott joined #perl6
06:21 gfldex LWP-Simple doesn't export any methods
06:30 cognominal joined #perl6
06:31 CIAvash joined #perl6
06:41 jeek joined #perl6
06:42 ugexe seems strange to use :ver<> in your depends fields at the moment when there is no way to find a specific version past the most recent available on github. as soon as one is updated your module will break until every single one is updated
06:45 ugexe gfldex: get is a method/routine on IO::ArgFiles (if thats what you were referring to)
06:45 ugexe m: say get
06:45 camelia rakudo-moar f6b956: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
06:45 gfldex i was not and the fellow who got problems with that is gone already
06:48 FROGGS Mouq: my Archive::Tar port is surely not idiomatic... problem is that I dont understand the code :o(
06:53 colomon_ joined #perl6
07:02 domidumont joined #perl6
07:06 domidumont joined #perl6
07:08 AlexDaniel joined #perl6
07:10 n0tjack joined #perl6
07:10 jack_rabbit joined #perl6
07:16 yeahnoob joined #perl6
07:19 dalek ecosystem: 496b15f | (Sam Morrison)++ | META.list:
07:19 dalek ecosystem: Add AWS::Pricing to ecosystem
07:19 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/496b15f2f4
07:19 dalek ecosystem: 9dea55b | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list:
07:19 dalek ecosystem: Merge pull request #115 from scmorrison/master
07:19 dalek ecosystem:
07:19 dalek ecosystem: Add AWS::Pricing to ecosystem
07:19 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/9dea55b3e2
07:24 _nadim joined #perl6
07:24 FROGGS joined #perl6
07:28 nine .tell tony-o the one and only reason why I don't want to read the log is because it's a huge waste of time to read through thousands of lines of chatter when you already know what you want to tell me. If you have useful input, please just give it.
07:28 yoleaux nine: I'll pass your message to tony-o.
07:28 nine .tell tony-o nothing would make me happier than someone coming up with a good plan where we don't have to recompile modules for every user.
07:28 yoleaux nine: I'll pass your message to tony-o.
07:30 nine .tell awwaiid CompUnit::Repository::Perl5 (from core) is the only living example. https://github.com/niner/CompUnit-Repository-Panda is an example for adding such a repo at runtime.
07:30 yoleaux nine: I'll pass your message to awwaiid.
07:37 firstdayonthejob joined #perl6
07:43 [Tux] csv-ip5xs        50000    18.313    18.201
07:43 [Tux] test             50000    23.715    23.603
07:43 [Tux] test-t           50000    12.841    12.729
07:43 [Tux] csv-parser       50000    50.587    50.475
07:47 Tonik joined #perl6
07:54 zakharyas joined #perl6
07:55 lizmat timotimo: yes, I've removed IO::ArgFiles
07:55 lizmat and I removed the only test for it in WHICH.t
08:03 yeahnoob_ joined #perl6
08:05 lizmat .tell timotimo I've removed IO::ArgFiles and its only test (WHICH.t) if you think we should have a deprecation cycle, I could do that
08:05 yoleaux lizmat: I'll pass your message to timotimo.
08:09 yeahnoob joined #perl6
08:10 nine Good morning lizmat!
08:10 lizmat nine o/
08:10 nine Do you happen to know anything about tony-o's rejected precomp work?
08:10 lizmat I'm afraid not
08:11 lizmat I can't recall anyway, but that may just be another effect of burnout
08:13 lizmat :-(
08:14 nine The irclog doesn't seem to know anything either
08:14 FROGGS I don't know either fwiw
08:15 nige1 joined #perl6
08:15 darutoko joined #perl6
08:17 nine There are no pull requests by him either.
08:19 nine So surprise: I did his work anyway and ended up empty handed. Just hot air.
08:36 bubba joined #perl6
08:39 abraxxa joined #perl6
08:47 stmuk_ if I have a script (rather than a module) I suppose the most easy way to take advantage of precomp is just to refactor most of the code into a module?
08:48 dakkar joined #perl6
08:49 lizmat stmuk_: atm, yes
08:55 rindolf joined #perl6
09:02 Amnez777 joined #perl6
09:11 jkramer Can I use rakudobrew to build from git or just releases?
09:13 abraxxa joined #perl6
09:15 xfix joined #perl6
09:16 nine stmuk_: that's not only good for precomp but also for testability :)
09:16 nine jkramer: AFAIK also from git nom (which is our master branch)
09:17 jkramer nine: Any idea how? Should there be a special entry in list-available or something?
09:18 nine jkramer: I've never used rakudobrew myself. If it's not documented, maybe look at the source code. It's quite easy to read
09:21 itaipu joined #perl6
09:24 jast rakudobrew --help seems to indicate that you can
09:26 dalek rakudo/nom: 5b9d5eb | lizmat++ | src/core/Rakudo/Internals.pm:
09:26 dalek rakudo/nom: initialize-sprintf-handler doesn't return anything
09:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b9d5eb040
09:26 jkramer jast: Where exactly? I'm probably blind but I can't see anything about git/nom.
09:28 jast rakudobrew build jvm|pre-glr|moar|all [tag|branch|sha-1] [--configure-opts=]
09:28 jast AFAICS that mean syou can use any tag/branch/commit ID from git
09:29 dalek rakudo/nom: fdd431f | lizmat++ | src/ (4 files):
09:29 dalek rakudo/nom: Make RAKUDO_MODULE_DEBUG show times in msecs
09:29 dalek rakudo/nom:
09:29 dalek rakudo/nom: And only the difference between this and the previous step.  Getting
09:29 dalek rakudo/nom: Perl6/Moduleloader.nqp to participate in that program, turned out to
09:29 dalek rakudo/nom: be something of a bridge too far: there is no setting loaded at that
09:29 dalek rakudo/nom: point, and the sprintf handler is also not initialized yet.  So we
09:29 dalek rakudo/nom: don't show timings for loading the setting anymore.
09:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fdd431fc52
09:29 jkramer Ha, seems I was indeed blind. Thanks jast
09:31 jkramer Yup, 'build moar nom' seems to work.
09:32 lizmat afk for a few hours&
09:34 krunen joined #perl6
09:34 _nadim .seen masak
09:34 yoleaux I saw masak 6 Jan 2016 22:58Z in #perl6: <masak> 'night, #perl6
09:36 * masak is here
09:36 masak antenoon, #perl6
09:36 masak _nadim: yo
09:37 RabidGravy joined #perl6
09:38 uruwi joined #perl6
09:42 RabidGravy morning!
09:44 foodoo joined #perl6
09:45 foodoo Hi, I have heard, that you can create a perl 5 block within a perl 6 program. What is the syntax for this? (Google did not give me any helpful results)
09:46 masak foodoo: it's not on by default
09:47 masak I think that was in a branch or something
09:47 DrForr foodoo: Use Inline::Perl5.
09:47 yoleaux 6 Jan 2016 16:09Z <ilmari> DrForr: Readline has a bunch of native functions with Int parameter/return types, which NativeCall now complains about
09:47 masak m: my $_ = "OH HAI"; { use v5; say }
09:47 camelia rakudo-moar 5b9d5e: OUTPUT«===SORRY!===␤Could not find Perl5 in:␤    /home/camelia/.perl6/2015.12-118-g5b9d5eb␤    /home/camelia/rakudo-m-inst-2/share/perl6/site␤    /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-2/share/perl6␤    CompUn…»
09:48 DrForr .tell ilmari noted re: Readline, will unbreak.
09:48 yoleaux DrForr: I'll pass your message to ilmari.
09:48 leont joined #perl6
09:51 gregf_ joined #perl6
09:55 DrForr El_Che: Yes, 40 minutes for grammar, I'll be rewriting as well.
09:56 nine foodoo: please have a look at https://github.com/niner/Inline-Perl5
09:57 bpmedley joined #perl6
09:58 FROGGS foodoo: it was possible with an external module called v5, but that is currently not in a usable shape... instead if you want to access Perl 5 modules, use Inline::Perl5 as suggested
09:58 foodoo Thanks for the explanations :)
10:01 bpmedley joined #perl6
10:01 pdcawley joined #perl6
10:03 schnuppi joined #perl6
10:04 gregf_ joined #perl6
10:06 bpmedley joined #perl6
10:09 pjscott joined #perl6
10:10 raiph joined #perl6
10:28 scoopio joined #perl6
10:30 DrForr Okay, nativecall question - IIRC 'int' in C is a floating type, just "at least 16 bits" yet the docs are saying to use int32.
10:32 vividsnow joined #perl6
10:33 RabidGravy I did a quick survey the other day and found  C ints to be 32 bit, I think you'd have to find a 16 bit platform to have a 16 bit int
10:34 nine I start to think that instead of outlawing int as NativeCall type, we should actually map it to the platform's C int.
10:34 RabidGravy but the perl "int"  seems to be a native sized long which does vary between various systems
10:35 RabidGravy nine, yeah perhaps
10:35 arnsholt The size of a Perl 6 in depends on the platform
10:35 RabidGravy yeah, that's the point
10:36 nine arnsholt: yes, but you can't use that currently for NativeCall
10:36 arnsholt The correct way is to have type whose size is explicitly defined to be "whatever the size of C's int is on this platform"
10:37 DrForr I'd agree with arnsholt, if only because 'int32' could cause a problem when moving to a 64-bit CPU. Or eventually when we go to 128-bit :)
10:38 arnsholt Especially since making what you want work would involve weird contortions to the P6int REPR that basically amount to letting you ask an integer type "are you the `int` type?"
10:38 DrForr I'll use 'int32' for the moment...
10:41 RabidGravy and you can do something like "constant Nint =  $*KERNEL.bits == 64 ?? int64 !! int32" if you need to
10:46 DrForr Feels a little hackish, but I'll accept it.
10:49 RabidGravy in my NC meanderings I've only found one place where a C library explicitly used a different storage size depending on the CPU bits
10:50 arnsholt Anything that uses size_t is word-size dependent
10:53 RabidGravy yes
10:53 nine Perl 5's IV is depending on the CPU bits _and_ compilation settings
10:55 arnsholt Even better! =)
10:56 nine "easy" solution: sub p5_size_of_iv() returns size_t { ... } BEGIN native(&p5_size_of_iv); BEGIN my constant IV = p5_size_of_iv() == 8 ?? int64 !! int32;
10:56 iH2O joined #perl6
10:56 nine With size_t p5_size_of_iv() { return IVSIZE; }
10:57 RabidGravy now I can't find the ctype trait, but I think that does actually take account of the native size
10:58 RabidGravy can't find where it is defined that is
10:59 bpmedley joined #perl6
11:00 wamba joined #perl6
11:00 FROGGS nine: problem with Perl 6's int is that it can very well be 128bits on a future platform
11:01 RabidGravy yeah it uses Perl6/Metamodel/NativeHOW.nqp which presumably has the size compiled in
11:03 nine FROGGS: look at my commit message :) https://github.com/niner/Inline-Perl5/commi​t/a3f7a290374510b7c2833da883aae97ee1739aae
11:03 FROGGS nine++ # :o)
11:05 rindolf joined #perl6
11:05 nine A larger issue is Perl 5's NV type which may be a num80. We don't have support for that in NativeCall.
11:06 arnsholt We'll cross that bridge when we get to it
11:06 arnsholt On any platform though, or just some?
11:07 FROGGS isnt that a IEEE float?
11:08 arnsholt No, pretty sure it isn't
11:08 FROGGS hmmm, I thought I had read about that
11:08 arnsholt x86 uses IEEE, and floats are power-of 2 sized
11:08 arnsholt IEEE floats are super-general thoug, so could be a variant of IEEE floats though
11:10 nine num80 is a long double
11:10 RabidGravy you can explicitly set the native size of a type, though that may not deal with marshalling issues
11:10 nine I think you need to compile perl with -Dusemorebits to get that
11:10 jkramer I keep seeing "use v6;" in code samples everywhere. What does this actually do in a perl 6 program?
11:10 nine or -Duselongdouble
11:11 arnsholt RabidGravy: You're still dependent on the REPR knowing how to deal with that size; and the num REPR doesn't know about 80 bit floats
11:11 nine jkramer: it's mostly to give a useful error message when the program is accidentally run with perl instead of perl6
11:11 jkramer Ah ok
11:11 n0tjack joined #perl6
11:13 arnsholt nine: On x86 presumably? long double is 16 bytes on my machine
11:13 RabidGravy though,   "use v6.c;" will stop running on an older v6 too, and for the futurists "use v6.e" won't run at all
11:15 nine arnsholt: yes. I'm curious. What machine are you on?
11:15 arnsholt x64
11:16 arnsholt Linux x64, to be specific
11:17 nine arnsholt: there it's usually 80 bit precision stored in 12 or 16 bytes. Except for MSVC which uses double for long double. And lots of other exceptions. A tough read: https://en.wikipedia.org/wiki/Long_double
11:18 dalek rakudo/nom: 0e7102d | lizmat++ | src/Perl6/World.nqp:
11:18 dalek rakudo/nom: Also let the world know when imports are done
11:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e7102dffe
11:18 arnsholt Ah, that makes sense I guess. Just use two machine words and throw away the excess bits
11:19 * FROGGS throws in http://www.perlmonks.org/bare/?node_id=587486
11:24 xpen joined #perl6
11:24 dalek Inline-Perl5: 05196de | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
11:24 dalek Inline-Perl5: Don't assume a storage size for 80 bit long double
11:24 dalek Inline-Perl5:
11:24 dalek Inline-Perl5: Those 80 bits of precision are usually stored in 12 or 16 bytes. So we
11:24 dalek Inline-Perl5: no longer assume anything. We know we support only 4 or 8 bytes. For
11:24 dalek Inline-Perl5: everything else, error out.
11:24 dalek Inline-Perl5:
11:24 dalek Inline-Perl5: Thanks to arnsholt++ for pointing this out!
11:24 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/05196de55a
11:26 RabidGravy as a normal consumer can you even get computers that run a normal operating system that is other than 32 or 64 bits ?
11:26 dalek rakudo/nom: 8f7cfde | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
11:26 dalek rakudo/nom: Only fetch dependencies once
11:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8f7cfde662
11:26 lizmat RabidGravy: I guess of your wallet is big enough :-)
11:27 nine RabidGravy: the answer to that will change over time :)
11:27 RabidGravy :)
11:27 nine lizmat: nice catch!
11:28 lizmat hmmm... I should probably just should have deleted the first line
11:29 espadrine_ joined #perl6
11:29 lizmat nine: is this not really debug info ?  say "$id $src" if $*W and $*W.is_precompilation_mode;
11:29 nine no no no, that's essential!
11:30 lizmat ok  :-)
11:30 nine It's the way we communicate the ids and source locations of dependencies back up to the dependant for writing into the .deps file
11:30 lizmat okidoki
11:31 nine And I'm really surprised that using stdout for that has not been more of a problem
11:32 FROGGS ohh, it is when you actually add debug statements :o)
11:32 nine Well STDERR is for debugging ;)
11:33 FROGGS yeah, potentially
11:33 dalek rakudo/nom: 1a6f7fe | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
11:33 dalek rakudo/nom: Other way of fetch deps only once
11:33 dalek rakudo/nom:
11:33 dalek rakudo/nom: And some clarification why there's a "say" in there, nine++
11:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1a6f7fe206
11:36 bpmedley joined #perl6
11:43 AlexDaniel joined #perl6
11:47 AlexDaniel I don't really see 128-bit systems coming…
11:49 moritz new idea: CPU registers for UUID
11:49 moritz *UUIDs
11:50 lizmat FROGGS nine moritz is there a reason why we haven't bumped Moar / NQP recently?
11:50 lizmat especially because of the GC / string concat bug fixed in Moar the other day
11:50 moritz lizmat: I think we had the idea floating around that we do a point release of rakudo to support a star release
11:50 lizmat I wonder if that would fix the problem described in http://blogs.perl.org/users/sterling_hanenka​mp/2016/01/async-aborts-and-p6sgi.html#_logi​n_UoOhK1H84O69kiErTecdYxEL5JLt2p6N4wNWStrD
11:51 JimmyZ I think NQP have bumped?
11:51 moritz lizmat: though iirc the current decision is to do the 2016.01 star instead
11:51 lizmat yeah, but not with that MoarVM fix, afaik
11:51 lizmat moritz: fwiw, that would make more sense to me
11:51 lizmat now, will 2016.01 be 6.c ?
11:52 moritz lizmat: it will support 6.c
11:52 nine Considering yesterday's progress, I'd say yes
11:52 moritz lizmat: and I expect several more rakudo and R* releases support 6.c
11:53 lizmat Q: does 6.c support Date.new($year,$month,$day) ?
11:53 nine Isn't the plan for all of them to support 6.c?
11:53 lizmat A: it depends   :-(
11:54 lizmat 2016.01 does, 2015.12 doesn't
11:54 lizmat it's questions like this that I worry about
11:54 masak lizmat: I thought Date.new($year, $month, $day) was ancient
11:56 lizmat masak: if it was, it's back
11:57 lizmat as an alternate interface, of course, Date.new(:$year,:$month,:$day) still works
11:57 moritz didn't the positional form always work?
11:58 FROGGS lizmat: IMO if the introduction of positionals to Date.new does not break 6.c (the roast branch), then rakudo 2016.01 still complies to 6.c
11:58 lizmat the only positiional form was Date.new(Instant)
11:58 lizmat FROGGS: it doesn't
11:58 moritz aye, a new feature doesn't break backwards compatiblity with the language
11:59 nine FROGGS: how does that look from a user's perspective? As a user I'd like to use that feature. What do I have to do?
11:59 lizmat but how can you make sure that using that new feature will work?
11:59 lizmat use v6.c will not be sufficient
11:59 lizmat if you happen to be running 2015.12
11:59 FROGGS sure, use v6.c cannot be enough because that feature is unspecced
11:59 * awwaiid hops up and down
11:59 yoleaux 07:30Z <nine> awwaiid: CompUnit::Repository::Perl5 (from core) is the only living example. https://github.com/niner/CompUnit-Repository-Panda is an example for adding such a repo at runtime.
11:59 awwaiid Thanks nine! :)
12:00 FROGGS and if you wanna use unspecced stuff you might wanna use rakudo:ver(v2016.01) or something like that
12:01 lizmat someone might not be aware it is unspecced
12:02 _nadim joined #perl6
12:02 lizmat especially if it *is* in the doc
12:02 lizmat so I probably should move it from the doc until we hit 6.d ?
12:03 nine use v6.d.PREVIEW;
12:03 nine As suggested by jnthn++
12:04 lizmat so what lives in there ?
12:04 lizmat anything I put in nom?
12:05 nine anything you put in nom's src/core.d/
12:05 lizmat so I we will have nom *and* core.d ?
12:06 lizmat so I would have to commit things twice, or maintain two branches ?
12:06 lizmat sorry if I seem belligerent, but I really don't have a mental image of how we're supposed to develop forward
12:07 nine No. Language versions have nothing at all to do with branches. We have the src/core/ directory for 6.c code and src/core.d/ for 6.d code that uses augment and supersede and other trickery to change 6.c into 6.d
12:07 lizmat without creating a massive backward maintenance hell on everybody, users and developers alike
12:07 nine Look at the example in the language_versions branch. The 6.d code simply deletes IO::ArgFiles, as that language version will no longer contain it
12:08 Skarsnik joined #perl6
12:09 lizmat I could argue that wouldn't even be needed, as there weren't really any tests for IO::ArgFiles in roast (apart for checking of existence)
12:09 lizmat so IO::ArgFiles was never part of 6.c
12:09 nine The existence check is enough to preclude removing it from 6.c
12:10 lizmat so removing the tai-utc class *is* alright then, as there wasn't even a check for its existence in roast
12:11 nine We could maybe make an exception for this, as we're new to this whole backwards compatibility train. But we could also just use it as an exercise. We'll have to figure out how to do this anyway.
12:11 moritz couldn't we just say  constant IO::ArgFiles = WhateverTheNewNameIs and be happy?
12:12 lizmat I'm just very afraid that saying "that feature wasn't tested., so it can be removed / altered at will" is a meme that will not make module developers and toolchain people very happy
12:12 nine It really depends on how much we like our users ;)
12:12 lizmat moritz: we could, the new API is a superset of the old
12:12 lizmat moritz: well, apart from .new
12:12 lizmat :-(
12:12 lizmat but yeah, we could do a deprecation cycle for it
12:12 nine lizmat: exactly! That's why I'd err on the side of keeping it. Especially if keeping it doesn't cost all that much because we have a good back compat architecture
12:13 lizmat I don't worry too much about a deprecation cycle
12:13 lizmat I *do* worry about newish / untested features that accumulate between now and 6.d
12:14 lizmat for which module developers cannot test, other than trying them out with a CATCH block
12:14 nine Well before we cut a 6.d we'll have time to remove features again or write tests.
12:14 lizmat so, saying "use v6.c" in your module, doesn't really mean anything
12:14 nine There's still use v6.d.PREVIEW for getting at those features.
12:15 nine What about an extensions thing like in OpenGL? New OpenGL versions are usually just bundles of extensions that have been available individually before.
12:15 lizmat well, in the case of Date.new($year,$mointh,$day), it would mean maintaining that in two places
12:15 nine Why two places?
12:16 lizmat once in nom, once in 6.d
12:16 lizmat the thing is, that the positional form of Date.new is basically an internal method for building all of the other .new candidates (well, not all, but some)
12:19 nine nom is completely tangential to 6.d
12:21 lizmat ok, now you lost me again  :-(
12:21 lizmat I think I'll refrain from doing anything that changes / adds any interface or whatever, until at least 2016.01 comes out
12:22 nine The plan is to ship one source tree that implements all versions of Perl 6. What is currently in our src/core/ directory will be more or less frozen and implements 6.c. Future versions are overlays in directories like src/core.d/.
12:22 lizmat I'm just afraid I'll be making the work of the release manager more and more difficult
12:22 nine So you have your 6.c version of Date.pm in src/core/Date.pm and a file called src/core.d/Date.pm that contains augment class Date { method new($year, $month, $day) { ... }; }
12:24 lizmat so, maintain Date.pm at two places  :-(
12:24 nine multiple places even, because there will be one directory for every language version
12:26 nine At $work we develop online tax calculation software. As tax laws change on an almost yearly basis, we have a calculations class for every calculator for the first year we introduced it. Every following year is a class derived from the previous year's class.
12:26 Skarsnik how that work when you want to remove stuff?
12:26 Skarsnik And hello
12:26 nine That's essentially the same architecture as jnthn suggested. Yes it sucks that you no longer get easy access to a consolidated view of the code running in the latest version, but of all the architectures we've tried, it's still the least sucky.
12:27 nine Skarsnik: https://github.com/rakudo/rakudo/commit/​c528f0e5a1f2815eedfd3d70c19ed22612f83ee5
12:28 masak lizmat: oh, I meant "ancient" as in, "has been in there for a long time"
12:28 Skarsnik That look like a nightmare to follow what is in what x)
12:29 arnsholt Skarsnik: At a guess, a stub implementation that throws an exception signalling that this is no longer relevant in this version of the tax laws, or nothing at all
12:29 lizmat masak: ah, ok, no it wasn't
12:29 lichtkind joined #perl6
12:29 arnsholt Removing code is probably not going to happen frequently (if at all) since the software probably needs to be capable of rerunning the calculations for previous years
12:29 cognominal joined #perl6
12:30 nine arnsholt: yep
12:30 arnsholt I've a friend who works with similar stuff (laws changing) and he's explained how they never remove things, since things that occured under the old laws are still in the DB, so the software needs to handle it correctly
12:31 Skarsnik Did you look at how other major project handle this kind of stuff? I am just curious, I am not here to critic what you probably already spend lot of time thinking x)
12:31 lizmat I feel we need to make 6.c just equivalent to 2015.12
12:31 nine Nice detail: so far we've only once removed support for previous years. It was the years that made HTTP requests to the PHP code in which the tax calculation was implemented originally ;)
12:31 lizmat some bug fixes may be ported to that version
12:32 lizmat but anyting else is just 6.d.DEVELOP
12:32 lizmat keeping stuff in different dirs is just going to be a nightmare to maintain
12:32 cognominal hi *, can someone explain why macros are necessary at the end of https://github.com/jnthn/oo-monito​rs/blob/master/lib/OO/Monitors.pm
12:32 lizmat and so it will probably not be maintained correctly
12:33 lizmat I think we should learn from p5 here
12:33 nine lizmat: but how will a 6.d rakudo be able to run 6.c code?
12:34 lizmat nine: you mean as in: I'm running my code in 6.c, and load a module that says 'use 6.c' ?
12:34 nine Perl 5's code probably contains a lot of version or feature checks by now. That's not gonna make code better maintainable
12:34 Skarsnik how gcc does this kind of stuff
12:34 lizmat s:1st/c/d/
12:34 nine lizmat: yes
12:35 lizmat well, I don't see how we can *not* add a lot of version checks with this setup either ?
12:35 nine lizmat: or just run a script that was written for 6.c with a rakudo implementing 6.f
12:35 nine A script that may use IO::ArgFiles for example
12:37 Skarsnik sound like a bad idea to want to keep old version (like v-2) running with the same code
12:37 nine Skarsnik: why?
12:38 nine We promise backwards compatibility. Why should keeping us to our promise be a bad idea?
12:39 lizmat no, that's not a bad idea
12:39 lizmat we shouljd
12:39 lizmat somehow  :-)
12:39 Skarsnik maybe a buggy code make a feature work, maybe keeping a old stuff compatible make changing/adding something impossible. I am not even sure how that work with npq and moar/jvm behind
12:39 awwaiid nine: this is working great; do you know if I can get any extra params, like foo in: use csv:from<Ruby> :import<CSV>
12:40 _nadim joined #perl6
12:40 Skarsnik I mean, you know a lot much more of how everything work, so I am maybe wrong x)
12:43 nine awwaiid: https://github.com/niner/Inline-Perl5/​blob/master/lib/Inline/Perl5.pm6#L842
12:43 nine awwaiid: the whole method require will be of great interest to you I guess
12:45 nine Skarsnik: no matter what architecture we use, maintaining backwards compatibility will be a large part of "torturing the implementors" going forward. There's no way around that. You can only make it a bit less tedious.
12:46 nine Skarsnik: yet still we have to try. Because it's really one of the best features a language can have.
12:49 llfourn cognominal: they are used in the examples, do you mean why are they not subs?
12:49 awwaiid nine: thanks. I already took some code from here :) . I think this bit makes sense, I hadn't understood it's purpose before
12:50 cognominal lifourn, yes, why macros not subs?
12:50 nine awwaiid: you mean it's not totally self explanatory? *g* I'm not really surprised ;)
12:50 avenj joined #perl6
12:50 avenj joined #perl6
12:50 lichtkind i have a question regarding travis
12:51 llfourn cognominal: I don't know :(
12:52 llfourn cognominal: maybe try changing it to sub and see if everyhing is fine
12:52 cognominal probably masak or jnthn could answer
12:52 llfourn probably :)
12:53 nine I somehow cannot imaging jnthn reaching for macros when plain subs would do
12:54 llfourn cognominal: maybe so get-cond-attr is run at compile time?
12:54 llfourn ie faster
12:54 lizmat afaik, that was one of the reasons macros were not completely removed before 6.c, instead of being made "experimental'
12:54 virtualsue joined #perl6
12:54 llfourn cognominal: notice how the arguments to the macros are known at compile time
12:55 RabidGravy Skarsnik, do you by any chance have access to a machine with the portmidi devel package installed?  If so point gptrixie at the portmidi.h - it seems that it uses PortMidiStream all over the place, but never defines it
12:55 llfourn so essentially it's inlining the condition
12:55 cognominal yea probably
12:55 cognominal got Useless use of constant value not-empty in sink context (lines 15, 20)
12:55 cognominal Useless use of constant value not-full in sink context (lines 12, 22)
12:56 cognominal runing t/condition.t
12:56 dalek rakudo/nom: 8f173f2 | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
12:56 dalek rakudo/nom: Fewer $*RAKUDO_MODULE_DEBUG lookups please
12:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8f173f2fed
12:56 llfourn that looks like a Greak Sink Refactor regression that wasn't caight because noone uses marcros :\
12:56 loren joined #perl6
12:57 nine lizmat: I wonder, how costly are those $*RAKUDO_MODULE_DEBUG lookups?
12:57 loren Hi, everyone..
12:57 Herby_ joined #perl6
12:57 Skarsnik RabidGravy, let me have a look x)
12:57 lizmat nine: they're pretty costly
12:57 Herby_ Good morning, everyone!
12:58 Herby_ For lowly Windows users like myself, any word when a new rakudo MSI will be released?
12:58 cognominal lifourn,  got  "Can only use meet-condition in a monitor" when replacing macros by subs, so indeed the execution order matters.
12:59 wamba joined #perl6
12:59 RabidGravy Skarsnik, how I would typically express it would be "class PortMidiStream is repr('CPointer') { }" and then lose the indirection later on
12:59 RabidGravy but that would probably require a second pass
12:59 Skarsnik RabidGravy, it's a void type..
13:00 RabidGravy Skarsnik, yeah, quite a common thing in this kind of stuff
13:01 Skarsnik typedef void PortMidiStream;
13:01 RabidGravy yeah, but it's only every used as "PortMidiStream *"
13:02 lichtkind_ joined #perl6
13:02 Skarsnik It's not lost, it's just I keep typedef as is when they ref a fundamental type like int/void...
13:02 lizmat m: my $*FOO = 42; for ^100000 { my int $a = $*FOO }; printf "%d", 1000 * (now - INIT now)
13:02 camelia rakudo-moar 1a6f7f: OUTPUT«143»
13:02 lizmat m: my $*FOO = 42; my int $FOO = $*FOO; for ^100000 { my int $a = $FOO }; printf "%d", 1000 * (now - INIT now)
13:02 camelia rakudo-moar 1a6f7f: OUTPUT«40»
13:03 lizmat m: my $*FOO = 42; my int $FOO = $*FOO; for ^100000 { }; printf "%d", 1000 * (now - INIT now)
13:03 camelia rakudo-moar 1a6f7f: OUTPUT«31»
13:03 RabidGravy more typical might be "typdef (void *) Foo" for this type of thing
13:03 lizmat m: say (143 - 31) / (40 - 31)
13:03 camelia rakudo-moar 1a6f7f: OUTPUT«12.444444␤»
13:04 Skarsnik RabidGravy, I have to go, sadly
13:04 lizmat now, it gets worse with dynamic lookups if there are more stack frames between the scope in which the dynamic is defined and the executing code
13:04 RabidGravy no worries
13:04 lizmat nine: so this is more like a best case scenario
13:04 FROGGS RabidGravy: what do you mean by "lose the indirection later on" ?
13:05 FROGGS RabidGravy: you can also do: constant PortMidiStream = Pointer
13:06 nine lizmat: many thanks for this clarification!
13:06 brrt joined #perl6
13:06 cognominal lifourn, now it makes sense. So much magic going around :)  jnthn++
13:06 lizmat nine: do you think we will have a different value for $*PERL inside a "use v6.x" where x is different from the base ?
13:07 RabidGravy FROGGS, Something like that,   currently it is doing "Pointer[PortMidiStream]" in the type constraints,  but if I was writing it by hand I would see that and do "class PortMidiStream is repr(CPointer) ..." and lose the Pointer[]
13:07 loren Regex match are segment fault .. someone help help ..
13:08 RabidGravy which has the additional benefit of being able to add methods to it
13:08 lizmat nine: I wonder if we shouldn't cache $*PERL.compiler.id as well
13:08 nine lizmat: oh yes, definitely. Otherwise we'd get "Perl 6 (6.c)" forever as use v6.x will be the only way to request post-6.c semantics
13:08 lizmat ok, so we can't cache that per process  :-)
13:09 nine lizmat: to be honest, I didn't think much about performance of the Repository code, since as soon as something involves I/O, CPU time should only a small part of the cost anyway
13:09 lizmat yeah, I know
13:09 brrt jnthn++ for the stomp class posts
13:09 nine So it's even more shameful, that we read those .deps files twice. And completely uselessly as well :)
13:09 RabidGravy loren, well it shouldn't segfault but without code it's difficult to help
13:09 lizmat but at least not having to repeatedly lookup $*RAKUDO_MODULE_DEBUG seems to have shaved off about 5 msecs from loading Text::CSV
13:10 RabidGravy brrt, yeah they're very useful
13:10 nine nice!
13:10 loren RabidGravy, http://www.oschina.net/code/snippet_2531803_53446
13:10 abraxxa jnthn++ # indeed! very helpful to follow the thoughts
13:10 lizmat nine: about 2% worth
13:10 loren i shared the code
13:10 loren and data
13:12 rindolf joined #perl6
13:13 perlawhirl joined #perl6
13:14 * lizmat is suddenly remembering the first Perl Whirl in 2000
13:14 lizmat .oO( how long will it be until we have a Perl 6 Whirl :-)
13:14 brrt what was the perl whirl?
13:15 RabidGravy I can only just remember that far back
13:15 kaare_ joined #perl6
13:15 TimToady a cruise to alaska
13:15 lizmat http://www.perl.com/pub/2000/06/perlwhirl.html   # brrt
13:15 loren RabidGravy, is that link available ?
13:15 brrt a conference on a boat :-o
13:16 loren I use this script convert some data to another type
13:16 pochi joined #perl6
13:16 RabidGravy loren, it is, but for me at least it is no good as I can only see part of the code and I don't understand Japanese
13:16 lizmat http://www.wired.com/2000/10/cruise/  # less formal description
13:17 loren RabidGravy, that's chinese
13:17 RabidGravy see! I don't even know what language it is :)
13:17 lizmat sadly, Bill Harp passed away a few years ago :-(
13:18 dsp- joined #perl6
13:18 nine Woah
13:18 lizmat nine?
13:18 stmuk__ joined #perl6
13:18 RabidGravy he just played Black Sabbath at 78?
13:18 loren OK, still thank you willing to help
13:19 perlawhirl lizmat: i also don't know what the Perl Whirl was... despite my nick
13:19 lizmat perlawhirl o/
13:19 lizmat :)
13:19 Herby_ I'm in a windows environment.  Is there a simple way to benchmark two programs, to compare how long they take to run?
13:19 * stmuk__ wonders if November works in January
13:19 lnrdo joined #perl6
13:19 nine lizmat: a Perl Whirl might even get me to go to the US :)
13:19 dalek rakudo/nom: 564f0d6 | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
13:19 dalek rakudo/nom: Only make an .IO once
13:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/564f0d6b54
13:20 Peter_R joined #perl6
13:20 loren RabidGravy, i think there must be some problem with regex match, Perl 5 can process that file .
13:24 DrForr . o ( tiltaperl? )
13:24 DrForr Also, readline change pushed. There are other issues open, I'll look at those tonight.
13:26 perlawhirl hi perlers... is there a 'stat' like method i can use to get file permissions (not just IO's .r or .rwx stuff)
13:27 nine Herby_: looks like there aren't any Windows users present besides you. I'd guess that an .msi will become available somewhere in the next two weeks.
13:27 RabidGravy loren, okay I guessed my way to showing the whole code,  what value of "$line" causes it to segfault?
13:28 lizmat perlawhirl: .r / .w / .rw / .rwx / .rx etc.
13:28 Herby_ nine, thanks for the reply
13:28 lizmat ah, perlawhirl : didn't read throgh
13:28 loren RabidGravy, you haven't run it ?
13:28 perlawhirl lizmat: yeah, so for example, on a nix like os, i would also like permissions for group and other
13:29 RabidGravy loren, no
13:29 loren RabidGravy, the 295th line
13:29 lizmat perlawhirl: that would have to live in module space, and maybe it already does
13:30 lizmat perlawhirl: as that isn't really portable between e.g. Win and Unix
13:31 RabidGravy perlawhirl, the mode is available via nqp, I think I have use it somewhere
13:31 perlawhirl hmm.. the file test operators look to be calling nqp::stat
13:32 perlawhirl i haven't used any nqp yet, so if you have an example of it in use that would help... otherwise i will plod along until i figure it out
13:32 xpen joined #perl6
13:32 loren RabidGravy, that file is a input pinyin table
13:32 lizmat I'm  not sure using nqp::stat will give you more than what is already exposed in P6
13:32 loren input method
13:33 RabidGravy lizmat, yeah there is a mode define that isn't exposed, 'ang on I'll find it
13:34 perlawhirl RabidGravy: ta
13:36 masak perlawhirl: you're not on a cruise to Alaska, are you? :)
13:37 perlawhirl erm... nope... I'm staying in Australia
13:39 RabidGravy perlawhirl:
13:39 RabidGravy m: use nqp; say nqp::stat($*PROGRAM.Str,  nqp::const::STAT_PLATFORM_MODE);
13:39 camelia rakudo-moar 564f0d: OUTPUT«33188␤»
13:39 RabidGravy picking the bits out of the returned number is left as an exercise to the reader
13:40 perlawhirl yup!
13:40 perlawhirl no prob . that works a treat
13:40 lizmat RabidGravy: so what is that ?
13:40 perlawhirl i believe i just convert to octal and good to go
13:40 RabidGravy you may need to mask off some of the bits to the left but yeah
13:41 * lizmat refers from exposing that in P6  :-)
13:41 masak perlawhirl: I hear in Australia, the Perl whirls spin the opposite way :P
13:41 perlawhirl yup, works a treat... using arbitrary base converter i also wrote in perl6...
13:41 perlawhirl 33188 in Base-8 is 100644
13:41 RabidGravy lizmat, the same as whatever you'd get back from the C stat in the mode member
13:42 lizmat m: say 33188.base(8)
13:42 camelia rakudo-moar 564f0d: OUTPUT«100644␤»
13:42 perlawhirl masak: Hah! though i believe that was debunked
13:42 lizmat perlawhirl: converter built into the language :-)
13:42 perlawhirl coreralis... or whatever it's called
13:42 hoelzro o/ #perl6
13:42 lizmat hoelzro o/
13:42 RabidGravy lizmat, I suggested exposing it a while back but people were concerned about cross platform matters
13:42 hoelzro o/ lizmat
13:42 perlawhirl lizmat: converting to base 60 isn't :D
13:43 lizmat ah, no
13:43 DrForr Coriolis force is much weaker than even air currents at the scale of the toilet bowl :)
13:43 masak perlawhirl: yes, it's not actually true :)
13:43 perlawhirl as far as stat and cross-platform woes... it could live in a ::Unix namespace
13:43 masak perlawhirl: you need big things like tyfoons and stuff for it to be feasible
13:43 masak typhoons*
13:44 hoelzro does anyone here know what name Sterling Hanenkamp goes by here? I have some insights into his abort() issue
13:45 lizmat hoelzro: zostay ?
13:45 Zoffix joined #perl6
13:46 perlawhirl masak: i don't think we get many typhoons down this way. just friendly spiders
13:48 pjscott joined #perl6
13:51 dalek perl6-roast-data: 36915bc | coke++ | / (6 files):
13:51 dalek perl6-roast-data: today (automated commit)
13:51 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/36915bc506
13:52 masak perlawhirl: :)
13:52 hoelzro lizmat: logs seem to agree, thanks!
13:52 masak perlawhirl: what's your impression on Perl 6 so far? anything missing or undocumented? any snags you've hit?
13:53 masak perlawhirl: "we value your feedback!" :D
13:53 hoelzro .tell zostay could you ping me when you have a chance? I have ideas about your abort() woes
13:53 yoleaux hoelzro: I'll pass your message to zostay.
13:53 dalek doc/MARTIMM-patch-4: f249036 | (Marcel Timmerman)++ | doc/Type/Str.pod:
13:53 dalek doc/MARTIMM-patch-4: Add method info to trans
13:53 dalek doc/MARTIMM-patch-4:
13:53 dalek doc/MARTIMM-patch-4: Added trans method declarations and changed typo. Also added new-lines for readability in source.
13:53 dalek doc/MARTIMM-patch-4: review: https://github.com/perl6/doc/commit/f24903647c
13:54 perlawhirl ummmmmm... just playing around. i pop my head in here every so often when i get stuck
13:54 perlawhirl i'd like better examples in the docs, and hope to write some myself... cloned the docs repo just today actually
13:55 RabidGravy I'm actually surprised that the mode thing hasn't been done in the ecosystem
13:55 perlawhirl but that was selfishly for my own purposes... the long train commute without internet. but gives me a reason to maybe contribute
13:55 perlawhirl yes... the mode thing i think should be exposed. golang is also very careful about cross-os compat (ie, can't natively look up group names) but it still has a low-level stat exposed
13:56 moritz we all love good examples
13:56 dalek rakudo/nom: 4662be6 | lizmat++ | src/core/Rakudo/Internals.pm:
13:56 dalek rakudo/nom: Add an internal KEY_SPACE_VALUE method
13:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4662be6a3a
13:56 dalek rakudo/nom: 988a783 | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
13:56 dalek rakudo/nom: Use new KEY_SPACE_VALUE primitive
13:56 dalek rakudo/nom:
13:56 dalek rakudo/nom: Using .words for this is bad for performance in 2 ways: it creates
13:56 dalek rakudo/nom: an iterator for generating the words (when we know there's only 2),
13:56 dalek rakudo/nom: and it uses another iterator to assign to the two variables.
13:56 dalek rakudo/nom:
13:56 dalek rakudo/nom: Shaves off another few milliseconds from loading e.g. Text::CSV
13:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/988a7834fd
13:56 perlawhirl for the record... go is in general pretty horible to use compared to perls. but when i need something compilable, it's easier for me than c
13:57 perlawhirl i am not a real programmer... i'm a network admin that likes to automate stuff... mostly perl5
13:57 masak perlawhirl++
13:57 masak perlawhirl: what would make Perl 6 more attractive to you as a network admin?
13:57 RabidGravy if you right software then you're a real programmer
13:57 RabidGravy er write
13:58 regreg joined #perl6
13:58 llfourn RabidGravy: spelling is not necessery for a real programmar dw
13:58 perlawhirl Rabid: yes i know you're right... but a lot of stuff flies way over my head sometimes.
13:59 _nadim joined #perl6
13:59 perlawhirl masak: i really need a telnet and ssh module... right now using Net::Telnet (and IO::Pty with the telnet module) to do SSH, (because it means i can use the same methods for either protocol)
13:59 RabidGravy llfourn, I think my fingers go faster than my brain sometimes
13:59 llfourn RabidGravy: at least something goes fast :)
13:59 perlawhirl i am thinking of rewriting my script using inline::perl5
14:00 RabidGravy I thought someone had made an SSH module, but I haven't looked
14:00 perlawhirl i'm waiting for performance improvements... but that wont stop me writing in perl6 so when things get faster i can hit the ground running
14:01 lizmat nine: have you considered using epoch values everywhere instead of Instants?
14:01 lizmat I mean, are we worried about an extra compilation when in a leap-second ?
14:02 llfourn lizmat: what what if I make a change and try and re-run in less than a second?
14:02 lizmat well, that's already an issue
14:02 llfourn oh.
14:02 lizmat because the OS's only supply modified info with second granularity
14:03 loren Everyone want high performance ... but stable is important than performance
14:03 lizmat it's only that on a leap-second (which we may not be getting in the foreseeable future anyway)
14:03 lizmat llfourn: that window would be two seconds
14:04 llfourn lizmat: why?
14:04 lizmat because during a leap-second, epoch doesn't advance
14:04 llfourn oh right leap seconds yeah...
14:04 lizmat so epoch stays the same for 2 seconds, rather than 1
14:04 llfourn but why can't instant be more than 1 second accurate?
14:04 lizmat Instant *is*
14:04 llfourn oh you mean for file last modified gotcha
14:04 lizmat but the underlying OS doesn't provide that info
14:05 dalek doc: f249036 | (Marcel Timmerman)++ | doc/Type/Str.pod:
14:05 dalek doc: Add method info to trans
14:05 dalek doc:
14:05 dalek doc: Added trans method declarations and changed typo. Also added new-lines for readability in source.
14:05 dalek doc: review: https://github.com/perl6/doc/commit/f24903647c
14:05 perlawhirl loren: that's why i'm waiting, not asking :D
14:05 dalek doc: e54be5a | (Zoffix Znet)++ | doc/Type/Str.pod:
14:05 dalek doc: Merge pull request #325 from perl6/MARTIMM-patch-4
14:05 lizmat so why using Instants when we're only getting epoch granularity anyway
14:05 dalek doc:
14:05 dalek doc: Add method info to trans (Closes #319)
14:05 dalek doc: review: https://github.com/perl6/doc/commit/e54be5ad29
14:05 perlawhirl can someone remind me how to iterate a Seq without consuming it
14:05 llfourn perlawhirl: you can .cache
14:05 llfourn but I have never needed to do this in practice
14:05 llfourn (or assign to an array ofc)
14:06 lizmat perlawhirl: yeah, it should probably never need to be done by users
14:06 nine lizmat: I just compare .modified as that appears to give me the mtime. Didn't think about anything else ;)
14:06 perlawhirl yep can assign to an array... i just forgot the method name
14:06 lizmat so if you see that, please let us know how you did that
14:06 lizmat nine: ok
14:06 ilmari lizmat: some OSes do, e.g. linux has st_atim.tv_nsec
14:06 yoleaux 09:48Z <DrForr> ilmari: noted re: Readline, will unbreak.
14:08 ilmari in perl5 Time::HiRes can override stat() with a version that exposes that
14:08 inokenty joined #perl6
14:09 ilmari and OSX has st_[acm]timespec
14:09 loren perlawhirl, I often use Rakudo, in order to find more problem ...
14:09 RabidGravy so I'm thinking in the first instance an IO::Path::Mode that augments IO::Path with a mode() method that returns some object
14:09 lizmat ilmari: well, fwiw, that's currently not exposed in nqp::stat  :-(
14:10 RabidGravy ilmari, yeah, linux supports a stuct timespec with nanoseconds there
14:10 ilmari lizmat: I may have to add that to moar/nqp then :)
14:10 lizmat ilmari: by all means  :-)
14:10 ilmari RabidGravy: there are apparently at least 5 different ways of doing it, judging by the code in Time::HiRes
14:11 llfourn is there a short way of doing $_ !=== Any, I find myself doing it ALL the time
14:11 RabidGravy lawks
14:11 llfourn I want to know whether any *information* has been provided in the variable
14:11 hahainternet so if i have a list like (1,2,*) and i use it in a hyper operator, the last value will repeat ad nauseum as expected, but if i try to do for example say $l[^10] it doesn't account for the whatever star, can i do so manually or is it restricted to hyper stuff?
14:11 llfourn obviously given $var { when Any { } } doesn't do what I want
14:12 nine Btw. I think the way to go about cross platform compat in a language is to provide abstractions wherever possible but expose native APIs when not. Because it should always be up to the user to decide if the code needs to be platform independent.
14:12 Juerd llfourn: (Any) is information too
14:12 ilmari RabidGravy: https://metacpan.org/source/RJBS/T​ime-HiRes-1.9728/HiRes.xs#L735-759
14:12 llfourn Juerd: explain that to me :)
14:13 lizmat llfourn: .DEFINITE ?
14:13 Juerd llfourn: Well, just like (Str) indicates that it is an undefined string, (Any) indicates that it is undefined but it could have been anything.
14:13 Juerd llfourn: Can you explain your use case? I don't understand why Any is different than, say, Str.
14:13 llfourn Juerd: right but in the normal swing of things Any is the *most* undefined thing
14:14 Juerd No, Mu is the Most Undefined :)
14:14 ilmari RabidGravy: libuv already supports st_atimespec and st_atim
14:14 llfourn Juerd: yes but you don't run into it
14:14 Juerd This is true.
14:14 Juerd llfourn: But in which use case are Str and Int useful information, where Any isn't?
14:15 Juerd llfourn: My gut says you're doing something unperlish, but that's just a gut feeling
14:15 [Coke] Regarding 6.d - 6.d isn't official yet; anything that is using 6.d at this point is defacto experimental, no?
14:15 llfourn Juerd: Any is useful information... I think that's the point.. but almost everything ~~ Any is true
14:16 lizmat ilmari: well, since we already expose Instants, you could use the current interface already
14:16 llfourn Juerd: Any tells me that no definite information has been provided
14:16 Juerd llfourn: What I'm wondering about is if your use case is generic enough to warrant a language feature, or if it's specific to something you're doing but that few other people would try...
14:16 RabidGravy is this in the context of sub routine?   In which case I'd be inclined to go for some multis
14:16 FROGGS [Coke]: v6.d will be official at the day it gets released...
14:16 llfourn Juerd: but if I want to see if that's the case ~~ Any doesn't work I have to do === Any
14:17 llfourn Juerd: ok I'll test of lizmat++'s suggestion of .DEFINITE and get back to you :)
14:17 Juerd If it's just you, you could just define a new operator.
14:17 lizmat llfourn: not sure what you wanted, though  :-)
14:17 FROGGS [Coke]: and all changes we make now have a chance to go into v6.d, but not necessarily have to
14:17 Juerd llfourn: Please provide use case examples. I think I understand what you mean, but not how and why you'd use it.
14:18 arnsholt llfourn: Is what you're trying to do check whether an optional argument was passed or not?
14:18 Juerd m: sub postfix:<?> { $^thing !=== Any }; my Str $foo; my Any $bar; say $foo?, $bar?;
14:18 camelia rakudo-moar 988a78: OUTPUT«TrueFalse␤»
14:18 ilmari lizmat: but nqp::stat only returns ints, though, so we'd need a new op or stat(2) the file twice :(
14:18 RabidGravy :)
14:19 lizmat but we could make it return nums, no ?
14:19 lizmat ilmari: or do you fear breakage in nqp ?
14:19 llfourn this is what it is: Lets say I have a given/when, if I want to know if it's Any:U I can just do when Any { ... }. But if I want to know if it's *not* Any:U I have to do $_ !=== Any
14:20 llfourn when Any:U that is
14:20 llfourn the latter seems harder than it should be
14:20 llfourn and i find myself doing it a lot
14:21 llfourn I would like to make a Type that is the negation of antoher type essentially
14:21 lizmat nine: any reason why that line is there?  https://github.com/rakudo/rakudo/blob/nom/src/​core/CompUnit/PrecompilationRepository.pm#L126
14:21 [Coke] Maybe we can make it explicitly experimental.
14:21 lizmat nine: seems it can be removed
14:21 moritz .oO( unwhen Any { ... } )
14:21 ilmari lizmat: that'll break e.g. the size of files over 2**53 bytes
14:21 llfourn moritz: exactly :)
14:22 pjscott joined #perl6
14:22 [Coke] "use v6.d :experimental" vs. "use v6.d"
14:22 RabidGravy llfourn, then maybe a subset
14:22 lizmat ilmari: only return nums on modified / created / etc ?
14:22 TimToady when none(Any) { ... }
14:22 loren Night ..everyone, BTW, If someone understand and interested in regex match problem, can look at this . *link* -> http://www.oschina.net/code/snippet_2531803_53446
14:22 llfourn RabidGravy: right what I am looking for is a way to auto create a quick negated subset
14:23 ilmari lizmat: can a single nqp op return different types depending on arguments?
14:23 FROGGS [Coke]: both statements do not make sense today
14:23 arnsholt TimToady to the rescue, as usual! =)
14:23 lizmat ilmari: good question, probably not  :-(
14:23 skids joined #perl6
14:23 llfourn m: when none(Any) { "win".say };
14:23 camelia rakudo-moar 988a78: ( no output )
14:23 nige1 joined #perl6
14:23 moritz IME, introducing a second op is easier
14:23 nine lizmat: it's used in https://github.com/rakudo/rakudo/blob/nom/src/​core/CompUnit/PrecompilationRepository.pm#L130
14:23 lizmat moritz ilmari : yeah, probably  :-)
14:23 ilmari we'd need a new l?stattime or similar
14:23 ilmari that returns num
14:24 llfourn m: $_ = "str"; when none(Any) { "win".say }
14:24 camelia rakudo-moar 988a78: ( no output )
14:24 llfourn it seems that doesn't work..
14:24 RabidGravy m: subset NotAnAny of Any where * ~~ none(Any);  my NotAnAny $f = Str;  my NotAnAny $g = Any
14:24 camelia rakudo-moar 988a78: OUTPUT«Type check failed in assignment to $f; expected NotAnAny but got Str␤  in block <unit> at /tmp/xeRX6v1coG line 1␤␤»
14:24 FROGGS ilmari: l?stat_n ?
14:24 llfourn none(Any:U)?
14:24 lizmat nine: yeah, but its already set at https://github.com/rakudo/rakudo/blob/nom/src/​core/CompUnit/PrecompilationRepository.pm#L84
14:24 RabidGravy or something like that
14:24 nine [Coke]: jnthn's suggestion was use v6.d.PREVIEW;
14:24 ilmari FROGGS: possibly, but it only makes sense for the time fields
14:24 llfourn m: $_ = "str"; when none(Any:U) { "win".say }
14:24 camelia rakudo-moar 988a78: OUTPUT«win␤»
14:24 llfourn m:  when none(Any:U) { "win".say }
14:24 camelia rakudo-moar 988a78: ( no output )
14:24 nine lizmat: true! It can go :)
14:24 ilmari nqp::const::STAT_*TIME
14:25 llfourn there!
14:25 lizmat oki
14:25 FROGGS ilmari: k, just wanted to mention our '_n' naming convention
14:25 llfourn TimToady++
14:25 nine lizmat++ # cleaning up my mess
14:25 yibing joined #perl6
14:25 moritz or maybe teach the existing op to return one more field
14:25 moritz and if that's added at the end, there's no problem
14:25 pjscott joined #perl6
14:26 ilmari moritz: the existing one just returns an int
14:26 ilmari if you want more than one stat field, you need to stat multiple times :(
14:26 sun joined #perl6
14:26 lizmat nine: it's not a mess!   it needs peer review, which I sadly wasn't able to give until now
14:26 sftf joined #perl6
14:26 moritz ilmari: you can retrieve a float from the OS, truncated it to an integer, ship it in the int field, and additionally untruncated in the new float field
14:27 RabidGravy yeah, I was wondering if there was scope to make a new op that returns a structure with all of them
14:27 ilmari whereas perl5 has the opposite problem, getting all the fields for stat requires multiple (slow) system calls on windows
14:28 TimToady .oO(it needs someone peering at it)
14:28 Zoffix I'm writing a module that lets you skip all tests in a test file based on env vars (taken from Lancaster Concensus as well as a couple more), installed modules, or installed C libs. If anyone wants to give feedback on my plan, especially the 'Method of Use' section, please do so :) https://github.com/zoffixznet/perl6-​Test-Is/blob/master/SPECIFICATION.md
14:30 dalek rakudo/nom: a2195ea | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
14:30 dalek rakudo/nom: Reduce number of $*PERL.compiler.id lookups
14:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a2195ea107
14:30 FROGGS Zoffix: OFFLINE_TESTING should be called ONLINE_TESTING or so, no?
14:30 ilmari moritz: maybe I don't understand now nqp ops work well enough, but won't that break compatibility if I change it from returning an int to a list of (int, num)?
14:31 FROGGS Zoffix: or I dont understand its use
14:31 Zoffix FROGGS, I figure there is a far larger subset of people who *do* want to run network tests, thus, they'll be run by default, unless the user (or its installation client) specifically specifies that network is not available
14:31 FROGGS Zoffix: and did you think about the name 'Test::When' ?
14:32 Zoffix FROGGS++ Test::When is a far better name
14:32 Zoffix I'll change it
14:33 lizmat nine: is there a reason why you make .IO objects inside the spurt ?  https://github.com/rakudo/rakudo/blob/nom/src/​core/CompUnit/PrecompilationRepository.pm#L137
14:33 nine Zoffix: are you sure about people wanting to run network tests? I generally avoid it as much as possible when installing foreign modules but would want to run them while developing
14:34 nine lizmat: probably just ignorance
14:34 FROGGS Zoffix: abuot offline/online: say I state "use Test::When <online>" in my tests, and you run them with OFFLINE_TESTING, shouldnt the tests be skipped?
14:34 moritz ilmari: iirc nqp::stat returns an array
14:34 lizmat nine: ok, so the path is already an absiolute path, right ?
14:34 ilmari moritz: no
14:34 moritz ilmari: then my information is outdated, and I should stop talking about it :-)
14:35 Zoffix FROGGS, yes, if you set OFFLINE_TESTING those will be skipped
14:35 ilmari moritz: https://github.com/perl6/nqp/blo​b/master/docs/ops.markdown#stat
14:35 FROGGS Zoffix: then the description of OFFLINE_TESTING is wrong
14:35 ilmari «Given a path and a code, return an int describing that path using the OS's stat() function.»
14:36 Zoffix FROGGS, is it? "if true, tests are being run in an environment with a restricted or unavailable network"
14:36 molaf joined #perl6
14:36 Zoffix FROGGS, thus, the tests with use Test::When <network>; are skipped, because the env var said network is unavailable
14:37 FROGGS Zoffix: okay, seems we have a different understanding of English :o)
14:37 Zoffix :|
14:37 nine lizmat: yes, it's absolute because it's based on the repository's $.prefix which is absolutified by repository-for-spec
14:37 FROGGS OFFLINE_TESTING does not make tests run, it potentially makes tests skipped
14:37 lizmat nine: cool, :-)
14:38 FROGGS so I think it is weird to state that it makes tests run under some circumstances
14:38 FROGGS Zoffix: and btw, that OFFLINE_TESTING is currently the only env var that skips tests
14:38 Zoffix FROGGS, I see the confusion, s/tests/test suite/;
14:38 FROGGS that might be okay, just wanna mention it
14:39 FROGGS ahh
14:39 Zoffix FROGGS, NONINTERACTIVE_TESTING skips <interactive> tests.
14:39 lichtkind_ FROGGS, your patiente was for a good cause istarted to actually write code :)
14:39 FROGGS Zoffix: so you explain where OFFLINE_TISTING might be useful without explaining what OFFLINE_TESTING does
14:39 Zoffix nine, I created a poll on twitter. Gonna see what the results are and then make the changes accordingly https://twitter.com/zoffix​/status/685108122227113984
14:39 FROGGS lichtkind_: nice :o)
14:40 Zoffix FROGGS, it's explained in the Method of Use section: https://github.com/zoffixznet/perl6-Test-Is/blob​/master/SPECIFICATION.md#enviromental-variables
14:40 ugexe joined #perl6
14:40 Zoffix Or at least, explained as much as NONINTERACTIVE_TESTING is ^_^
14:41 lichtkind_ FROGGS, which leads me to the question why in http://modules.perl6.org/ Math::Matrix has no status even it has a travis.yml?
14:41 icelesstea joined #perl6
14:41 FROGGS Zoffix: btw, it is not uncommon that a module wants to have one lib out of a set... how do you want to solve that?
14:42 Zoffix lichtkind_, it's not no status, it's "not setup". Along with .travis.yml, the author needs to enable it on https://travis-ci.org/profile/USERNAME
14:42 FROGGS Zoffix: yes, have spotted it a minute ago
14:42 FROGGS lichtkind_: I believe the author has to enable travis on the travis-ci.org page
14:43 RabidGravy lichtkind_, it want run the tests until the first commit after the travis is enabled and there is a .travis.yml present
14:43 RabidGravy won't
14:43 Zoffix FROGGS, hm, how about :module()/:lib() can take junctions too. So it'll be:  :lib('sqlite3', any(<foo bar ber>) )
14:43 lichtkind_ thing is we already run tests when i make pull requests
14:44 Zoffix Though I don't yet know how to use junctions :D
14:44 FROGGS Zoffix: +1
14:44 sjoshi joined #perl6
14:45 FROGGS so :libs<sqlite3  someotherlib> is equivalent to :libs(:all(<sqlite3  someotherlib>)), which is nice
14:45 FROGGS Zoffix: and also important: headers
14:45 FROGGS and tools or so
14:45 nine Zoffix: can you vote "Only when asked" for me? The poll seems to require an account on that website.
14:46 schnuppi joined #perl6
14:46 timotimo o/
14:46 yoleaux 08:05Z <lizmat> timotimo: I've removed IO::ArgFiles and its only test (WHICH.t) if you think we should have a deprecation cycle, I could do that
14:46 Zoffix nine, sure
14:47 timotimo lizmat: i wouldn't have wanted a deprecation cycle. however, it seems like my tests were outdated or something
14:47 Zoffix FROGGS, noted.
14:48 nine So far 0 feedback on https://github.com/rakudo/rakudo/commit/​92ef589c74b6a4a054d9672c5de907e43d3765da
14:48 lizmat nine: I'm getting into the code, I hope to be able to do in a little while  :-)
14:49 FROGGS Zoffix: hmmm
14:50 FROGGS Zoffix: now I'm thinking that parts of it should be in union with LibraryCheck or so
14:50 [Coke] I'm fine with .PREVIEW
14:50 timotimo i have a tiny patch that prevents an allocation of two exceptions, a Backtrace and a Failure every time .gist is called
14:50 FROGGS Zoffix: because my dist will surely depends on testneeded C libs, headers or tools
14:50 FROGGS depend*
14:50 lizmat timotimo: cool!
14:50 timotimo lizmat: i was spec testing it when the which.t failure surprised me
14:50 Zoffix FROGGS, oh right. I *knew* there was some module for library checking and I searched for Test:: but didn't find anything
14:51 timotimo and then somehow i stopped working on it completely :|
14:51 FROGGS nine: that's like the old candidates method?
14:51 nine FROGGS: a lot like that, yes.
14:51 Zoffix FROGGS, yeah, I most likely will use that module under the hood
14:51 RabidGravy Zoffix, I didn't call it Test::LibraryCheck as I could see a use for it outside of tests :)
14:52 RabidGravy see also CheckSocket
14:52 FROGGS nine: does it get used by .load?
14:52 * Zoffix cringes at the naming inconsistency :)
14:53 FROGGS *g*
14:54 RabidGravy I changed my ideas about the naming in between the two ;-p
14:54 timotimo noming inconsistency
14:54 psy_ joined #perl6
14:54 nine FROGGS: not directly. Both need and resolve use a common private method for finding a candidate. !matching-file vs. !matching-dist
14:55 RabidGravy If I worried too much about naming I would never do anything
14:55 Zoffix :D
14:55 dalek rakudo/nom: 2a3fb6b | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
14:55 dalek rakudo/nom: Don't use .IO or arrays when we don't need to
14:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2a3fb6b0b8
14:56 Juerd llfourn: Your "use case" is still described in language features. What kind of data are you dealing with? Why is Any different from Str in your code flow? What is the given in your given/when, and what does this given/when altogether do?
14:56 nine FROGGS: the major difference between resolve and need is that need returns a CompUnit object with an initialized $.handle and dies if no matching candidate was found.
14:56 aenaxi joined #perl6
14:56 FROGGS nine: ahh, I see
14:56 nine FROGGS: resolve returns Nil if nothing is found and a CompUnit object with empty $.handle
14:56 Juerd llfourn: If you find yourself doing this a lot, I'm sure you could also just share some code to clarify if explaining what it does is hard.
14:58 Juerd Excuse me, s/what it does/what it is used for/
14:58 nine lizmat: you're fast tracking bitrot in the query_repos branch :)
14:59 lizmat nine: not sure that's a good thing ?
14:59 nine lizmat: it will prolong my rebasing session when query_repos is up for merge. On the other hand, your modifications _are_ good.
15:00 Juerd nine: Rebase often, rebase early :)
15:00 llfourn Juerd: You have ~~ right? when uses that. So do lots of things. But there is no version of when that uses !~~ and there is no way to have sub (Str:! $thing ) { } # an arg that isn't a string.
15:01 llfourn you have to do where { $_ !~~ Str) or when $_ !~~ Str { } etc
15:01 llfourn this is all I am talking about
15:02 llfourn the negation is a lot more messy
15:02 Juerd llfourn: You seem to be ignoring my question. I understand what you mean, just not why you need this. If you can't come up with a use case explanation or examples, that's okay, but then let's just stop.
15:02 llfourn Juerd: ok :)
15:03 nine llfourn: when would a sub accept literally _everything_ except for a Str?
15:03 RabidGravy is there a MONKEY-* that turns on all of "use nqp" and "MONKEY-TYPING' ?
15:04 nine RabidGravy: like a use MONKEY-ABANDON-ALL-HOPE-YE-WHO-ENTER-HERE;?
15:05 RabidGravy yeah
15:05 llfourn nine: I dunno. Just an example.
15:06 RabidGravy MONKEY-GONE-TO-HEAVEN alters what 6 is
15:06 khw joined #perl6
15:07 nine llfourn: that's exactly what Juerd was talking about. Examples for highly theoretical use cases make no good basis for language design :)
15:07 Juerd MONKEY-SEE-MONKEY-DO will evaluate all your expressions twice.
15:08 stmuk__ MONKEY-ISLAND-2
15:08 RabidGravy :)
15:10 dalek roast: bfd3eff | timotimo++ | S03-binding/nonsense.t:
15:10 dalek roast: test: can't bind to some things. type objects, ints, ...
15:10 dalek roast: review: https://github.com/perl6/roast/commit/bfd3effc02
15:10 timotimo yeah, i had a local commit that "make spectest" refused to merge
15:10 RabidGravy for reference "use MONKEY;" does what I suggested, it probably kills kittens in the background but hey
15:10 timotimo ^- if those tests look sane, someone could add them to spectest.data
15:11 llfourn nine: well I don't consider conditional branches on the negations of things "Highly Theoretical" but I'll have a go :)
15:13 El_Che silly question: I have read here some stuff about precomp and people moving stuff from the script to a pm. Is the precomp stuff that much faster?
15:14 nine llfourn: well the signature example was highly theoretical. For given/when you have already given $foo { when Str { ... }; default { say "not a string!"; } } which is the same as given $foo { when $_ !~~ Str { ... } }; just clearer in my eyes
15:14 lizmat El_Che: compiling the settings takes about 60 seconds, loading it .1 second
15:15 lizmat that's about 600x faster
15:15 llfourn nine: I am working on an example. Just going through my code and finding the common thread :)
15:15 El_Che Ai caramba would and older version of Bart Simpsons say
15:15 bpetering joined #perl6
15:16 nine llfourn: now you're making me very curious :) Keeping up the suspense like that
15:17 timotimo "eat my shorts!"
15:17 Juerd bpetering: Thanks for helping out on rosettacode! I'll probably do C in a few days, and check another letter every few days.
15:17 lizmat Juerd++
15:18 bpetering Juerd: no problem, I'll fix up the broken /^B/ ones in the next couple days
15:18 Juerd bpetering: I'm just testing and tagging. I fix them only if the fix is really easy (about half of the broken examples).
15:19 Juerd bpetering: I think it's great that you're also fixing stuff :)
15:19 timotimo wow, for the first time in a LONG time: All tests successful.
15:19 bpetering Juerd: I prefer to dive in a bit more, I've been away for a while and it helps me get up to speed quicker
15:20 Juerd timotimo: Let's celebrate! \o/
15:20 bpetering Juerd: maybe just mention in the channel when you start on a new section, I backlog so I'll avoid overlapping with you
15:21 timotimo \o/
15:21 Juerd bpetering: Will do
15:21 Juerd bpetering: Look for /rosetta/ :)
15:21 bpetering Juerd: will do, cheers mate :)
15:21 Juerd One thing that's present a lot, is "say LIST"
15:21 Juerd e.g. say map ...
15:22 Juerd That adds parens where it didn't use to before
15:22 dalek rakudo/nom: 29fa675 | timotimo++ | src/core/Mu.pm:
15:22 dalek rakudo/nom: gistseen doesn't have to allocate a Failure.
15:22 dalek rakudo/nom:
15:22 dalek rakudo/nom: Mouq++
15:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29fa675695
15:22 Juerd If the list is always one item, "say item LIST" works. If not, "say ~ LIST" makes things pretty again.
15:23 lizmat timotimo: wouldn't that also apply to perlseen ?
15:23 timotimo ah, yeah
15:23 timotimo let me also put it there
15:23 Juerd But I'm really wondering if say should even have those parens there. IIRC, say was for communicating with humans, whereas dd was for debugging.
15:23 timotimo i meant to check for the whole core setting for this "pattern"
15:24 RabidGravy I wish our neighbours hadn't finished their kitchen, they keep bringing tasty Indian food round :)
15:24 Juerd say has become less useful for outputting stuff for human users
15:24 Juerd (Everyone knows programmers aren't human, right? :P)
15:24 lizmat timotimo: well, there's plenty...  but generally, we want things to auto-initialize  :-)
15:24 TimToady Juerd: I was mostly just changing the output to include the parens :)
15:25 timotimo right, that wants to go through DYNAMIC, right?
15:25 brrt joined #perl6
15:25 TimToady lack of parens is not human friendly when you have nested lists
15:25 Juerd TimToady: I think that for single-element lists, not having the parens is the most dwimmy thing, as if "say item LIST" were used.
15:26 Juerd TimToady: The nested lists situation could perhaps be solved by only leaving out the outer parens.
15:26 TimToady it's just a different kind of consistency
15:27 bpetering .tell perlawhirl NativeCall bindings for libssh is on my TODO in the next month
15:27 yoleaux bpetering: I'll pass your message to perlawhirl.
15:27 Juerd TimToady: It's definitely consistent. Not complaining about that :)
15:27 atta joined #perl6
15:28 Juerd It just makes say slightly less useful for the use cases that I (and apparently several rosettacode example authors) run into, where apparently we like to just have a space separated list of things without delimiters.
15:28 TimToady and, in case you didn't notice, last year was the time to redesign the language, not this year :)
15:29 lizmat timotimo: yes
15:29 Juerd TimToady: I don't think that changing say's output is changing the language per se, but I do agree that keeping it steady for the sake of stability is probably a good idea.
15:30 TimToady anyway, I think a lot of the RC examples are not harmed by including the parens, having fixed a bunch of them last year already
15:30 TimToady so it's all tradeoffs...
15:31 dalek rakudo/nom: ced637b | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
15:31 dalek rakudo/nom: Only look up %*ENV once
15:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ced637b626
15:31 nine RabidGravy: I can imagine.....far worse fates
15:31 Juerd TimToady: A lot aren't, that's right.
15:32 bpetering I haven't done enough to notice, I'll have an opinion after another 4 categories :)
15:33 TimToady and ~ is short for a reason too :)
15:33 RabidGravy nine, except for the getting huge from eating bhajis and samosa for snacks :)
15:33 autarch karl williams suggested to me that it might be good to announce Perl 6 on the unicode mailing list
15:34 lizmat autarch: what does that entail ?
15:34 Sqirrel joined #perl6
15:34 autarch sending an email, I think
15:34 autarch http://www.unicode.org/consortium/distlist.html
15:35 dalek rakudo/nom: 506473c | timotimo++ | src/core/Mu.pm:
15:35 dalek rakudo/nom: make perlseen more efficient like gistseen
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/506473cf63
15:39 bpetering TimToady: I suspect over the last 2 weeks of intense perl 6 say ~ is what I've been falling back on
15:39 bpetering (that's been my inclination not knowing any better)
15:40 larion joined #perl6
15:40 lizmat autarch: yeah, but that would be people subscribing, not perl6, right ?
15:40 autarch lizmat: I'm not following
15:40 TimToady bpetering: there's also put
15:40 lizmat autarch:  "good to announce Perl 6 on the unicode mailing list"
15:41 lizmat so not just have someone subscribing, also writing something there about Perl 6, is what you mean?
15:41 autarch I'm saying it might be good to send an email about Perl 6 focusing on unicode to unicode@unicode.org
15:41 lizmat ok, then we're on the same page... :-)
15:41 autarch actually, I'm just passing on what Karl suggested, I have no strong opinion
15:42 bpetering m: my $a = 1,2; $a.put;
15:42 camelia rakudo-moar 29fa67: OUTPUT«WARNINGS for /tmp/4ncecwqAXz:␤Useless use of constant integer 2 in sink context (lines 1, 1)␤1␤»
15:42 bpetering m: my $a = 1,2,3; $a.put;
15:42 camelia rakudo-moar 29fa67: OUTPUT«WARNINGS for /tmp/xH_zL9hnrV:␤Useless use of constant integer 2 in sink context (lines 1, 1)␤Useless use of constant integer 3 in sink context (lines 1, 1)␤1␤»
15:43 TimToady item assignment is tighter than comma
15:43 dalek rakudo/nom: 2fac939 | lizmat++ | src/core/Rakudo/Internals.pm:
15:43 dalek rakudo/nom: Introduce Rakudo::Internals.LL_EXCEPTION
15:43 dalek rakudo/nom:
15:43 dalek rakudo/nom: '--ll-exception' if running with that, otherwise ''
15:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2fac939224
15:43 bpetering ergh
15:43 bpetering braino much.
15:43 bpetering my @a = 1,2,3; @a.put;
15:44 bpetering m: my @a = 1,2,3; @a.put;
15:44 camelia rakudo-moar 29fa67: OUTPUT«1 2 3␤»
15:44 bpetering I should not be on IRC at 2am, this is disgraceful
15:44 bpetering TimToady: I like put more. thanks :)
15:46 bpetering m: my @a = 1; @a.put;
15:46 camelia rakudo-moar 29fa67: OUTPUT«1␤»
15:48 bpetering m: (1,1,2,3,5).put;
15:48 camelia rakudo-moar 29fa67: OUTPUT«1 1 2 3 5␤»
15:48 TimToady it's just a print with a newline, basically
15:49 TimToady and print uses .Str rather than .gist
15:49 yurivish_ joined #perl6
15:50 bpetering m: say ~(1,1,2,3,5);
15:50 camelia rakudo-moar 29fa67: OUTPUT«1 1 2 3 5␤»
15:50 mattp_ joined #perl6
15:51 bpetering Having done a fair bit of python I think I have a slight preference for object.method syntax, I guess that's why
15:52 xinming joined #perl6
15:52 llfourn Juerd, nine: https://gist.github.com/LL​Fourn/9e08d3a94b08af9d5c38 # it wasn't as easy as I expected to come up with a cogent example but check that
15:52 masak ooh, .put
15:53 llfourn but now I know none(Any:U) works I can't remember too well why I did this!
15:53 lizmat llfourn: maybe Any::U didn't work yet when you tried initially
15:53 moritz llfourn: typically one wants to check if something is defined or undefined
15:53 lizmat it's fairly recent work of FROGGS++
15:54 moritz ~~ !*.defined might also work there
15:55 Juerd llfourn: That's not a real world use case.
15:55 llfourn Juerd: oh ok.
15:55 Juerd llfourn: It's contrived. You said you ran into this "all the time", so it shouldn't be hard to just copy/paste one of those.
15:55 avenj joined #perl6
15:55 avenj joined #perl6
15:55 TimToady I'd write that ~~ :!defined
15:56 llfourn Juerd: to be honest I am usually writing MOP introspecting stuff
15:56 TimToady introspection is usually a design smell
15:56 masak these pair short forms kind of double as "symbols" in Perl 6
15:56 llfourn so checking if something is or isn't exactly equal to Any is what I do a lot
15:56 timotimo *.defined.not? :)
15:56 masak TimToady: I think that's taking it too far. but just like all power tools, introspection should be confined to a small part somewhere.
15:57 llfourn this is in the context of descending $=pod and looking at the .WHEREFORE objects
15:57 TimToady "small part" eqv "not usually"
15:57 masak TimToady: I used introspection just yesterday, in a (successful) effort to eliminate a lot of boring repetition in code.
15:57 masak TimToady: my point is, I would only consider it a design smell if it was all over a code base
15:57 TimToady "all over" eqv "usually"
15:58 TimToady I said "usually" for a reason
15:58 timotimo use introspection to figure out if your usage of introspection is all right
15:58 masak I realize that you can define all kinds of stuff to be equal to each other in order to be right :P
15:58 llfourn introspecting the return values of subs is not a design smell if you are trying to create .md files to describe the subs :|
15:58 TimToady well, that's not usual :)
15:59 awwaiid http://www.atdot.net/~ko1/acti​vities/2015_RubyKaigi2015.pdf -- nice slides on precomp in ruby YARV land, experimental feature in ruby-2.3.0
15:59 llfourn TimToady: I don't use p6 to do usual things :P
15:59 abraxxa joined #perl6
16:00 PerlJam .oO( I don't usually, but when I do, it's a design smell )
16:01 awwaiid I like the mst quote "Sufficiently encapsulated ugly is indistinguishable from beauty"
16:01 awwaiid so like -- keep that meta in a box :)
16:01 perigrin masak: sometimes you need to write Durian code.
16:02 TimToady it's hard to encapsulate durian...
16:03 perigrin TimToady: when overripe the abstractions do tend to leak.
16:04 * TimToady ate a durian candy once and smelled like Yellowstone for two days after
16:05 perigrin Mom went to KL for a business trip many moons ago. She said the guy who picked her up apologized for the smell, the week before he'd been transporting durian in his car.
16:05 perigrin It was still noticeable.
16:06 perigrin she did say it wasn't bad tasting though.
16:06 llfourn Juerd: I updated it with four real-world examples https://gist.github.com/LL​Fourn/9e08d3a94b08af9d5c38
16:07 llfourn Juerd: in the end it was four times so I guess that isn't "all the time" :P
16:07 llfourn I tried to golf it down so that it would make sense
16:07 masak perigrin: durian tastes quite nice, yes
16:07 perigrin masak: my point being soemtimes the code may smell but leave the best taste in your mouth after :)
16:08 P6Test joined #perl6
16:10 masak many years ago, I compared Perl itself to the durian
16:10 masak weird-looking, often misunderstood, heart of gold
16:11 iml_ joined #perl6
16:11 lizmat this just in from FB: http://blog.builtinperl.com/p​ost/happy-new-perl6-released
16:12 DrForr I should've mentioned that :)
16:12 lizmat .oO( the internets are fast :-)
16:14 * [Coke] gets notified that @nogoodnickleft tweeted something about postgres... and gets caught up in a p5/p6 thread, yikes.
16:15 ugexe nine: i mentioned to you before he threw his work out when it was clear what he was working on would no longer work with what had been merged in. Its most definitely not hot air, as I was running it on a slightly modified version of rakudo to load an external compunit before modules were loaded. Some people are ok with sending unfinished work in a PR, but he was not. I would not brush him off just because his
16:15 ugexe opinion conflicts with yours
16:15 PerlJam random weirdness:  last night I was looking for a walmart near me, so I went to the maps app on my phone and started to search.  As I typed "Wal", the top answer that popped up was "Larry Wall" (and what I would guess is his home address)
16:17 [Coke] if you have his address in your contacts, that might explain that
16:17 nine ugexe: opinions are never an issue. He thinks the current architecture sucks? Well, so do I. It's the trying to win an argument instead of having a discussion that rubs me the wrong way. And dismission data about Inline::Perl5's test suite because "there are very few people that care about how fast Inline::Perl5's test suite runs" is just that.
16:18 lostinfog joined #perl6
16:18 xinming_ joined #perl6
16:18 nine ugexe: and "loading modules a little more quickly" when it's a factor of 600 faster.
16:19 ugexe nine: he had modules loading quicker by changing the manifest layout. that was the easy part
16:19 nine ugexe: the manifest issue is on top of the factor 600
16:19 ugexe but he did have discussions about it. i think hes not interested in doing it again because its already there
16:19 PerlJam I'm not sure why I would have his address in my contacts, but it was a happy accident anyway  :)
16:20 ugexe except its slower on a programs first run while modules are precompiled. this is not always acceptable
16:20 nine ugexe: Discussions in private are useless. Keeping code on one's own harddrive is useless.
16:20 ugexe im not talking about with me
16:20 ugexe with people here in #perl6, the lizmat gist, etc
16:20 nine What would help is concrete examples, suggestions and code that one can look at. And when asked about that it was "pull it out of thousands of lines of backlog yourself"
16:21 ugexe and it clearly wasnt on just his own hard drive, i just said i had ran it
16:21 nine Yeah, how many rakudo core developers had access?
16:22 ugexe i just told you he was not interested in sending an unfinished pr
16:22 nine Apparently he was also not interested in letting people know that he had work in progress. I certainly would have found other interesting bits to work on if I had known that the precomp issue was already well in hand.
16:22 nine But I didn't know. So I started to act.
16:23 ugexe clearly
16:23 Skarsnik damn my backlog is too small
16:23 PerlJam Skarsnik: I was thinking just the same thing
16:23 nine It would just have taken a single message to stop me. I would have liked to have more time for Inline::Perl5 or even non-Perl6 things.
16:23 ugexe but as a "core developer" you're bound to be tortured by the users, not the other way around
16:24 mspo core developers inflict the most pain on users
16:24 mspo ☞ Think ahead. (You think that’s cute this year…)
16:25 ugexe torture the implementor on behalf of the user - one of the perl6 mottos
16:25 nine ugexe: what does that have to do with anything?
16:26 nine The motto is about not punting when things are really hard to implement but benefit the user. Not about making them do pointless extra work.
16:26 ugexe if you have to ask with the way you've been replying to a "user" i dont know what to tell you
16:27 ugexe you brought up "core developers"
16:27 nine "core developers" as someone who can actually integrate code into rakudo. If tony-o wants a commit bit and push his stuff directly, I'd be absolutely fine with it. He'd just have to ask.
16:28 nine Or you for what it's worth.
16:28 nine But until you do, you'll have to let someone with a commit bit know that you want to get code into rakudo.
16:28 ugexe afaik he doesnt care about that
16:29 nine If he doesn't care about getting his code into rakudo, then what's the grief about contributions being rejected?
16:30 nine To this date I don't know what his issues with precompilation are. And I don't know what his alternative solution would be. So what does he want with me?
16:30 ugexe who cares, that doesn't mean throw out the rest of his opinions and points
16:30 nine What _are_ his points??
16:31 nine All he's said so far is "the current implementation sucks", "we've had another implementation a year ago" and "find other arguments somewhere in the backlog"
16:31 Skarsnik Does precomp file is system wide? (or at least in the perl6 install?)
16:31 Skarsnik *are
16:31 nine And of course that precompilation in FileSystem repositories is useless because the speedup is not worth some unspecified problems which many people disagree with.
16:31 ugexe nope, that was one of his points he brought up literally yesterday
16:32 nine So because those files are not system wide, we better give up the whole thing? Because if not, I'd be very interested in his solutions. Because I don't have one.
16:33 nine I don't _know_ how to make it work with system wide precomp files. If I knew I'd implement it today.
16:33 nine But neither he, nor you will tell me what the solution would be.
16:34 ugexe im not sure why you are even bringing me up
16:34 lizmat dinner&
16:34 Skarsnik Well for me it's a good point, they should be tied with p6 install, not on the user home
16:34 nine Because you said that you have discussed these issues with him for hours, so I assume that you would know at least a little about it.
16:34 nine Which is more than I do.
16:35 ugexe yes, but most of my knowledge was on the previous implementation and ive never stated anything otherwise. nor have i ever stated which problems i had solved or not
16:35 nine Skarsnik: yes, they should be. Definitely. We even tried it and failed spectacularily.
16:35 nine Skarsnik: it's a really, really hard problem.
16:35 Skarsnik But, yeah precomp is awesome.  I have some script that depend on 5+ modules. they don't start up on 30-40 sec anymore
16:36 ugexe precomp itself is not new, it was only removed for a period of time
16:37 llfourn ugexe: it never worked on -Ilib stuff though right?
16:37 nine Yes because the old implementation was even worse than what we have now and none of the people working on it thought that it was the right way to do it.
16:37 llfourn that's what speeds up development..
16:37 mst uh
16:37 mst I don't think we're going anywhere useful with this
16:37 ugexe llfourn: right
16:37 mst tony-o just keeps screaming incoherently without content
16:38 mst nine is showing every sign of being burned out
16:38 mst ugexe seems to feel stuck in the middle
16:38 * Zoffix is just eating popcorn
16:38 mst and other than those human observations, I'm basically lost technically
16:38 mst I think we need some sort of ... ugh, working group like thing
16:38 mst maybe a #perl6-comprepo channel or something that's just these discussions
16:39 Skarsnik #perl6-internal?
16:39 PerlJam or at least get it off #perl6
16:39 mst no
16:39 mst I don't want to be in a general compiler channel
16:39 mst the CUR stuff is like an entire specialism to itself
16:39 nige1 joined #perl6
16:39 mst that or we mint a #perl6-trollchain or something
16:39 Zoffix :D
16:39 hoelzro I wouldn't mind a list of grievances and proposed solutions in a document or something
16:39 Zoffix hoelzro, well volunteered!
16:39 hoelzro esp. since sometimes parts of the discussion are in the backlog, which is hard to get through
16:39 RabidGravy Wiki!
16:40 mst I think maybe we should mint an extra repo in the rakudo org and then abuse its issues and wiki
16:40 * hoelzro .oO( what did I do?! )
16:40 Zoffix something in /mu would be good
16:40 mst basically, we need to get it separated and coherent discussion to happen
16:40 Zoffix hoelzro, start the document of grievances in /mu repo. An editable wiki so we can log what the issues are and what suggestions to fix them are, rather than having all that spread over the backlog
16:40 nine mst++ # moving this into a productive direction again
16:40 mst because right now we have people not feeling heard, people feeling out of the loop, people not sure exactly what's going on, and me, who's basically completely clueless except I can spot an argument that's gone horribly wrong pretty reliably ... when I'm on the outside
16:41 hoelzro Zoffix: the only issue with having it in mu is non-commit bit folk will have to submit PRs
16:41 Zoffix hoelzro, good point.
16:41 RabidGravy but you can separately permission a project wiki
16:41 Skarsnik I kinda wanted for Test/NC to have their own issue rather than lot on RT x)
16:41 PerlJam who *doesn't* have commit on mu?   We can fix that very easy I think
16:42 stmuk__ I'm starting to wonder if we actually need a wiki and are outgrowing IRC
16:42 Skarsnik *lost
16:42 hoelzro Skarsnik: I hear you there
16:42 hoelzro stmuk__: for some things, definitely
16:42 stmuk__ either using a fixed November (dogfood) or is there a github one
16:42 nine stmuk__: yes, this needs to be collected in a single place
16:42 hoelzro hell, a wiki with a "proposed branches" page would be nice, b/c a lot of people felt that curli was "snuck in"
16:43 hoelzro well, proposed|active
16:43 lnrdo joined #perl6
16:44 Skarsnik unrelated. will it be a good idea to have a page on the doc that list of modules that aim to make writing modules easier? But something neutral that does not talk about the quality of the modules/tools itself
16:45 Zoffix Skarsnik, yes
16:45 Zoffix Skarsnik, I'm trying to find a lib to test my test module and so far I only see bitrot -_-
16:45 nine hoelzro: may I then paste this URL into the wiki page as answer for the "snuck in" accusation? http://irclog.perlgeek.de/p​erl6/2015-11-26#i_11603568
16:45 Zoffix Skarsnik, and I missed LibraryCheck module last night
16:46 RabidGravy if only there were tags specified for the meta files
16:46 hoelzro nine: I'm just saying for future branches of curli-scale
16:46 hoelzro ex. if we had the wiki two months ago, you would have probably put curli on that page when you started it in October
16:46 Zoffix RabidGravy, if only those tags were searchable :P
16:47 hoelzro it would be *really* cool if the page were intelligent and could say how much the branches have diverged
16:47 nine hoelzro: definite +1 on that page anyway
16:47 RabidGravy but if you find a good test tester I'd be all ears, with Test::META I resorted to exposing the internal subs and testing those
16:47 hoelzro but, like many of my ideas, it's probably overkill =)
16:47 nine sounds like ;)
16:47 Zoffix Will do
16:47 stmuk__ what the hell does »+<« do? and how can I search the docs for it? :)
16:48 RabidGravy bit shift?
16:48 hoelzro hyper operator
16:48 RabidGravy m: say 1 +< 2;
16:48 camelia rakudo-moar 2fac93: OUTPUT«4␤»
16:48 RabidGravy yep bit shift
16:49 stmuk__ ah http://doc.perl6.org/langu​age/operators#infix_%2B%3C
16:51 RabidGravy and presumably
16:51 RabidGravy m: 4 +> 2;
16:51 camelia rakudo-moar 2fac93: OUTPUT«WARNINGS for /tmp/YN4pUCFGbs:␤Useless use of "+>" in expression "4 +> 2" in sink context (line 1)␤»
16:51 RabidGravy m: say 4 +> 2;
16:51 camelia rakudo-moar 2fac93: OUTPUT«1␤»
16:51 stmuk__ m: say (1,2,3) »+« (4,5)
16:51 camelia rakudo-moar 2fac93: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<+> are not of the same length␤left: 3 elements, right: 2 elements␤  in block <unit> at /tmp/j1WZvXNwhD line 1␤␤»
16:51 stmuk__ is that doc'd at http://doc.perl6.org/languag​e/operators#Hyper_Operators
16:51 stmuk__ "If one of the lists is shorter then the other, the operator will cycle over the shorter list until all elements of the longer list are processed."
16:52 stmuk__ the error suggests otherwise
16:52 RabidGravy oh, you really meant »+<« literally, I though the » and « were just being used as funky quotes
16:52 Zoffix m: say (1,2,3) «+» (4,5)
16:52 camelia rakudo-moar 2fac93: OUTPUT«(5 7 7)␤»
16:53 Zoffix Weird. I thought the DWIMM was the other way around
16:53 RabidGravy "do what I might mean" ?
16:54 Zoffix :)
16:54 stmuk__ its a hyperoperator and a bit shift together I think
16:54 skids The point of the » points to the thing that gets "fanned out" to more entries.
16:54 Zoffix k
16:54 RabidGravy you kids should really lay off the crack
16:54 stmuk__ ah " The pointy part of « or » has to point to the shorter list."
16:54 skids m: say (1,2,3) «+« (4,5)
16:54 camelia rakudo-moar 2fac93: OUTPUT«(5 7)␤»
16:55 skids makes more visual sense with e.g. 1 <<+ 3,4,5
16:56 mst right, screw it
16:56 * mst mints #perl6-toolchain
16:56 mst nine: please
16:56 mst ugexe: please
16:56 mst tony-o: please
16:56 mst flussence: please
16:56 mst tadzik: please
16:56 mst Zoffix: come be spare minion!
16:56 Zoffix Already there
16:56 mst jnthn: adult supervsion requested. in its absence, you'll do.
16:57 * alpha123 sneaks in
16:58 stmuk__ skids: the pointy part in your example points to the longer list
16:59 stmuk__ I'm either misunderstanding the docs or they are wrong (or both)
16:59 mst right, so, who can give us a repo?
16:59 Zoffix mst, what does it need to be called?
16:59 mst I wanted one in rakudo org called rakudo-toolchain-discuss or something
16:59 RabidGravy mst++ # jfdi
17:00 Zoffix Ah. I don't got access to rakudo org
17:00 hoelzro PerlJam has access, iirc
17:00 mst I'd be ok with anywhere but I wanted to use github issues and wiki
17:00 Juerd mst: Rakudo or Perl 6? They're different organizations on Github.
17:00 hoelzro hmm, I have perl6 perms
17:00 mst Juerd: I was -thinking- rakudo for the moment, I'm not sure how much our internals will generalise and I'm definitely sure that's not the biggest problem we have yet
17:00 stmuk__ more people have perl6 access .. that might be a more pragmatic choice
17:01 mst I was planning to get perms to this new repo given out like water
17:01 mst since it's primarily a discussion space anyway
17:01 stmuk__ I think rakudo needs a posted signed agreement
17:01 mst right, then let's create it under perl6, with title toolchain-bikeshed
17:02 mst that should make the discursive, non-formal nature clear
17:02 Juerd Working on it :)
17:02 mst hopefully you can see what I'm trying to achieve in terms of presentation of this thing
17:02 mst while not being completely fragmented away from the mainline stuff
17:02 RabidGravy yeah I was just going to say a hellabunch o people have the commit on perl6
17:03 Zoffix http://doc.perl6.org/language/io is glaringly missing the STD[OUT|ERR|IN] operations :/
17:03 Juerd https://github.com/perl6/toolchain-bikeshed
17:03 Juerd Next up: permissions
17:03 RabidGravy Juerd++ # jfdi
17:04 hoelzro Juerd++ mst++
17:04 Juerd mst: Your github username?
17:04 mst shadowcat-mst
17:05 dwarring joined #perl6
17:05 Juerd Okay, have fun :)
17:06 mst does that give me the capacity to add other people?
17:06 Juerd If anyone disagrees with this move, open an issue on the repository :)
17:06 Juerd mst: As far as I know, yes.
17:08 PerlJam Juerd++
17:08 * PerlJam goes back to work
17:08 mst Juerd: looks like it. ta.
17:09 Peter_R joined #perl6
17:10 Zoffix How do I re-open $*OUT after closing it? What I want to achieve is to temporarily redirect STDOUT/STDERR into variables and then reopen the filehandles back to normal
17:10 * flussence shows up at exactly the right wrong time
17:10 mst flussence: WELL VOLUNTEERED
17:11 moritz Zoffix: you can achieve that with  my $*OUT = open(...); in a new scope
17:11 ugexe my $oldout = $*OUT; $*OUT = class { ... }; $*OUT = $oldout ?
17:11 Zoffix moritz, thanks
17:11 RabidGravy I was just typing exactly that
17:11 Zoffix Thanks all :)
17:11 Juerd { temp $*OUT ... }
17:12 ugexe temp didnt work right on $*OUT when i tried that a long time ago. maybe it does now
17:12 Juerd Works fine
17:13 Juerd m: say "hi"; { temp $*OUT := $*ERR; say "hello"; }; say "bye";
17:13 camelia rakudo-moar 2fac93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VYWAtUAR5L␤Cannot use bind operator with this left-hand side␤at /tmp/VYWAtUAR5L:1␤------> 3say "hi"; { temp $*OUT := $*ERR7⏏5; say "hello"; }; say "bye";␤»
17:13 Juerd Argh, not :=
17:13 Juerd m: say "hi"; { temp $*OUT = $*ERR; say "hello"; }; say "bye";
17:13 camelia rakudo-moar 2fac93: OUTPUT«hi␤hello␤bye␤»
17:13 Juerd Oh, camelia doesn't differentiate between stdout and stderr.
17:14 Juerd You'll just have to take my word for it or try it locally then :)
17:14 huggable joined #perl6
17:15 nine flussence: congrats on making it into lwn.net's quote of the week :)
17:16 flussence aw crap
17:16 Zoffix What's the quote? :)
17:17 flussence why is everything happening to me today /o\
17:17 nine http://lwn.net/Articles/670378/
17:19 Peter_R joined #perl6
17:20 hoelzro btw, is anyone planning on going to NLPW in April?
17:20 * hoelzro assumes lizmat is
17:21 domidumont joined #perl6
17:25 dalek evalbot: 48f1121 | (Zoffix Znet)++ | freenode.org.conf:
17:25 dalek evalbot: Add #perl6-toolchain to Freenode channels to join
17:25 dalek evalbot: review: https://github.com/perl6/evalbot/commit/48f1121874
17:26 camelia joined #perl6
17:27 Juerd http://rosettacode.org/wiki/​Call_an_object_method#Perl_6 is a mess.
17:27 * Juerd is going to remove all that and start over.
17:32 Zoffix Is it even possible to open() without a file, but a variable instead? Like Perl 5's   open my $fh, '>', \ $foo; Where print $fh 'blah'; is basically equivalent to $foo .= 'blah';
17:32 Zoffix Reading the IO* Type docs and not seeing anything.
17:33 Zoffix m: temp $*OUT = 42; say 42
17:33 camelia rakudo-moar 2fac93: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤  in block <unit> at /tmp/hXKHjeiomu line 1␤␤»
17:33 Zoffix weird eh :)
17:33 RabidGravy Isn't there an IO::Stringy or something in the ecosystem?
17:34 Zoffix Ah, right
17:34 Zoffix RabidGravy++
17:34 Zoffix I'm really hesitant to use modules with docs like these -_- https://github.com/sergot/IO-Capture-Simple
17:35 Zoffix C'mon people, this isn't node.js! :)
17:35 Zoffix hoelzro++ # IO::String looks exactly like what I want
17:36 FROGGS joined #perl6
17:36 Skarsnik duh is there a better way to write $t.ref-type = %types{$t.ref-id} if %types{$t.ref-id}.defined;
17:37 ilmari why are the filetest tests split between S32-io/file-tests.t and S16-filehandles/filestat.t?
17:38 Hotkeys Skarsnik: I believe you can do $foo //= $bar
17:38 Zoffix Skarsnik, $t.ref-type = %types{$t.ref-id} // $.ref-type ?
17:38 Zoffix s/'$.'/'$t.'/
17:38 ilmari the latter has time related tests, the former everything else
17:38 Hotkeys $t.ref-type //= %types{$t.ref-id}
17:38 Zoffix Don't think it's better, but shorter :)
17:39 Hotkeys should work I think
17:39 Zoffix Hotkeys, that's a different meaning
17:39 Skarsnik $foo //= $bar affect $foo if $foo is undef
17:39 Zoffix Hotkeys, that will assign if $t.ref-type is not defined, but the OP is if %types{$t.ref-id} is defined
17:39 Hotkeys oh
17:40 yqt joined #perl6
17:45 Juerd Can we place bets on when indirect method syntax is dropped? My guess is 6.e ;)
17:45 FROGGS hehe
17:45 Hotkeys indirect method?
17:45 Juerd I don't recall having seen it in the wild.
17:45 FROGGS I would not use it either
17:46 Hotkeys What are those?
17:46 RabidGravy oh
17:46 perigrin Hotkeys: method $object instead of $object.method
17:46 RabidGravy m: class C { };  say new C
17:46 camelia rakudo-moar 2fac93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jYxt1nTQMs␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax␤at /tmp/jYxt1nTQMs:1␤------> 3class C { };  say new C7⏏5<EOL>␤»
17:46 Hotkeys oh
17:46 FROGGS no I think: method: $object
17:46 mst wait, of all the things to retain from perl5, you kept *that* :(
17:46 Hotkeys that's confusing though
17:46 Hotkeys yeah I'm alriht with that FROGGS
17:46 Juerd m: class Thing { method m($name) { say "Hi $name" } }; my $thing = new Thing:; m $thing: "#perl6";
17:46 camelia rakudo-moar 2fac93: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/jhrg9Z424q:1␤------> 3 $thing = new Thing:; m $thing: "#perl6"7⏏5;␤Couldn't find terminator $ (corresponding $ was at line 1)␤at /tmp/jhrg9Z42…»
17:46 mst Hotkeys: yes that's why nobody writing perl5 uses it anymore because aaaaaaaaaaaaaa
17:46 Hotkeys but justhaving 'method $object' looks like a sub
17:46 FROGGS mst: exactly my feelings :o)
17:47 Hotkeys what if there is an overlap
17:47 Hotkeys what happens then
17:47 perigrin mst: nobody writing perl5 _intentionally_ uses it anymore
17:47 RabidGravy actually who was asking about the error messages before
17:47 mst Hotkeys: I refer you to: aaaaaaaaaaaaaaa
17:47 RabidGravy that is a pretty good example
17:47 Hotkeys lol perigrin
17:47 perigrin we _all_ get bit by it until we learn to use 'no indirect;'
17:47 Hotkeys is aaaaaaaaaaaaaaaa
17:47 Hotkeys a noise
17:47 mst that's why I tried to have Moo feed you 'no indirect' by default
17:47 Hotkeys screaming in anguish
17:47 Juerd "regex metacharacter"?
17:47 Juerd OH!
17:47 mst Hotkeys: it's the sound of mst hiding under the desk and screaming until the evil syntax goes away
17:47 Juerd Probably shouldn't call my method 'm'
17:47 perigrin Hotkeys: the noise he makes when he remembers what it was like before 'no indreict;'
17:47 Hotkeys ah
17:47 Juerd m: class Thing { method not-m($name) { say "Hi $name" } }; my $thing = new Thing:; not-m $thing: "#perl6";
17:47 camelia rakudo-moar 2fac93: OUTPUT«Hi #perl6␤»
17:47 Hotkeys aaaaaaaaaaaaaaaaa
17:48 RabidGravy ␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax␤
17:48 Juerd RabidGravy: It needs a colon before the (empty) argument list.
17:48 RabidGravy I know
17:48 RabidGravy but I liked the error message :)
17:48 mst m: class Thing { method not-m($name) { say "Hi $name" } }; my $thing = new Thing:; $thing.not-m: "#perl6";
17:48 camelia rakudo-moar 2fac93: OUTPUT«Hi #perl6␤»
17:48 nine Why on earth do we have this?
17:48 Hotkeys RabidGravy: I was asking about errors
17:48 mst ^^ that version seems fine
17:48 mst 'not-m $thing:' ... aaaaaaaa
17:48 Juerd :)
17:48 RabidGravy HotKeys, there you are then :)
17:49 Juerd I like showing people new stuff they didn't know before. Even if it keeps them up at night, yelling and screaming :P
17:49 FROGGS nine: TimToady likes it I guess
17:49 Juerd But I'm sure that someone, somewhere, will love this syntax :)
17:50 Juerd I don't mind that it's there.
17:50 Juerd I don't think it'll be used much. And when it is used, it *will* impress whoever reads that code.
17:50 perigrin There are a few places where linguistically it helps ... but most programmers don't think like that anymore.
17:50 Hotkeys RabidGravy: pretty neat
17:51 Hotkeys will it impress them?
17:51 perigrin Juerd: the problem is how easy would it be to trip accidentally. That's the biggest pain in p5's indirect object notation.
17:51 Juerd http://rosettacode.org/wiki/Call_an_object_method#.7B.7Bheader.7CPerl_6.7D.7D  # Cleaned this up. Please proof-read.
17:51 Hotkeys or will it make them go aaaaaaaaaaaaa
17:51 Juerd perigrin: IIRC that's why the colon is necessary.
17:52 Hotkeys what about only moderately direct methods
17:52 perigrin Juerd: ... to stop things from leaking out the backside ... I see.
17:52 perigrin Hotkeys: tangential methods?
17:52 Hotkeys yes
17:53 perigrin I think you need to quote them or store the method object in the varaiable ... otherwise you're fine.
17:53 Hotkeys what if I'm annoying
17:53 Hotkeys and do .method with $object
17:54 Hotkeys m: .Rat with pi
17:54 ilmari $ ./perl6 -e '".".IO.modified.say'
17:54 ilmari Instant:1452188499.967552
17:54 camelia rakudo-moar 2fac93: ( no output )
17:54 arnsholt perigrin: It's like prefix period to call methods on $_. It only *looks* implicit =)
17:54 Hotkeys m: .Rat.say with pi
17:54 camelia rakudo-moar 2fac93: OUTPUT«3.141593␤»
17:54 ilmari m: ".".IO.modified.say
17:54 camelia rakudo-moar 2fac93: OUTPUT«Instant:1452189285␤»
17:54 ilmari \o/
17:54 perigrin Hotkeys: then I would hope your code-reviewer smacks you on teh knuckles.
17:54 Hotkeys eheheh
17:54 Hotkeys .smack with $knuckles
17:55 RabidGravy though, somewhat related to indirect I do have callwith passing a new invocant somewhere in some code
17:55 perigrin .smack: $knuckles with $ruler
17:55 nine ilmari++
17:55 ab6tract joined #perl6
17:56 nine ilmari: now if only Windows on FAT32 would give better than 2 seconds resolution ;)
17:57 Juerd m: class K { method smack { say "Like this?" } }; my $knuckles = K.new;
17:57 camelia rakudo-moar 2fac93: ( no output )
17:57 Juerd Argh. Too early.
17:58 Juerd (Wacom tablet is borking. Pasting too much)
17:58 Juerd m: class K { method smack { say "Ouch!" } }; sub infix:<with> { $^object.$^method }; my $knuckles = K.new; .smack with $knuckles;
17:58 camelia rakudo-moar 2fac93: OUTPUT«Ouch!␤»
17:59 Juerd To be honest, I don't really understand how that works :)
17:59 RabidGravy return $foo but Bar; is my favourite thing of the say
18:00 RabidGravy day
18:00 perigrin m: class Ruler { method smack ($thing) { say "ouch: you hurt my $thing" } }; my $ruler = Ruler.new; .smack: "knuckles" with $ruler;
18:00 camelia rakudo-moar 2fac93: OUTPUT«ouch: you hurt my knuckles␤»
18:00 ab6tract nine: fwiw, the overlay style makes a lot of sense to me
18:00 perigrin :)
18:00 Juerd Oh, there already is a 'with'?
18:00 masak Juerd: yes
18:00 Juerd Ha, that might explain why my code magically dwim.
18:00 ab6tract and it also seems to me that it will make comprehending language versions significantly easier
18:00 Juerd My infix with was never called :)
18:01 masak Juerd: it's like `if`, except (a) it checks for definedness, not truthiness, and (b) it topicalizes
18:01 perigrin Juerd: I'm as supprised as anyone that worked. Possibly because it's the first perl6 I've ever written.
18:01 ab6tract as the changes are forefronted
18:01 Juerd masak: Thanks for explaining :)
18:01 firstdayonthejob joined #perl6
18:02 Skarsnik I made something that took 12 sec, took 0.2 sec. I am happy x)
18:03 RabidGravy and we're happy you're happy
18:03 nine ab6tract: lizmat++ is right though. It will not be enough. For example when 6.c code uses a 6.d module and the latter creates some core object and passes it back to the 6.c code, this object will still have the 6.d API.
18:03 ab6tract it also seems to me like we should be able to write a script that would be able to generate a 'munged' directory?
18:04 ab6tract ah, i hadn't thought of that. nice catch lizmat :D
18:04 [Coke] m: my $a = Str.new(:value<hi>); my $b = .new(:value<hi>) with Str; say $a; say $b;
18:04 camelia rakudo-moar 2fac93: OUTPUT«hi␤(Any)␤»
18:05 Juerd [Coke]: Str is undef
18:05 [Coke] Str is still an object.
18:05 Skarsnik RabidGravy, gptrixie: Times -- gccxml: 0.24837610 sec; xml parsing: 2.9047862 sec; magic: 10.2859833
18:05 Skarsnik -> after changing stuff : Times -- gccxml: 0.2442622 sec; xml parsing: 2.80925026 sec; magic: 0.2820472
18:05 ab6tract maybe we could get away with .v6c , .v6d , coercers implemented on any augmented classes ?
18:05 [Coke] but yes, I assume that whether it's defined might impact the ability to 'with' it
18:05 Juerd [Coke]: I just learned that 'with' is a conditional, checking for definedness.
18:05 nine ab6tract: OTOH if the module uses 6.d because it's a newer version than was available when the 6.c user was written, the correct answer is to stick with the older (presumably 6.c) version of the module.
18:06 Skarsnik Oh a if $foo.defined and $foo eq 'foo' can be written: with $foo eq 'foo' ?
18:06 nine ab6tract: and if module using code was added when 6.d was already available, the using code should manage that.
18:07 ab6tract right. it's a bit DIWIDT
18:07 nine Still something we should keep in mind when changing core APIs. Some hurts can surely be avoided easily.
18:10 ab6tract nine: i think coercers might be a decent peg
18:10 ab6tract and after you coerce down, that object is at the earlier version, full stop
18:10 flussence ooh, this is fun. The output of perl6 -v (and the pathname for precomp modules) depends on the `git-config core.abbrev` in effect when it was built
18:11 masak ab6tract: "Doctor, It When I Do This"?
18:11 ab6tract masak: i knew that looked off :)
18:11 nine ab6tract: certainly an intriguing idea. Especially since we have version support for classes. Probably the hardest part would be figuring out, when to actually coerce.
18:11 ilbot3 joined #perl6
18:11 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
18:12 ab6tract nine: good point. doing it cheaply might be a trick
18:12 yurivish_ quick bug: Perl docs for // go to http://doc.perl6.org/routine/%2F%2F, which is not found
18:12 lucs joined #perl6
18:13 flussence yurivish_: yep, that's known about. ".." has a similar problem
18:13 Zoffix yurivish_, known issue
18:13 Zoffix https://github.com/perl6/doc/issues/155
18:14 yurivish_ ah, good :)
18:14 mspo are the docs statically generated files or powered by something
18:14 flussence .oO( we're going to need telegram encoding for texas variants )
18:15 Skarsnik generated
18:15 ab6tract the traditional thing with languages is more like you are stuck on an earlier version until you can upgrade
18:15 mspo so there's a file named ...html ?
18:15 zwu joined #perl6
18:15 ab6tract s/upgrade/migrate your old crap/
18:16 Skarsnik I don't think 6.c will be adopted comparing to the next major release x) It's just a feeling
18:16 ab6tract so the fact we potentially enable anything reasonable with that at all would be pretty cool
18:16 nine Skarsnik: when do you think the next major release will arrive?
18:16 zwu What is reason for that "List cannot be parameterized" , in m: my List of Int @a; I know the default @variable is to Array, which is a mutable and subclass of List.
18:17 zwu How can I declare a list variable using @? instead of array?
18:17 Zoffix mspo, statically
18:17 Skarsnik nine, No idea. but in my head I prefer using a 1.1 version of something than the 1.0 that did  not have previous beta widly tested
18:18 lucasb joined #perl6
18:18 mspo Zoffix: so there's a file named '..' ?
18:18 Zoffix lemme check
18:18 mspo when I say statically generated I mean a process is reading the docs and creating files
18:19 nine Skarsnik: there's a huge difference between the language version and the compiler version. I honestly do not recommend using rakudo 2015.12 due to curli issues. But 2016.01 will be much better already, while still being an implementation of Perl 6.c
18:19 nine And 6.d will probably arrive at the end of the year earliest.
18:19 Juerd What is "curli"?
18:19 icelesstea The Finnish version of curl.
18:19 Skarsnik Yep, I am waiting for the next rakudo release to upgrade the install on my dedicated server x)
18:20 nine Juerd: the module management redesign that landed far too close to Christmas
18:20 Skarsnik I am more concerned by the modules used on my script on this system x)
18:20 nine The openSUSE packages I built are sort of an unofficial 2015.12.1, as 2015.12 was just not packageable.
18:20 mspo https://gist.github.com/jnthn/47a42b2e86e7e552b2e2
18:20 mspo is curli I think
18:20 lizmat http://www.dagolden.com/index.php/2589​/perl-5-and-perl-6-are-mortal-enemies/  # food for thought
18:20 nine mspo: yes
18:20 Zoffix mspo, "...html"
18:20 perigrin nine: I was sort of hoping it was a middleware messaging system ... curli-queue is just too good a name to pass up
18:20 Zoffix in /routines/
18:21 mspo Zoffix: okay!
18:21 Zoffix mspo, this actually works: http://doc.perl6.org/routine/...html
18:21 Juerd @rosettacode.grep(/^C/)[^20] done.
18:21 Zoffix But won't without the '.html' bit
18:21 mspo Zoffix: yeah
18:21 Juerd C is a huge catagory
18:21 mspo there's also a /.html or simiar, right?
18:21 Skarsnik ++ to people updating rosettacode
18:22 balazs joined #perl6
18:22 nige1 joined #perl6
18:22 Juerd Skarsnik: Not really updating much. I'm mostly checking whether examples still work. There's some pre-GLR stuff left on RC.
18:22 Juerd Skarsnik: And some need MONKEYs.
18:22 Skarsnik Well it's still some work ^^^
18:22 Juerd It is. Too much, actually :)
18:23 mspo Zoffix: so is powering the no .html rule?  mod_rewrite or MultiViews ?
18:23 llfourn there is also 'without' that is with but checks for definedness
18:23 Juerd I've rewritten two articles today: "Call an object method" and "Check that file exists".
18:23 Juerd llfourn: undefinedness?
18:23 llfourn *undefinedness
18:23 Zoffix lizmat, I utterly disagree with this postulate. My knowledge of Perl 5 impeded progress with Perl 6 on more than one occasion. Especially the whole flattening business "First, a postulate: given the language similarities, the people that will find it easiest to learn Perl 6 are today's Perl 5 developers."
18:24 lizmat Zoffix: not saying I agree with the blog post, hence the "food for thought"
18:24 Zoffix mspo, "Options +Indexes +MultiViews"
18:24 mspo Zoffix: multiviews suck ;)
18:24 Zoffix *shrug* :D
18:24 Juerd Zoffix: So far I've seen two people without any prior Perl experience pick up Perl 6 without much trouble.
18:25 lizmat I think Dagolden, being a uni-language person (afaik), doesn't realize the destructive power of "false friends"
18:25 Juerd Zoffix: I think non-Perl people are a larger and more useful target audience :D
18:26 Zoffix Juerd, totally
18:26 Juerd lizmat: With a limited syntax, though, there will always be false friends in relation to *some* language. For example flattening, it's either a false friend to Perl 5 or to other languages, but neither design choice would actually solve the issue.
18:27 peter__ joined #perl6
18:27 El_Che I think learning perl6 is a lot easier when you know perl5 (in my experience)
18:27 Juerd The one-arg rule is a false friend to every other language, perhaps, but I find that I'm already getting used to it.
18:27 Juerd El_Che: Nobody can compare this because nobody will simultaneously know and not-know Perl 5 :)
18:28 Zoffix :D
18:28 El_Che Juerd: you understimate my quantum state :)
18:28 Zoffix eheh
18:28 Juerd El_Che: Yet at the same time, I don't :P
18:28 Zoffix I think that blog post has a lot of truth TBH.
18:28 Skarsnik m: my $foo; say "nop" with $foo eq 'a'; $foo = "a"; say $foo with $foo eq 'a';
18:28 camelia rakudo-moar 2fac93: OUTPUT«Use of uninitialized value $foo of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/HkNsl2zayb line 1␤nop␤a␤»
18:29 PerlJam Zoffix: which parts?
18:29 El_Che let's say my perl5 is crappy enough to not count as enough perl5 and too good to count as not existent :)
18:29 lucasb m: say so Perl S& !Perl
18:29 camelia rakudo-moar 2fac93: OUTPUT«True␤»
18:29 lucasb Juerd: ^^ :D
18:29 Zoffix PerlJam, the Scenario $n analysis with the option that both Perl 6 and Perl 5 grow rather improbable.
18:30 PerlJam Zoffix: yeah, I can agree with that one too
18:33 PerlJam though ... C and C++ still happily co-exist after all these years  :)
18:34 El_Che which is the C everyone love to love and the C++ everyones loves to hate?
18:34 * El_Che ducks
18:35 zwu How can I declare a simple List variable instead of Array? Thanks!
18:35 zwu my @v = 1,2,3 is to create array by default.
18:35 Skarsnik El_Che, so true
18:35 PerlJam zwu: my $list = ();
18:35 Juerd m: my List $foo = 1, 2, 3; say $foo; say $foo.WHAT;
18:35 camelia rakudo-moar 2fac93: OUTPUT«WARNINGS for /tmp/_5FhZrIue5:␤Useless use of constant integer 2 in sink context (lines 1, 1)␤Useless use of constant integer 3 in sink context (lines 1, 1)␤Type check failed in assignment to $foo; expected List but got Int␤  in block <unit> at /tmp…»
18:35 lucasb zwu: my @a := (1,2,3)
18:35 Juerd m: my List $foo = (1, 2, 3); say $foo; say $foo.WHAT;
18:36 camelia rakudo-moar 2fac93: OUTPUT«(1 2 3)␤(List)␤»
18:36 lizmat m: my List $foo = (1,2,3); dd $foo   #zwu
18:36 camelia rakudo-moar 2fac93: OUTPUT«List $foo = $(1, 2, 3)␤»
18:37 zwu I know this scalar form my $list = 1,2,3;
18:37 El_Che What I think is true is that devs putting down any of 5 or 6, will harm both languages
18:37 zwu didn't my @a := (1,2,3) is to create the binding only, since List is immutable, binding is fine.
18:37 El_Che Sharing more than almost the complete name, the association is big
18:37 Juerd zwu: *Why* do you want a List instead of an Array?
18:37 El_Che (and that is not a bad thing)
18:39 zwu just try to understand the way of not being default, as the doc said the default of my @a is to declare the Array, I thought my can use coerce type like my List of Int @a to create immutable List.
18:40 Skarsnik m: my List of Int $a = 1..4;
18:40 camelia rakudo-moar 2fac93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hbxDSAzydz␤List cannot be parameterized␤at /tmp/hbxDSAzydz:1␤------> 3my List of Int7⏏5 $a = 1..4;␤»
18:41 Skarsnik you can't type your list at all them x)
18:41 zwu Sakrsnik, m: my List of Int $a = 1..4; the output is List cannot be parameterized
18:42 PerlJam zwu: generally, if you want to make specific types like that, you'll want to use a scalar $thingy.  Using @ and % have other implications about your type
18:44 zwu PerlJam, so for a list, I can not use the @ sigil to the variable?
18:44 PerlJam zwu: if you bind it, sure.
18:45 zwu you are right, bind works.
18:45 Zoffix Hm. Any idea how to have a filehandle that receives both $*OUT and $*ERR?
18:45 PerlJam "receives"?
18:46 Zoffix IO::Handle that is
18:46 MadcapJake when you run --gen-moar and --gen-nqp, where are those files placed inside the rakudo directory?
18:46 gfldex docs.perl6.org is stalled again: Generated on 2016-01-06T01:01:32.633373Z
18:46 gfldex can i see the build logs somewhere?
18:46 masukomi joined #perl6
18:47 Zoffix PerlJam, yeah, basically I have this code that captures $*OUT and $*ERR into separate variables. I want to have a third variable with both of those: https://gist.github.com/zoff​ixznet/468cde2b29e869b8c687
18:47 [Coke] gfldex: do have sudo on hack? (I do, checking now...)
18:48 gfldex [Coke]: i do not
18:48 Zoffix gfldex, http://doc.perl6.org/build-log/
18:48 [Coke] btw, checking the logs doesn't help because there's a bug in the log script that wipes the log if there's overlap.
18:48 [Coke] Zoffix: that only tells you about builds that worked. :)
18:49 Zoffix ah :)
18:49 [Coke] (or that failed in the past)
18:49 Juerd It seems /^A/ had much more brokenness than /^C/ on RC.
18:49 Zoffix "Method 'lc' not found for invocant of class 'Any'  in block  at ./htmlify.p6 line 432"
18:49 masukomi .ask brrt is it currently possible to create a stand-alone executable for *nix system ?
18:49 yoleaux masukomi: I'll pass your message to brrt.
18:49 [Coke] Zoffix: what did you invoke with?
18:49 Zoffix Oh god, did I break it
18:49 Zoffix [Coke], that's from http://doc.perl6.org/build-log/​build-2016-01-07T14:10+0000.log
18:50 Zoffix Is this the right way to create an index thing? https://github.com/perl6/doc/commit/d9​305216e0dd3c1b8bf6a5961946eb9884d6cdfe
18:50 Juerd "This type cannot unbox to a native integer" is LTA. *Which* type?
18:51 Zoffix Maybe that's what breaks the build script
18:51 vendethiel joined #perl6
18:51 [Coke] no, the last run says there's nothing to do.
18:51 Juerd http://rosettacode.org/wiki/Co​lour_pinstripe/Display#Perl_6
18:51 Zoffix hm
18:51 [Coke] ... and the last commit is a merge commit... last time we had issues, it was when I cherry picked an old commit.
18:51 [Coke] I think it's depending on not just sha1, but also timestamps at some point.
18:52 dalek doc: d55cfb7 | coke++ | doc/Language/modules.pod:
18:52 dalek doc: remove trailing whitespace
18:52 dalek doc: review: https://github.com/perl6/doc/commit/d55cfb7c60
18:52 [Coke] let's see if that kickstarts it.
18:53 Skarsnik Juerd, use Color;? x)
18:54 Juerd Skarsnik: ?
18:54 Zoffix ?
18:54 dalek doc: 331e65d | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
18:54 dalek doc: fix headings in Hash
18:54 dalek doc: review: https://github.com/perl6/doc/commit/331e65d739
18:54 dalek doc: 53e217f | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
18:54 dalek doc: Merge pull request #326 from gfldex/master
18:54 dalek doc:
18:54 dalek doc: fix headings in Hash
18:54 dalek doc: review: https://github.com/perl6/doc/commit/53e217f763
18:54 yurivish joined #perl6
18:55 Juerd @rosettacode.grep(/^C/)[^30] done. Quitting for today.
18:55 Zoffix Juerd++
18:55 lizmat Juerd++
18:55 [Coke] a doc build is going...
18:55 [Coke] ... and it's immediately hit with another pull request. arglebargle.
18:55 Juerd Now to do some work for a client. In Perl 5. Head's going to hurt from switching.
18:55 [Coke] so this may die in five minutes again when the cronjob hits.
18:57 dalek rakudo/nom: d979b5c | lizmat++ | src/core/Rakudo/Internals.pm:
18:57 dalek rakudo/nom: Appears returning Empty is handier for run()
18:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d979b5c419
18:57 dalek rakudo/nom: 07a021b | lizmat++ | src/core/CompUnit/PrecompilationRepository.pm:
18:57 dalek rakudo/nom: Lazily initialize $lle once per process
18:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/07a021b4e0
18:57 dalek rakudo/nom: c4fc775 | lizmat++ | src/core/Rakudo/Internals.pm:
18:57 dalek rakudo/nom: Introduce Rakudo::Internals.PRECOMP-EXT/TARGET
18:57 dalek rakudo/nom:
18:57 dalek rakudo/nom: So we don't have to create an expensive $*VM object just to find out
18:57 dalek rakudo/nom: something that is basically static for a build of the system.
18:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c4fc7759ff
18:57 dalek rakudo/nom: a84d4ed | lizmat++ | src/core/CompUnit/ (3 files):
18:57 dalek rakudo/nom: Use Rakudo::Internals.PRECOMP-EXT/TARGET
18:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a84d4ed0dc
18:58 Juerd "taking the best from languages like Ruby, Go, Perl 6 and JavaScript"  https://github.com/trizen/sidef/wiki
18:58 lizmat good to see Perl 6 being an inspiration :-)
18:59 Zoffix \o/
18:59 Juerd It actually does look like a mix of those languages
18:59 [Coke] yup, looks like it died again.
19:00 mspo oftl: I don't think you generated a file named /.html
19:00 mspo Zoffix: ^
19:00 Hotkeys er
19:00 Hotkeys where does panda get put with rakudobrew
19:00 Hotkeys I need to stick it on my path
19:00 mst Hotkeys: uhh
19:00 Hotkeys because it isn't there apparently
19:00 lnrdo_ joined #perl6
19:00 mst Hotkeys: you added rakudobrew's bin dir to your PATH right?
19:00 mspo Zoffix: and .?.html is definitely problematic since '?' is the end of the url :)
19:00 Hotkeys yeah
19:01 mst Hotkeys: if you run 'rakduobrew build-panda'
19:01 Zoffix Hotkeys, panda is /home/zoffix/.rakudobrew/bin/panda
19:01 Hotkeys oh
19:01 mst Hotkeys: panda will turn up in the bin/ dir
19:01 Hotkeys I did without the space
19:01 zwu m: my $a='a'; my $b='b', $c='c';  # create list or array, my $list = ($a, $b, $c), $list[0] = 0; say $a; my @arr =  $a, $b, $c; @arr[0] = 1; say $a;  the $list[0] seems share the content with $a,  , the $arr seems it copied the content from $a, managing it's own content.
19:01 Hotkeys er
19:01 camelia rakudo-moar 2fac93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KPPeNlaj2x␤Variable '$c' is not declared␤at /tmp/KPPeNlaj2x:1␤------> 3my $a='a'; my $b='b', 7⏏5$c='c';  # create list or array, my $lis␤»
19:01 Hotkeys with the spae
19:01 Hotkeys insteadof hyphen
19:02 Hotkeys oh oops my rakudobrew was out of date
19:03 Zoffix mspo, right, the generation script needs to do-something-smarter();
19:03 Zoffix mspo, I'd even say: we need to have a dynamic app instead of some build thing :)
19:03 Hotkeys should i panda install Readline or Linenoise?
19:04 Hotkeys is one better than the other?
19:04 Hotkeys p6 repl is telling me I should get one of them
19:05 dalek doc: 838a43d | coke++ | doc/Language/control.pod:
19:05 dalek doc: remove trailing whitespace
19:05 dalek doc: review: https://github.com/perl6/doc/commit/838a43d882
19:05 * [Coke] tries again.
19:06 zwu updated to show the list and array difference (looks like list is sharing the data, and array is copying the data) in this code m: my $a = 'a'; my $b='b'; my $list = ($a, $b); $list[0] = 'list'; say $a; my $arr = $a, $b; $arr[0] = 'array'; say $a;
19:07 hoelzro Hotkeys: Readline supports more standard keybindings, but Linenoise has tab completion
19:07 hoelzro Readline also *may* be broken
19:07 hoelzro but I DrForr++ fixed it
19:08 mohae joined #perl6
19:08 RabidGravy I thought readline did tab completion too, or just not implemented
19:08 hoelzro RabidGravy: just NYI
19:09 hoelzro because we need to figure out how to get a Perl 6 module to be able to assign a Perl 6 code object to a C function pointer via NC
19:09 zwu do we have a doc about passing value or reference (container?) in list or array creation?
19:10 gfldex zwu: the best we have is https://doc.perl6.org/language/containers
19:10 Zoffix Solved my "have a thing contain both $*OUT and $*ERR" with this: https://gist.github.com/zoff​ixznet/8f9675bc3fb3cf8ef0c7
19:11 zwu gfldex: thanks!
19:11 RabidGravy we so need to get an arrays and list page going, unless someone else jumps in I'll start something tomorrow when I've finished this module
19:13 gfldex is there something like Metamodel::ClassHOW for subs?
19:13 RabidGravy well, the thing itself is an object
19:14 RabidGravy m: sub foo() {};  say &foo.WHAT
19:14 camelia rakudo-moar a84d4e: OUTPUT«(Sub)␤»
19:14 RabidGravy m: sub foo() {};  say &foo.HOW
19:14 camelia rakudo-moar a84d4e: OUTPUT«Perl6::Metamodel::ClassHOW.new␤»
19:14 gfldex i would like to declare a new declarator (and tie it to a trait)
19:14 uvtc joined #perl6
19:14 dalek rakudo/nom: 25481dd | lizmat++ | src/core/CompUnit/ (3 files):
19:14 dalek rakudo/nom: Some micro-opts
19:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/25481ddda7
19:14 RabidGravy explain "new declarator" ? :)
19:15 gfldex see https://github.com/jnthn/oo-monitors​/blob/master/lib/OO/Monitors.pm#L90
19:15 PerlJam RabidGravy: instead of "sub foo",  he wants "something-else foo"
19:16 RabidGravy ah no, it's only sufficiently class like things that you can do that with
19:16 skids RabidGravy: I'll help doc lists/array, if I start something before you do I'll yoleaux you
19:16 RabidGravy skids++
19:16 flussence Bailador cheats by making foo a normal string, and something-else a sub defined elsewhere
19:17 masukomi joined #perl6
19:19 P6Test joined #perl6
19:19 gfldex please don't say "macro is the answer". I'm happy to see my head not spinning wildly atm.
19:20 PerlJam gfldex: macro will be *an* answer at some point in the future  ;)
19:21 tadzik mst: eyy, thanks!
19:22 ChoHag joined #perl6
19:22 skids gfldex: I believe the corresponding code in oo-Actors mixes a role into the resulting actor, which -- is what traits do?
19:22 ChoHag Can I mock a subclass with Test::Class?
19:22 ChoHag Also З Різдвом.
19:22 ChoHag ... with Test::Mock?
19:24 * Zoffix wishes this was configurable: https://github.com/rakudo/raku​do/blob/nom/lib/Test.pm6#L520
19:25 ChoHag Wow. proclaim is a deceptively large function.
19:25 RabidGravy gfldex, I think the src/Perl6/Metamodel/EXPORTHOW.nqp gives all the things that can be superceded with EXPORTHOW::SUPERCEDE, the things with -attr can also be thinged with foo-attr in DECLARE
19:26 lizmat Zoffix: how ?
19:26 ChoHag Having briefly scanned Test.pm6 I assumed it was a glorified 'say'.
19:26 Zoffix lizmat, dynamic vars?
19:27 lizmat well, possibly, but what do you want to configure?
19:27 Zoffix lizmat, basically, I have a Test module that uses Test.pm6, but I want the file/line reference the file/line of where the user of my module is using the test. Right now I'm getting: https://gist.github.com/zoff​ixznet/7b5b40899b9f1edda5b7
19:27 ChoHag m: my $foo = class Foo { }; class Bar is Foo { }
19:27 camelia rakudo-moar a84d4e: ( no output )
19:27 lizmat ah yes, if you have a patch, I'll gladly accept it (probably :-)
19:27 Zoffix It references /home/zoffix/Desktop/CPANPRC/perl6-​Test-Output/lib/Test/Output.pm6:31, but the actual test is on /home/zoffix/Desktop/CPANPRC/per​l6-Test-Output/t/01-stdout.t:28
19:28 ChoHag m: my $foo = class Foo { }; class Bar is $foo { }
19:28 camelia rakudo-moar a84d4e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hH_Pv0_Stt␤Invalid name␤at /tmp/hH_Pv0_Stt:1␤------> 3my $foo = class Foo { }; class Bar is7⏏5 $foo { }␤»
19:28 ChoHag That one. Why does that one not work. Is is a compile-time only directive? How do I make it otherwise?
19:29 dalek rakudo/nom: ed6ec7a | lizmat++ | src/core/CompUnit/RepositoryRegistry.pm:
19:29 dalek rakudo/nom: Remove something that doesn't work anymore
19:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ed6ec7ad6c
19:29 RabidGravy m:  constant Batty  = class Foo { }; class Bar is Batty { }
19:29 camelia rakudo-moar a84d4e: ( no output )
19:29 Gruber joined #perl6
19:30 El_Che Today, the fosdem mails to the speakers are going out. People here planning on attending
19:30 El_Che perl5 and perl6 allaround :)
19:30 [particle]1 joined #perl6
19:31 ChoHag That's fine, but $foo is not Foo but mocked(Foo), using Test::Mock.
19:31 tadzik I'm surprised to see the "Perl 6 is killing Perl 5" still going strong :|
19:31 mattp__ joined #perl6
19:32 lizmat tadzik: did you actually read xdg's blog post ?
19:32 spider-mario joined #perl6
19:32 mephinet- joined #perl6
19:32 ChoHag tadzik: Well perl 5 should try adapting to modern development methodologies.
19:32 ChoHag Oh it did, and they called it perl 6...
19:32 lizmat tadzik: I think the post is rather more refined than that
19:32 El_Che tadzik: why? I haven't that many negative posts
19:32 tadzik lizmat: no, I only saw the twitter
19:32 El_Che haven't seen
19:32 lucasb ChoHag: I think declarative you can't create a class like that, but maybe programmatically (using the MOP) you can. (someone correct me if I'm wrong)
19:33 tadzik https://twitter.com/OvidPer​l/status/685009540979412992 this convo
19:33 RabidGravy yes you can
19:33 lizmat http://www.dagolden.com/index.php/2589​/perl-5-and-perl-6-are-mortal-enemies/  # tadzik: then I suggest you actually read it :-)
19:33 tadzik thanks, will do :)
19:33 ChoHag Bollocks.
19:33 tadzik I didn't know there is one :)
19:33 ChoHag Perl 5 and perl 6 are mortal enemies in the same way the Welsh and the Scottish are mortal enemies.
19:33 ChoHag ie. They are until the English show up.
19:33 mspo Zoffix: even getting all of those characters seen is going to be tough
19:33 siriu5b_ joined #perl6
19:33 siriu5b_ joined #perl6
19:33 gregf joined #perl6
19:33 lucasb RabidGravy: do you mean something like 'class C is generate-some-class() {}' ?
19:33 chewie_2082 joined #perl6
19:35 ChoHag But please ignore me. I'm enjoying my second round of Christmas Spirits, and they're a lot of fun.
19:35 abraxxa joined #perl6
19:35 mort96_ joined #perl6
19:35 mspo Zoffix: I have a solution for .*, though ;)
19:35 tadzik lizmat: alright, I see more now. His twitter tweets made it seem like he's negative about the whole thing
19:35 perigrin ChoHag: I'm going to assume that Perl5 are the scottish in this analogy because they're enemies with _everyone_ until the English show up.
19:35 lizmat tadzik: worried would be a better description, I think
19:35 ChoHag Sounds about right.
19:36 mst and then the english paid the scots to fight the other scots
19:36 El_Che tadzik: his twitter remarks are indeed very different than his post
19:36 ChoHag Let's not talk about what happens when the French get involved.
19:36 mspo Zoffix: .. is weird because I can't tell if the browser is changing the paths or what
19:36 El_Che tadzik: probably his post was after he calmed down
19:36 ilbelkyr_ joined #perl6
19:36 tadzik possibly
19:36 ChoHag lucasb: Using the MOP is too much for now.
19:36 mspo Zoffix: http://www.gothamunion.com/foo/.*
19:37 flussence mspo: I think .. gets special treatment on *both* sides...
19:37 Cabanoss- joined #perl6
19:37 hacst_ joined #perl6
19:37 mspo flussence: yeah it's nasty
19:37 ChoHag So curse you. I finally got my child to give me some coding space and then you go and tell me what I want to do can't be done (in my current mental state).
19:37 * El_Che will try to by a police baton before FOSDEM. If perl 5 and 6 devs don't get along, they get the stick
19:38 perigrin ChoHag: one of my favorite days in Scotland was walking to the office when the 6 Nations final was playing in town. The English vs the French. If the English won then Scotland had enough points to take the cup. If the French won then ... well the English lost and that was reason enough to celebrate.
19:38 vike1 joined #perl6
19:38 perigrin They turned up in _droves_
19:38 roguelazer_ joined #perl6
19:38 flussence mspo: yep, just tested it on one of my own servers via curl. It interprets it specially up to $document_root.
19:38 Quom__ joined #perl6
19:38 ChoHag I can't think of a more Scottish occasion that that.
19:39 RabidGravy lucasb, at this point I would probably go in with " my $class = Metamodel::ClassHOW.new_type(name => $class_name); $class.^add_parent($other-class); $class.^compose;"
19:39 TimToady well, land area is much more of a zero-sum game than computer languages, unless you live in Hawaii
19:39 ChoHag TimToady++
19:39 Zoffix joined #perl6
19:39 ChoHag I don't get why people get so wound up about this stuff.
19:40 RabidGravy or the Isle of Wight
19:40 ChoHag I think PHP is just about the worst language since INTERCAL, but my derision is not making it go anywhere.
19:40 perigrin ChoHag: the question isn't about quality of the language
19:40 ugexe joined #perl6
19:40 vendethiel ChoHag: then you havn't seen many languages ;-)
19:40 ChoHag Even Ruby and Python have finally irreversibly forced themselves onto my servers.
19:40 abraxxa Skarsnik: i've rewritten 99-common.pl6 as Test::DBDish and it works fine
19:41 petercommand joined #perl6
19:41 ChoHag And they're both just perl-lite.
19:41 Skarsnik Wow nice
19:41 abraxxa pushing in a moment
19:41 mspo Zoffix: https://gist.github.com/mspo​rleder/1bf264c3e5e8e3939586
19:41 lostinfog joined #perl6
19:41 abraxxa was quite easy
19:41 ChoHag Where lite means things I'm not allowed to say.
19:41 raydiak joined #perl6
19:42 TimToady thank you for keeping this a relatively PG-rated channel :)
19:42 [Coke] ok, the crontab for generating docs is:
19:42 [Coke] */5     *       *       *       * flock -n ~/update.lock -c ./doc/util/update-and-sync > update.log 2>&1
19:43 AW3i joined #perl6
19:43 Zoffix mspo, that still doesn't solve the fact that / is an invalid filename character on *nix and thus our / and // operators do not have a generated page.
19:43 Zoffix The issue is in what makes those pages, not in how Apache is displaying them
19:43 Skarsnik should it be the url encoded name?
19:43 Skarsnik for stuff like that?
19:43 Zoffix That's what I proposed an hour or so ago.
19:43 Zoffix I don't know if that catches all the "bad" characters tho
19:44 ChoHag It should be saved as %2f
19:44 ChoHag %-escaping, whatever RFC it's described in, was basically created to export unix filesystsems over HTTP.
19:44 lucasb every time I try to click on a build.log file the doc site, my browser asks me if I want to download. can someone configure some plain text header for that? or maybe change the extension to .txt ?
19:44 Zoffix nope, it doesn't
19:45 Zoffix . is not encoded, so we'd still have issue with ".."
19:45 mspo Zoffix: well it's both since apache won't serve .. without .html
19:45 flussence Zoffix: maybe the pages should be named "&infix:<..>"
19:46 ChoHag In terms of *creating* urls, there are two characters which need to be escaped - / and \000.
19:46 ChoHag Everything else is a valid filename.
19:46 perigrin & isn't valid in a URL.
19:46 mspo a ? is difficult too
19:46 perigrin or rather they're both interpreted specially
19:46 perigrin also #
19:46 perigrin :)
19:46 mspo # indeed
19:47 lucasb also "%" itself :D
19:47 ChoHag The point is, there needs to be a url-to-filename conversion.
19:47 mspo is % an issue?
19:47 flussence I thought & was only special after the ?, and even then only when the server-side code parses it that way
19:47 ChoHag What happens when there's two files called %26 and & is the next problem.
19:47 Zoffix lucasb, done
19:48 advwp joined #perl6
19:48 lucasb Zoffix: what did you do? :)
19:48 ChoHag flussence: Technically, I think that's the case.
19:48 lucasb *exactly
19:48 Zoffix lucasb, RE: <lucasb> every time I try to click on a build.log file the doc site,
19:48 mspo http://www.gothamunion.com/foo/&amp;
19:48 ChoHag In the second part of a url, ie. after the proto://server/, only the ? is special. After the ?, all bets are off.
19:49 [Coke] the goal for those file names should be to have a web app, not a generated site, IMO.
19:49 ChoHag That's the rule of thumb I live by, anyway.
19:49 mspo ChoHag: # is also special
19:49 muraiki joined #perl6
19:49 ChoHag mspo: In the path-part of a URL?
19:49 lucasb firefox still asks me if I want to download those .log files, but now apache listing shows a text icon for then. maybe it's that Content-disposition header, idk
19:49 mspo ChoHag: it ends the path part, just like ?
19:49 ChoHag Well typical.
19:50 M-matthew1 joined #perl6
19:50 mspo ChoHag: that's why so many javascript-powered sites are foo.com/#s=hithere
19:50 ChoHag Oh yes it does. Anchors.
19:50 mspo like this one: https://www.google.com/#q=hithere
19:50 Zoffix lucasb, which file are you viewing exactly?
19:50 perigrin ChoHag: http://www.rfc-editor.org/rfc/rfc1738.txt is probably useful :)
19:50 lucasb Zoffix: for example: http://doc.perl6.org/build-log/​build-2016-01-07T19:10+0000.log
19:50 flussence lucasb: might be a stale browser cache?
19:51 flussence it's sending that as text/plain for me...
19:51 lucasb flussence: nope, tried ctrl-R and ctrl-f5 to refresh and still happens :)
19:51 ChoHag Anyway, the doc generator _must_ generate %XX files, to accomodate /, so because / isn't the only filename unix can't handle there needs to be both a means of determining which pages to generate with html-encoding and which not, and a means of determining what to do when both escaped and non-escaped files are present.
19:52 perigrin mspo: that's because everything after the # isn't sent to the server (in most browsers) so the server can send a single (massive) application to handle all the routing locally.
19:52 Zoffix lucasb, this is all the headers that get sent. It should display it in-browser: https://gist.github.com/zoff​ixznet/c08368a67246fad659cb . You may have told your browser to always download .log files (Preferences->Applications)
19:52 perigrin but tht can be cached locally too
19:52 mspo I think the pages themselves need to url-encode links when they are rendered/generated
19:52 mspo perigrin: yes
19:52 * RabidGravy wonders why someone has sent me a PR for JSON::Infer to s/JSON::Fast/JSON::Tiny/ without any further explanation
19:53 lucasb Zoffix, flussence: ok, I'll take a look at my browsers setting. It was just a minor thing anyway, I can save to disk and read after this. Thanks, Zoffix++!
19:54 ChoHag perigrin: I know that doc. I just ... it's Christmas.
19:54 [Coke] Zoffix++ (line 432, should have listened to you. :)
19:54 ChoHag I'm on bottle no. 3.
19:54 perigrin It's nearly three kings day
19:54 Zoffix heh
19:55 hankache joined #perl6
19:55 ChoHag З Різдвом Український!
19:56 [Coke] ah, I think Zoffix might'a borked the build.
19:56 hankache hello *
19:57 [Coke] (inadvertently)
19:57 ChoHag If the question is still relevant/interesting, I suggest encoding a list of chars (starting with </ ? & #>) on the filesystem and the incoming URL, and simply 404ing on any other combination.
19:57 Zoffix :(
19:57 Zoffix [Coke], when?
19:57 [Coke] with d9305216e0dd3c1b8bf6a5961946eb9884d6cdfe
19:57 gfldex hankache: i wonder if the intro should talk about hash adverbs
19:57 [Coke] testing a fix...
19:57 ChoHag If someone tries requesting %3x (<) or forcing a # into the GET line, sod 'em.
19:58 pmqs joined #perl6
19:58 Zoffix Yeah, that was my original hunch
19:58 ChoHag Make the list of escaped/ing characters adjustable and we're golden.
19:58 hankache gfldex hash adverbs?
19:59 [Coke] nope, still broken, doing a bisect..
19:59 gfldex m: my %h = a => 1; say so %h<a>:exists; # hankache
19:59 camelia rakudo-moar ed6ec7: OUTPUT«True␤»
20:00 leat joined #perl6
20:00 hankache gfldex ah ok.
20:00 hankache gfldex why not then
20:00 yurivish joined #perl6
20:02 [Coke] (crontab, rebuilds, doc) I was basically searching for something based on what I expected to be failing originally. bad coke, no donut.
20:02 hankache gfldex the problem is i don't know them.
20:02 hankache gfldex I know :D :U for scalars
20:02 hankache gfldex what adverbs can I use for hashes ?
20:03 lucasb talking about happy faces...
20:03 lucasb m: Hash.push; Hash.append; say 'hi'
20:03 camelia rakudo-moar ed6ec7: OUTPUT«hi␤»
20:03 gfldex hankache: :k - key, :v - value, :p - pair, :exists - key exists
20:03 lucasb ^^ Hash could use some happy faces there
20:04 ChoHag Well that's my solitary hour of coding wasted.
20:04 ChoHag Time for bed.
20:04 Zoffix \o
20:04 lichtkind_ o/
20:04 hankache gfldex thanks
20:06 hankache gfldex i think we need to talk about all adverbs
20:06 dalek doc: 7f0e077 | coke++ | doc/Language/modules.pod:
20:06 dalek doc: Revert "Add index flag for EXPORT"
20:06 dalek doc:
20:06 dalek doc: This reverts commit d9305216e0dd3c1b8bf6a5961946eb9884d6cdfe.
20:06 dalek doc:
20:06 dalek doc: This breaks the build.
20:06 dalek doc: review: https://github.com/perl6/doc/commit/7f0e077b67
20:06 [Coke] ^^ Zoffix I tried to make it look like the others there by changing it to X<|EXPORT> but that failed differently.
20:06 [Coke] so I reverted it. doc site should be updated in about 90m. :|
20:07 hankache gfldex i am just wondering if we do it in a separate section called adverbs, or write about each adverb in its relevant section ?
20:07 M-eternaleye joined #perl6
20:08 El_Che there should certainly be an adverb chapter in the tutorials
20:08 hoelzro agreed
20:08 gfldex hankache: it's an intro after all, i would go light on it
20:10 hankache gfldex indeed.
20:10 El_Che I still find them sowhat strange :)
20:11 El_Che are there other languages out there that use adverbs?
20:11 hankache gfldex if you have something in mind feel free to send a PR
20:12 [Coke] We should have some sort of status page for when cronjobs are failing unexpectedly.
20:12 lucasb not exactly adverbs, but the idea can be somewhat simliar to keywords in Common Lisp/Clojure and Symbols in ruby
20:13 RabidGravy "X::IO::Mkdir exception produced no message", er that's special
20:14 TimToady see S02:Adverbial_Pair_forms for a general pair syntax discussion, some of which is actually true
20:14 RabidGravy ah, bad programmer no cookie
20:14 yqt joined #perl6
20:15 hankache hiya TimToady
20:16 FROGGS tadzik: when I bootstrap panda, shouldnt it install its deps too?
20:17 tadzik FROGGS: it should
20:17 FROGGS tadzik: does not work when I bootstrap panda in my star hackery
20:17 FROGGS and I wonder why
20:17 tadzik huh
20:18 M-matthew1 joined #perl6
20:18 pmqs Hey folks quick question. If $fh is an open filehandle should I be able to read a block at a time like this?  for $fh.read(1024) -> $block { say $block.elems }
20:18 pmqs it seem to read a byte at a time
20:20 FROGGS pmqs: is $block a string or a buf?
20:20 TimToady m: for $*IN.read(1024) -> $block { say $block.elems }
20:20 camelia rakudo-moar ed6ec7: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1​␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1​␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤…»
20:20 FROGGS m: for $*IN.read(1024) -> $block { say $block; last }
20:20 camelia rakudo-moar ed6ec7: OUTPUT«67␤»
20:20 diakopter m: for $*IN.read(Inf) -> $block { say $block.elems }
20:20 camelia rakudo-moar ed6ec7: OUTPUT«This type cannot unbox to a native integer␤  in block <unit> at /tmp/LIbR96dgyM line 1␤␤»
20:21 nine FROGGS: #perl6-toolchain in case you're interested
20:21 pmqs froggs: didn't declare $block it at all, so whatever it default to I suppose
20:21 diakopter m: for $*IN.read(99**99) -> $block { say $block.elems }
20:21 camelia rakudo-moar ed6ec7: OUTPUT«Cannot unbox 657 bit wide bigint into native integer␤  in block <unit> at /tmp/j3rBHDmWne line 1␤␤»
20:21 diakopter m: for $*IN.read(9**99) -> $block { say $block.elems }
20:21 camelia rakudo-moar ed6ec7: OUTPUT«Cannot unbox 314 bit wide bigint into native integer␤  in block <unit> at /tmp/DInU0RZe9Q line 1␤␤»
20:21 diakopter m: for $*IN.read(9**9) -> $block { say $block.elems }
20:21 camelia rakudo-moar ed6ec7: OUTPUT«Out of range: attempted to read 387420489 bytes from filehandle␤  in block <unit> at /tmp/K8OnoRXr_q line 1␤␤»
20:21 diakopter sigh
20:21 M-eternaleye joined #perl6
20:22 RabidGravy I thought it was more
20:22 FROGGS pmqs: dunno why it gets a byte at a time...
20:23 RabidGravy m: while not $*IN.eof { say $*IN.read(1024) }
20:23 camelia rakudo-moar ed6ec7: OUTPUT«Buf[uint8]:0x<43 c3 a9 61 64 20 73 6c c3 a1 6e 20 61 67 20 73 6c c3 a9 69 62 68 74 65 20 6d 61 6f 72 67 61 20 43 68 6f 6e 74 61 65 20 44 68 c3 ba 6e 20 6e 61 20 6e 47 61 6c 6c 0a 41 67 75 73 20 64 68 c3 a1 20 63 68 c3 a9 61 64 20 73 6c c3 a1 6e 20 61 67 20…»
20:23 TimToady perhaps the handle needs to be set to 'binary' somehow
20:24 TimToady I think used to force a binary interpretation of a filehandle, but maybe that broke
20:24 TimToady *read used to
20:25 pmqs also with a file containing "abcdefg", if I run this for $fh.read(1024) -> $block { say $block }
20:25 pmqs I get
20:25 pmqs 97
20:25 pmqs 98
20:25 pmqs 99
20:25 pmqs 100
20:25 pmqs 101
20:25 pmqs 102
20:25 pmqs 103
20:26 Zoffix pmqs, how do you open that file?
20:26 Zoffix pmqs, try adding :bin to it
20:26 pmqs already has :bin
20:26 pmqs my $fh = open($filename, :r, :bin);
20:26 [Tux] lizmat, https://github.com/Tux/CSV/commit/54f​4a965e283a91052a16fa3de18b2469705b038
20:26 [Tux] All tests successful.
20:26 [Tux] Files=27, Tests=22028, 36 wallclock secs ( 2.94 usr  0.15 sys + 87.87 cusr  1.76 csys = 92.72 CPU)
20:27 RabidGravy I just assumed read didn't work like that, you just read while you haven't got eof
20:27 Zoffix pmqs, no idea. it's likely be a bug
20:27 Zoffix huggable, rakudobug
20:27 huggable Zoffix, rakudobug@perl.org or use perl6 query on http://rt.perl.org ; see https://github.com/rakudo/rakudo/#reporting-bugs
20:27 RabidGravy it clearly doesn't just get 1 byte as evidenced above
20:28 RabidGravy it's something that the foar is doing
20:28 RabidGravy for
20:28 Zoffix Ah
20:28 pmqs I'll raise an issue to track it
20:29 nige1 joined #perl6
20:29 Zoffix m: my $x = Blob.new: |^10; for $x -> $y { say $y }
20:29 RabidGravy pmqs, in the meanwhile    "while not $fh.eof { my $block = $fh.read(1024) }"  definitely works as expected
20:29 camelia rakudo-moar ed6ec7: OUTPUT«Blob:0x<00 01 02 03 04 05 06 07 08 09>␤»
20:30 pmqs radidgravy: yes, eof is what I'm using as a workaround
20:30 TimToady m: for ($*IN.read(1024),) -> $block { say $block.WHAT }
20:30 camelia rakudo-moar ed6ec7: OUTPUT«(Buf[uint8])␤»
20:30 TimToady it's calling .list on the buf
20:30 RabidGravy ha!
20:30 pmqs aaah
20:30 [Tux] csv-ip5xs        50000    17.818    17.704
20:30 [Tux] test             50000    23.087    22.972
20:30 [Tux] test-t           50000    12.462    12.348
20:30 [Tux] csv-parser       50000    51.424    51.309
20:31 diakopter boy that 50000 number is pretty constant!
20:31 Zoffix :)
20:31 [Tux] 50000 is just an indication of correctness: the total number of fields parsed
20:32 lizmat [Tux]++
20:32 [Tux] 12.462 however is pretty neat
20:32 TimToady m: while $*IN.read(1024) -> $block { say $block.WHAT }
20:32 camelia rakudo-moar ed6ec7: OUTPUT«(Buf[uint8])␤(Buf[uint8])␤»
20:32 TimToady m: while $*IN.read(1024) -> $block { say $block.WHAT }
20:32 camelia rakudo-moar ed6ec7: OUTPUT«(Buf[uint8])␤(Buf[uint8])␤»
20:33 TimToady just use while instead of for
20:35 RabidGravy TimToady++ :)
20:35 TimToady let's see, how could we make that sentence more confusing...we already have 'use', 'while', 'of', and 'for' keywords, now we just need to make 'just' and 'instead' mean something
20:35 luiz_lha joined #perl6
20:35 RabidGravy works for me
20:36 Zoffix m: sub foo ($name = &?ROUTINE){ say $name.^methods }; foo
20:36 camelia rakudo-moar ed6ec7: OUTPUT«(<anon> <anon> <anon> <anon> <anon> <anon> arity count signature outer static_id file line of returns ACCEPTS Str new)␤»
20:36 pmqs while is better
20:36 Zoffix m: sub foo ($name = &?ROUTINE){ say $name.name }; foo
20:36 camelia rakudo-moar ed6ec7: OUTPUT«␤»
20:36 Zoffix How come name is callable even though it's not in that ^methods list?
20:36 iml_ joined #perl6
20:36 RabidGravy role Weirder {};  my Int $a = 1 just Weirder;
20:36 Zoffix And nother question: how can I get the name of my sub?
20:36 FROGGS Zoffix: &?ROUTINE.name
20:36 TimToady m: sub foo ($name = &?ROUTINE){ say $name.^methods(:all) }; foo
20:36 camelia rakudo-moar ed6ec7: OUTPUT«(<anon> <anon> <anon> <anon> <anon> <anon> arity count signature outer static_id file line of returns ACCEPTS Str new Method+{<anon|77435888>}.new Method+{<anon|77435888>}.new Method+{<anon|77435888>}.new iterator Method+{<anon|77435888>}.new Method+{<anon…»
20:37 RabidGravy that's a use for 'just'
20:37 Zoffix m: sub foo ($name = &?ROUTINE){ say &?ROUTINE.name }; foo
20:37 camelia rakudo-moar ed6ec7: OUTPUT«foo␤»
20:37 Zoffix Ah, you just can't use it in a sig
20:37 M-eternaleye joined #perl6
20:37 Zoffix (or rather, it has a different value)
20:38 TimToady arguably a buglet
20:38 [Coke] ah, travis already had perl6/doc figured out. :|
20:38 * Zoffix reports it
20:38 leont joined #perl6
20:39 RabidGravy stick a trait_mod:sym<just> in the grammar and we're good
20:39 TimToady make 'just' an alias to 'only', and 'instead' and alias to 'supersede'
20:41 Zoffix Done: https://rt.perl.org/Ticket/Display.html?id=127203
20:41 dalek doc: 68ae004 | coke++ | .travis.yml:
20:41 dalek doc: Notify IRC channel when build breaks.
20:41 dalek doc: review: https://github.com/perl6/doc/commit/68ae004e48
20:42 TEttinger joined #perl6
20:44 Zoffix m: sub foo (|c) { bar 52, @|c}; sub bar (Str $z, Int $one, Str $two) {say "$z $one $two"}; foo (42, "43")
20:44 camelia rakudo-moar ed6ec7: OUTPUT«Too few positionals passed; expected 3 arguments but got 2␤  in sub bar at /tmp/Gi9Zsr39ix line 1␤  in sub foo at /tmp/Gi9Zsr39ix line 1␤  in block <unit> at /tmp/Gi9Zsr39ix line 1␤␤»
20:44 Zoffix hm
20:45 uvtc Is it a primary goal moving forward to keep the Synopses up to date with Roast (future versions of the language (6.d, 6.e, etc.))?
20:46 * diakopter doubts it. probably the Programming Perl monograph will continue that tradition, leaving Synopses to rot with the Apocalypses and Exegeses
20:46 diakopter *Programming Perl 6
20:46 Zoffix How do I use the |c thing?
20:47 MadcapJake anyone know where --gen-nqp and --gen-moar place the binaries? I'm in a unique OS (Solus Project) and make install only seems to install perl6 binaries (not moar/nqp ones)
20:48 diakopter should've been in teh same place as prefix
20:48 uvtc thanks, diakopter.
20:48 alpha123 MadcapJake: if it's not /usr/local/bin or equivalent then something weird happened
20:48 yurivis__ joined #perl6
20:48 Zoffix m: sub foo (|c) { bar "42", |c}; sub bar (Str $z, Int $one, Str $two) {say "$z $one $two"}; foo (42, "43")
20:48 camelia rakudo-moar ed6ec7: OUTPUT«Too few positionals passed; expected 3 arguments but got 2␤  in sub bar at /tmp/QIIQBzLemb line 1␤  in sub foo at /tmp/QIIQBzLemb line 1␤  in block <unit> at /tmp/QIIQBzLemb line 1␤␤»
20:48 MadcapJake alpha123, yeah something weird happened then :P
20:49 Zoffix Seems this should work based on what I see here, but it doesn't https://github.com/rakudo/rakudo​/blob/nom/src/core/Cool.pm#L106
20:49 MadcapJake i think my best bet would be to *not* specify a prefix and just move them all by hand
20:50 travis-ci joined #perl6
20:50 travis-ci Doc build errored. Will "Coke" Coleda 'Notify IRC channel when build breaks.'
20:50 travis-ci https://travis-ci.org/perl6/doc/builds/100913518 https://github.com/perl6/doc/com​pare/7f0e077b6760...68ae004e48b3
20:50 travis-ci left #perl6
20:50 diakopter giggle
20:51 uvtc diakopter: re. a Programming Perl 6 book. Has there been any public movement on that?
20:51 * diakopter kicks TimToady
20:51 * TimToady kicks back
20:51 pmqs created #127204 to the fh.read issue
20:51 * TimToady has a start on a book, when he's not kicking back
20:53 TimToady its current state is an outline plus a number of chapter intros
20:53 colomon TimToady++
20:53 uvtc TimToady: ooh! »ö« Thanks.
20:53 diakopter are you using quotes from the Fire and Ice series this time? or Hunger Games? or Harry Potter?
20:54 TimToady the only example so far is a program that prints out the 12 Days of Christmas lyrics
20:54 uvtc I always thought HHGttG went well with Perl. (Maybe more Perl 5 than 6 though?)
20:55 TimToady what will 7-year-old girls be watching next year?
20:56 hankache no idea
20:56 TimToady that's about when we want to get them interested in programming
20:56 hankache kim kardashian?
20:56 hankache :(
20:56 diakopter instagram, twitter, vine, facebook video snippets. attention span = less than a second
20:56 uvtc Aside: my 13yo daughter doesn't program, but loves the Perl 6 logo.
20:57 hankache yeah camelia is a great logo
20:57 Util m: my $foo = 3; if $foo = 4 { say 'overwrote!' }; say $foo;
20:57 camelia rakudo-moar ed6ec7: OUTPUT«overwrote!␤4␤»
20:57 Util In Perl 5, with warnings enabled, I would have been warned:
20:57 TimToady we have to get both boys and girls interested before it becomes all hormone related
20:57 Util Found = in conditional, should be == at ...
20:57 Util Rakudo does not give this warning. Is this just NYI, or deliberate?
20:58 flussence m: say '🙋🗺' # we're already twitter-compliant :D
20:58 camelia rakudo-moar ed6ec7: OUTPUT«🙋🗺␤»
20:58 TimToady deliberate
20:58 diakopter I would think it should warn if it's a constant being assigned, but not otherwise
20:58 diakopter non-True constant
20:58 ribasushi joined #perl6
20:59 diakopter *True constant
20:59 diakopter ribasushi: I saw you in Hamburg!
20:59 TimToady yes, we could warn if the RHS is constant
20:59 Util TimToady: The lack of warning surprised me. I am following up for a member of Atlanta.pm, who was bitten by this change during early Perl 6 experimenting.
21:01 uvtc I see that `some-method $x: 1` is the same as `$x.some-method(1)`. Is this "indirect method call syntax"? Not complaining, but what is the rationale for that?
21:01 uvtc Or, appears to be the same as.
21:01 * TimToady finds the spurious warning to be irritating on something like: while $this = getnextone() { ... }
21:01 TimToady though there's less excuse for that construct in Perl 6 than in Perl 5
21:02 TimToady since we can write: while getnextone() -> $this { ... }
21:02 Util TimToady: but you have given us: while getnextone() -> $this { ... }
21:02 Util (out-typed!)
21:02 TimToady otoh, what if you want the final $this after the loop?
21:03 TimToady and the failure mode of 'always true' is usually pretty obvious
21:03 muraiki I thought I remembered there being some variable that's an implicit state variable in every sub call. does anyone know what this is? or maybe I'm hallucinating
21:03 TimToady so I tend to approach this one from the side of "don't rule out valid code"
21:03 Util 'always false' looks obvious too
21:04 FROGGS muraiki: $ ?
21:05 TimToady but there's not a single "implicit state variable", you can have as many anonymous state variables as you like
21:05 muraiki m: sub foo {$.say}; foo(); foo();
21:05 camelia rakudo-moar ed6ec7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4Cl197cd1M␤Variable $.say used where no 'self' is available␤at /tmp/4Cl197cd1M:1␤------> 3sub foo {$.say7⏏5}; foo(); foo();␤    expecting any of:␤        term␤»
21:05 muraiki hmm
21:05 Util +1 on "don't rule out valid code".   "warn if the RHS is constant" would catch many errors.
21:05 TimToady use ($).say for that
21:05 muraiki thanks!
21:05 TimToady but you'll get Any
21:05 Zoffix Is there anything wrong with this line? I'm getting "Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏is'" even though my small testcase works https://gist.github.com/zoffixznet/6a95​6467679815dcfe44#file-perl6-pm6-L6-L65
21:05 Zoffix m: use Test; my $sub = 'is'; &::($sub)(␤42,␤ 43)
21:05 camelia rakudo-moar ed6ec7: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/Y75547GXb0 line 1␤# expected: '43'␤#      got: '42'␤»
21:06 muraiki m: sub foo {($++).say}; foo(); foo();
21:06 camelia rakudo-moar ed6ec7: OUTPUT«0␤1␤»
21:06 TimToady Zoffix: shell quoting?
21:06 uvtc Ok. Found a little about it just under <https://design.perl6.org/S12.html#Methods>; "indirect object notation". Is it just for improved readability in some cases?
21:06 M-Illandan joined #perl6
21:06 bpetering joined #perl6
21:06 Zoffix TimToady, huh?
21:07 TimToady well, I just saw the single quotes, so I wondered
21:07 Zoffix No, it's a test file with this in it: output-is { say 42; note 'warning!'; say "After warning"; }, "42\nwarning!\nAfter warning\n";
21:07 mst /msg tony-o please do make sure to join us in #perl6-toolchain
21:07 Zoffix That I run as perl6 t/01-stdout.t
21:07 mst gah
21:07 mst there
21:07 Zoffix mst, lulzyan00b :P
21:07 Zoffix mst, also: xchat
21:07 Zoffix ^_^
21:08 mst Zoffix: eat an entire http://trout.me.uk/hopper.jpg
21:08 Zoffix >_<
21:09 [Coke] http://nerdist.com/fisher-price-code-a-pi​llar-teaches-preschoolers-how-to-program/
21:10 atweiden joined #perl6
21:11 Zoffix Oooop
21:11 Zoffix *ooooh
21:11 Zoffix m: 'foo' == 42
21:11 camelia rakudo-moar ed6ec7: OUTPUT«WARNINGS for /tmp/yY5LfBJctM:␤Useless use of "==" in expression "'foo' == 42" in sink context (line 1)␤Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5foo' (indicated by ⏏)␤  in block <unit> at /tmp/y…»
21:11 Zoffix m: say so 'foo' == 42
21:11 camelia rakudo-moar ed6ec7: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5foo' (indicated by ⏏)␤  in block <unit> at /tmp/TMnTe4ubGR line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/TMnTe4ubGR line 1␤␤»
21:11 skids uvtc: Indirect object notation is mainly a readability thing, and if you don't have it you'll get constant questions like "why can I call say 1, 2 but not .map: { ... }" from users of a few other languages.
21:11 Zoffix ^ that's my error
21:11 masak "I can't think of a scenario where Perl 6 grows *and* Perl 5 grows." -- that, in my mind, sums up http://www.dagolden.com/index.php/2589​/perl-5-and-perl-6-are-mortal-enemies/ quite well
21:12 masak dagolden is unable to imagine a thing, and he wrote a post about that
21:12 Zoffix masak, that's a good summary.
21:13 bpetering masak: my thoughts exactly, and I'm happy you're already on it
21:13 lichkind rakudobrw no version set, what does that mean?
21:14 bpetering I have enough thoughts (and polemic) for a full-length rebuttal, but it may be more beneficial coming from someone with a higher profile
21:15 skids to be fair I think he probably meant something more like no such scenario seems likely according to his ability to estimate.
21:15 Zoffix But I can give a different summary: "Perl 5 is in trouble and I'm afraid Perl 6 will make it worse"
21:16 bpetering Zoffix: that sounds about right
21:16 uvtc skids, thanks, sounds good, though I don't get your example. I'm also trying to understand what the [colon on the *inside*](https://github.com/perl6/roast/blob/mas​ter/S12-methods/indirect_notation.t#L44) means).
21:16 PerlJam you guys should all write your own post "rebutting" his thought experiment
21:16 PerlJam :)
21:17 TimToady I dunno, sometimes these things are just a distraction
21:17 Juerd masak: I'm similarly unable to imagine the same thing but I no longer really care.
21:17 FROGGS uvtc: the colon is (as elsewhere) the invocant marker
21:17 abraxxa Skarsnik: can you give a quick guide what I need to do to run the PostgreSQL tests?
21:17 masak my likely scenario: many Perl 5 people will largely ignore Perl 6, or be slightly annoyed by it. a very small amount of people will try Perl 6 and write blogs saying "hey, Perl 6 is not teh sux". Perl 6 will putter ahead along some trajectory. so will Perl 5.
21:17 TimToady .oO(Someone is wrong about Perl 6 on the Internet!)
21:18 Skarsnik abraxxa, no idea, look at the travis.yml?
21:18 Zoffix PerlJam, I don't have a rebuttal :)
21:18 masak there, I imagined a non-zero-sum game. wasn't hard.
21:18 Juerd I will probably forever remain convinced that it "would have been" better to rename Perl 6. But it's there now, and I love it regardless of its name :)
21:18 dalek rakudo/nom: 023b6c3 | lizmat++ | src/core/CompUnit/RepositoryRegistry.pm:
21:18 dalek rakudo/nom: We no longer support config files
21:18 dalek rakudo/nom:
21:18 dalek rakudo/nom: So we don't need to check for it
21:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/023b6c3571
21:18 skids uvtc: as far as the example, often you do something like $mylist .= grep: { big multiline block it would such to have to remember to put a parenthesis after }
21:18 Zoffix masak, that ignores the fact that P5 is in trouble :D
21:18 bpetering TimToady: fair, and I have an XKCD in my head :o)
21:18 FROGGS uvtc: so, a(b: c) compiles to b.a(c)
21:18 TimToady we'd've had many more fights before now if we'd named it something else, in my estimation
21:19 Zoffix TimToady, agreed. And confusion too... "It's FooBarBer... also, it used to be named Perl 6"
21:19 Juerd Zoffix: Well, "they" could rewrite the entire language to fix those issues. Oh, wait. :P
21:19 TimToady and it wouldn't change the fact that I'm basically leading people away from Perl 5
21:19 TimToady (gently)
21:19 domidumont joined #perl6
21:19 masak Zoffix: there's a difference between "Perl 5 will not evolve significantly" (probably true) and "Perl 5 will stop being useful to many people" (likely false)
21:19 PerlJam Zoffix: neither do I.  I don't think there's anything to rebut really.  (You can't really debug other people's brains)
21:19 Juerd TimToady: It doesn't matter anymore, anyway :)
21:19 abraxxa Skarsnik: LOL. just reading README.Debian.gz and the first line goes: PostgreSQL is the successor to Postgres95, which in turn succeeded POSTGRES.
21:20 abraxxa and I think: WTF 9.4 is the successor of 9.5 which was just released?
21:20 TimToady besides Perl already has an entry in the OED, and I didn't want to waste it :)
21:20 uvtc skids: Ah, interesting (re the `.=` usage). Thanks.
21:20 Juerd masak: I heard too many hackers talk about efforts to remove Perl [5] from standard Linux distributions, after the anti-Perl talk at 32C3
21:20 Skarsnik POSTGRES is an old thing probably x)
21:20 Juerd masak: If this happens, Perl 5 is dead.
21:20 Zoffix masak, there's a difference between "being useful" and "requiring a screenful of `use` statements to be useful"
21:20 bpetering TimToady: that's the best argument I've heard :)
21:21 dalek rakudo/nom: f1dd491 | lizmat++ | src/core/CompUnit/RepositoryRegistry.pm:
21:21 dalek rakudo/nom: Fix one %*ENV straggler
21:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1dd491324
21:21 masak Juerd: "anti-Perl talk at 32C3"? this is news to me.
21:21 Juerd TimToady: Haha. Nice one :)
21:21 uvtc FROGGS: Ah, ok. Thanks! Will have to try some examples to find the cases where it reads better that way.
21:21 bpetering anyway, I probably won't write about this, I'd rather get the ecosystem X% closer to people getting paid for Perl 6 work
21:21 Juerd masak: Titled "Perl Jam 2", after the 2014 talk "Perl Jam". Both are a bunch of FUD with very little substance, but to an audience that increasingly doesn't know Perl, it all sounds very scary.
21:22 masak Zoffix: "screenful of `use` statements" is an argument against Perl 5, yes. but a weak and largely self-defeating one. those `use` statements are largely of modules from CPAN, honed to perfection to solve people's problems and keep Perl 5 relevant.
21:22 Skarsnik bpetering, I kind of break your PR in GPTrixie x)
21:22 bpetering Juerd: that CCC talk was a whole bunch of bullshit
21:22 iml_ joined #perl6
21:22 TimToady Now is not the time to let the bastards start wearing us down.  :)
21:22 masak who's being worn down? :)
21:23 masak I'm just worning up! :D
21:23 bpetering TimToady: yes. enough politicking, more hacking!
21:23 * masak .oO( this is your final worning )
21:23 Juerd This time the speaker actually did find a dangerous thing in the language itself, namely the whole ARGV thing with 2-arg open. There's a workaround in recent Perls but that doesn't fix the language because the insecure stuff is still there, still enabled by default, easier to type, in numerous documents, and in numerous programs. But an entire talk, with "STOP USING PERL" as the main message (screenshots of that slide were retweeted probably more than ...
21:23 geraud joined #perl6
21:23 21WAAQAFP joined #perl6
21:23 Juerd ... TimToady's Perl 6 announcement), about a single security issue, seems a bit much.
21:24 Juerd bpetering: There was this one non-bullshit thing, but that real problem didn't get the attention it deserved, because he kept ranting about actual bullshit.
21:24 bpetering Skarsnik: that's fine, I offer it in the spirit of "maybe you were going to write this eventually"
21:24 Skarsnik Yes It was planned x)
21:24 Juerd TimToady: If now is not the time, then when is? ;)
21:24 skids uvtc: the "meth obj: args" form is documented http://design.perl6.org/S03.html#Invocant_marker and it is basically sugar for the fp oriented AFAICT.
21:24 Zoffix masak, it's not a weak argument if (a) Language XYZ already provides that stuff without `use` statements; and most importantly (b) where there's a gazillion of modules to choose from and it's hard to make a correct choice. Especially when the author may turn out to be insane
21:25 Juerd Zoffix: I like insane authors
21:25 skids uvtc: seems to visually violate the non-exported barrier but oh well.
21:25 masak yes, it's a weak argument. I'd rather take Perl 5's dozen `use` statements over Java's feeble inexpressivity or C++'s crazy syntax and semantics.
21:26 sivoais strcat(3) still exists in C. Source of buffer overflows. Guess we should all stop using C. (All this assumes we don't have linters.)
21:26 thzre joined #perl6
21:26 Zoffix masak, but what about Perl 6?
21:26 masak all languages have weaknesses. you can complain that you have to keep a boilerplate header of 12 `use` statements, but there's worse than that.
21:26 masak Zoffix: I prefer to code in Perl 6, if that's what you're asking.
21:27 masak I wouldn't argue against Perl 5 by complaining against all the things you can `use` in it ;)
21:27 M-eternaleye joined #perl6
21:27 masak complaining about*
21:27 Zoffix heh
21:27 Juerd masak: About this hypothetical boilerplate, I find that I usually have no more than about 5 or 6 use statements, excluding strict and warnings.
21:28 masak *nod*
21:28 Skarsnik bpetering, on a bright side, it's 50 times faster on some part x)
21:28 uvtc skids: thanks for the link!
21:28 masak Juerd: clearly you're not tchrist, then :P
21:28 Juerd But then, I do write my own sub read_file { local (@ARGV, $/) = shift; <> } instead of use File::Slurp qw(read_file);
21:28 Zoffix which is broken
21:29 Juerd Which one is?
21:29 Zoffix the module
21:29 masak Juerd: see this answer: http://stackoverflow.com/a/6163129
21:29 bpetering Skarsnik: nice work :) it's already speeding up my nativecall stuff sooo much
21:29 Juerd Again?
21:29 mst masak: plus my Import::Into module makes it trivial to turn it into a single use statement
21:29 Juerd Glad I don't use it much then :)
21:29 skids uvtc: BTW it is out of date and could use a "port" over to docs/ but http://www.perlfoundation.​org/perl6/index.cgi?witch can find such links for you pretty well.
21:29 masak mst: ooh, nice
21:29 bpetering sivoais: yeah, that seemed to be the speaker's argument
21:29 mst masak: Zoffix has written such things using it :)
21:30 Zoffix :)
21:30 Juerd masak: Oh my, I thought *I* was picky about encodings.
21:30 Juerd I don't use most of the unicode features though
21:30 leont Juerd: I wrote File::Slurper because File::Slurp is pretty much unfixable
21:31 uvtc skids: nice
21:31 yurivish joined #perl6
21:32 bpetering Juerd: anyone I've read who knows anything about perl, at all, was quite unimpressed by that guy, legitimate security issues aside
21:33 leont Juerd: http://blogs.perl.org/users/leon_timmermans​/2015/08/fileslurp-is-broken-and-wrong.html
21:33 Juerd leont: I started reading that blog post just before you mentioned it directly :)
21:34 bpetering Skarsnik: out of curiosity, why "gptrixie"? I can't relate that to any concepts around FFI or nativecall or binding :o)
21:34 Juerd bpetering: Yes. But do consider that only a tiny minority of the audience actually knows anything about Perl.
21:34 bpetering Juerd: that's pretty unimpressive for CCC
21:34 Zoffix bpetering, couldn't think of a name, so name it after a pony in My Little Pony
21:35 Juerd bpetering: There are actually thousands of people now who really believe that Perl should never be used.
21:35 Skarsnik Well she is a magical unicorn and the program does magic stuff to have NC code!
21:35 Zoffix :D
21:35 Juerd bpetering: And at these conferences, they hugely outnumber the people who've ever used Perl.
21:35 bpetering Hahahaha.... that fits with camelia, I guess?
21:35 abraxxa Skarsnik: pg testing works now too
21:36 bpetering Juerd: I don't respect security types who aren't fluent in at least one language that was created before they were born
21:37 PerlJam bpetering: english?  ;)
21:38 bpetering PerlJam: only if you're Kevin Mitnick :P
21:39 bpetering This is getting... odd. Do I really have to go research my little pony now to verify this?
21:40 Skarsnik Verify what? x)
21:40 FROGGS ***ALL*** - just made an RC0 of rakudo star, as of today's codebase: http://froggs.de/perl6/raku​do-star-2016.01-RC0.tar.gz
21:40 Zoffix LTA error
21:40 Zoffix m: sub foo ( $x where { any <foo bar> }, $y { where 42 } ) { };
21:40 camelia rakudo-moar f1dd49: OUTPUT«5===SORRY!5===␤Expression needs parens to avoid gobbling block␤at /tmp/zGERsntt2y:1␤------> 3sub foo ( $x where { any <foo bar> }7⏏5, $y { where 42 } ) { };␤Missing block (apparently claimed by expression)␤at /tmp/zGERsntt2y:1␤------>…»
21:40 Zoffix m: sub foo ( $x where { 42 }, $y { where 42 } ) { };
21:40 camelia rakudo-moar f1dd49: OUTPUT«5===SORRY!5===␤Expression needs parens to avoid gobbling block␤at /tmp/gSOsYvX4uK:1␤------> 3sub foo ( $x where { 42 }7⏏5, $y { where 42 } ) { };␤Missing block (apparently claimed by expression)␤at /tmp/gSOsYvX4uK:1␤------> 3sub foo …»
21:41 * bpetering closes eyes, thinks of England, Googles...
21:41 Juerd bpetering: The point that I was trying to get across, is that not what you and I think, or what the collective Perl community thinks, will determine Perl [5]'s fate.
21:41 FROGGS ***ALL*** - please test it and report bugs to the rakudo/star repository, but keep in mind it is an RC0, so dont update your production servers just now
21:41 Juerd bpetering: It's what most people think, that will eventually determine the outcome.
21:42 Zoffix Reported: https://rt.perl.org/Ticket/Display.html?id=127205
21:43 Juerd But I personally have already given up on thinking Perl 5 has a future. I'll continue to use it for all the reasons that I've always had for using it, none of which have to do with things like still having a job 10 years from now.
21:44 Juerd And when Perl 6 performs better and a great version of a nice compiler is distributed by Debian, I'll definitely use it for work stuff.
21:44 Juerd Considering the impressive progress that it's made, I'm convinced that the great minds here will eventually make this happen :)
21:45 leont Juerd: I wish I was more optimistic than you are, but I'm not really :-/
21:45 bpetering Juerd: I'm pretty much in the same boat. Perl 5 is great, but there's a reason Perl 6 started in the first place
21:46 Juerd leont: Then still in the worst possible case, where Perl 6 doesn't gain momentum outside our current community, it will influence future languages.
21:46 bpetering Juerd: I for one would be a very happy camper to get to use Perl 6 professionally
21:46 [Coke] FROGGS: thank you so much for putting that out there.
21:47 woolfy joined #perl6
21:47 Juerd leont: It's a language that just can't be ignored. The compiler? Sure, you can ignore that and just never use Perl 6. But anyone who's serious about programming language design will have to look at Perl 6 and will definitely copy parts of its design.
21:47 FROGGS [Coke]: and it feels weird how small the patches were
21:47 bpetering masak: regarding this stuff, I have some thoughts about a killer app for Perl 6
21:47 woolfy left #perl6
21:47 leont Agreed. Benefiting from the headstart is the challenge though.
21:49 uvtc left #perl6
21:49 Zoffix A killer app? What, does it have a gun? XD
21:49 bpetering Zoffix: a hyper
21:50 Juerd All we need to do is make Perl 6 perform very well and rewrite Mediawiki. Everyone wants a replacement for it. :)
21:50 bpetering Juerd: that sounds like a decent idea
21:50 RabidGravy I think someone needs to write a mailing list manager, then we'll know the language has arrived
21:50 bpetering RabidGravy: Zawinski's law? :)
21:51 Juerd RabidGravy: Not just 'a' mailing list manager.
21:51 PerlJam .oO( All we need to do is make Perl 6 perform very well on problems that have yet to be realized )
21:51 Guest82811 joined #perl6
21:51 AW3i joined #perl6
21:51 avenj joined #perl6
21:51 khw joined #perl6
21:51 vividsnow joined #perl6
21:51 brabo joined #perl6
21:51 solarbunny joined #perl6
21:51 pnu joined #perl6
21:51 nowan joined #perl6
21:51 RabidGravy oh wait, no sorry, someone has to say "I think there should be a mailing list manager" and everyone else has to bike shed it to death
21:51 RabidGravy ;-)
21:51 Juerd PerlJam: Well, if we can make it perform well on contrived benchmarks that's a very good start :)
21:52 Juerd PerlJam: Thus far it's hard to even come up with something where Perl 6 will shine in terms of CPU or memory usage.
21:52 Zoffix PerlJam++
21:52 Juerd But surely this must be a matter of time
21:52 RabidGravy every once in this while I have this weird idea about implementing MoarVM on an FPGA
21:52 [Coke] ok, that last doc failure was a red herring, rebuilt on travis, it seems fine. At least now we'll get a warning when something breaks the build going forward.
21:52 dalek star/release: 4e8a9f9 | FROGGS++ | tools/star/Makefile:
21:52 dalek star/release: sine we bootstrap panda, we dont fake its state
21:52 dalek star/release: review: https://github.com/rakudo/star/commit/4e8a9f9cbc
21:52 Zoffix [Coke]++
21:52 PerlJam Juerd: I think so too.
21:52 bpetering Juerd: nativecall bindings get you performant code, sysadmin people will appreciate this
21:53 [Coke] (note that travis takes about 25m for a build to succeed, compared to 70-80 on hack, but that's probably because we're pygmentizing)
21:53 bpetering Juerd: that's where my immediate efforts are going
21:53 Juerd bpetering: Great!
21:53 bpetering BTW, in my immediate hit list are (in order) libsodium, libgit2, libssh
21:53 bpetering If anyone has ideas, let me know
21:53 atweiden bpetering: argon2
21:54 Juerd Yesterday I tried to figure out if I could write a faster stringifier for tommath. Python's is very fast. But it turns out I severely lack skill and knowledge to even understand the current code bases sufficiently :)
21:54 Juerd I did find that Python has a special and optimized case for base 10 integers.
21:55 Juerd bpetering: I'd really love to see an SSL variant of IO::Socket::Async
21:55 leont SSL is a mess, no matter how you implement it :-(
21:55 bpetering Juerd: i appreciated your investigation regardless, and I'm in a similar position regarding Rakudo/Moar internals
21:55 TimToady yes, it's possible to do much better than repeated division when you have a base that is related to 8 and 2
21:55 Juerd leont: Yes, but it needs to be done, and I can't do it :(
21:55 bpetering Juerd: I'll keep that in mind, but it sure won't be OpenSSL
21:55 mspo Juerd: linux distros should remove perl from base
21:55 Juerd TimToady: They do use repeated division, but apparently by 10**something
21:56 FROGGS bpetering: we've got OpenSSL bindings already, no?
21:56 mspo and python and the rest of the things they include and refuse to update
21:56 Skarsnik gnutls is not a replacement for openssl lib?
21:56 lucasb joined #perl6
21:56 Juerd mspo: Sorry, I can't hear you. The line seems to be breaking up. Do you hear that digital noise in the background too?
21:56 Zoffix mspo, and what would power all the system tools?
21:56 leont gnutls is just as bad, if not worse, from what I've seen
21:56 Juerd Zoffix: sh of course
21:57 mspo indeed, the shell
21:57 leont libtomcrypt has all primitives one could need for an ssl library, I've wondered how hard it would be to write an ssl library on top of it.
21:57 perigrin Zoffix: obviously they should all be written in Go.
21:57 mspo or awk (which gets fewer updates)
21:57 * perigrin hides.
21:57 Zoffix :D
21:57 bpetering atweiden: that looks nice, I'll see what I can do
21:57 Juerd bpetering: I don't really care about which ssl library will be used. They all suck :)
21:57 lucasb hey, so... the rakudo star is called 2016.01... but it'll ship with rakudo 2015.12 ?
21:58 bpetering FROGGS: I think so, but OpenSSL arguably provides negative security
21:58 Juerd lucasb: My new clock came with expired batteries. So I guess one month is okayish :)
21:58 bpetering FROGGS: it's difficult to put effort into that
21:58 FROGGS lucasb: it is a release candidate of today's rakudo... both 2016.01 and 2015.12 are basically wrong, so dont take the seriously
21:58 RabidGravy can someone write me a time machine, I may want to go and alter the minds of the person who designed the Unix file permissions, testing this is a royal pain
21:58 FROGGS bpetering: true
21:58 lucasb rakudo is all wrong /o\
21:59 TimToady no, just those two release, on average they're fine :)
21:59 lucasb FROGGS++, just kidding. thanks for looking after the star release
21:59 FROGGS lucasb: no, just the RC I made between to compiler releases :o)
21:59 RabidGravy everything is wrong
21:59 mspo RabidGravy: can you think of a better one?
21:59 RabidGravy but FROGGS++
22:00 lucasb I just think it's interesting that rakudo star 2016.01 will ship *before* the rakudo compiler 2016.01
22:00 FROGGS lucasb: it wont
22:00 RabidGravy mspo, no, it fits nicely in 16 bits
22:00 lucasb ahhh, you will wait
22:00 FROGGS lucasb: star 2016.01 will come afterwards
22:00 FROGGS I just wann get feedback as early as I can
22:01 lucasb moarvm updated libuv, but no nqp bump took place. I guess this will be delayed?
22:01 TimToady I thought that was just in a branch...
22:01 muraiki I don't suppose there's any shorthand for @*ARGS[0], is there? heh
22:02 lucasb TimToady: it got merged in moarvm master, I think
22:02 Juerd muraiki: You can unpack @*ARGS in the signature of a sub MAIN
22:02 muraiki Juerd: yeah, I'm playing code golf so that would be longer, haha
22:03 Juerd OH wow
22:03 Juerd It comes with a "Usage: ..." error message
22:03 Juerd ♥ ♥ ♥
22:03 Juerd This will save so much time
22:03 skids .oO(all the people pidgeon gave greenish username colors are all talking at once.)
22:03 muraiki yeah, the stuff main() does is great
22:04 Juerd Even Bool :$foo does exactly what I would want it to do
22:04 bpetering "gptrixie" ~~ "Great and Powerful Trixie" ahhh
22:04 TimToady what it doesn't do well yet is subcommands
22:04 muraiki it's still super awesome though :)
22:05 skids ...and legacy style flags for emulation, but that could be a module.
22:06 gfldex we don't really expain sub MAIN in the docs
22:06 leont It's also useful to make MAIN a multi, specially with subcommands
22:07 leont I use this in my scripts for example for a --help option: http://paste.scsys.co.uk/504088
22:08 leont It turns the script's POD into text, and displays that to the user
22:08 leont (I'd love to see a Pod::To::ANSI or some such)
22:09 [Coke] FROGGS: please don't cut a star release that isn' 2015.12
22:09 Util TimToady, diakopter: Thanks! Bug filed at https://rt.perl.org/Public/​Bug/Display.html?id=127206
22:10 [Coke] if I'm reading backscroll correctly.
22:10 FROGGS [Coke]: nine and lizmat suggested that we are going to skip a 2015.12 star
22:11 FROGGS [Coke]: otherwise we would have to make a point release
22:11 bpetering Skipping makes sense to me, FWIW
22:11 lucasb leont: I saw in Pod::To::Text's source that it can work together with Terminal::ANSIColor. but idk who it looks like and if that's what you meant.
22:11 lucasb *idk how
22:12 FROGGS gnight #perl6
22:12 [Coke] ok, so it'll eventually be based on the 2016.01 release? That's fine. But we have lots of decisions to make before then in terms of what goes into that release. (FYI)
22:12 Zoffix night
22:13 [Coke] FROGGS++ for trying to get that going.
22:13 FROGGS [Coke]: sure (discussions)
22:13 leont lucasb: Nice! That must be new then. It depending on an environmental variable is stupid though.
22:14 raiph joined #perl6
22:14 nine Good night all!
22:14 lizmat gnight nine
22:15 * [Coke] wanders away from the keyboard.
22:17 geraud joined #perl6
22:22 muraiki is there a way to insert a string into a regex in order to create a regex dynamically? something like ('abc', 'def').map: rx/<[$_]>/
22:22 * masak suppresses the urge to do an over-the-top snarky RT of the "mortal enemies" tweet
22:22 dalek doc: 2da299a | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod:
22:22 dalek doc: begin docing sub MAIN
22:22 dalek doc: review: https://github.com/perl6/doc/commit/2da299ab5a
22:22 dalek doc: 42d74b4 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod:
22:22 dalek doc: Merge pull request #327 from gfldex/master
22:22 dalek doc:
22:22 dalek doc: begin docing sub MAIN
22:22 dalek doc: review: https://github.com/perl6/doc/commit/42d74b474e
22:22 Zoffix muraiki, definitely is, but I don't know what it is
22:23 muraiki Zoffix: yeah, I figure there must be a way, but I don't know how T_T
22:23 masak muraiki: you're almost there
22:23 masak muraiki: just need the braces for the .map
22:23 Zoffix really? 0.o
22:24 abraxxa Skarsnik: MySQL works as well
22:24 Zoffix m: my $foo = 'a* bc'; say so 'aaabc' ~~ /$foo/
22:24 camelia rakudo-moar f1dd49: OUTPUT«False␤»
22:24 masak m: say so "abc" ~~ $_ for <abc def>.map({ rx/<$_>/ })
22:24 camelia rakudo-moar f1dd49: OUTPUT«True␤False␤»
22:24 lucasb but... he wants to create a char-class <[abc]> or wants to match the string 'abc'?
22:24 masak muraiki: like that.
22:24 Zoffix masak, hm, how to make it consider special regex chars tho?
22:24 muraiki masak: ah I see, thanks
22:25 masak Zoffix: by magic.
22:25 Skarsnik abraxxa, if that make the whole test thing less messy, it's cool x)
22:25 Zoffix :(
22:25 abraxxa Skarsnik: i'm trying to get the current tests working first so I know I don't break something
22:25 masak Zoffix: actually, the `<$str>` version basically parses $str into a regex, compiling it.
22:25 gfldex Zoffix: that would require the regexp to be recompiled
22:25 abraxxa SQLite works as well
22:25 masak Zoffix: does that answer your question?
22:26 Zoffix m: my $foo = 'a* bc'; say so 'aaabc' ~~ /<$foo>/
22:26 camelia rakudo-moar f1dd49: OUTPUT«True␤»
22:26 Zoffix masak, yes, thanks
22:26 abraxxa mysql is missing null handling
22:26 abraxxa just fixed that in Pg
22:26 masak Zoffix: sorry I said "magic" ;)
22:26 Zoffix :)
22:26 mcmillhj joined #perl6
22:26 masak I meant "through a very boring, predictable process"
22:26 Skarsnik You can add test for pgarray if you are willing too x)
22:27 Psyche^ joined #perl6
22:28 Zoffix I didn't realize < and > were part of it so in my first test above the special chars didn't take
22:28 abraxxa mst: does mysql differentiate between '' and NULL?
22:28 Zoffix Yes
22:28 masak Zoffix: `<$str>` means "interpolate string (as a regex)", `$str` means "interpolate string (verbatim)"
22:29 abraxxa yes, from the C lib docs: NULL values in the row are indicated by NULL pointers.
22:29 travis-ci joined #perl6
22:29 travis-ci Doc build errored. Wenzel P. P. Peppmeyer 'Merge pull request #327 from gfldex/master
22:29 travis-ci https://travis-ci.org/perl6/doc/builds/100935357 https://github.com/perl6/doc/com​pare/68ae004e48b3...42d74b474ee1
22:29 travis-ci left #perl6
22:29 masak Zoffix: unlike Perl 5, you have to go out of your way a little bit to get the wild and unsafe version
22:29 abraxxa how can I detect this with NativeCall?
22:29 Skarsnik abraxxa, I think you get the NULL type for the field
22:30 abraxxa Skarsnik: AH, thanks
22:30 Skarsnik and Null ptr are Str or Any
22:30 Zoffix masak, that's the most common usecase in my code, so I'm glad :)
22:30 abraxxa which sucks
22:30 lucasb sorry, to repeat this, but just before rakudo 2016.01 ships, it will bump nqp version to use nqp 2016.01. so basically, you're letting for the last day to test the libuv update. that's why I'm asking: can nqp in rakudo be bumped *now*?
22:30 abraxxa because if the column is a float column I want to return a Rat type object so I need to know the type
22:31 Skarsnik ?
22:31 Skarsnik Oh I see
22:31 abraxxa Skarsnik: we've discussed this already and the consensus was to return a type object
22:31 abraxxa but we might need to change that
22:31 Skarsnik for null value?
22:32 abraxxa because you don't know the type in NULL cases for some RDBMSes
22:32 Skarsnik hm wait, you will get the type on the field since it's a function you can call before grabbing the value
22:33 abraxxa in Oracle for example a calculated column which isn't based on a table column does return both zero for the digits before and after the comma
22:33 Skarsnik I think drivers need to tell their features
22:33 lizmat lucasb: is the MOARVM of nqp already bumped ?
22:34 masak m: my $x = q[<$x>]; say so "foo" ~~ / <$x> /
22:34 camelia rakudo-moar f1dd49: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Prohibited regex interpolation (use MONKEY-SEE-NO-EVAL to override,␤but only if you're VERY sure your data contains no injection attacks)␤at /home/camelia/EVAL_0:1␤------> 3anon regex {…»
22:34 Skarsnik especially since I am very tempted to return Date/DateTime object when possible
22:34 Skarsnik since they are some sql type
22:34 muraiki m: @*ARGS=["a"]; say ("ab", "cd").first({@*ARGS ~~ rx/<[$_]>/}, :k)
22:34 camelia rakudo-moar f1dd49: OUTPUT«Nil␤»
22:34 lucasb lizmat: yes, I think moarvm was already bumped in nqp
22:34 masak m: use MONKEY-SEE-NO-EVAL; my $x = q[<$x>]; say so "foo" ~~ / <$x> /
22:35 abraxxa Skarsnik: sure, that's the next step
22:35 lizmat lucasb: also with the gc fix of the past week ?
22:35 camelia rakudo-moar f1dd49: OUTPUT«(timeout)»
22:35 lucasb lizmat: yes, I think it was bumped because of this gc fix
22:35 abraxxa so how can I test if the returned value is a NULL Pointer?
22:35 Skarsnik compare Str or Any
22:35 abraxxa should a Pointer or CPointer type object get returned from NativeCall?
22:35 lizmat [Coke]: you ok with me bumping NQP_REVISION to get the latest Moar ?
22:36 muraiki m: @*ARGS=["a"]; say ("ab", "cd").first({@*ARGS ~~ rx/<[<$_>]>/}, :k)
22:36 camelia rakudo-moar f1dd49: OUTPUT«Nil␤»
22:37 Skarsnik m: my Str $foo; say $foo === Str;
22:37 camelia rakudo-moar f1dd49: OUTPUT«True␤»
22:37 Skarsnik m: my Str $foo; say $foo === Any;
22:37 camelia rakudo-moar f1dd49: OUTPUT«False␤»
22:38 masak muraiki: I'm not sure you can use `<$_>` like that, inside of a char class
22:38 muraiki doh
22:40 gfldex where can i find how rakudo constructs a sub?
22:40 diakopter .... many places ^_^
22:40 gfldex just one will do
22:40 lizmat sub a { }
22:40 lizmat ??
22:41 TimToady mostly src/Perl6/Actions.nqp
22:41 TimToady and src/Perl6/World.nqp
22:41 TimToady with honorable mention going to src/Perl6/Grammar.nqp
22:42 diakopter "here's 4500 LoC"
22:42 abraxxa WTF https://doc.perl6.org/type/Hash#%3Aexists
22:42 abraxxa i can't see the usage of :exists and :p there
22:42 gfldex it's 9559 LoC actually
22:42 TimToady where can I found out how sausage is constructed?
22:43 TimToady where can I find out how laws are made?
22:43 diakopter strictly, the intestines.
22:43 diakopter your favorite, the colon.
22:43 gfldex TimToady: there you go https://en.wikipedia.org/wiki/Main_Page
22:43 abraxxa no, google!
22:44 Zoffix gfldex, rakudo uses nqp BTW
22:44 TimToady .oO(no guts, no glory)
22:44 Zoffix under the hood, maybe that's where you should look
22:44 gfldex i guessed as much
22:44 diakopter the cacophany of noodles
22:44 gfldex found it! https://github.com/rakudo/rakudo/bl​ob/nom/src/Perl6/Actions.nqp#L3267
22:45 _Dave_ Remember, Google returns different results to different people
22:45 TimToady hehe
22:45 lucasb gfldex: https://github.com/perl6/doc/commit/a7​e0056da0ac8bceab438d4ee16e0f7afdc37649  # <-- forgot to add the :exists and :p adverbs?
22:45 diakopter who blogged http://www.dagolden.com/index.php/2589​/perl-5-and-perl-6-are-mortal-enemies/
22:45 lizmat xdg
22:45 Zoffix xdg
22:46 Juerd diakopter: dagolden did
22:46 Zoffix diakopter, https://metacpan.org/author/DAGOLDEN
22:46 RabidGravy xdg done a job on me, now I am a real sickie
22:46 Zoffix *sigh* I'm like a slow kid :)
22:46 Juerd Zoffix: No, your response contains more information so it's only logical that it would take longer :)
22:47 gfldex lucasb: they are there
22:47 abraxxa _Dave_: I use DuckDuckGo anyway
22:47 lucasb gfldex: in the code block?
22:47 _Dave_ me too lol
22:48 gfldex lucasb: you are right
22:48 _Dave_ these days, if I really want to find something I either a) use both or b) endure the geek angst and ask the question anyway
22:48 Juerd I think it's unfortunate that dagolden doesn't allow on-site comments
22:49 RabidGravy that's actually a well balanced blog post compared to a lot of the stuff out there
22:49 gfldex m: my %h = a => 1; dd %h; %h<a>:delete; dd %h
22:49 camelia rakudo-moar f1dd49: OUTPUT«Hash %h = {:a(1)}␤Hash %h = {}␤»
22:49 diakopter I suppose all of those scenarios have already been hashed here
22:50 diakopter but I'm wretchedly averse to take a look at the irc log
22:50 TimToady there was some discussion, yes
22:50 RabidGravy dave golden from what I know of him is not given to dramatics
22:50 Juerd diakopter: What's your take?
22:51 TimToady my suggestion is that overreacting is a more worrisome risk than underreacting
22:52 Juerd Determining the right amount of reacting is hard though :)
22:52 _Dave_ how about pro-acting? :)
22:52 perigrin RabidGravy: he isn't which is why that is better balanced than a lot of the stuff out there :)
22:53 perigrin That doesn't mean he didn't react from the place that a low level Perl + C developer who sees something else that may challenge his ability to get future work doing similar stuff to the work he _currently_ enjoys ... would.
22:53 dalek doc: 2791bbc | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
22:53 dalek doc: fix :exists example
22:53 dalek doc: review: https://github.com/perl6/doc/commit/2791bbce5a
22:53 dalek doc: a124b91 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
22:53 dalek doc: add :delete to Hash
22:53 dalek doc: review: https://github.com/perl6/doc/commit/a124b91bbc
22:53 dalek doc: 409f9ed | (Wenzel P. P. Peppmeyer)++ | /:
22:53 dalek doc: Merge remote-tracking branch 'upstream/master'
22:53 dalek doc: review: https://github.com/perl6/doc/commit/409f9ede06
22:53 dalek doc: fd6293b | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
22:53 dalek doc: Merge pull request #328 from gfldex/master
22:53 dalek doc:
22:53 dalek doc: fix :exists example | add :delete to Hash
22:53 dalek doc: review: https://github.com/perl6/doc/commit/fd6293b5e5
22:53 diakopter Juerd: #2 for 2 more years, #3 for 2 years, then #2 for 4 years, then ... I don't know
22:54 cognominal joined #perl6
22:54 abraxxa Skarsnik: i've pushed all my code changes
22:54 Skarsnik in your fork?
22:55 diakopter I'm not ruling out #1, but not before 6-8 years from now, and not before gigantic shifts occur on modulecounts.com
22:55 abraxxa yes
22:55 abraxxa i hope we can rebase the main repo to it soon
22:56 * hoelzro is pretty ok with #3
22:56 Skarsnik I think a release should be tagged for Star for DBIish
22:56 hoelzro but I wouldn't mind #1 ;)
22:56 gfldex FROGGS: on a non clean install with --prefix=$HOME/local I got:
22:56 gfldex t/spec/S17-lowlevel/lock.t                                  (Wstat: 256 Tests: 23 Failed: 1) Failed test:  15
22:56 Skarsnik before doing even more change on it
22:56 diakopter at some point the lingua franca becomes English, and then maybe French again
22:57 diakopter well. Frankish.
22:57 perigrin diakopter: I don't think you need a gigantic shift, just a single order of magnitude really
22:57 RabidGravy Franglish
22:57 abraxxa Skarsnik: not sure if it's better to delay such large changes
22:57 timotimo "They compete for scarce resources to grow – in the form of volunteers who will contribute time and treasure." - i harshly disagree. a whole lot of contributions have come from people who otherwise weren't interested in perl5 at all
22:57 leont I think all languages that got popular existed for like 5+ years before they did. Java and .Net were a bit younger, but had massive corporate weight behind them.
22:58 timotimo am i wrong in that interpretation?
22:58 lucasb gfldex++, thanks for the doc update.  (only the :p adverb is missing now)
22:58 flussence .oO( modulecounts.com will be seen in a different light once someone figures out having the internet precariously balanced on a million barely-QAed node libraries isn't such a hot idea )
22:58 hoelzro timotimo: I would say that's correct
22:58 leont timotimo: there is some overlap, but it's fairly small
22:58 hoelzro it assumes that everyone working on Perl 6 is a person who would put just as much time and energy into Perl 5 were 6 not to exist
22:59 Skarsnik abraxxa, I am not sure to get your change on 99? did you just rewrite the test?
22:59 Juerd I'll admit that I'd have continued to put energy into Perl 5 if it were not for Perl 6. It is at least partly true.
22:59 perigrin hoelzro, timotimo: not exactly ...
22:59 Juerd Not sure if my involvement with either project makes a difference though :)
22:59 abraxxa Skarsnik: haven't pushed that so far
23:00 timotimo "First, a postulate: given the language similarities, the people that will find it easiest to learn Perl 6 are today's Perl 5 developers."  -  i also disagree harshly with this. i found perl6 nice to learn, but i would never touch perl 5 with a 10-foot-pole from where i stand right now
23:00 PerlJam Juerd: feather made a *huge* difference IMHO  :)
23:00 diakopter timotimo++ I harshly agree with your last
23:00 gfldex lucasb: some day i will get them all right at the same time :)
23:00 hoelzro perigrin: could you elaborate?
23:00 Juerd PerlJam: Thanks. To be honest I already sort of forgot about feather... :)
23:00 diakopter timotimo: you are extremely correct; JavaScript is much closer to Perl 5 than Perl 6 is close to Perl 5
23:00 perigrin hoelzro: I"m not sure it'd be welcome with the harsh disagreements and agreements :)
23:01 hoelzro =)
23:01 hoelzro well, feel free to elaborate if you like; if not, that's ok too
23:02 RabidGravy yeah, I've been doing Perl for 20+ years and I'm sure I'll being doing Perl 5 again in the future, but hey I may be doing Javascript or Erlang in six months if people want to pay me for it
23:02 perigrin hoelzro: suffice it to say I (less harshly) disagree with his postulate but if you take it as axiomatic and then read his statments following less as absolutes than as "tendancies" ...
23:02 Skarsnik abraxxa, I am not fan of Rat for float. Rat seems more complex that just a value with float. I think people use Num for float in lot of case x)
23:02 diakopter I frankly see almost no similarity between Perl 5 and 6, both from implementor's perspective and.... is there another perspective?
23:02 hoelzro perigrin: he eqv xdg?
23:02 perigrin hoelzro: yes.
23:02 abraxxa Skarsnik: it's Perl 6's default
23:02 hoelzro *nod*
23:03 TEttinger I think the people that will find it easiest to learn perl 6 are people who were recently laid off from a polyglot software development job and so have a lot of free time and JUST WISH all those other languages had all their features IN ONE PLACE!
23:03 hoelzro fair point
23:03 perigrin diakopter: I frankly don't think you're in a position to comment accurately anymore than xdg is.
23:03 leont diakopter: I see lots of similarity, but it's mainly on a philosophical level
23:03 Skarsnik my Num $a  = 4.5; say $a;
23:03 * abraxxa digs Perl 6 for async + threading features
23:03 Skarsnik m: my Num $a  = 4.5; say $a;
23:03 camelia rakudo-moar f1dd49: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jtf8eB42cX␤Cannot assign a literal of type Rat (4.5e0) to a variable of type Num. You can declare the variable to be of type Real, or try to coerce the value with 4.5e0.Num or Num(4.5e0), or just write the va…»
23:03 perigrin I'd give leont a better benefit of the doubt than either of you :)
23:03 diakopter perigrin: do you see some similarity between Perl 6 and 5?
23:03 abraxxa m: my $foo = 4.5; say $foo;
23:03 camelia rakudo-moar f1dd49: OUTPUT«4.5␤»
23:03 hoelzro also, I have the bias that I'm looking at the point from the view of someone who has contributed directly to the compiler
23:03 PerlJam diakopter: about 4 characters worth
23:03 PerlJam ;)
23:03 perigrin diakopter: I'm not qualified to comment either ... I don't know perl6 well enough.
23:04 abraxxa m: my $foo = 4.5; say $foo.^name;
23:04 camelia rakudo-moar f1dd49: OUTPUT«Rat␤»
23:04 lucasb diakopter: it's almost like one language has sigils and the doesn't
23:04 abraxxa that's what I mean by default
23:04 hoelzro whereas my P5 core contributions sum to a documentation change and a helper script
23:04 lucasb *the other
23:04 dalek ecosystem: 11089d4 | (Zoffix Znet)++ | META.list:
23:04 dalek ecosystem: Add Test::Output to Ecosystem
23:04 dalek ecosystem:
23:04 dalek ecosystem: Test the output to STDOUT and STDERR your program generates: https://github.com/zoffixznet/perl6-Test-Output
23:04 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/11089d4948
23:04 zwu joined #perl6
23:04 hoelzro thinking about it as mindshare and people working on the ecosystem frames it differently
23:04 abraxxa Skarsnik: but that's something time will tell I guess
23:05 perigrin hoelzro: also is Perl6's current _need_ right now more core hackers?
23:05 diakopter perigrin: you don't think I've contributed enough to implementing Perl 6?
23:05 hoelzro perigrin: not really
23:05 lucasb (I was joking. Of course P5 and P6 has similarities! Otherwise P6 wouldn't call Perl)
23:05 perigrin diakopter: I don't think you've contributed enough to core parts of perl5
23:05 Skarsnik need are in the core and 'basic' module I think
23:06 hoelzro Skarsnik: agreed
23:06 perigrin diakopter: which may be an uninformed opinon on my part.
23:07 Juerd Is there a type for "a number"? Something that will accept Num, Int, Rat, uint8, etc, but not a string?
23:07 leont Numish
23:07 leont I think
23:07 lucasb Numericish
23:07 pdcawley_ joined #perl6
23:07 diakopter perigrin: from *any* perspective, do you see any similarity between Perl 5 and 6?
23:07 leont Numeric?
23:07 Quom__ We certainly have many more modules that are 'translations' from Perl 5, although I wonder if those attempts shouldn't too try to branch out to other languages
23:08 leont m: Numeric $a = 1
23:08 camelia rakudo-moar f1dd49: OUTPUT«5===SORRY!5=== Error while compiling /tmp/W9aMZsrmtH␤Two terms in a row␤at /tmp/W9aMZsrmtH:1␤------> 3Numeric7⏏5 $a = 1␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier␤ …»
23:08 leont m: Numish $a = 1
23:08 camelia rakudo-moar f1dd49: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1y51_BYNcC␤Variable '$a' is not declared␤at /tmp/1y51_BYNcC:1␤------> 3Numish 7⏏5$a = 1␤»
23:08 leont m: my Numeric $a = 1
23:08 camelia rakudo-moar f1dd49: ( no output )
23:08 perigrin diakopter: I see quite a bit from my "haven't really used Perl6 much" standing point. The syntax of both flows from a simlar mind.
23:08 hoelzro Quom__: I think taking inspiration from other languages would be a step in the right direction
23:08 Juerd Numeric. Thanks! :)
23:08 perigrin The object systems (if you accept Moose) are somewhat similar in a cursory way ...
23:08 timotimo leont: Numeric or Real, the former will also accept Complex, but Real will not
23:09 Juerd Oh, I think I want Real.
23:09 Juerd Thank you too
23:09 * leont still thinks Real is the wrong name
23:09 timotimo :)
23:09 timotimo leont: why?
23:09 Quom__ hoelzro: I'm certainly working on P6 related Rust things right now, but I don't know if that will go anywhere… certainly not in the 'translation' direction!
23:09 hoelzro interesting
23:09 lucasb It would be cool if literal numbers were 'polymorphic constants' like in Haskell, this way you would be able to assign an integer-looking literal to Num variables
23:09 leont In many languages, real means float
23:10 Quom__ lucasb: There are some issues related to that still today…
23:10 Quom__ m: my Int $a = Inf
23:10 camelia rakudo-moar f1dd49: OUTPUT«===SORRY!===␤Cannot find method 'value'␤»
23:10 diakopter buggo
23:10 Juerd leont: I'd have liked Num to be called Float, and Real Num, but the language is now out there so it doesn't matter anymore :)
23:10 Quom__ I don't remember what the verdict for that was
23:11 perigrin diakopter: If nothing else I'd argue that p6's objects and Moose are closer than JS and Moose. :)
23:12 * Juerd keeps forgetting "my" when declaring typed variables.
23:12 hoelzro hah, I do that too!
23:12 Juerd I haven't done much C or C++ but apparently this did stick :)
23:12 lucasb well, one could argue that Inf and NaN should only be assignable to Nums. so I think an error 'Cannot assign a literal of type Num to a variable of type Int' would be the right outcome
23:12 * diakopter too
23:12 RabidGravy This beer has been sitting in the kitchen scaring me since before christmas : "Beavertown Moose Fang, Armagnac Barrel Aged Imperial Brown Ale"
23:12 leont Yeah, me too, but that may be $day-job being C++
23:12 Juerd hoelzro: Apparently leont makes the same mistake. At least once, that is :)
23:12 Juerd Ah, more than once
23:12 hoelzro I thought about making a rakudo error to say "did you mean my Type $var?"
23:13 RabidGravy so now it's time
23:13 Juerd hoelzro: That would be a good move!
23:13 hoelzro but, like many things I think up, it remains NYI =/
23:13 stmuk__ RabidGravy: Dryuary?
23:13 dalek doc: 53cfbdf | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
23:13 dalek doc: fix Hash adverb examples
23:13 dalek doc: review: https://github.com/perl6/doc/commit/53cfbdfa90
23:13 dalek doc: 40e0d21 | (Wenzel P. P. Peppmeyer)++ | /:
23:13 dalek doc: Merge remote-tracking branch 'upstream/master'
23:13 dalek doc: review: https://github.com/perl6/doc/commit/40e0d21671
23:13 dalek doc: 4fce87f | (Wenzel P. P. Peppmeyer)++ | doc/Type/Hash.pod:
23:13 dalek doc: Merge pull request #329 from gfldex/master
23:13 dalek doc:
23:13 dalek doc: fix Hash adverb examples
23:13 dalek doc: review: https://github.com/perl6/doc/commit/4fce87f4f1
23:13 RabidGravy stmuk__, don't be silly now
23:14 Zoffix m: my Num $a = 42; say $a.Int
23:14 camelia rakudo-moar f1dd49: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Z2z2ivfbtx␤Cannot assign a literal of type Int (42) to a variable of type Num. You can declare the variable to be of type Real, or try to coerce the value with 42.Num or Num(42), or just write the value as 42…»
23:15 Skarsnik Int is not a subtype of Num?
23:15 leont Nope
23:16 timotimo that would be super weird
23:16 timotimo don't forget your liskov
23:16 lucasb lizmat: I was waiting [Coke] to say 'sure, go ahead and bump nqp' :) but I think he is AFK. but thanks for listening to me. maybe later you will bump nqp.
23:16 Juerd Int could be a subtype of Rat, I think, but that's not the case either
23:16 Zoffix Reported (␤Cannot find method 'value'␤») : https://rt.perl.org/Ticket/Display.html?id=127207
23:16 Juerd Skarsnik: Num, being floating point, is a lossy container type.
23:16 Skarsnik How many bug did you found today Zoffix?
23:16 Skarsnik my Real $a = 42;
23:17 Skarsnik m: my Real $a = 42;
23:17 camelia rakudo-moar f1dd49: ( no output )
23:17 CurtisOvidPoe joined #perl6
23:17 Zoffix Skarsnik, if RT didn't have such a POS of a user interface, I'd tell you :)
23:17 Zoffix Skarsnik, probably 3-6
23:17 abraxxa thanks Wenzel!
23:17 lucasb huggable: how many bugs Zoffix found?
23:17 huggable lucasb, nothing found
23:17 CurtisOvidPoe p6: my @primes = grep { .is-prime }, 1 .. *; my @p = gather for 4000, 5, 100, 2000 -> $n { take start { @primes[$n] }; }; .say for await @p;
23:17 camelia rakudo-moar f1dd49: OUTPUT«No such method 'is-prime' for invocant of type 'Any'␤  in block <unit> at /tmp/tmpfile line 1␤␤»
23:17 * Zoffix hugs huggable
23:17 leont Zoffix: it sends you emails, that way you can easily count
23:17 lucasb Zoffix++ just kidding :)
23:17 Zoffix leont, I delete those :)
23:17 abraxxa Skarsnik: and exactly that (Int not subtype of Num) made me not choosing Num
23:17 Juerd Hi CurtisOvidPoe
23:17 CurtisOvidPoe That segfaulted on my OS X El Capitan box.
23:17 leont There are two kinds of ticket systems, those that suck at web and those that suck at email
23:17 CurtisOvidPoe Hi Juerd!
23:18 Skarsnik abraxxa, notice that I used Real originaly in Pg I think xD
23:18 travis-ci joined #perl6
23:18 travis-ci Doc build passed. Wenzel P. P. Peppmeyer 'Merge pull request #328 from gfldex/master
23:18 travis-ci https://travis-ci.org/perl6/doc/builds/100941713 https://github.com/perl6/doc/com​pare/42d74b474ee1...fd6293b5e506
23:18 travis-ci left #perl6
23:18 gfldex \o/
23:18 lizmat m: my @primes := grep { .is-prime }, 1 .. *; my @p = gather for 4000, 5, 100, 2000 -> $n { take start { @primes[$n] }; }; .say for await @p;
23:18 camelia rakudo-moar f1dd49: OUTPUT«Type check failed in binding; expected Positional but got Seq␤  in block <unit> at /tmp/0Rmih6sVXJ line 1␤␤»
23:18 Juerd leont: These days, I favor those that suck at email but have a nice web interface. Used to be the other way around but I got more comfortable using web stuff since web interfaces improved.
23:18 abraxxa Skarsnik: gah! why is it 'user' and not 'username' in mysql?
23:18 Juerd Why does Seq not do Positional?
23:19 leont Because it's an iterator, essentially
23:19 CurtisOvidPoe And now I’m getting “This Seq has already been iterated, and its values consumed”
23:19 lizmat Juerd: what leont said
23:19 Juerd I see
23:19 Skarsnik abraxxa, No idea, ask the original author of dbiish or minidbiish x)
23:20 abraxxa we will normalise that too
23:20 Skarsnik tricky, we will need to keep username too
23:20 Zoffix my @primes = grep { .is-prime }, 1 .. 1000_0; my @p = gather for 4000, 5, 100, 2000 -> $n { take start { @primes[$n] }; }; .say for await @p;
23:20 Zoffix m: my @primes = grep { .is-prime }, 1 .. 1000_0; my @p = gather for 4000, 5, 100, 2000 -> $n { take start { @primes[$n] }; }; .say for await @p;
23:20 camelia rakudo-moar f1dd49: OUTPUT«(Any)␤13␤547␤(Any)␤»
23:20 Skarsnik I mean the other
23:20 Zoffix I get "(Any) Cannot invoke this object (REPR: Null)" on my box
23:21 diakopter that's a new one
23:21 diakopter oh, nm
23:21 Zoffix :S which doesn't happen on repeat attempts
23:22 leont Thread-safety is hard :-(
23:22 timotimo Zoffix: yeah, iterating over the same list from multiple threads at the same time is not going to be a good idea
23:22 Zoffix :(
23:22 CurtisOvidPoe I also get “/bin/bash: line 1: 95489 Segmentation fault: 11  perl6 int.p6” and “moar(95508,0x700000393000) malloc: *** error for object 0x7f94b6ad1400: double free” for the same code, depending on when I’ve run it.
23:23 timotimo Zoffix: were you expecting rakudo to do locking for you in that case?
23:23 CurtisOvidPoe timotimo: if the list was changing, yeah, but since there’s nothing changing it, I was curious about what would happen.
23:23 lizmat good night, #perl6!
23:23 timotimo ah, i didn't see it's your code
23:23 leont Nothing is changing on the outside
23:23 CurtisOvidPoe night, lizmat!
23:23 timotimo the list is resizing, which causes a realloc to happen
23:23 leont Given it's lazily calculated, it's definitely changing on the inside
23:23 CurtisOvidPoe It’s a weird case where one process might be trying to access a value that’s not yet been computed.
23:24 CurtisOvidPoe So it would be nice to have something that’s not a segfault there :)
23:24 timotimo our threading model is "if you do that, you'll get burned. so don't do that."
23:24 diakopter CurtisOvidPoe: email to rakudobug?
23:24 timotimo at least i think so.
23:24 diakopter oh, nm
23:25 Zoffix timotimo, I'm expecting to think as little as possible about doing things and instead wish to just receive results :)
23:25 timotimo mhm
23:25 timotimo i think jnthn had been wanting to put an improvement into our arrays so that it might be possible to perhaps have concurrent access not die, but i may be misremembering
23:26 Zoffix lucasb, I reported 27 bugs in total... 5 yesterday, 5 today :)
23:26 CurtisOvidPoe p6: class Foo { subset Limit of Rat where -10 .. 10; has Limit $.x is rw }; Foo.new( x => 15.0 );
23:26 camelia rakudo-moar f1dd49: OUTPUT«Type check failed in assignment to $!x; expected Foo::Limit but got Rat␤  in block <unit> at /tmp/tmpfile line 1␤␤»
23:26 abraxxa Skarsnik: almost there
23:26 Skarsnik where is the weekly that happend every 15 days? x)
23:26 CurtisOvidPoe That’s one where I would hope for a somewhat better error message :)
23:26 abraxxa Skarsnik: do you know whatfor the post-connect-callback for Pg is?
23:26 timotimo Skarsnik: next monday
23:26 diakopter I mean, there should be no penalty for such data structures to fall back to more heavyweight, fully-locking, or even optimized lock-free versions of themselves... when accessed from more than one thread. Jnthn & I talked through such things a few years ago........
23:26 timotimo the thing is that we don't want to pessimize all arrays everywhere to make concurrent resizing work out fine
23:26 diakopter see above ^
23:26 abraxxa Skarsnik: SET client_min_messages = warning
23:26 diakopter you don't have to pessimize in teh single thread case
23:27 leont There's a reason why we have Supplies and Promises, those are actually thread-safe
23:27 timotimo right
23:27 timotimo yes, indeed
23:27 Zoffix CurtisOvidPoe, IIRC the issue there is not being able to do it at compile time.
23:27 diakopter yes it adds a check per call, but it's _tiny_ compared to everything else it does
23:27 leont OO:Monitor and OO::Actor can be quite useful too in some cases
23:27 Skarsnik abraxxa, no idea, sorry x)
23:27 Zoffix m: class Foo { has Rat $.x where -10 .. 10 }; Foo.new: :x(15.0);
23:27 camelia rakudo-moar f1dd49: OUTPUT«Type check failed in assignment to $!x; expected <anon> but got Rat␤  in block <unit> at /tmp/_LdyDiJnuE line 1␤␤»
23:27 Zoffix Same here.
23:28 lucasb Zoffix++ I appreciate your work finding bugs.
23:28 diakopter CurtisOvidPoe: I agree it shouldn't segfault, at least.
23:28 diakopter JVM's exception is ConcurrentModificationException
23:28 diakopter or something like that
23:29 pochi_ joined #perl6
23:34 timotimo the JVM has a  crazy amount of awesomeness when it comes to "lock elision"
23:34 cdg joined #perl6
23:35 timotimo if i understand it correctly, that's the reason why they can have locking everywhere for safety, but still have good performance
23:37 CurtisOvidPoe Night all.
23:38 timotimo the cross-thread-write log thing moar has probably catches that error
23:38 travis-ci joined #perl6
23:38 travis-ci Doc build passed. Wenzel P. P. Peppmeyer 'Merge pull request #329 from gfldex/master
23:38 travis-ci https://travis-ci.org/perl6/doc/builds/100946004 https://github.com/perl6/doc/com​pare/fd6293b5e506...4fce87f4f19f
23:38 travis-ci left #perl6
23:38 abraxxa Skarsnik: pushed!
23:40 skids joined #perl6
23:40 cdg_ joined #perl6
23:44 M-eternaleye joined #perl6
23:45 cdg joined #perl6
23:51 cdg_ joined #perl6
23:51 abraxxa Skarsnik: going to bed now, ping me when you've looked at my work
23:52 Skarsnik same. Good night #perl6
23:52 cdg_ joined #perl6
23:52 kid51 joined #perl6
23:52 M-matthew joined #perl6
23:52 M-Illandan joined #perl6
23:53 abraxxa bye!
23:55 zengargoyle m: ((1..69).pick(5).sort, (1..26).pick).say;
23:55 camelia rakudo-moar f1dd49: OUTPUT«((10 58 61 62 64) 7)␤»

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo