»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:01 shicheng joined 00:06 firstdayonthejob left 00:07 avenj left 00:28 wamba left
Juerd What does "control exception without handler" mean? 00:31
skids Some sort of control construct like 'take' or 'return' happened where it should not have. 00:37
Often this happens inside map code.
Juerd I had a simple "redo FOO" 00:38
Rewrote it to repeat...while
Haven't been able to golf it
skids m: FOO: (0..1).map({ redo FOO })
camelia rakudo-moar 4cd287: OUTPUT«control exception without handler␤ in block <unit> at /tmp/QqECWKS7Ow line 1␤␤»
Juerd I had a very simple FOO: { ...; redo FOO if condition; } 00:39
skids Redo requires a loop, probably. 00:40
00:41 Ben_Goldberg is now known as BenGoldberg
skids m: FOO: for 1 { 42.say; redo FOO unless $++; } 00:42
camelia rakudo-moar 4cd287: OUTPUT«42␤42␤»
ugexe &?BLOCK(); 00:45
00:49 TreyHarris joined, Guest12105 left 00:50 bowtie joined, bowtie is now known as Guest21615
Juerd m: { say "a"; redo unless $++ > 4; } 00:55
camelia rakudo-moar 4cd287: OUTPUT«a␤redo without loop construct␤ in block <unit> at /tmp/29_r5YkKG3 line 1␤␤»
Juerd Is doc.perl6.org/language/control#redo wrong then? 00:56
skids Yeah, needs a loop. 00:57
m: do { say "a"; redo unless $++ > 4; }
camelia rakudo-moar 4cd287: OUTPUT«a␤redo without loop construct␤ in block <unit> at /tmp/713FhEuA1L line 1␤␤»
skids hrm I guess "do" isn't a do-once loop. 00:58
Juerd m: once { say "a"; redo unless $++ > 4; }
camelia rakudo-moar 4cd287: OUTPUT«a␤redo without loop construct␤ in block <unit> at /tmp/5ipNevSwI6 line 1␤␤»
Juerd Apparently 'once' is neither.
Apparently 'once' isn't either
skids No once is entirely another animal. 00:59
01:00 raiph left
skids Hrm, desin docs say "do" is a loop. 01:01
skids looks for an RT.
Juerd Ah, I finally understand the bug I was originally trying to fix. 01:02
01:02 abaugher left
Juerd I had the 'redo', and it redid an outer loop, somewhere 5 sub calls higher up. 01:02
Guessing that { } might turn into a do-once loop if it had a label, I added a label, and that's when I got the weird error 01:04
But repeat-while works great. (I always avoided that construct (well, do-while) in P5 because it's misleading to the reader)
skids Ah, there are fudged tests for the loopiness of "do". And the autogenned RTS near 124576 for them. 01:05
01:07 telex left
Juerd I won't count on a fix soon then :) 01:07
01:08 telex joined, Ben_Goldberg joined 01:10 adu left 01:11 BenGoldberg left 01:12 adu joined
sortiz Blob.new(0 xx 10000) vs Blob.new(:initial-elems(10000)) -> 200.2908/s vs 38052.1614/s 01:13
01:13 adu left
skids I wonder if a special-case optmization for the 0 xx thing could be made to call that instead. 01:15
01:16 abaugher joined
sortiz skids, the problem is that the "fast route" in .new(@values) imply a push for every element and the pull-one call for the iterator. 01:18
skids Right the question is if the HLL-level optimizer can specifically detect Blob.new(int xx int) and substitute in a call to Blob.new(:initial-elems). 01:20
sortiz Yes, but that kind of optimizations are, today, far away. :) 01:22
I'm working in a module for speed up Blob <-> CArray conversions, and discover that trick, so I prefer it in core. 01:26
*discovered
skids sortiz: I dunno, reading src/Perl6/Optimizer.nqp it miht not be that hard. 01:27
sortiz skids, I need to learn QAST manipulations. :) 01:30
01:30 shicheng left 01:32 adu joined
timotimo .u soft 01:32
yoleaux U+00AD SOFT HYPHEN [Cf] (<control>)
U+042C CYRILLIC CAPITAL LETTER SOFT SIGN [Lu] (Ь)
U+044C CYRILLIC SMALL LETTER SOFT SIGN [Ll] (ь)
flussence huh, that Test::Util::ServerPort looks interesting... 01:33
timotimo it's quite unlikely that i can type a soft hyphen into my browser so that it becomes part of a tweet, right?
01:33 adu left
dalek c: d0f97d9 | gotoexit++ | doc/Type/Channel.pod:
Clarify behavior of Channel.Supply.

Thanks to jnthn for clarification.
01:33
c: d15c255 | (Zoffix Znet)++ | doc/Type/Channel.pod:
Merge pull request #397 from gotoexit/master

Clarify behavior of Channel.Supply.
01:34 sufrosti1o left 01:35 sufrostico left
flussence m: my $a = IO::Socket::INET.new(:host<127.0.0.1>, :port(0), :listen); say $a.port; # bind(2) says this should auto-assign a port though, and lsof confirms it, but IO::Socket doesn't know how to read that information back. If this worked that module wouldn't be needed at all! 01:35
camelia rakudo-moar 4cd287: OUTPUT«IO::Socket::INET is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in block <unit> at /tmp/uA9Gsk7D7P line 1␤␤»
01:40 TreyHarris left
skids flussence: Also there's no gurantee nothing else uses the port in the interval between finding a free number and the call to listen, which is one of the reasons for bind(2) doing that. 01:42
skids wonders if windows haas a sane implementation of that. 01:43
timotimo Room AvailLostPartialUnknown#Talks 01:44
h2214 10 0 4 16 31
^- 10 talks from the perl dev room available on fosdem
video.fosdem.org/2016/h2214/ 01:45
except ... none of the videos up right now are about perl?
ah, ok
video.fosdem.org/2016/h2214/STATUS.TXT 01:46
indeed all of the videos i'm looking forward to are "UNKNOWN" still
flussence 0 lost is a good number, how's the sound quality on the ones they've done? That's traditionally the part conferences get wrong 01:47
01:47 adu joined
timotimo you have to calculate the "unknown" into avail/lost/partial 01:47
don't forget that we also have recordings of perl-related talks from two additional cameras 01:51
01:52 gtbjj joined
timotimo so that'd be a fallback in any case 01:52
llfourn anyway to get panda to build from your own repo? 01:59
rakudobrew* that is
timotimo oof 02:00
i don't think so. but building rakudo manually is super easy anyway 02:01
llfourn yeah it doesn't look like it :)
02:01 squach1 joined, BenGoldberg_ joined
skids well, you can patch your stuff into the tree in git_reference/rakudo, then git commit, then build triple with the commit ID. 02:01
02:01 squach left
llfourn you mean put a branch into official repo? 02:02
skids No, just locally in the git_reference clone
llfourn ah I see. Clever. 02:03
skids Of course you have to get your stuff back out of that later before you delete it.
llfourn yeah might as well build manually :P
02:03 Ben_Goldberg left 02:04 avenj joined, avenj left, avenj joined, vendethiel joined 02:07 Actualeyes joined 02:13 adu left 02:14 shicheng joined, Ben_Goldberg joined, BenGoldberg_ left 02:19 Ben_Goldberg left, adhoc joined 02:20 Ben_Goldberg joined 02:21 adu joined 02:22 molaf_ joined
dalek kudo-star-daily: ec27301 | coke++ | log/ (9 files):
today (automated commit)
02:22
02:23 adu left 02:25 molaf left 02:26 vendethiel left 02:45 ilbot3 left 02:46 shicheng left, adhoc left 02:47 ilbot3 joined 02:52 Herby_ joined
Herby_ Evening, everyone! 02:52
\o
02:54 flaviusb left 02:55 FROGGS_ joined 02:59 FROGGS left 03:03 kid51 left 03:04 shicheng joined 03:05 noganex_ joined 03:06 [Tux] left 03:08 noganex left
Herby_ m: my $word = "test"; my $word-split = split('', $word); say $word-split; 03:18
camelia rakudo-moar 4cd287: OUTPUT«( t e s t )␤»
Herby_ m: my $word = "test"; my @word-split = split('', $word); say @word-split; 03:19
camelia rakudo-moar 4cd287: OUTPUT«[ t e s t ]␤»
Herby_ m: my $word = "test"; my @word-split = split('', $word); say @word-split; my $word-join = join('', @word-split); say $word-join;
camelia rakudo-moar 4cd287: OUTPUT«[ t e s t ]␤test␤»
remmie hey guys, i came in with a cygwin-related problem recently
Herby_ how do I remove spaces when I join the elements of a list?
dalek c: 4da1827 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod:
better wording, add missing full stop
03:27
03:31 apiw joined
sortiz m: my $w = "Hola"; my @b = split('', $w); say join('',@b); # What spaces Herby_ ? 03:34
camelia rakudo-moar 4cd287: OUTPUT«Hola␤»
Herby_ hmm 03:35
remmie basically, the unix version doesn't compile properly, and the windows bat freezes the bash shell
Herby_ thanks, sortiz 03:36
sortiz m: my $w = "Hola"; my $b = split('', $w); say join('',$b); # Those spaces when using a $ sigiled variable for your list? 03:37
camelia rakudo-moar 4cd287: OUTPUT« H o l a ␤»
Herby_ yeah, saw that I was using a $ instead of the needed @ 03:38
03:38 [Tux] joined 03:39 gtbjj left
sortiz m: my $w = "Hola"; my $b = split('', $w); say join('',@$b); # An scalar can hold a list, but beware 03:39
camelia rakudo-moar 4cd287: OUTPUT«Hola␤»
Herby_ thanks, been tripped up by that a few times 03:43
sortiz Only remember that different sigils implies different semantics. YW 03:47
Herby_ m: "test".split('').say;
camelia rakudo-moar 4cd287: OUTPUT«( t e s t )␤»
Herby_ Trying to think of a creative way to solve this using Perl 6: www.reddit.com/r/dailyprogrammer/c...sh_cipher/ 03:49
no perl solutions yet 03:50
Juerd perl6 -e'.say for lines>>.trans("a".."z" Z=> reverse "a".."z")' 03:58
sortiz That's a typical problem for Hotkeys :)
Juerd Not quite the hardest challenge :)
Herby_ hah the easy one for the week 03:59
Juerd perl6 -e'.trans("a".."z" Z=> reverse "a".."z").say for lines' # bit nicer
And OMG perl6 is slow :)
(.trans is really slow)
Herby_ just tested it, works like a champ :) 04:01
i knew Perl6 would have a slick way to handle it
Juerd Now, preserving case is a bit harder. 04:02
Herby_ a couple of solutions down the list, someone posts a pretty slick Bash solution that preserves case too 04:04
don't quite understand how it works
Juerd $ perl6 -e'my %tr = "a".."z" Z=> reverse "a".."z"; for lines() -> $line is copy { $line ~~ s:g:ii/<[a..z]>/{ %tr{$/.lc} }/; say $line; }' # case preserving 04:07
Also, *much* faster than .trans 04:08
gfldex m: dd flat(('a'..'z' Z=> reverse 'a'..'z'), ('A'..'Z' Z=> reverse 'A'..'Z')) 04:09
camelia rakudo-moar 4cd287: OUTPUT«(:a("z"), :b("y"), :c("x"), :d("w"), :e("v"), :f("u"), :g("t"), :h("s"), :i("r"), :j("q"), :k("p"), :l("o"), :m("n"), :n("m"), :o("l"), :p("k"), :q("j"), :r("i"), :s("h"), :t("g"), :u("f"), :v("e"), :w("d"), :x("c"), :y("b"), :z("a"), :A("Z"), :B("Y"), :C(…»
gfldex m: my @a = <Hello World>; .trans(flat(('a'..'z' Z=> reverse 'a'..'z'), ('A'..'Z' Z=> reverse 'A'..'Z'))).say for @a; 04:10
camelia rakudo-moar 4cd287: OUTPUT«Svool␤Dliow␤»
gfldex m: my @a = <Hello World>; .trans(|('a'..'z' Z=> reverse 'a'..'z'), |('A'..'Z' Z=> reverse 'A'..'Z')).say for @a; 04:11
camelia rakudo-moar 4cd287: OUTPUT«Svool␤Dliow␤»
Herby_ what does the '|' do in " .trans(|('a'.... 04:13
04:14 Ben_Goldberg left
gfldex it creates a Slip 04:14
doc.perl6.org/type/Slip 04:15
Juerd I've posted my solutions 04:16
gfldex Juerd: you may want to update your 2nd example with: .trans(|('a'..'z' Z=> reverse 'a'..'z'), |('A'..'Z' Z=> reverse 'A'..'Z')).say 04:18
Juerd That's very ugly though 04:19
Might do the right thing, but it's an eyesore with the parens and |
gfldex i totally agree that we need slippy meta operators :) 04:21
Herby_ Juerd: great!
The dailyprogrammer challenges are a good way to get exposure for Perl 6 04:22
Juerd Now, let's all go to fiverr and buy upvotes ;)
Herby_ to shows off its strengths and such
I'll be upvoting it :) 04:23
Juerd Updated from s/<[a..z]>/.../ to s/@alphabet/.../ 04:24
Another eyesore gone
04:27 apiw left 04:28 apiw joined, adu joined 04:31 TimToady left 04:32 TimToady joined
gfldex m: my %alphabet = flat('a'..'z' Z 'A'..'Z') Z=> reverse flat('A'..'Z' Z 'a'..'z'); dd %alphabet{<a A y Y>}; 04:43
camelia rakudo-moar 4cd287: OUTPUT«("z", "Z", "b", "B")␤»
gfldex Juerd: is this easier on your eyes? ^^^ 04:45
04:45 Sgeo left 04:51 AlexDaniel joined 04:58 apiw left 05:00 revhippie left
Juerd gfldex: A bit 05:01
gfldex: In contrived stuff like this, where the definition of an alphabet is limited to simple ASCII ranges, the Z operator is by itself visually unpleasant right next to those single-letter strings. 05:03
s/visually/aesthetically/
skids m: say (|(97,122,65,90 Z+ $_,-$_,$_,-$_).chrs.comb for 0..25).pairup
camelia rakudo-moar 4cd287: OUTPUT«(a => z A => Z b => y B => Y c => x C => X d => w D => W e => v E => V f => u F => U g => t G => T h => s H => S i => r I => R j => q J => Q k => p K => P l => o L => O m => n M => N n => m N => M o => l O => L p => k P => K q => j Q => J r => i R => I s =…»
Juerd ...and there are the codepoints.
It was inevitable 05:04
skids: Wow, it really took me a few minutes to understand your solution :) 05:06
skids m: say (|("azAZ".ords Z+ $_,-$_,$_,-$_).chrs.comb for 0..25).pairup
camelia rakudo-moar 4cd287: OUTPUT«(a => z A => Z b => y B => Y c => x C => X d => w D => W e => v E => V f => u F => U g => t G => T h => s H => S i => r I => R j => q J => Q k => p K => P l => o L => O m => n M => N n => m N => M o => l O => L p => k P => K q => j Q => J r => i R => I s =…»
Juerd .ords is much better than literal codepoints! 05:07
05:07 Fleurety left
AlexDaniel what are you guys doing… :) 05:09
Juerd AlexDaniel: www.reddit.com/r/dailyprogrammer/c...sh_cipher/ 05:10
Though I'm going to bed now. 6:10 AM...
skids Oh, one could use S:: instead of is copy/s:: 05:11
skids should hit the hay as well. 05:12
AlexDaniel m: say ‘wizard’.trans(‘a’..‘z’ Z=> (‘z’…‘a’))
camelia rakudo-moar 4cd287: OUTPUT«draziw␤»
AlexDaniel didn't get it
Juerd Oh, wow, z..a works? 05:13
AlexDaniel with … yes
Juerd That's nice :)
Even with .. 05:14
TimToady not with ..
skids Yeah that fixes that.
Juerd m: ("z".."a")[3]
camelia ( no output )
Juerd m: ("z".."a")[3].say
camelia rakudo-moar 4cd287: OUTPUT«Nil␤»
Juerd Oh, the output from the REPL doesn't mean it *works* :)
TimToady only ... can produce decreasing ranges
Juerd > 'z'..'a'
"z".."a"
That made me think it'd work. But indeed it doesn't.
AlexDaniel m: say ‘GSRH rh zm vcznkov lu gsv zgyzhs xrksvi’.trans((flat ‘a’..‘z’,‘A’..‘Z’) Z=> (flat ‘z’…‘a’,‘Z’…‘A’)) 05:17
camelia rakudo-moar 4cd287: OUTPUT«THIS is an example of the atbash cipher␤»
AlexDaniel not much harder to preserve the case…
Juerd Agreed. I just don't like parens :)
But feel free to add a reply at the site :)
AlexDaniel you already did that. Almost 05:18
Juerd z &
AlexDaniel m: say ‘GSRH rh zm vcznkov lu gsv zgyzhs xrksvi’.trans: zip with => &infix:« => », flat(‘a’..‘z’,‘A’..‘Z’), flat ‘z’…‘a’,‘Z’…‘A’ 05:20
camelia rakudo-moar 4cd287: OUTPUT«THIS is an example of the atbash cipher␤»
AlexDaniel Juerd: only one pair of parens :)
dalek osystem: aedd33f | (Salvador Ortiz)++ | META.list:
Add NativeHelpers::Blob to ecosystem

Utilities for fast and easy Blob/Buf manipulation for NativeCall
05:21
05:22 khw left
AlexDaniel Java 8 Solution – holy shit! 05:23
I really liked java at some point
05:24 Herby_ left
skids I actually think Juerd's is pretty clear comparative to a golf and shows off a lot of neat features. Though "say S:g:ii//" would maybe improve it. 05:25
05:25 Fleurety joined
AlexDaniel :ii is actually the right tool, yes 05:25
05:28 Fleurety left 05:31 skids left, Sgeo joined 05:33 Sgeo_ joined 05:36 Sgeo left
AlexDaniel m: my $x = ‘gsrh rh zm vcznkov lu gsv zgyzhs xrksvi’; say [~] $x.comb».&{/<[a..z]>/??chr -1*.ord+219!!$_} 05:36
camelia rakudo-moar 4cd287: OUTPUT«this is an example of the atbash cipher␤»
AlexDaniel xD
m: my $x = ‘gsrh rh zm vcznkov lu gsv zgyzhs xrksvi’; say [~] $x.comb».&{/<[a..z]>/??chr -.ord+219!!$_} 05:37
camelia rakudo-moar 4cd287: OUTPUT«this is an example of the atbash cipher␤»
05:40 Cabanossi left 05:42 Cabanossi joined 05:44 M-eternaleye is now known as eternaleye 05:45 Fleurety joined 05:53 xinming left 05:54 xinming joined 06:11 HoloIRCUser3 joined 06:15 perlpilot left 06:19 apiw joined
Hotkeys just curious if atbash is what I think it is 06:24
?p6> my &f=*.trans(/\w/=>{chr $/.ord+4+^31}); say f("GSRH rh zm vcznkov lu gsv zgyzhs xrksvi")
sorry 06:25
m: my &f=*.trans(/\w/=>{chr $/.ord+4+^31}); say f("GSRH rh zm vcznkov lu gsv zgyzhs xrksvi")
camelia rakudo-moar 4cd287: OUTPUT«THIS is an example of the atbash cipher␤»
Hotkeys AlexDaniel: :p
AlexDaniel Hotkeys: you win
Hotkeys actually no I don't
courtesy of b2gills 06:26
m: my &f = {S:g/\w/{chr $/.ord+4+^31}/}
; say f("GSRH rh zm vcznkov lu gsv zgyzhs xrksvi")
camelia ( no output )
Hotkeys hmm
oh
m: my &f = {S:g/\w/{chr $/.ord+4+^31}/}; say f("GSRH rh zm vcznkov lu gsv zgyzhs xrksvi")
camelia rakudo-moar 4cd287: OUTPUT«THIS is an example of the atbash cipher␤»
Hotkeys AlexDaniel:
codegolf.stackexchange.com/question...e-alphabet
06:28 HoloIRCUser3 left
AlexDaniel Hotkeys: does not look like this will ever be shorter :D 06:28
Hotkeys nope
AlexDaniel m: my &f = {S:g/\w/{chr $/.ord+4+^31}/}; say f("ä") # it is not completely right though 06:29
camelia rakudo-moar 4cd287: OUTPUT«÷␤»
Hotkeys well it was right within the golf 06:31
maybe not full atbash
06:31 apiw left
AlexDaniel m: my &f = {S:g/\w/{chr $/.ord+4+^31}/}; say f("“wizard”") # it is not completely right though 06:32
camelia rakudo-moar 4cd287: OUTPUT«“draziw”␤»
AlexDaniel right, “” are not affected
m: my &f = {S:g/\w/{chr $/.ord+4+^31}/}; say f("“ẅįzäṙđ”") # it is not completely right though 06:33
camelia rakudo-moar 4cd287: OUTPUT«“ẖĬa÷ṂĊ”␤»
AlexDaniel m: my &f = {S:g/\w/{chr $/.ord+4+^31}/}; say f("“ẖĬa÷ṂĊ”") # it is not completely right though
camelia rakudo-moar 4cd287: OUTPUT«“ẅįz÷ṙđ”␤»
AlexDaniel ya
Hotkeys also 06:34
06:34 ka left
Hotkeys the dailyprogrammer challenge specified a-z 06:34
oh I see 06:36
if not part of the alphabet blah blah
06:40 ka joined 06:42 araujo_ joined, apiw joined 06:45 araujo left 06:49 quester joined 06:50 apiw left 06:51 MilkmanDan left 06:56 a3r0_ is now known as a3r0 06:59 ka left 07:01 FROGGS_ left 07:10 sno left 07:16 Todd__ joined
Todd__ Hi, do we still have -> in Perl 6? Just out of curiousity, what is the official name of "->" in Perl? Pointer? 07:16
07:19 CIAvash joined
AlexDaniel Todd__: which -> ? :) 07:19
07:19 _mg_ joined
AlexDaniel Todd__: -> {} is a pointy block 07:19
07:20 rurban joined
AlexDaniel m: for ^5 -> $n { say $n } 07:20
camelia rakudo-moar 4cd287: OUTPUT«0␤1␤2␤3␤4␤»
AlexDaniel m: sub foo (--> 42) {}; say foo 07:21
camelia rakudo-moar 4cd287: OUTPUT«42␤»
AlexDaniel I don't really remember any other uses of arrow-like things 07:22
m: my %h = 42 => 62; say %h.perl
camelia rakudo-moar 4cd287: OUTPUT«{"42" => 62}␤»
AlexDaniel Todd__: or do you mean like $object->method ? 07:24
Todd__: no, use . for that in Perl 6
07:25 kd`_ joined
kd`_ so how does the perl6 built in datetime stuff deal with leap seconds? 07:26
07:29 MilkmanDan joined, _dolmen_ joined
AlexDaniel kd`_: try it and see how it performs? :) 07:30
kd`_: that's a good question because currently docs do not mention a thing about it
Todd__ In Perl 5 I use $$ and -> for references. I was wondering if that changed in P6 07:31
07:31 [Tux] left
Todd__ so "->{}" is a pointy block. What is "->" by itself called? 07:32
07:32 [Tux] joined
AlexDaniel kd`_: perhaps this is appropriate reading: perl6advent.wordpress.com/2010/12/...-in-perl6/ 07:33
sortiz Todd__, Perl6 change a lot of things, for example -> becomes . (a single dot) for method calls.
AlexDaniel Todd__: a pointy? xDD
07:34 _dolmen_ left
AlexDaniel Todd__: but yeah, it is used for completely different purposes 07:34
Todd__ the term "pointer" seems to annoy the Perl 5 crowd. I wonder if "pointy" will also annoy them? 07:35
AlexDaniel I think that “dot” is just fine.
Todd__ dot as in ... 07:36
TimToady -> is really a lambda, in FP jargon
AlexDaniel dot as in:
m: class A { has $.foo = 42 }; say A.new.foo
camelia rakudo-moar 4cd287: OUTPUT«42␤»
AlexDaniel m: class A { has $.foo = 42 }; say A.new.#`{← Here!}foo 07:37
camelia rakudo-moar 4cd287: OUTPUT«42␤»
Todd__ whtat is "FP"
AlexDaniel m: class A { has $.foo = 42 }; say A.new#`{Here! →}.#`{← Here!}foo
camelia rakudo-moar 4cd287: OUTPUT«42␤»
AlexDaniel functional programming
07:37 FROGGS joined
Todd__ found lambda on wikipedia. Thank you! 07:38
In perl 5 I have had to pass complex structures as "references" (fancy pointers). Am I right that that all goes away in Perl 6? 07:39
as to subs
pass to subs 07:40
AlexDaniel Todd__: everything is an object so you don't really have to worry about that most of the time
FROGGS in short, everythng is a fancy pointer :o)
AlexDaniel and so most of the time when you need a pointer you already have it 07:41
FROGGS (except native types perhaps)
AlexDaniel Todd__: perhaps you should just try it :) 07:42
07:42 firstdayonthejob joined, Praise left
kd`_ AlexDaniel: thanks, in a perl6 talk at a perl mongers meeting, that looks like good reading for the way home 07:43
07:44 Praise joined, Todd__ left, Redfoxmoon left, gypsydave5 left
AlexDaniel kd`_: though I highly recommend you to play around with it. Who knows, maybe you'll find some interesting edge case where Perl 6 does not perform as nicely as you expect :) 07:44
07:45 sno joined, gypsydave5 joined 07:46 Timbus left 07:47 Kitt3n joined, Timbus joined 07:53 ChoHag_ is now known as ChoHag
kd`_ AlexDaniel: unfortunately for me I think the built in REPL could be better :) 07:54
let's see what happens ...
AlexDaniel kd`_: yeah! There are some improvements happening to the REPL, like: hoelz.ro/blog/state-of-multi-line-input 07:56
kd`_: but you are right, it could be better
kd`_: this multi-line thing is like, er, 2 days old :) 07:57
07:57 Zero_Dogg left, Zero_Dogg joined, Zero_Dogg left, Zero_Dogg joined
AlexDaniel “I merged this branch on Friday” oh no, a bit older 07:57
kd`_ oh I was thinking about tab autocompletion and things like that 07:59
some sort of interface such that you tab on a *thing and you get some sort of useful suggestion 08:00
AlexDaniel kd`_: right. Yeah, that'd be great
kd`_: contributions are welcome :)
kd`_ yeah I know ... it would give me a surface to mess around with perl6 on anyway 08:01
assuming it's implementable in perl6 that is 08:02
is there a perl6 equivalentn to perl -d + $DB::single=1; ?
kd`_ answers own question perl6advent.wordpress.com/2012/12/...-debugger/ 08:03
08:03 kd`_ is now known as kd`
[Tux] test 25.151 08:04
test-t 12.905
csv-parser 52.535
that is sloow
FROGGS m: class DB { my $.single = 0; }; say DB.single; my $db = DB.new; DB.single = 1; say DB.single; say $db.single # kd` 08:05
camelia rakudo-moar 4cd287: OUTPUT«0␤1␤1␤»
08:08 sjoshi joined 08:12 Laurent_R joined
CIAvash llfourn: ping 08:12
08:13 darutoko joined 08:14 SCHAAP137 left, ocbtec joined
nine .tell hoelzro if only we could resume those X::Syntax::Missing exceptions... 08:19
yoleaux nine: I'll pass your message to hoelzro.
adu yoleaux! 08:21
yoleaux adu!
08:22 pdcawley left
stmuk FROGGS: does that set a debugger breakpoint? 08:22
FROGGS umm, no
I probably misunderstood the question 08:23
stmuk $DB::single=1 sets a breakpoint within code, not sure how to do that in the current p6 debugger
08:24 adu left
AlexDaniel FROGGS: I thought that it was a joke :D 08:24
FROGGS *g*
(I did not spot the -d) 08:25
08:29 ely-se joined 08:30 uruwi left 08:31 uruwi joined 08:33 pdcawley joined 08:38 Possum left 08:39 zakharyas joined 08:40 firstdayonthejob left 08:50 Possum joined 08:52 abraxxa joined, vendethiel joined 08:56 uruwi_ joined 08:57 uruwi left 09:01 kurahaupo joined 09:05 dakkar_ joined
DrForr o/ 09:09
Anyone around yet this fine morning? 09:11
AlexDaniel 09:12
lizmat just had breakfast 09:15
and plugs the new P6W again: p6weekly.wordpress.com/2016/02/15/...ersioning/
DrForr Yay, reading soonish. 09:16
09:16 zakharyas left
sortiz Reading DBIish code. 09:16
lizmat [Tux]: tried to pinpoint the commit causing the slowdown, but it is all in noise levels 09:17
DrForr Got a question. I have a function with a signature '$x = sub( Int $i, Str $s ) { }' to which I'd like to pass a list of typed arguments '@x = ( 32, "foo" );'.
lizmat :-(
09:17 kurahaupo_ joined 09:18 vendethiel left, zakharyas joined
DrForr $x(@x) doesn't match the signature, so it fails at runtime. I probably could do this with an EVAL somehow, but if there's a cleaner way I'm all ears. 09:18
09:20 kurahaupo left
DrForr One alternative is to have the users declare their method as destructuring, so $x = sub([ Int $i, ... ]) {} but I'd rather not have to do that. 09:20
sortiz m: my $x = -> Int $i, Str $s { say $i, $s }; my @a = (32, "foo"); $x(|@a) # |@a does the trick 09:23
camelia rakudo-moar 4cd287: OUTPUT«32foo␤»
DrForr Pretty sure I tried that, but I'll try again when I get home.
I did see that in the docs, maybe it's misaapplied in my case. 09:24
09:26 wamba joined 09:27 rvchangue left 09:28 rvchangue joined 09:29 araujo_ left, RabidGravy joined 09:31 Skarsnik joined 09:33 ka joined
Skarsnik Helo 09:34
hey jnthn how is your work on the valgrind stuff? :) 09:36
09:43 quester left 09:48 ka left, kurahaupo_ is now known as kurahaupo, sjoshi left 09:50 araujo joined, araujo left
jnthn Skarsnik: Good; NQP's test suite is mostly clean, just a few tests, and FROGGS++ did a patch overnight that I didn't factor in yet :) 09:52
Then will move on to achieving similar with Rakudo :) 09:53
Skarsnik maybe I will be able to track my leak without racking my brain to find how to golf it x) 09:54
09:55 eyck left
Skarsnik hm enum value can't overlap? 09:57
09:58 eyck joined
Skarsnik I mean like enum Foo (TYPE1 => 1, TYPE2 => 2) 09:58
09:58 eyck left
Skarsnik TYPE2 => 1 09:59
09:59 eyck joined 10:00 brrt joined 10:05 sjoshi joined
Skarsnik hm, someone has an idea on how to pass a null callback to a native sub? 10:15
sortiz Skarsnik, I can't tested callbacks yet, but in NC a type imply Null, so try with Callable 10:18
moritz or Code
Skarsnik Ok, it's just the C lib take 0 for a default callback x) 10:19
*a C lib
kd` llfourn: hi, you made me /join 10:20
llfourn: actually I had a perl 6 repl up during your talk and I was trying out stuff you mentioned. Later I had a perl6 repl up, and a perl -d -E0 repl in a different window 10:21
sortiz As my first DBIish are failing, return to my code to tests callbacks :) 10:22
Skarsnik first DBIish are failing? 10:23
sortiz Skarsnik, first DBIish *tests*, sorry: # Failed test 'Install driver', Actually thrown at: in any at gen/moar/m-Metamodel.nqp line 3041 ! 10:25
Skarsnik duh 10:26
10:26 rindolf joined
Skarsnik weird 10:26
sortiz Indeed!
Skarsnik Did you change some code on one the drivers? 10:28
sortiz nope, a clean clone. 10:29
10:30 vendethiel joined
sortiz btw, this is with pg, wanted to see the array problems :( 10:30
Skarsnik wich test fail btw? 10:32
I don't remember if it work well when is can't access the Pg server 10:33
sortiz t/35-pg-common.t
Skarsnik let me try localy. 10:35
sortiz Don't worry about, tomorrow I will try again.
10:36 araujo joined
Skarsnik it's just skip for me 10:36
10:37 araujo left
RabidGravy sortiz, is this a brand new rakudo build? 10:37
(or very recent?)
10:37 araujo joined
sortiz Yes: This is Rakudo version 2015.12-350-g585619f built on MoarVM version 2016.01-28-g2136293 10:38
Skarsnik the issue with Pg Array is that I did not manage to build correct Array value when returning a hash. I get an Array of Array instead
not tagger 2016.1 ?
*tagged
RabidGravy I've seen this in a couple of modules that previously worked fine, it's associated with doing ::($something) in some circumstances in my case
Skarsnik seem likely 10:39
Install driver do require ::($Driver)
sortiz Not tagged, but 585619f is from yesterday. 10:41
In another matter, I think that my new module can be of your interest: github.com/salortiz/NativeHelpers-Blob
Skarsnik Should be 'easy' to allow then in struct 10:44
but size should be pointer size? 10:45
sortiz My MoarVM fu isn't ready yet. :) 10:46
Skarsnik This code is probably on NC.pm
if it work in function 10:47
sortiz Nop, The marshaling and unmarshaling lives at the MoarMV level. 10:48
Skarsnik Did you try removing/adapting this check? github.com/rakudo/rakudo/blob/nom/...l.pm6#L407
nvm it's for HAS 10:49
dalek c: f693ca4 | (Wenzel P. P. Peppmeyer)++ | doc/Language/list.pod:
unhide how to work with Array elements
10:50
10:52 vendethiel left
sortiz See, for example: github.com/MoarVM/MoarVM/blob/mast...uct.c#L110 , the REPR for the MVMArray case is missing. 10:53
gfldex after reading stackoverflow.com/questions/3542303...rl-6-array i found we could do with an updated version of glyphic.s3.amazonaws.com/ozone/mark...300dpi.jpg 10:54
sortiz The checks in NC.pm are only to avoid the low level "else" in L237 :) 10:57
Skarsnik sortiz, hm github.com/MoarVM/MoarVM/blob/mast...uct.c#L189 ?
10:57 TEttinger left
sortiz That's the case for CArray, not Blob's MVMArray 10:58
Skarsnik, Believe me, I spent last week understanding that part, so I take the NativeHelpers::Blob approach. 11:02
Skarsnik this lib (mxml) make me mad x) ,Pointer[PtrFunc] $cb # F:Typedef(mxml_type_t)->|mxml_type_e| ( Typedef(mxml_node_t)->|mxml_node_s|*)* ; x) 11:03
something cool will be to have shaped Array in cstruct x) 11:04
probably need to add something to set the size in the CArray type 11:05
11:06 cschwenz joined
sortiz Most arrays at the C level are flat, and that case use N*M elements. btw, MVMArray handles shaped arrays, only NYI at the Rakudo level (as far as I can see). 11:09
Skarsnik well size of Array in a C struct probably does not change even when the size is fixed? 11:11
jnthn MVMArray doesn't handle shaped 11:12
That's what MultiDimArray does
VMArray is resizable
And one-dimensioned
11:13 pmurias joined
sortiz Ah, thanks jnthn, I was confused. 11:13
pmurias do we have any nqp ops that will transfer control to the debugger? (like the JavaScript debugger statement)? 11:14
jnthn pmurias: No
11:16 IhabHussein joined 11:18 brrt left, apiw joined
cschwenz github.com/perl6/DBIish/issues/50 :-( 11:18
Skarsnik look like a rakudo bug 11:20
sortiz jnthn, So a shaped Array will use MultiDimArray? 11:24
cschwenz Rakudo, or MoarVM? (as the first non-DBIish line called out is "in any at gen/moar/m-Metamodel.nqp line 3041")
jnthn sortiz: Yes
m: my int @a[3;3]; say @a.REPR
camelia rakudo-moar 4cd287: OUTPUT«MultiDimArray␤»
sortiz 6model is amazing. 11:27
DrForr almost RTA G"odel. 11:28
jnthn cschwenz: Very likely Rakudo; the moar mention in there is because the build process puts generated things into folders by backend, for when you're building Moar/JVM at the same time. 11:29
If it's a regression in driver loading, it could be the recent require changes that went in.
cschwenz hmm, thanks jnthn 11:30
jnthn But that's only a guess, and I didn't read the patches so don't know exactly what they contain
sortiz jnthn, A last question: Will be possible to create/add new REPRs from the Perl6 level?
11:30 Amendil joined, IhabHussein left
sortiz cschwenz, I see the same problem a few hours ago. 11:32
jnthn sortiz: REPRs were intended as taking care of VM-level issues, so they are by design not portable things
sortiz: They're heavily tied up with a particular VM's allocation, memory handling, GC, etc.
sortiz: You *might* some day before able to write, say, a MoarVM extension in Perl 6 that adds a new REPR, but it'll be VM-specific code. 11:33
s/before//
uh, s/before/be/ :)
That's one of the key reasons 6model does its split of meta-object and representation. 11:34
Things like classes, roles, method dispatch, and type aren't anything the VM need know about. But memory layout/access is always tightly coupled to the underlying runtime.
(Yes, type does tend to matter for optimization, but only so far as establishing identity goes.) 11:36
11:36 cbk_ left
jnthn And things like method dispatch and multi dispatch are also understood somewhat by the VM, but the mechanism isn't, only the results placed into caches. 11:37
sortiz I understand that, I was thinking in the future possibility to ldloading an extension that add a new REPR to a running MoarVM. 11:39
(And then the associated HLL code) 11:40
jnthn Probably possible.
sortiz jnthn, Thank you again, no more questions today. :) 11:42
jnthn wanders back off to today's design task at $dayjob :) 11:43
11:44 cbk joined
dalek kudo/nom: ad63cd0 | lizmat++ | src/core/PseudoStash.pm:
Speed up pseudostash lookup slightly
11:44
11:47 brrt joined 11:48 cschwenz left 11:53 vendethiel joined 11:56 espadrine_ joined, espadrine_ is now known as espadrine
Peter_WR Are promises considered stable / safe to use in star 2016.1? 11:58
11:58 apiw left
RabidGravy Yes 11:59
well in the sense that there's a lot of software using them already so they want to be 12:00
jnthn They're fairly well covered in the specification tests also.
12:00 apiw joined
RabidGravy I'm going to RT the "Missing serialize REPR function for REPR VMException" should be caught earlier so it can be more informative 12:03
Peter_WR Ah right, I'm probably doing something wrong then
RabidGravy it's doing my nut, I can locate it to a module but don't know *what* is causing it 12:04
Peter_WR I have an issue where my program seems to deadlock if you go above a sufficience number of promises relative to threadpool size
RabidGravy Peter_WR, show us
Peter_WR RabidGravy, not go the code with me right now I'm afraid but will post when I get home from work
RabidGravy that scenario is possible though 12:05
Peter_WR The interesting thing is, iirc the issue still happens if I set the threadpool size to 1 12:06
Or maybe not interesting
:P
lizmat Peter_WR: are you using await ? 12:07
Peter_WR yeah
jnthn lunch & 12:08
lizmat in his grant proposal, jnthn mentioned he would work on making await non-blocking
as currently it blocks the thread it is in
so with sufficient promises being awaited, a deadlock situation is possible 12:09
Peter_WR Blocks it totally, so it doesn't go off and fulfill another promise that can execute?
lizmat that's the current implementation, indeed
Peter_WR Ah yes, that will do it
lizmat patches welcome :-)
jnthn suspects he knows where the patches will come from... :P
lizmat so it's a known issue
12:09 kurahaupo left
lizmat perhaps this can be solved with a react block though, jnthn ? 12:10
Peter_WR Thanks, lizmat. I thougth I recalled reading something about this a while back
jnthn But yeah, for now you need to have a sufficiently big thread pool
Or structure things differently
Peter_WR I got a seg fault when setting threadpool much over 250 too
12:10 ka joined, kurahaupo joined
Peter_WR Is that expected? 12:10
jnthn lizmat: Sadly not, 'cus those are implemented in terms of react
really going for lunch, or I'll be in bother :) & 12:11
12:13 apiw left 12:14 RabidGravy left 12:16 apiw joined, rurban left, tonye joined 12:19 tonye left 12:24 ka left
dalek kudo/nom: 204a03c | lizmat++ | src/core/Str.pm:
Speed up Str.trans a bit

Don't use the flexible, expensive CALLERS:: PseudoStash, but the straight nqp equivalent (which is about 50x faster)
12:29
12:32 Begi joined
sortiz Now in my own code: Actually thrown at: in any at gen/moar/m-Metamodel.nqp line 3041 !!! 12:34
12:37 vendethiel left 12:39 vendethiel joined
dalek kudo/nom: d94ae35 | lizmat++ | src/core/Str.pm:
Remove superfluous line

  $/ is not being used in this method.
12:43
sortiz So, not DBIish related, nor the recent rakudo commit, 'cus can reproduce with "This is Rakudo version 2016.01-RC1 built on MoarVM version 2016.01" 12:46
Skarsnik m: sub foo($a, $b --> Int) { return 42 }; say foo(1,2); 12:47
camelia rakudo-moar ad63cd: OUTPUT«42␤»
Skarsnik wait?
it that the version distribued in Rakudo Star?
sortiz Yes, double checking... 12:48
ilmari star: sub foo($a, $b --> Int) { return 42 }; say foo(1,2);
camelia star-m 2015.09: OUTPUT«42␤»
12:48 shicheng left
Skarsnik because that mean DBIish probably does not work on R* x) 12:48
12:50 rurban joined
dalek kudo/nom: bff360e | lizmat++ | src/core/Str.pm:
Make an obviously private method private
12:50
sortiz No the version shipped with R*, is a previous RC1, and the error is somewhat different, need to dig deeper...
Skarsnik m: sub foo(&(Int)) {*}; 12:54
camelia rakudo-moar d94ae3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XUK_LAzrjm␤Shape declaration with () is reserved;␤ please use whitespace if you meant a subsignature for unpacking,␤ or use the :() form if you meant to add signature info to the function's type␤at /t…»
12:56 gensym left 13:00 apiw left 13:02 vendethiel left, apiw joined 13:03 vytas left 13:06 sufrostico joined 13:16 kurahaupo left
rudi_s_ Hi. Is it guaranteed that start() runs in a separate thread? I want to spawn multiple external programs in parallel and collect the results. 13:18
(Btw. is there a way to specificy a timeout to await which kills the spawned promisses.)
jnthn Proc::Async is better suited than using start and syncronous process spawning. 13:19
rudi_s_ The release notes mention that Async I/O is not supported yet. Does this already work? 13:20
Peter_WR jnthn, without that I'm guessing you could reach deadlock until an external process finsihes?
jnthn rudi_s_: Yeah, Proc::Async has been around for a while. IO::Socket::Async also. It's mostly async file I/O that's missing by now. 13:21
Peter_WR: You'd end up blocking an OS thread from the thread pool, and if you do that to the whole pool then yeah, you can deadlock
rudi_s_ jnthn: Ah, nice. - Could you point me to an example/docs which spawns multiple processes? - Can I wait with a timeout? 13:22
13:22 vytas joined
dalek p: 2dd1099 | (Pawel Murias)++ | t/nqp/37-slurpy.t:
Test empty slurpy parameters work correctly.
13:22
p: 1a8567e | (Pawel Murias)++ | src/vm/js/ (3 files):
[js] Support passing null as the named arguments when there are none.
p: 56f5d83 | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Use null for empty named arguments in regexes and immediate block calls.
jnthn rudi_s_: Well, Proc::Async itself is documented at doc.perl6.org/type/Proc::Async 13:23
You get a Promise from each process, so you'd just start them off and then await the bunch of them
On timeout - use Promise.in($seconds) in a Promise.any combinator 13:24
uh, anyof
rudi_s_ Hm. One more thing. I don't want to just run an external program asynchronously. Actually I want to run the same sub (which spawns external background processes) with multiple parameters in parallel.
jnthn Promise.anyof($the-process-exists, Promise.in(10)) # a Promise that completes when the process exists, or 10 seconds have elapsed, whichever is sooner
rudi_s_ That's why I though of start { .. } because I thought I can run arbitrary perl code in parallel that way. 13:25
jnthn Ah, yes, you can
But I think you'll still find it a bit easier to manage timeouts and stuff with Proc::Async 13:26
moritz also I don't think a Proc will be killed if its start block runs into a timeout
rudi_s_ Hm. Basically I have sub { ...; run 'program', 'arg1', 'arg2'; ... ; run 'program2', 'arg1', 'arg2', ..; ... } and I want to call that sub many times in parallel. 13:27
*and collect the result.
13:27 sjoshi left
rudi_s_ Each sub run is independent from the other and doesn't need to share any data. 13:28
13:31 Begi left 13:32 perlpilot joined 13:45 apiw left 13:47 apiw joined 13:49 brrt left, colomon left 13:50 apiw left 13:52 mattn_jp joined
pmurias anyone here had any luck with profiling node.js apps? 13:52
13:53 rhr_ left
mspo pmurias: you mean like www.brendangregg.com/blog/2014-09-1...linux.html ? 13:53
pmurias mspo: will try that 13:56
I'm trying to figure why nqp-js is really slow for some things despite being fast for others 13:57
[Coke] hopes lizmat loved Deadpool
pmurias for some silly benchmarks it's 10x faster then nqp-js for others it's 10x slower
jnthn pmurias: Um, faster/slower than itself? :) 14:00
14:02 apiw joined, mattn_jp left
sortiz Somebody can explain me why the constructor of Pointer in github.com/rakudo/rakudo/blob/nom/...es.pm6#L23 boxes to ::?CLASS and not to a created self? 14:03
14:03 mattn_jp joined 14:06 cdg joined
pmurias jnthn: than nqp-m ;) 14:07
FROGGS m: use NativeCall; class Foo is repr<CStruct> { has CArray[int32] $.bar[32] }; # jnthn: how much effort would it be to make that work? 14:09
camelia rakudo-moar bff360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uzdNedBoIM␤The [] shape syntax with the $ sigil is reserved␤at /tmp/uzdNedBoIM:1␤------> 3pr<CStruct> { has CArray[int32] $.bar[327⏏5] }; # jnthn: how much effort would it b␤ expecting any of:…»
pmurias it's 10x faster for recursively calculating fibonacii numbers and >5x slower for parsing json 14:10
jnthn m: use NativeCall; class Foo is repr<CStruct> { has int32 @.bar[32] is CArray; }
camelia ( no output )
pmurias jnthn: parsing json is generally more useful so I'm trying to optimize things a bit ;)
jnthn FROGGS: Let's make that one work :)
FROGGS ohh 14:11
m: use NativeCall; class Foo is repr<CStruct> { has int32 @.bar[32] is CArray; } say Foo.new.bar
camelia rakudo-moar bff360: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AVdTk_y1Op␤Strange text after block (missing semicolon or comma?)␤at /tmp/AVdTk_y1Op:1␤------> 3ruct> { has int32 @.bar[32] is CArray; }7⏏5 say Foo.new.bar␤ expecting any of:␤ infix␤…»
FROGGS m: use NativeCall; class Foo is repr<CStruct> { has int32 @.bar[32] is CArray; }; say Foo.new.bar
camelia rakudo-moar bff360: OUTPUT«NativeCall::Types::CArray[int32].new␤»
FROGGS m: use NativeCall; class Foo is repr<CStruct> { has int32 @.bar[32] is CArray; }; say nativesizeof(Foo.new)
camelia rakudo-moar bff360: OUTPUT«8␤»
jnthn HAS if you wanted it inlined? 14:12
FROGGS true
m: use NativeCall; class Foo is repr<CStruct> { HAS int32 @.bar[32] is CArray; }; say nativesizeof(Foo.new)
camelia rakudo-moar bff360: OUTPUT«8␤»
jnthn But I don't think it actually pays any attention to the shape yet
That is, CArray's constructor needs to learn the shape parameter
FROGGS jnthn: I should start looking at the repr compose protocol?
jnthn More at how native shaped arrays work 14:13
Oh, but...hmm...if you want to inline it, then you kinda need to know the size more "statically" I guess
14:13 apiw left 14:14 rindolf left, Perleone left 14:18 RabidGravy joined
sortiz Forget my question, I understand now. :) 14:18
14:19 vendethiel joined
Skarsnik can we build a Pointer with just the address? 14:22
14:23 kaare_ joined
sortiz Skarsnik, yes. 14:23
14:24 skids joined
Skarsnik Good, I have a dumb xml lib that use weird stuff to allow to explore the tree, but I want to use the the child and last child pointer in the node struct, because I am pretty sure it's just an array starting at child and ending at last child x) 14:27
sortiz Be careful ;)
Skarsnik at least the binding is generated x) 14:32
14:38 johan___ is now known as johan 14:42 vendethiel left
FROGGS m: my @foo[42] # jnthn does that "postfix" boil down to a trait call? 14:42
camelia ( no output )
FROGGS probably not, hmmm.... 14:44
14:44 Begi joined, mattn_jp left 14:47 eternaleye left, M-matthew left, M-Illandan left
flussence this is interesting... if I open a repl and `lsof` it, it has *six* filehandles open to /dev/tty. 14:48
lizmat [Coke]: yeah, felt a bit like X-Men meets Hancock meets Pulp Fiction
14:50 apiw joined
flussence in fact, every other program uses /dev/pts/* for stdio, not /dev/tty... 14:51
FROGGS ahh, it is actually a shape definition... looking at in in the grammar 14:52
14:55 sufrostico left
Skarsnik m: enum Foo (LOL => 0, BAR => 0, BAZ => Int) 14:56
camelia rakudo-moar bff360: OUTPUT«===SORRY!===␤Cannot change the type of a type object␤»
Skarsnik Interesting
Can't have an undef value for an enum key I guess 14:57
lizmat hmmm... interesting, feels to me you should be able to do that 14:58
Begi please, i do not understand my error : i'm using bailador for a little application : pastebin.com/bqVPyXUx 14:59
Skarsnik Begi, what is line 44?
Begi line 11 in the pastebin 15:00
15:00 shicheng joined
FROGGS Begi: typo in like 14 15:00
Begi: should be >=, not =
err, =>
Begi Oh, I'm so stupid...
FROGGS no :o)
Begi Thanks !
geekosaur LTA
FROGGS geekosaur: why? 15:01
Skarsnik FROGGS, callback in cstruct does not work for now?
FROGGS Skarsnik: in an attribute slot?
Skarsnik Yes
FROGGS Skarsnik: not yet
15:01 shicheng left
Skarsnik Ok, so I should not generate them 15:01
FROGGS Skarsnik: but I'd love to implement it, together with somebody
Skarsnik I work on gptrixie x) 15:02
geekosaur just seems to me like if it's seen a list of Pair-s and then a = where a => would be expected, it could at least warn about it 15:03
RabidGravy Ah finally ridded the "Missing serialize REPR function for REPR VMException" from H::UA - it was the "try require IO::Socket::SSL" in the mainline of the class
15:03 M-eternaleye joined
RabidGravy move it into the get-connection() method and it's all good 15:03
geekosaur possibly disabled by default and you can turn it on when you get an unexpected runtime error like that
FROGGS RabidGravy: ohh wow 15:04
RabidGravy FROGGS, strangely it was you who put it there in the first place :) a year and a half ago 15:05
FROGGS RabidGravy: I know :o)
and it worked for a long time
15:05 rindolf joined
RabidGravy yeah it's odd, somehow it's leaking the Failure on pre-compilation 15:07
FROGGS probably because require got fixed to expose $!? 15:08
RabidGravy aye
dalek kudo/nom: 73114b5 | ugexe++ | src/core/CompUnit/Repository/Installation.pm:
Fix uninstall
15:09
kudo/nom: 8798a2e | niner++ | src/core/CompUnit/Repository/Installation.pm:
Merge pull request #713 from ugexe/patch-2

Fix uninstall
RabidGravy It had been bugging me for a while but in the last couple of days it was actually causing an install fail in any module that used it 15:12
15:12 M-matthew joined, M-Illandan joined
lizmat so, should we revert the require patch? or do we have some other way around it ? 15:14
Skarsnik Oh that not fun 15:15
class Foo is repr<CStruct> { has Pointer[Foo] $stuff;} does not work 15:16
15:16 wamba left
moritz Skarsnik: are you aware that "has Foo $stuff" would already one level of pointering? 15:16
Skarsnik that does not work
when I try it
moritz structs aren't inlined, unless you use HAS instead of has
15:16 xenu joined
Skarsnik I try using that once, but it did not work 15:17
moritz this sounds all rather fluffy
Skarsnik but even. this should probably work x) 15:18
RabidGravy re-tests all of his modules
15:18 rurban left
sortiz Skarsnik, in that case (the **foo) try with ".. is repr<CStruct> is Any { ..." 15:20
Skarsnik this cause github.com/rakudo/rakudo/blob/nom/...es.pm6#L56 to fail Cannot call infix:<===>(MiniXML::Raw::mxml_node_t, Str); none of these signatures match: 15:21
rudi_s_ I'll try it again. Basically I have sub { ...; run 'program', 'arg1', 'arg2'; ... ; run 'program2', 'arg1', 'arg2', ..; ... } and I want to call that sub many times in parallel with timeout and ctrl-c should terminate the running programs. The subs are independent from each other. Any idea how to do that?
FROGGS class Foo is repr<CStruct> { has Foo $stuff; } really should already work
Skarsnik sortiz, it's not a **foo, it's just a *foo
sortiz So, try as FROGGS said
moritz rudi_s_: use Proc::Async; for each one you start, you set a timeout 15:22
15:22 kurahaupo joined
moritz rudi_s_: and then you can have SIGINT handler that kills all the processes and exits 15:22
Skarsnik I am generating NC stuff. not really using it btw x) 15:23
FROGGS bbl 15:24
15:24 FROGGS left
sortiz 8-) 15:24
15:27 pmurias left, p6newbee joined
Skarsnik hm, it worked this time 15:27
still it should be possible to parameterize a Pointer with the type he is inside 15:28
It probably fail because at compile time the type is imcomplete
15:29 ribasushi left
Woodi hi #perl6 :) 15:30
15:30 Kitt3n left, Kitt3n joined
Woodi pmurias: had problems installing nqp-js: pm http 404 registry.npmjs.org/nqp-runtime-node 15:31
15:31 M-matthew left, Kitt3n is now known as Redfoxmoon 15:32 ar_ joined
sortiz Skarsnik, it works, see for example my own code: github.com/salortiz/p6-LMDB/blob/m...B.pm6#L307 15:32
But note the "is Any" in the class declaration.
rudi_s_ moritz: But I want a timeout for the sub, not each run in the sub. 15:33
Skarsnik I am not sure if just doing has Foo is better than Pointer[Foo]. You lost the possibility to play with the address
In my context
dalek kudo/nom: 907e8ff | lizmat++ | src/core/Str.pm:
Some more LSM optimizations
timotimo Juerd: how do you feel about adding :m (:samemark) to the atbash cipher solution and drop some additional jaws 15:34
sortiz In my bindings I need both, but that depends of the API! 15:35
moritz timotimo: isn't :m ignoremark and :mm samemark?
Skarsnik my context is generating NC code from the header
I try to go for the most generic solution 15:36
15:37 squach joined, ar_ left
Skarsnik lol the is Any fix the error 15:39
15:39 squach1 left
Juerd timotimo: I tried :mm but things went weird and I really needed to get some sleep. 15:39
15:40 ribasushi joined 15:41 squach1 joined
sortiz Skarsnik, I already went through there... :) 15:41
15:42 squach left
Skarsnik this *** annoy me when I added the sanity check for native sub signature 15:42
15:43 brrt joined 15:47 lostinfog joined
Juerd timotimo: I can't look into it now either, but IIRC adding :mm made :ii only work on the first match. 15:47
15:47 wamba joined 15:50 Actualeyes left
timotimo lizmat: when you changed CALLERS:: to nqp::getlexcaller, could it be that causes trouble, as CALLERS goes through all callers in the call chain and uses the first one it finds? 15:50
lizmat well, as far as I can see, all methods take their $/ from their immediate caller 15:51
brrt fwiw i was wrong about Match ~~ Stringu
lizmat timotimo: even the proto does that for one method
so, I don't see why the heavy handed CALLERS:: was needed
fwiw, no spectests failed 15:52
timotimo: so no, I don't think this causes trouble
timotimo: do you have counterindications ? 15:53
rudi_s_ moritz: Any idea? 15:54
15:55 M-Illandan left, M-eternaleye left
timotimo lizmat: no idea 15:57
dalek kudo/nom: ba22b31 | lizmat++ | src/Perl6/Actions.nqp:
Make enum fail with a NYI error

The enum handling tries to rebless the value to the enum. Clearly, one cannot rebless a type object into something else. Now, whether it should be possible to have a type object as the value of an enum I'm letting open for now by making it a NYI error.
  Skarsnik++ for spotting
timotimo Juerd: that sounds like a nice bugreport waiting to happen :) 15:58
RabidGravy trying to work out how to fix Panda::Builder 15:59
15:59 apiw left
timotimo lizmat: sounds good to me, then :) 15:59
Skarsnik Oh I can't write constant FOO is export = &hello; 16:01
I think it try to put the is export on the right 16:02
16:03 apiw joined
Skarsnik m: sub foo() {say "hello"}; constant FOO is export = &foo; 16:05
camelia rakudo-moar 907e8f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oDz6Ev99DF␤Can't use unknown trait 'is export' in a sub declaration.␤at /tmp/oDz6Ev99DF:1␤ expecting any of:␤ rw raw hidden-from-backtrace hidden-from-USAGE␤ pure default DEPRECATED i…»
timotimo lizmat, [Coke], i'm also going to see Deadpool tonight :) 16:08
Skarsnik it's a nice movie :) 16:09
not very familly friendly x)
timotimo of course not
you aren't to expect that from a deadpoolmovie
case in point: #touchyourselftonight
16:14 M-eternaleye joined, M-eternaleye left 16:15 AlexDaniel left 16:20 ely-se left 16:21 khw joined 16:23 kid51 joined
RabidGravy right, that panda 'Build.pm' infelicity doesn't happen with --notests 16:26
16:28 brrt left 16:31 M-eternaleye joined 16:34 pmurias joined
pmurias Woodi: what is your node version? 16:34
16:34 vendethiel joined
pmurias Woodi: what are you installing? 16:35
tony-o_ is anyone taking over XML::Query or working on anything like it?
pmurias Woodi: nqp-runtie-node was a part of very old nqp-js
16:38 CIAvash left 16:39 CIAvash joined 16:40 M-matthew joined, M-Illandan joined
RabidGravy tony-o_, I got as far as making a repository for an XML::XPath ;-) 16:42
16:47 apiw left
nemo btw.. in the topic... what does »ö« do? 16:48
besides looking like a tie fighter
hm. I guess |o| is a better tie fighter
perlpilot nemo: nothing. it's a unicode-y version of Camelia 16:49
timotimo »ö« is camelia
yeah
RabidGravy It's a unicode art camelia
nemo searches for camelia
ohh
perlpilot nemo: got to perl6.org
nemo duh
timotimo perl6.org has camelia on the front page
perlpilot s/got/go/
nemo heh. I didn't know her name
ilmari ooh, Unicode 9.0 will have a butterfly emoji 16:50
unicode.org/emoji/charts/emoji-cand...html#1f98b
nemo indeedy 16:51
ilmari: I don't have it in my Symbola set tho
ilmari well, unicode 9.0 isn't final yet 16:52
16:52 M-eternaleye left, M-Illandan left, M-matthew left
jnthn wonders how hard upgrading to Unicode 9 will be... 16:53
ilmari symbola (the version in debian unstable) only covers up to 7.0
nemo ilmari: now you guys have to convince a few common FOSS fonts to make the that codepoint look a little like your mascot ☺
jnthn 7 -> 8 was dead easy
nemo ilmari: perhaps submit a patch w/ the vector all ready for inclusion
timotimo camelia is trademarked, though
nemo timotimo: a little like!
timotimo not sure we want it to just be in a FOSS font?
nemo not exactly
timotimo worst case we'd have to sue or we'll lose the trademark
nemo could maybe drop the top of the 6
Ƹ̵̡Ӝ̵̨̄Ʒ 16:54
some butterfly someone else made 16:55
timotimo not bad
TimToady pity the wings are on upside-down
16:55 vendethiel left
nemo maybe the butterfly is flying downwards 16:56
perlpilot then its eyes are in the wrong place
16:58 apiw joined 16:59 zakharyas left 17:00 _mg_ left
hoelzro nine: can we? 17:02
yoleaux 08:19Z <nine> hoelzro: if only we could resume those X::Syntax::Missing exceptions...
17:02 gensym joined
hoelzro I'm not sure if that's a suggestion, or a nice-to-have 17:02
17:02 gensym left
hoelzro because that would be great 17:02
17:03 gensym joined 17:04 vendethiel joined 17:05 FROGGS joined, zakharyas joined, apiw left
jnthn In theory, though you'd have to put something *after* them in the grammar that to say what to do on resumption. 17:06
And I'm not sure how robust it'll be
sortiz hoelzro, Was of any use my idea about the die in FAILGOAL?
hoelzro sortiz: I haven't done anything with it yet, sorry 17:07
jnthn: I would think that at the very least you would need to have parse() understand how to get more input; otherwise, it would just parse the same string, right?
sortiz hoelzro, Don't worry. 17:08
jnthn hoelzro: That also
nemo hm. just to keep up w/ the »ö« digression. someone should invent an operator to go along w/ »+« just for that. ummm if »+« is elementwise add then »ö« could be. um.. 17:09
17:09 pmurias left
nemo er. run set A members as callbacks against set B members as operators? I dunno ☺ 17:10
xenu back in the days, undefined behaviour in gcc would result in launching nethack
this operator could do something similar ;)
nemo serious? that's awesome
xenu: funny tho. got into an argument w/ rust folks after stating we had every intention of using undefined behaviour in an unsafe if we ported our game to rust 17:11
tony-o_ RabidGravy: that's further than I've gotten
nemo xenu: would be not cool if rust launched a new game inside our game just 'cause of our AI code
xenu nemo: feross.org/gcc-ownage/
geekosaur just #pragma, iirc 17:12
nemo that's hilarious
RabidGravy :)
geekosaur (which was't very, er, pragmatic of them...) 17:13
xenu it wouldn't fly today
too many people would be pissed off
nemo geekosaur: hehe. and. yeah. I'm counting on the rust folks not being malicious and actually firing off nasal demons just 'cause we choose to access an array between threads w/o locking 17:14
17:18 sufrostico joined 17:21 SCHAAP137 joined 17:22 ZoffixW joined
dalek c: dacf38f | (David Brunton)++ | doc/Type/Supply.pod:
Wait for it...

Supply.wait blocks until Supplier is done.
17:23
c: 976fa40 | (Zoffix Znet)++ | doc/Type/Supply.pod:
Merge pull request #398 from dbrunton/patch-10

Wait for it...
ZoffixW May I suggest to the powers that be to add dbrunton to the perl6 GitHub organization so they could push commits directly without having to create a PR each time? They've submitted quite a bit of quality changes: github.com/perl6/doc/commits/master 17:24
17:27 vendethiel left
moritz ZoffixW: sure, willdo 17:28
ZoffixW Thanks! 17:29
17:29 ZoffixW left
moritz actually, I sent an invitation already 17:29
they just need to accept :-)
17:29 vendethiel joined
rudi_s_ moritz: Any idea how to get a timeout for the complete sub? 17:32
moritz rudi_s_: Promise.anyof(start yourcall, Promise.in(5)) # 5s timeout 17:34
rudi_s_ moritz: Will that kill the process running with Proc::Async in the sub?
(If the timeout triggers.)
moritz rudi_s_: I don't think so
jnthn No
rudi_s_ How can I do that?
moritz rudi_s_: by doing the timeout inside the sub 17:35
jnthn That or by passing the sub a cancellation Promise that it can poll, and keeping that Promise if you want to cancel.
moritz rudi_s_: Promise.in(5).then({ $proc.kill })
rudi_s_ moritz: But the 5 is still local to process. I'd like a global time for the whole sub. 17:37
jnthn: How could I do that combined with killing the process?
moritz rudi_s_: you can start that promise as the first thing you do in the sub, and kill all the processes you might start in there
rudi_s_ moritz: I'm sorry, I don't understand how that would work. - Could you give me an example? I know my questions sound a little stupid, but I've no idea how to combine the places into a working solution. 17:39
s/places/peaces/
jnthn is a bit tied up with $dayjob and a headache to write something up for it right now... 17:40
moritz rudi_s_: I can try to come up with something basic
jnthn rudi_s_: Is the problem basically that you want to launch a bunch of processes in a sub, and have the whole lot time out?
Do you launch them one at a time, or all together?
Woodi pmurias: damn :) something from default Mint distro, maybe "stable". need to learn it a bit
17:41 rhr joined
rudi_s_ jnthn: Yeah. One after another. I have to do some stuff between. 17:41
17:41 dakkar_ left
rudi_s_ Don't worry, thanks for your help. 17:41
RabidGravy I'm really struggling with the "require" changes 17:42
It's broken half a dozen of my modules 17:43
rudi_s_ (Oh, and I'd like to support Ctrl-C to kill everthing too. But I think that's easy when I have a promise which is somehow used to kill the processes.)
moritz rudi_s_: I thought something along of these lines: perlpunks.de/paste/show/56c36015.18c1.db 17:45
17:47 TreyHarris joined 17:48 edehont joined 17:49 yqt joined
lizmat rudi_s_: signals are exposed as a Supply 17:51
17:52 vendethiel left
rudi_s_ moritz: Hm. How do I start the programs? I added :w to grep, and tried $second-proc.stdout.tap(-> $v { say $v }); and await $first-proc.start, $second-proc.start; but that doesn't work and just waits for 5 seconds. 17:53
17:53 zakharyas left
moritz rudi_s_: if you have something that reads from STDIN, you need to call .close-stdin 17:54
and grep does that in the example 17:55
rudi_s_ moritz: How do I do that? How do I know that all input was passed to grep?
Shouldn't the cat propagate that?
moritz rudi_s_: well, when the cat's .start promise is fulfilled, you know that it won't produce any more output 17:56
RabidGravy This github.com/jonathanstowe/Oyatul/bl...ul.pm#L608 is broken by the "require" changes - changing that to do the require in an EVAL fixes
but why
rudi_s_ But anyway, my problem is not passing data between processes. I just want to run process A, wait for it to terminate, then do something in between, then start process B, then wait. And all that with a complete timeout.
moritz rudi_s_: but that's what the Promise.in($timeout).then gives you 17:57
rudi_s_ moritz: How? I tried it like this: pbot.rmdir.de/PTIKbArCH_MCyiGG03C1Nw 17:58
17:58 abraxxa left
rudi_s_ Ah, that seems to work. 17:59
Sorry. I thought it took longer.
17:59 iH2O joined
rudi_s_ Nice. That seems to work. 17:59
Skarsnik RabidGravy, look bad if you need to put in EVAL x)
iH2O I installed rakudo star 2016.01 and it works fine, except for the man page that didn't install. I cannot locate it 18:00
rudi_s_ moritz: Can I combine that with an external promise which is triggered by sigint? Would Promise.anyof($from_signal, Promise.in(...)) work?
moritz rudi_s_: sure
iH2O on linux
RabidGravy Skarsnik, it is bad but I can't work out what has changed in require so I can fix it properly 18:02
Skarsnik iH2O, I don't think we install any man page x)
18:02 firstdayonthejob joined
moritz we should, though 18:03
we had a pod2man for docs/running.pod in Makefile
[Coke] tries to get to the bottom of the hanging daily rakudo or nqp tests. 18:05
18:08 araujo left, sufrostico left
iH2O Skarsnik: but when I type perl6 --help the compiler tells me to check the manual page for details. so i suppose the details are in a synopsis 18:09
and I should look there
maybe then the compiler should tell me to check the synopsis instead of the man page
rudi_s_ moritz: Thanks. - My original problem was to run that sub multiple times in parallel while still supporting ctrl-c/timeout. How could I start this function in parallel? Would just using start { .. } and then await for all the subs work? 18:10
moritz no, it just installt that darned man page
iH2O cant find it
moritz rudi_s_: yes
iH2O: I mean, it should. It's a bug that it doesn't
iH2O: it should be generated from doc/running.pod or something similar in the rakudo repo 18:11
18:11 Psyche^ joined
iH2O I got no error message 18:11
18:14 musiKk joined
jnthn rudi_s_: gist.github.com/jnthn/e1f8e086dd4d6387cce3 18:14
moritz iH2O: I didn't say you should
jnthn The "can I close the calculator twice in 5 seconds" challenge :)
iH2O I'd feel better with an error message 18:15
:)
18:15 Psyche^_ left 18:17 [BNC]WizJin joined 18:22 edehont left 18:24 ely-se joined
jnthn dinner & 18:24
18:24 isBEKaml joined 18:29 shicheng joined, [Tux] left
rudi_s_ moritz: Hm. That doesn't work. I tried this minimal example: pbot.rmdir.de/uzlWzTUPBGtZiWu-HDQBTw <- it doesn't terminate and doesn't spawn more than a few sleep 3s. 18:35
What am I doing wrong?
18:36 sufrostico joined, colomon joined 18:39 colomon left 18:40 vendethiel joined 18:41 spider-mario joined, [Tux] joined 18:43 yqt left
rudi_s_ jnthn: Thanks, that seems to work (haven't tested it when I want to run it more than once, see above). But that feels really ugly. I want to pass data between the calls and now I have to press that into the structure of @tasks, when normally I could just write the code like in any other program. 18:47
18:48 iH2O left 18:49 mohae left, FROGGS[mobile] joined 18:51 mohae joined
dalek c: 438f3f5 | (David Brunton)++ | doc/Type/Supply.pod:
replace Supply.new in grep and map

Also, emit() is called on a Supplier rather than Supply.
18:51
c: aa656c6 | RabidGravy++ | doc/Type/Supply.pod:
Merge pull request #399 from dbrunton/patch-11

replace Supply.new in grep and map
18:54 FROGGS[mobile] left, musiKk left 18:57 FROGGS[mobile] joined, shicheng left, isBEKaml left 18:58 FROGGS[mobile]2 joined, FROGGS[mobile] left 18:59 firstdayonthejob left
FROGGS[mobile]2 o/ 18:59
18:59 eyck left, firstdayonthejob joined 19:00 sufrostico left 19:01 sufrostico joined
El_Che it was a good day: perl6 app packaged in docker 19:02
19:07 roguelazer left 19:08 roguelazer joined 19:11 yqt joined 19:12 ocbtec left
[Coke] daily test run seems to be hanging on S32-io/IO-Socket-Async.t 19:12
on the non-jit version of moar, going against roast/master
19:13 FROGGS[mobile]2 left
dalek kudo/nom: 6c44df4 | (Stefan Seifert)++ | src/core/CompUnit/Repository/Installation.pm:
Correctly uninstall short name lookup entries

The files in a repository's short/ directory contain the ids of distributions that provide a given short-name. When uninstalling a distribution we may not simply delete those files as other distributions may provide the same names. Instead filter the lists.
19:14
19:16 patrickz joined
patrickz Hi everyone! 19:17
FROGGS hi patrickz
patrickz Is there a reason for having 6.c and 6.b tags in the rakudo repository? 19:18
They are tempting when using rakudobrew because they show up at the bottom and installing 6.c isn't bad, right? 19:19
But one gets a rather unstable rakudo from around christmas when installing 6.c
FROGGS well, these tags probably just refer to the first release targeting 6.c 19:23
dunno if it was wise tagging it that way at all
[Coke] it was not wise, and removing those tags is on the table. 19:25
patrickz *thumbs up*
[Coke] they do indicate the first release that supported that spec version.
I leave it to jnthn to determine if removing an already pushed tag is too evil to consider. :)
19:26 buharin joined 19:28 rindolf left
FROGGS [Coke]: well, removing should be okay, re-pushing is problematic 19:29
patrickz How can I create a new Hash from two existing ones (merging them) in p6? (Also would it be a good idea to post/flood stackoverflow with this type of questions for publicity/FAQ building purposes?) 19:30
buharin hello
I admit some connection between sort programmers
C programmers want to know Perl 19:31
but C++ won't
why?
mspo the same reason golang didn't attract the C++ people at google, but *did* attract all of the python people
FROGGS m: my %a = a => 1; my %b = b => 2; say { |%a, |%b } 19:32
camelia rakudo-moar 6c44df: OUTPUT«-> ;; $_? is raw { #`(Block|66959728) ... }␤»
FROGGS m: my %a = a => 1; my %b = b => 2; say (|%a, |%b)
camelia rakudo-moar 6c44df: OUTPUT«(a => 1 b => 2)␤»
FROGGS m: my %a = a => 1; my %b = b => 2; say (|%a, |%b).WHAT
camelia rakudo-moar 6c44df: OUTPUT«(List)␤»
FROGGS hmmm
m: my %a = a => 1; my %b = b => 2; say my %c = |%a, |%b
mspo buharin: rob pike has some analysis on it but, basically, if you've committed to something as big as C++, you're not going to give it up easily
camelia rakudo-moar 6c44df: OUTPUT«a => 1, b => 2␤»
FROGGS patrickz: ^^ 19:33
MadcapJake m: my %a = a => 1, b => 2, c => 3; my %b = d => 4, e => 5, f => 6; my %c = %a.push: %b; say %c
camelia rakudo-moar 6c44df: OUTPUT«a => 1, b => 2, c => 3, d => 4, e => 5, f => 6␤»
mspo buharin: whereas C is a smaller language and perl 1) is easier for whipping things together and 2) has a lot of functions named the same/doing the same
buharin mspo, sure 19:34
patrickz Hey thanks for that!
buharin mspo, but anyway why C ppl hates C++ 19:35
patrickz has now also learned about tactical use of WHAT
FROGGS buharin: it is just a matter of taste... when you like how clean C is, then C++ must feel ugly 19:36
19:37 kurahaupo left 19:38 CIAvash left 19:39 rurban joined
Skarsnik C++ make you think on a bad way IMO (you nearly always though compiler when writing c++) and it's quite the oposite of Perl 6 Moto, make it cool for the user even if it's a nightmare for the compiler 19:39
patrickz m: say %( |%a, |%b ) 19:41
camelia rakudo-moar 6c44df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CLTe8DZXRl␤Variable '%a' is not declared␤at /tmp/CLTe8DZXRl:1␤------> 3say %( |7⏏5%a, |%b )␤»
19:41 shicheng joined
patrickz m: my %a = a=>1; my %b=b=>1; say %( |%a, |%b ) 19:41
camelia rakudo-moar 6c44df: OUTPUT«a => 1, b => 1␤»
mspo buharin: because C is "small"
19:42 cdg left
Skarsnik and the stl is no very friendly at first glance x) 19:42
perlpilot Skarsnik: at what glance does the STL seem friendly? ;) 19:47
Skarsnik for people liking it? xD
Actually no idea. everything I have to use the stl I am "I don't care about how the hell it work behind, I want to simply add something to my hash" 19:48
*everytime
that why all my C++ dev is with Qt x)
buharin Skarsnik, did you try Java? 19:50
19:50 p6newbee left, wamba left 19:51 wamba joined
Skarsnik Java does not fit the "work on os X/Win32/Unix" when I do this type of dev 19:52
19:53 hankache joined
geekosaur "write once, debug everywhere" 19:53
buharin Skarsnik, what about D?
patrickz Wasn't that the Qt slogan?
hankache hola #perl6
Skarsnik It's more about Qt, than C++ actually. 19:54
buharin hankache, we currently talking about perl6 in face of another programming languages 19:55
hankache aha ok 19:56
19:56 rurban left
hankache buharin i was just saying hi :) 19:56
19:57 hello joined, hello is now known as Guest1856 19:59 rurban joined 20:02 rurban left 20:05 TEttinger joined 20:11 ELBeavers_ joined, _dolmen_ joined 20:13 ELBeavers left, ELBeavers_ is now known as ELBeavers 20:21 darutoko left
dalek c: dbee887 | (Wenzel P. P. Peppmeyer)++ | doc/Language/list.pod:
better heading, fix link, move to a better place
20:24
20:27 musiKk joined 20:29 eyck joined 20:31 remmie left 20:33 remmie joined 20:37 hankache left
MadcapJake how could i implement the class/static attribute pattern? 20:38
jnthn MadcapJake: Just with lexicals inside the class; if you want to give them accessors then `my $.foo` works 20:40
MadcapJake oh the dot works, eh? didn't think it would work outside of `has`
jnthn [Coke]: +1 to removing the misleading tags 20:41
(And I agree, it's moving existing tags to new commits that is the bad practice)
MadcapJake jnthn, is there any way to prevent it from propagating into instances of the class? 20:42
timotimo sadly, deadpool was sold out and we didn't get any ticket ;(
jnthn MadcapJake: Not short of writing the accessors yourself and constraining them with :U on the invocant 20:43
timotimo: aww
timotimo oh well
MadcapJake hmm, not sure that propagating will be a problem actually, only difficult in testing :P 20:45
jnthn Just make two instances and check modifying it "affects" both :) 20:46
20:51 kurahaupo joined 20:56 ELBeavers is now known as ELBeavers_away, kurahaupo left 21:02 kaare_ left, _ramix_ joined 21:03 espadrine left 21:04 [Sno] joined, revhippie joined 21:06 sno left 21:09 [Sno] left 21:14 _ramix_ left 21:15 cdg joined 21:21 ELBeavers_away is now known as ELBeavers 21:27 musiKk left 21:28 colomon joined
timotimo hurm. 21:29
i deleted the .rrd files from /var/lib/collectd, and they are now no longer working in the web interface ... but for some reason the link to the plugin that contains the images is still there 21:30
will that update itself at some point, i wonder? 21:31
there's not really a daemon that runs for collectd-web, it's just some CGI stuff :| 21:32
collectd-web ... "use CGI" ;_;
21:33 breinbaas left
timotimo where does it get the data from? i haven't a clue :| 21:35
moritz run strace on it?
21:36 espadrine joined
moritz you can call CGI scripts on the command line (usually) 21:36
21:37 atweiden joined
timotimo oh hey it no longer shows two brken img tags 21:37
it's gone now! 21:41
obviously time heals all wounds
21:42 espadrine left
moritz even digital ones; good to know 21:48
21:48 avenj left 21:55 espadrine joined
timotimo well, that was a collossal waste of time :) 21:56
22:01 sno joined 22:02 skids left
MadcapJake how could i figure out if a method is being called from a class or an instance? 22:04
timotimo check if self is defined or not 22:05
moritz MadcapJake: if self.defined { }
or you could have two multi candiates, one with :D and one with :U on the invocant 22:06
m: class A { multi method x(A:D:) { 'instance' }; multi method x(A:U:) { 'class' }; say A.x; say A.new.x
camelia rakudo-moar 6c44df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Qq9uhGhgJ_␤Missing block␤at /tmp/Qq9uhGhgJ_:1␤------> 3(A:U:) { 'class' }; say A.x; say A.new.x7⏏5<EOL>␤ expecting any of:␤ postfix␤ statement end␤ statement modifier…»
moritz m: class A { multi method x(A:D:) { 'instance' }; multi method x(A:U:) { 'class' }}; say A.x; say A.new.x 22:07
camelia rakudo-moar 6c44df: OUTPUT«class␤instance␤»
MadcapJake that's slick
perlpilot
.oO( that's Perl 6 )
22:11
22:12 Begi left 22:13 Begi joined
Ulti 2015-04-14 on JIT moarvm my tests took 10s to complete today now I've refactored my code to fit christmas so very little code change and no algorithmic change 3.5s 22:14
everyone++ 22:15
2014-08-22 they took 35 seconds
so thats an order of magnitude improvement since the profiler was released >:D 22:16
jnthn Guess now we should try for 1 more order... :) 22:19
22:19 apiw joined
TEttinger nice! I'm hopeful that perl6 can speed up more 22:20
22:23 vendethiel left
Ulti jnthn that would win, yes >:3 22:24
though really I need to just tweak my code a bit to be less awful too
but I've just been wanting to not change this for a while to just have this mini benchmark of things I need
if my crummy code runs fast enough then my good code will be fine 22:25
22:26 apiw left
El_Che Ulti: news.perlfoundation.org/2016/02/gra...forma.html <= A RFC for a perl6 speedup grant 22:26
Ulti yeah I'm the second person who commented :)
El_Che Mine school girl giggling is still in the approve queue :) 22:27
my
Ulti put it this way the company I work for invest in FPGA to hardware accelerate the core algorithms we use... so orders of magnitude matter for the real nitty gritty of what we do but for anything else it just has to be fast enough to be sensible 22:28
MadcapJake moritz, does this seem like a good usage of class/instance multis gist.github.com/MadcapJake/c74615bdad979fe4dd3a 22:29
Ulti but if I have to use a week of CPU for something thats an hour just by changing language to say even Perl 5 then its very hard to justify the choice of Perl 6 at work even if its awesome at home
yay BioInfo is back to green on Travis :) the final thing was a single place I needed append not push 22:30
22:34 cpage_ left 22:40 vendethiel joined
Ulti wonders if his slang JustWorks(tm) with the new REPL 22:40
because that will be utterly awesome if it does
flussence doesn't miss the days when pod2html took an hour or two to run on a 90KB S26 22:41
Ulti well before the 35 seconds for my tests it was like >10 minutes back in the good old days of parrot :S 22:42
lizmat would like the hours back spent watching the 5th wave 22:44
Ulti aha so my slang hijacks quoting which is something not handled in the multiline REPL yet
hoelzro Ulti: would you mind sending me a gist of the code that's not working? 22:45
I still have more work to do on the multi line REPL it seems; not to be unexpected =)
Ulti yeah the multi line at the level of blocks is awesome though hoelzro thanks
the code was just "sfgdgdf with a return for the next line 22:46
hoelzro Ulti: which slang? 22:47
Ulti hoelzro: gist.github.com/MattOates/95167bef3f50a5e60d5b
hoelzro so quotes break without slangs? I think sortiz pointed that out to me 22:48
Ulti hoelzro: oh the one in BioInfo it uses `` as a quoted thing to construct an object from the string github.com/MattOates/BioInfo/blob/...ioInfo.pm6
yeah its just quotes in general
hoelzro ah ha
that's definitely something people are more likely to run into than compile-time issues 22:49
Ulti all I do is create an extra type of quotes which compile to something other than a Str
annoyingly I called it a Seq which I'll have to change ;____; 22:50
I was totes there first though
pyrimidine Ulti: we both were :) 22:53
Guest1856 is there a plan to create a tk module? And can you foresee, when such a module is avaible? 22:54
pyrimidine Though I suppose mine was Bio::Seq...
22:56 espadrine left
RabidGravy Guest1856, I'm sure if someone feels sufficiently motivated it will happen 22:57
23:01 vendethiel left
timotimo before i can truly deploy synopsebot, i think i have to give its code a tiny bit of love 23:02
among other things it wants to restart itself when there's no more PING messages coming in 23:03
Guest1856 thanks RabidGravy. Hopefully it will be soon. Perl6 is missing a easy to learn gui tool... 23:04
23:05 FROGGS left
timotimo agreed, we have only GTK::Simple or Electron 23:05
23:06 RabidGravy left
timotimo and Inline::Python gives us PyQt and PySide 23:06
jnthn Not sure GTK::Simple is hard to learn? :)
If it's as simple as it claims.. ;)
timotimo it is rather simple, but it's not very advanced 23:07
jnthn True :)
23:07 cpage_ joined
Skarsnik Someone should write an fake OO generator with gptrixie x) 23:11
but I think someone mentionned that gtk3 as a non C Api adapted to be used with other language? 23:13
23:14 ely-se left
jnthn sleepy time & 23:14
Skarsnik Good night jnthn and #perl6
timotimo well, those changes don't belong in synopsebot, they belong in net::irc::bot
23:15 Skarsnik left, spider-mario left 23:17 buharin left
lizmat good night, jnthn 23:17
Guest1856 jnthn, I didn't find a goot tutorial or doc for GTK::Simple. So for me it is difficult to find an entry to this gui tool. But I am a very beginner and for other people it is not so hard 23:20
23:20 vendethiel joined
timotimo Guest1856: did you see the examples in the gtk simple repository? 23:21
23:21 Begi left
MadcapJake I wish we had a simple GTK experience like pygobject. I'd be willing to help write p6gobject with someone, but I'd need help deciphering how to do GObject Introspection :P 23:23
Guest1856 timotimo: yes, i have overseen them shortly. Perhaps I have to study them more in-depth... For me as beginner it is very difficult to learn only from examples without instruction. Moreover I like tk very much because it is so easy 23:24
atweiden my code is raising X::Multi::NoMatch exception from this line: `$root := $root[@steps[$i]];` 23:25
any ideas as to how that might be happening?
timotimo have you printed the exception message? 23:27
it should say what method it's failing to match, i think
dalek kudo/nom: 5d7f651 | lizmat++ | src/core/Str.pm:
Another round of .trans optimizations

  - use natives wherever possible
  - inline triage_substitution since it was only called in one place
  - return the result from a method in LSM
atweiden timotimo: X::Multi::NoMatch exception produced no message
timotimo o_O
atweiden it has to do with @a[*-0]
timotimo ah, so no postcircumfix:<[ ]> for a code object? 23:28
23:29 [particle] joined
lizmat good night, #perl6! 23:29
atweiden here `$root` is the container (`is rw`) yielded from @a[*-0] a step before
23:30 Spot___ joined
timotimo gnite lizmat! 23:30
atweiden basically @a[*-0][0] = 'x'
23:30 chansen__ joined, advwp left
timotimo X::Multi::NoMatch really should be able to give a message 23:30
it potentially blew up in the .message method 23:31
could you try .message on the exception?
23:31 mindos_ joined
atweiden i tried `dd`ing it but it complained about `.perl` not being implemented 23:31
$_ is all i could do
23:31 clkao_ joined, integral_ joined, ilmari_ joined 23:32 integral_ left, integral_ joined, caasih_ joined, [Coke]_ joined, Woodi_ joined, mkz_ joined, apejens_ joined, Brock joined 23:33 jsimonet1 joined 23:35 nightfro` joined, lostinfog left, sjohnsen- joined, LGD_ joined 23:36 Kitt3n joined 23:37 revhippie left, vytas left, Redfoxmoon left, caasih left, olinkl left, sjohnsen left, autarch left, mprelude_ left, nightfrog left, apejens left, mkz left, hippie left, [particle]1 left, [Coke] left, khagan left, mrsolo left, mindos left, chansen_ left, robinsmidsrod left, clkao left, Grauwolf left, jsimonet left, Woodi left, LGD left, awwaiid left, felher left, integral left, Spot__ left, ilmari left, BuildTheRobots left 23:38 chansen__ is now known as chansen_, mindos_ is now known as mindos 23:39 Spot___ is now known as Spot__, TimToady left, caasih_ is now known as caasih, khagan joined 23:40 clkao_ is now known as clkao, sjohnsen- left 23:41 eddie2pc joined, TimToady joined 23:42 olinkl joined 23:43 vytas joined, Grauwolf joined, felher joined, mprelude_ joined, mrsolo joined 23:44 nightfro` is now known as nightfrog
lizmat couldn't sleep yet and benchmarked Juerd's solution to yesterday's atbash question 23:45
23:45 autarch joined
lizmat turns out .trans for the solution that Juerd gave, is now 4.5x as fast 23:45
23:45 revhippie joined
Juerd lizmat: Wow :) 23:46
23:46 advwp joined 23:47 hippie joined, atweiden left, BuildTheRobots joined, robinsmidsrod joined 23:48 BuildTheRobots left, BuildTheRobots joined, robinsmidsrod left, BuildTheRobots left, robinsmidsrod joined, avenj joined, BuildTheRobots joined 23:50 synopsebot6 joined 23:51 Laurent_R left
timotimo S99:bot 23:51
synopsebot6 Link: design.perl6.org/S99.html#bot
23:52 skids joined
timotimo testing testing 23:54
23:57 sufrostico left
lizmat real sleep& 23:57
timotimo for some reason, synopsebot has 12 threads running; i didn't even know it does anything with start at all
23:58 SCHAAP137 left, sufrostico joined 23:59 firstdayonthejob left