Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-07-18

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:01 gfldex also we don't want the job of syntaxhighlighters to be too easy, do we?
00:04 timotimo stevieb: are you still there?
00:04 timotimo stevieb: you can just check if $<object> is defined, for example
00:04 timotimo then you can just make $<object>.made
00:21 kid51 joined #perl6
00:24 TreyHarr1 joined #perl6
00:36 Xliff joined #perl6
00:39 tadzik joined #perl6
00:48 gfldex m: role R { method foo(){ say "R::foo" } }; class C { method foo(){ "C::foo"} }; my $R = R; my $c = C.new but $R; $c.foo;
00:48 camelia rakudo-moar 242baf: OUTPUT«R::foo␤»
00:49 gfldex m: role R { method foo(){ say "R::foo" } }; class C { method foo(){ "C::foo"} }; my $debug = True; my $R = $debug ?? R !! Mu; my $c = C.new but $R; $c.foo;
00:49 camelia rakudo-moar 242baf: OUTPUT«R::foo␤»
00:49 gfldex m: role R { method foo(){ say "R::foo" } }; class C { method foo(){ "C::foo"} }; my $debug = False; my $R = $debug ?? R !! Mu; my $c = C.new but $R; $c.foo;
00:49 camelia rakudo-moar 242baf: OUTPUT«Cannot mix in non-composable type Mu into object of type C␤  in block <unit> at <tmp> line 1␤␤»
00:49 gfldex m: role R { method foo(){ say "R::foo" } }; class C { method foo(){ "C::foo"} }; my $debug = False; my $R = $debug ?? R !! role :: {}; my $c = C.new but $R; $c.foo;
00:49 camelia rakudo-moar 242baf: ( no output )
00:50 gfldex m: role R { method foo(){ say "R::foo" } }; class C { method foo(){ "C::foo"} }; my $debug = False; my $R = $debug ?? R !! role :: {}; my $c = C.new; $c.foo;
00:50 camelia rakudo-moar 242baf: ( no output )
00:50 gfldex m: role R { method foo(){ say "R::foo" } }; class C { method foo(){ say "C::foo"} }; my $debug = False; my $R = $debug ?? R !! role :: {}; my $c = C.new but $R; $c.foo;
00:50 camelia rakudo-moar 242baf: OUTPUT«C::foo␤»
00:50 gfldex :)
00:51 gfldex m: role R { method foo(){ say "R::foo" } }; class C { method foo(){ say "C::foo"} }; my $debug = False; my $R = $debug ?? R !! role :: {}; my $c = C.new but $R; $c.foo; say $c.WHAT;
00:51 camelia rakudo-moar 242baf: OUTPUT«C::foo␤(C+{<anon|67671632>})␤»
01:02 M-matthew joined #perl6
01:02 M-Illandan joined #perl6
01:12 ovibos is there any way to define pseudo-attributes for perl6 classes, like c# properties?
01:12 timotimo yeah, you want Proxy
01:13 ovibos ah, thanks
01:14 gfldex m: class C {}; sub postfix:<.lie>(C:D){ say 'kekeke' }; my C $c.=new; $c.lie;
01:14 camelia rakudo-moar 242baf: OUTPUT«kekeke␤»
01:14 gfldex m: class C {}; sub postfix:<.lie>(C:D){ say 'kekeke' }; my C $c.=new; $c.lie();
01:14 camelia rakudo-moar 242baf: OUTPUT«kekeke␤No such method 'CALL-ME' for invocant of type 'Bool'␤  in block <unit> at <tmp> line 1␤␤»
01:15 gfldex m: class C {}; sub postfix:<.lie()>(C:D){ say 'kekeke' }; my C $c.=new; $c.lie();
01:15 camelia rakudo-moar 242baf: OUTPUT«kekeke␤»
01:15 gfldex ovibos: ^^^ you can do really odd things with user defined operators
01:17 mst ovibos: 'has' is perl6's equivalent of C# properties
01:17 ovibos mst: i mean, properties in the sense of making a function call look like assignment
01:18 ovibos so $x.y = z would be another way of writing $x.y(z)
01:18 gfldex ovibos: you may be talking about return-rw
01:18 mst yeah, that's how you get lvalue methods IIRC
01:18 mst C# properties are just a degenerate special case of lvalue methods :)
01:19 TreyHarr1 joined #perl6
01:19 ovibos oh, that's neat
01:19 ovibos thanks
01:34 djbkd joined #perl6
01:47 ilbot3 joined #perl6
01: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!
01:52 kalkin-_ joined #perl6
02:05 llfourn m: my $foo = "foo"; say "$foo("; # bug?
02:05 camelia rakudo-moar 242baf: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at <tmp>:1␤------> 3my $foo = "foo"; say "$foo("; # bug?7⏏5<EOL>␤    expecting any of:␤        argument list␤        doub…»
02:05 gfldex llfourn: nobug
02:05 llfourn LTA error?
02:06 gfldex it should say finale ')', so I would vote for LTA
02:07 llfourn it leads to very strange side effects in large examples
02:07 gfldex i tend to use Q:c[] these days to avoid odd stuff
02:07 llfourn what's that?
02:07 gfldex it will only interpolate stuff inside {}
02:08 gfldex :c as in :code
02:08 llfourn oh right yeah
02:08 TreyHarr1 joined #perl6
02:11 llfourn m: class A { method foo { "$name(" } }; role C { method foo { } }; class B { method foo { } }; # this took me ages to figure out o.o
02:11 camelia rakudo-moar 242baf: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Package 'A' already has a method 'foo' (did you mean to declare a multi-method?)␤at <tmp>:1␤»
02:14 gfldex llfourn: did you meant to write $name or $name()?
02:14 llfourn "{$name}(" is what I meant
02:15 gfldex a good syntax highlighter would have helped. Sadly there are no good highlighters yet.
02:15 llfourn yeah :|
02:16 llfourn but if you don't finish the postcircumfix in the quote I think it might make sense to disregard it
02:17 gfldex m: my $a = -> |c {}; my $b = "$a("")";
02:17 camelia rakudo-moar 242baf: OUTPUT«Use of Nil in string context  in block <unit> at <tmp> line 1␤»
02:17 gfldex m: my $a = -> |c {1}; my $b = "$a("")";
02:17 camelia rakudo-moar 242baf: ( no output )
02:17 gfldex llfourn: do you see the problem?
02:18 gfldex as soon as the grammar spots the ( it will switch from Q parsing to Perl 6 parsing.
02:19 llfourn ah that's a good point
02:19 gfldex it's one of those spots where Perl 6 is to flexible for its own good.
02:19 llfourn I never knew that you could continue the quote in another ""
02:20 gfldex it's grammars all the way down :)
02:20 llfourn m: my $a = -> { say "foo" }; "$a("")";
02:20 camelia rakudo-moar 242baf: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in block <unit> at <tmp> line 1␤␤»
02:20 llfourn oh right I see what you mean
02:21 canopus joined #perl6
02:23 kid51 joined #perl6
02:23 gfldex i just glanced over the quoting section in the docs and already spotted 3 holes :-/
02:24 llfourn gfldex++ # working on docs
02:31 Zoffix joined #perl6
02:32 Zoffix m: use MONKEY-TYPING; augment class IO::Path { multi method new (IO::Path: $, $, *@) { } }; IO::Path.new: 1, 2;
02:32 camelia rakudo-moar 242baf: OUTPUT«Ambiguous call to 'new'; these signatures all match:␤:(Mu $: $, *@, *%_)␤:(IO::Path $: $, $, *@, *%_)␤  in block <unit> at <tmp> line 1␤␤»
02:32 Zoffix Why is this ambiguous?
02:34 ponbiki joined #perl6
02:35 Zoffix m: class Foo { multi method new (Foo: $, $, *@) {} }; Foo.new: 1, 2
02:35 camelia rakudo-moar 242baf: OUTPUT«Ambiguous call to 'new'; these signatures all match:␤:(Mu $: $, *@, *%_)␤:(Foo $: $, $, *@, *%_)␤  in block <unit> at <tmp> line 1␤␤»
02:36 Zoffix m: class Foo { proto method new(|) {*}; multi method new (Foo: $, $, *@) {} }; Foo.new: 1, 2
02:36 camelia rakudo-moar 242baf: ( no output )
02:38 llfourn I didn't know Mu had a new like :(Mu $: $, *@, *%_)
02:39 llfourn ah it's so it can throw a specific error
02:39 llfourn X::Constructor::Positional.new(:type( self )).throw();
02:39 * Zoffix still doesn't get the proto stuff even after reading https://docs.perl6.org/syntax/proto
02:40 Zoffix If | is an unnamed Capture parameter, what exactly is the proto (|) above do?
02:40 Zoffix How come it stops matching the Mu?
02:41 llfourn because proto is only so it overrides Mu's multi rather than adding to it
02:41 llfourn I agree wrt to making proto clearer
02:41 llfourn I think I wrote some or most of it but I think i could make a simpler intro to it know that I understand it better
02:42 noganex_ joined #perl6
02:44 dvinciguerra_ joined #perl6
02:45 gfldex Zoffix: did you try (IO::Path:D:) ?
02:46 llfourn but you don't call .new on a defined IO::Path...
02:46 Zoffix gfldex, it's a .new method, it would not be :D at that point
02:46 gfldex m: say IO::Path ~~ Mu;
02:46 camelia rakudo-moar 242baf: OUTPUT«True␤»
02:47 gfldex it would solve the problem tho :)
02:47 Zoffix m: use MONKEY-TYPING; augment class IO::Path { multi method new (IO::Path:D: $, $, *@) { } }; IO::Path.new: 1, 2;
02:47 camelia rakudo-moar 242baf: OUTPUT«Default constructor for 'IO::Path' only takes named arguments␤  in block <unit> at <tmp> line 1␤␤»
02:47 Zoffix Nope, it just calls Mu :)
02:47 gfldex Zoffix: why do you want to overload new anyway, when you can use the one that is already there with a different BUILD
02:48 llfourn Zoffix: have you tried "is default"
02:48 gfldex if you need a different set of positionals, you have to overload new
02:48 llfourn m: class Foo { multi method new is default (Foo: $, $, *@) {} }; Foo.new: 1, 2
02:48 camelia rakudo-moar 242baf: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3class Foo { multi method new is default7⏏5 (Foo: $, $, *@) {} }; Foo.new: 1, 2␤»
02:48 gfldex or better provide another multi candidate
02:49 llfourn m: class Foo { multi method new (Foo: $, $, *@) is default {} }; Foo.new: 1, 2
02:49 camelia rakudo-moar 242baf: ( no output )
02:49 Zoffix Just adding `proto method new(|) {*}` did the trick.
02:49 Zoffix gfldex, because the message lies. IO::Path's new can take positionals.
02:51 gfldex two of them anyway.
02:52 TreyHarr1 joined #perl6
02:53 konobi anyone around that's familiar with NQP and NQP bootstrapping who could help me with rubber ducking an conjecture?
02:57 kurahaupo joined #perl6
02:58 rgrinberg joined #perl6
03:06 TreyHarr1 joined #perl6
03:14 Zoffix .oO( seems everyone is currently asquare... )
03:29 mic_ joined #perl6
03:39 AlexDaniel joined #perl6
03:45 kaare_ joined #perl6
03:50 Senj joined #perl6
03:54 TreyHarr1 joined #perl6
04:05 jack_rabbit joined #perl6
04:34 zakharyas joined #perl6
04:37 Cabanossi joined #perl6
04:42 TreyHarr1 joined #perl6
04:53 holyghost joined #perl6
04:55 holyghost Good morning
04:58 adu joined #perl6
05:01 TreyHarr1 joined #perl6
05:07 bob777 joined #perl6
05:12 mohae joined #perl6
05:42 xiaomiao joined #perl6
05:51 TreyHarr1 joined #perl6
05:54 RabidGravy joined #perl6
05:56 darutoko joined #perl6
06:09 CIAvash joined #perl6
06:25 ribasushi joined #perl6
06:27 TreyHarr1 joined #perl6
06:27 firstdayonthejob joined #perl6
06:30 ugexe joined #perl6
06:35 TreyHarr1 joined #perl6
06:43 user9 joined #perl6
06:43 domidumont joined #perl6
06:48 domidumont joined #perl6
06:50 trnh joined #perl6
07:00 jonas2 joined #perl6
07:10 domidumont joined #perl6
07:12 kst` joined #perl6
07:13 wamba joined #perl6
07:32 abraxxa joined #perl6
07:33 pdcawley joined #perl6
07:34 telex joined #perl6
07:40 abraxxa joined #perl6
07:41 TreyHarr1 joined #perl6
07:45 marcel_ joined #perl6
07:46 Actualeyes joined #perl6
07:56 TreyHarr1 joined #perl6
08:11 zakharyas joined #perl6
08:17 TreyHarr1 joined #perl6
08:34 TreyHarr1 joined #perl6
08:41 gregf_ joined #perl6
08:45 sno joined #perl6
08:48 pmurias joined #perl6
08:48 pmurias konobi: what's your conjecture?
08:48 yoleaux 17 Jul 2016 22:25Z <konobi> pmurias: were you able to get the flamegraph representations from the chrome devtools?
08:50 TreyHarr1 joined #perl6
08:51 pmurias konobi: I have the Chart/Heavy/Tree options for viewing the profile. Maybe I need to update by Chrome?
09:00 TreyHarr1 joined #perl6
09:25 TreyHarr1 joined #perl6
09:31 huggable joined #perl6
09:53 TreyHarr1 joined #perl6
09:56 CIAvash https://developers.slashdot.org/story/16/07/14/1349207/the-slashdot-interview-with-larry-wall
09:58 DrForr Slashdot? "And so it begins."
09:58 timotimo oh, that's already a few days old
09:59 timotimo www.p6c.org doesn't seem to have felt it at all
10:00 DrForr It's on slashdot. They've already decided that perl6 sucks.
10:01 timotimo ah, you're right, of course
10:02 DrForr Well, remember when the questions were being asked 90% of the questions were "have you stopped beating your wife?"
10:03 timotimo right.
10:03 timotimo did that question literally show up, though? or just questions of that type?
10:04 psch ...i wouldn't be surprised if someone on /. thought they were funny by asking exactly that question
10:04 timotimo well, it'd be funny in an ironic way i suppose? or maybe haha-only-serious?
10:05 stmuk oddly the /. interview answers are a lot better than the questions! :)
10:05 DrForr "Why does perl suck?" or variants. I read through those and lost the desire to come up with actually interesting questions.
10:05 stmuk I doubt most of the people asking questions even understand /. itself is perl
10:06 timotimo um ... /. being perl isn't a testament to perl's quality
10:06 psch it's really not an argument for either side
10:07 psch it's like with guitars - 80+% of the sound comes from the fingers, not the wood in the body vOv
10:08 timotimo how about the wood in the fingers?
10:08 psch that probably isn't a good idea, it's likely to hurt a lot :P
10:08 timotimo :)
10:08 psch splinters under the fingernail >_>
10:08 timotimo ugh
10:08 * timotimo shudders
10:11 * stmuk was more pondering the irony of the perl haters using perl unaware than claiming slashcode to be wonderful
10:11 jkramer left #perl6
10:11 stmuk although https://github.com/SoylentNews/rehash/ might fix some breakage
10:13 DrForr People only tend to care what a website "runs on" when it breaks, and someone tweets that a program in one or another language broke.
10:17 stmuk people in general yes but people expressing views about progamming might be more expected to know about website tech detailsa
10:18 stmuk -a
10:18 DrForr Naah, someone writes a snarky post and others just pile on in, joining in because they think it's funny. Easier to do that than take the time to Google what language the site uses.
10:22 xiaomiao I'm surprised that people still use slashdot ... after the "upgrade" last year it was TOFU and I gave up scraping text from the raw HTML
10:22 rindolf joined #perl6
10:22 timotimo what meaning does TOFU have outside german netizens?
10:23 timotimo in german it means "Text Oben, Fullquote Unten"
10:23 moritz timotimo: it's some kind of food :-)
10:23 psch ...i do that
10:23 timotimo as in, "text at the top, a full quote of the thread so far on the bottom"
10:23 psch because gmail does it
10:23 timotimo it can be useful
10:23 stmuk its a veggie food?
10:24 moritz yes
10:24 stmuk top posting?
10:24 timotimo yeah
10:24 psch i've read that usenet etiquette says it's bad, but i've used usenet so i don't really care about that
10:24 psch err, *never* used usenet
10:25 stmuk I think the bottom posting battle was lost years ago
10:25 DrForr O god, top vs. bottom.
10:26 timotimo why say "lost" and not just "decided"? :)
10:26 timotimo anyway, dinner time
10:26 xiaomiao timotimo: TOtally F'ed Up
10:27 timotimo o/
10:27 timotimo ah!
10:27 timotimo of course
10:27 xiaomiao like FUBAR, only more so
10:27 weeirc8081 joined #perl6
10:27 weeirc8081 left #perl6
10:55 raydiak \o
10:56 araujo joined #perl6
10:56 timotimo hey raydiak!
10:56 timotimo long time no see :)
10:57 raydiak hiya timo :)
10:57 raydiak yeah busy busy busy these days.../me haz $dayjob now
10:57 timotimo oh yay
10:57 raydiak mostly writing php :P
10:57 timotimo ... oh
10:58 * hahainternet also secured a new job
10:58 TreyHarr1 joined #perl6
10:58 raydiak it's okay, I'm in a good position to drag our company into the light of perl 6 when the time is right :)
10:58 hahainternet hopefully with Perl, but won't be new Perl :(
10:58 raydiak congrats hahainternet :)
10:58 moritz hahainternet: use Inline::Perl6
10:58 hahainternet merci, same to you raydiak
10:58 DrForr We've already talked about P6 on one of my current projects :)
10:58 hahainternet moritz: i mean "no writing of new perl"
10:59 hahainternet most likely rewriting in Go
10:59 moritz oh
10:59 raydiak thank you also hahainternet
10:59 moritz ah well, new experiences etc.
11:00 hahainternet honestly i'm not sure I could deal with writing Perl 5 too much these days
11:00 hahainternet 6 is so much more convincing
11:01 raydiak timotimo: what kinda awesome stuff are you up to these days?
11:01 timotimo eh
11:01 timotimo nothing very awesome in the last moths i'm afraid
11:01 timotimo but others are doing very good work in perl6-land
11:02 timotimo have you seen the rakudo changelog? lizmat has been improving the performance of core-setting builtins drastically
11:02 raydiak that's approximately what you said last time iirc...and now I ask what I asked last time...so what less-than-very-awesome stuff have you been up to? :)
11:02 raydiak nope haven't been keeping up...I'll go peruse it
11:03 timotimo hmm. i tend to just contribute some odds and ends; for example, we now have a little line-based coverage reporting mechanism in moarvm. though it tends to sometimes give surprising/wrong-seeming results
11:04 raydiak coverage reporting? what is it?
11:04 hahainternet for test i assume
11:04 raydiak oh of course
11:04 hahainternet it will tell you if your tests do not cover portions of code
11:04 timotimo you run a bunch of files - for example the spec tests - and then you can let it report on what lines in a code file -for example the core setting- were ever executed
11:05 hahainternet probably my favourite feature in Go too
11:05 raydiak nice
11:05 timotimo and i convinced someone to re-write the html profile thing in angular 2; we're hoping it could perform a bit better
11:05 raydiak glad you did...too bad I never got to it
11:06 timotimo no worries :)
11:06 raydiak I saw the big splash of bisectbot a while ago...that's pretty awesome
11:06 timotimo yup. we're even going to have a "benchable" on top of that
11:06 raydiak oh sweet
11:06 raydiak how is the performance overall these days? are we competitive with...anything yet?
11:08 timotimo it still strongly depends, sadly
11:09 timotimo we've recently got a little nice re-write in that'll allow moarvm to better parallelize when many invocations happen
11:09 timotimo but at the moment creating new stack frames goes through two allocations that both have to acquire a lock on our shared fixed-size allocator
11:10 timotimo i've run fuzzing against moarvm twice already this year, and there's a few things it found that were already fixed
11:10 raydiak as usual, your knowledge of the guts impresses and exceeds me :)
11:10 timotimo the particular approach i took just means we'll be a bit more robust against forged or b0rked .moarvm files, which isn't worth that much, sadly
11:10 timotimo well, if you bathe in guts all day for a couple of months, you have to have something to show for it, don't you ;)
11:11 raydiak heh I...yeah, that better be worth it...sure doesn't sound pleasant...
11:11 timotimo haha
11:11 timotimo it's pleasant enough when you have lovely people like the perl6 dev team to guide you
11:12 raydiak never hard to find help around here no matter what layer you're working on, that's for sure
11:14 timotimo brrt is still on the way toward thesis finishization, so even-moar-jit is only progressing slowly. but the design work and implementation done so far is promising
11:14 arnsholt timotimo: Also helps that large parts of the guts are less gory than you might expect
11:14 arnsholt jnthn's made som good C APIs for us
11:14 timotimo yeah, from what i can tell he's got a good sense for API design
11:15 raydiak if you ever wanted to fix a broken cool thing with all that low-level knowledge...jnthn's unmaintained Grammar::Generative sure was a cool concept...but hasn't worked since I learned of it
11:17 timotimo what, me? :P
11:17 timotimo is it really low-level?
11:19 raydiak idk.  lower than my understanding.  last I knew, it was segafaulting and I posted a stack trace in an issue but he was busy with more central rakudo things
11:19 timotimo ouch
11:19 timotimo a segfault is surely not a good thing to have
11:20 raydiak the project is mostly nqp iirc. I only have a very vague understanding of nqp
11:20 DrForr I've been dealing with nqp over the last few days/week, and segfaulting is unavoidable.
11:20 raydiak or at least the failure point was nqp. that was when I realized I'd have to spend more time learning to fix it than I could, even though I really wanted to use it at that time for a larger related idea I had
11:20 psch https://github.com/jnthn/grammar-generative/blob/master/lib/Grammar/Generative.pm6 has no occurence of "nqp"?
11:20 psch ah
11:21 DrForr (not after release, but development has a side effect of throwing segfaults)
11:22 raydiak here's the issue, which is apparently no longer a segfault: https://github.com/jnthn/grammar-generative/issues/1
11:23 raydiak I guess I was remmebering wrong about the nqp, I guess it's just all the $* vars and ast and such in there I'm not familiar with
11:24 psch yeah, it is rather gutsy, but more src/Perl6/ level gutsy, not nqp gutsy :)
11:25 raydiak all I remember for certain was that I really wanted to use it, tried to fix it myself but quickly discovered I was in over my head unless I was ready to spend some more serious study time :)
11:28 TreyHarr1 joined #perl6
11:30 _28_ria joined #perl6
11:40 arnsholt Yeah, it's low-level at the NQP and grammar internals/MOP level, not C internals low-level
11:40 arnsholt I attended jnthn's talk about it at YAPC::NA in Austin, but I've since forgotten the details of how it works
11:41 arnsholt I remember that it was quite clever though (and the talk may have included things like co-parsing, although that may have been a different jnthn-talk from the same conference)
11:41 Roamer` mmmyeah, so Perl 6 has spoiled me already... writing some Perl 5 code, really missing the ability to do a map within a map and have access to the outer iterator
11:45 raydiak think I watched the talk at some point. I actually started writing my own crude version of the idea before I learned of grammar::generative, which looked like a much cleaner and better integrated solution than my silly user-level P6 'reimplement everything about pattern matching at the same time' attempt
11:52 raydiak I was ending up with some barely-a-shadow-of-a-real-regex pattern implementation...more like lua patterns...just so it was all on a level I understood how to work with so I could implement the generative part. then realized how silly it is to write a pattern matching engine in a language which has an incredibly powerful pattern matching engine built in. that's where that project stopped, heh
11:53 rgrinberg joined #perl6
11:54 pmurias_ joined #perl6
12:06 kid51 joined #perl6
12:06 zakharyas joined #perl6
12:11 pmurias joined #perl6
12:12 gregf_ I could be wrong. I've been wrong before, but I've also been right before.;-) <== thats a great way to end :)
12:15 sufrostico joined #perl6
12:16 perlpilot joined #perl6
12:27 shillo joined #perl6
12:27 cdg joined #perl6
12:34 shillo perl6 -e 'class A { method m() {} }; say &A.m;'
12:34 shillo p6: class A { method m() {} }; say &A.m;
12:34 camelia rakudo-moar 21cfe2: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Illegally post-declared type:␤    A used at line 1␤␤»
12:34 shillo So, a quick question: How to I actually get a reference to a method as a Routine? Do I have to call A.^find_method?
12:34 timotimo find_method, or can
12:35 psch or lookup
12:35 timotimo lookup?
12:35 psch m: Int.^lookup("Str").perl.say
12:35 camelia rakudo-moar 21cfe2: OUTPUT«method Str (Mu $: | is raw) { #`(Method|59787816) ... }␤»
12:35 timotimo neat
12:35 psch there is a difference between can and lookup, but i don't remember what it was :|
12:36 shillo Huh, I thought can returned Bool
12:36 psch m: Int.^can("Str").perl.say
12:36 camelia rakudo-moar 21cfe2: OUTPUT«(method Str (Mu $: | is raw) { #`(Method|53565960) ... }, method Str (Mu $: | is raw) { #`(Method|53019624) ... })␤»
12:36 psch ah, so lookup gets the proto and can the candidates..?
12:36 shillo lookup seems to return not-a-list
12:37 shillo yah
12:37 molaf joined #perl6
12:37 psch m: Int.^lookup("Str").onlystar.say
12:37 camelia rakudo-moar 21cfe2: OUTPUT«True␤»
12:37 shillo and is find_method useful for normal work, or is that a low-level thing?
12:37 psch m: Int.^find_method("Str").onlystar.say
12:37 camelia rakudo-moar 21cfe2: OUTPUT«True␤»
12:37 jnthn Depends what your normal work is ;)
12:37 moritz shillo: both
12:37 moritz m: Int.^lookup("Str").^name
12:37 camelia rakudo-moar 21cfe2: ( no output )
12:37 moritz m: say Int.^lookup("Str").^name
12:37 camelia rakudo-moar 21cfe2: OUTPUT«Method␤»
12:38 shillo jnthn: :)
12:38 jnthn find_method gives you back something you can invoke
12:38 jnthn It may not be the actual declared Method object in the class/role
12:38 shillo You mean, it'll convert what it finds into something invokable if it weren't already?
12:38 jnthn No
12:39 jnthn In a bog standard class you're not likely to see a difference
12:39 shillo yeah, I am interested in the other case specifically.
12:39 jnthn But if you were using something like OO::Monitors, which enforces mutual exclusion on the methods, then find_method will return something that does the lock acquire/release and calls the method.
12:39 jnthn Whereas lookup always gives you the method object that was declared in the class
12:40 ribasushi joined #perl6
12:40 jnthn So, find_method if you just want to delay or otherwise mess with invocation, lookup if you're introspecting, is a decent rule
12:40 shillo Thanks! Yeah, that helps. (and I want lookup, in that case
12:40 shillo (or possibly can, not sure if I want to actually introspect the prototype)
12:41 pmurias_ joined #perl6
12:42 shillo Just for the reference, this is what I'm doing: sub sample(Foo $x, Bar $t, Foo :$y, Bar :$z) { ... } <-- client method
12:43 shillo class Config does Inject { multi method ASK(Foo) { FooImpl.new } multi method ASK(Bar) { BarImpl.new } }   <--- provide implementations for the roles
12:44 shillo my $c = Config.new; $c.call(&sample); <-- autofills everything magically
12:44 shillo Works great, but $c.call(Klass.^lookup('sample')) is kind of ugly
12:45 moritz $c.call(Klass, 'sample')
12:45 moritz less ugly
12:45 jnthn Why not just thunkit? $c.call({ Klass.sample })
12:46 jnthn *thunk it
12:46 shillo Because .call introspects its first argument, thunk loses everything
12:46 huf Klass always makes me think of the Klan...
12:47 moritz it's the python way of working around reservered words
12:47 shillo And Scheme way :)
12:47 huf and java
12:47 shillo And C++ way
12:47 huf it's the universal way to work around the reserved word "class" :)
12:47 huf in a sense, it's the only class us plebs can acquire :D
12:47 shillo Well, schemers tend to use cls instead
12:47 psch i've seen clazz more often in java actually
12:48 huf psch: that seems somewhat speakeasy-ish :)
12:48 huf jazz on clarinet or something
12:48 psch heh
12:49 shillo I wish for infix macros. So I can say  Klass->sample($c, args...)
12:49 shillo (on a second thought, it won't be -> ... )
12:50 dvinciguerra_ joined #perl6
12:52 shillo ... I'll probably end up with $c.call_method(Klass, 'method', ...), BTW
12:52 mcmillhj joined #perl6
12:53 psch m: sub infix:['>~>'] { $^a.^find_method($^b) }; class A { method foo { "foo" } }; class B { method invoke($a, $b) { $a.$b() } }; say invoke B: A, (A >~> "foo")
12:53 camelia rakudo-moar c07b2d: OUTPUT«foo␤»
12:55 shillo Nice :) I'll think about it :)
12:55 psch well, if you can you probably want to avoid declaring infixes
12:55 psch they're somewhat slow during parse
12:56 psch also, i personally don't actually see any improvement in readibility with that explicit example :|
12:56 mst shillo: note that masak was poking towards macros
12:56 psch probably due to badly chosen operator
12:58 shillo psch :) Hence 'I'll think about it' :)
12:58 shillo ... and I think I really want find_method for my usecase. I want to both introspect the arguments and to invoke.
12:59 timotimo yeah, sounds like the right tool for the job
12:59 timotimo though, do you really need to pass the class along, too?
12:59 timotimo in what case is the class different to the wrapped things' .WHAT?
13:00 shillo Just for convenience, it's easier to do $c.run(Cls, 'method') than $c.call(Cls.^find_method('method'))
13:00 shillo ... I plan to have both options in the API, anyway.
13:00 shillo ... and also $c.make(Cls, constructor args)
13:01 timotimo oh, $c doesn't have Cls somewhere in its belly, eh?
13:01 shillo ... with $c filling the unspecified args.
13:01 shillo No, it's just a configuration object.
13:01 timotimo if you don't mind my sillyness, how about methodname => ClassObject? :)
13:01 shillo It gets ASKed for impls
13:01 shillo I don't actually need the class at all.
13:02 timotimo because => will auto-quote the thing on its LHS :3
13:02 shillo Just a pointer to the callable to introspect and invoke. See above, passing the class is just for conventience, so you don't have to write 'find_method' on each callsite.
13:02 timotimo i understand that; what i was missing was that there's no $c.set_class_to_use(Cls) or anything
13:03 shillo Hmm, methodname => class... er, it's just the opposite order from the normal usage, though
13:03 shillo there shouldn't be.
13:03 shillo $c should be able to call stuff itself, as it fills the ASKs
13:03 timotimo right
13:03 timotimo what's an ASK again?
13:03 shillo Converts a role into its implementation.
13:04 melezhik joined #perl6
13:04 shillo This is basically Inversiof of Control pattern in a way that's not a giant blobby framework.
13:04 timotimo oh, ok
13:06 shillo So you'd write class Config does Inject { multi method ASK(FooRole) { $.make(FooImpl, size => 500) } multi method ASK(Bla) { ... } }
13:06 shillo ... and class FooImpl { method new(Bla $b, :size){} }
13:06 shillo ... with Bla being autofilled by ASKing the config
13:07 timotimo mhm
13:07 shillo ... not sure I can overload the new() like this, but I'll come ask when I have to :)
13:07 timotimo i'd probably have to see it to understand it :)
13:07 timotimo new is a 100% ordinary method
13:07 timotimo nothing special about it whatsoever
13:07 shillo https://pastee.org/u7a66
13:08 shillo Here's the current paste
13:08 shillo Outputs args: FooImpl<80076656> BarImpl<80076688> FooImpl<80076720> BarImpl<80076752> args: FooImplX<80076784> BarImpl<80076816> FooImpl<80076848> BarImpl<80076880>
13:08 colomon joined #perl6
13:09 shillo Ignore the proto method GET, I renamed into ASK at some point, but didn't see the proto
13:10 dalek doc: c2f49be | (Wenzel P. P. Peppmeyer)++ | doc/Language/traps.pod6:
13:10 dalek doc: add quoting to traps
13:10 dalek doc: review: https://github.com/perl6/doc/commit/c2f49bed12
13:11 Actualeyes joined #perl6
13:15 MasterDukeMobile joined #perl6
13:17 MasterDukeMobile timotimo: benchable should be running now
13:17 timotimo ooooh?
13:18 timotimo how does it make sure the results aren't noisy up the wazzoo?
13:18 MasterDukeMobile there are still some features to refine, and some to add (e.g., automatic graphing)
13:18 * [Coke] waves, full of the Mondays.
13:18 MasterDukeMobile ha, that's one of the things that needs refining
13:19 timotimo sure :)
13:19 timotimo benchable: help
13:19 benchable timotimo: Like this: benchable: f583f22,110704d my $a = "a" x 2**16;for ^1000 {my $b = $a.chop($_)}
13:19 skids joined #perl6
13:19 MasterDukeMobile like committable, it also does ranges
13:20 timotimo could it bench all releases since 2015.12 and a current HEAD when no revisions are supplied?
13:20 MasterDukeMobile we've talked about what would make a good default behavior
13:21 MasterDukeMobile that's a good idea
13:22 timotimo what were the other suggestions?
13:23 MasterDukeMobile do a sampling, kind of like you suggested, and then find inflection points and "zoom in" on them
13:23 timotimo that'd be fantastic
13:24 MasterDukeMobile I.e., when two commits have a large difference, do more sampling in-between them
13:27 MasterDukeMobile I have very limited internet access right now, but if you have any ideas please tell AlexDaniel or myself, or file github issues/PRs
13:28 timotimo cool!
13:28 MasterDukeMobile bench: source
13:28 benchable MasterDukeMobile: https://github.com/perl6/bisectbot
13:28 ribasushi joined #perl6
13:28 cdg joined #perl6
13:33 shillo Hmm, let me test it with something (hopefully) light
13:33 shillo bench: 1+1
13:33 benchable shillo: Like this: benchable: f583f22,110704d my $a = "a" x 2**16;for ^1000 {my $b = $a.chop($_)}
13:34 shillo benchable: f583f22,110704d 1+1
13:34 benchable shillo: |«f583f22»:0.0894␤|«110704d»:0.0894
13:35 Frameless benchable: 2016.04,2016.07 my $x = "foo".chop(10)
13:35 benchable Frameless: |«2016.04»:0.0946␤|«2016.07»:0.0941
13:35 Frameless That was surprisingly fast. Does it do just one iteration?
13:36 skids "Software interprets lawyers as damage, and routes around them." Haha, classic Larry.
13:36 timotimo yeah, you have to do the iteratings yourself
13:36 timotimo like in the example benchable gave you
13:36 Frameless benchable: 2016.04,2016.07 my $x = "foo".chop(10) for ^100
13:36 benchable Frameless: |«2016.04»:0.0980␤|«2016.07»:0.0970
13:36 Frameless Oh, right :)
13:36 Frameless benchable: 2016.04,2016.07 my $x = "foo".chop(10) for ^100000
13:36 benchable Frameless: |«2016.04»:0.1991␤|«2016.07»:0.1932
13:36 shillo benchable: 2016.01,2016.07 for ^1000 {"/a/b/c/foo.c".IO.basename}
13:37 benchable shillo: |«2016.01»:No build for this commit␤|«2016.07»:0.5594
13:37 shillo benchable: 2016.04,2016.07 for ^1000 {"/a/b/c/foo.c".IO.basename}
13:37 benchable shillo: |«2016.04»:0.8168␤|«2016.07»:0.5587
13:37 AlexDaniel joined #perl6
13:37 shillo I recall .basename being aggravatingly slow for traversing filesystems. 2x is an improvement.
13:37 Frameless benchable: 2016.04,2016.07 my $x = "foo".samemark("z") for ^100000
13:38 Frameless oops
13:38 shillo (as in, dominating traversal)
13:38 timotimo well, if you use /a/b/c/foo.c, you're not going to be traversing the filesystem :)
13:38 AlexDaniel timotimo: it does 5 iterations. Right now it kinda expects that you will be doing it across many-many commits, so
13:38 AlexDaniel timotimo: at this point benchable is not very mature :)
13:38 shillo timotimo: Heh :) I just used that for the purpose of the benchmark
13:39 timotimo OK :)
13:39 AlexDaniel also, it is not async, so I guess that it will ping out soon
13:39 timotimo oh, that's a good point ...
13:40 AlexDaniel bisectable is doing great though. This bisect log is just awesome
13:40 bisectable AlexDaniel: On both starting points the exit code is 1 and the output is identical as well
13:40 bisectable AlexDaniel: https://gist.github.com/3bd7874edf0c8852be6d3c1ad16f9d01
13:40 AlexDaniel I should've done it earlier
13:40 AlexDaniel haha, it thought that I was talking to it
13:40 timotimo hahaha
13:41 shillo :)
13:41 timotimo adorable
13:41 shillo bisectable is adorable
13:41 bisectable shillo: On both starting points the exit code is 1 and the output is identical as well
13:41 bisectable shillo: Output on both points: [31m===[0mSORRY![31m===[0m Error while compiling /tmp/VG87aUth1qâ�¤Undeclared routines:â�¤    adorable used at line 1â�¤    is used at line 1â�¤
13:41 AlexDaniel ah right, the only thing that is missing is colors
13:41 moritz kinda proofs the point :-)
13:42 rindolf joined #perl6
13:42 Frameless AlexDaniel: you can turn that stuff off with RAKUDO_ERROR_COLOR env var
13:43 Frameless bisectable: BEGIN { RAKUDO_ERROR_COLOR = 0 }; is adorable
13:43 bisectable Frameless: On both starting points the exit code is 1 and the output is identical as well
13:43 bisectable Frameless: Output on both points: [31m===[0mSORRY![31m===[0m Error while compiling /tmp/T4XNi9YAnc�Preceding context expects a term, but found infix = instead�at /tmp/T4XNi9YAnc:1�------> [32mBEGIN { RAKUDO_ERROR_COLOR =[33m�[31m 0 }; is adorable[0m
13:43 Frameless bisectable: BEGIN { %*ENV<RAKUDO_ERROR_COLOR> = 0 }; is adorable
13:43 bisectable Frameless: On both starting points the exit code is 1 and the output is identical as well
13:43 bisectable Frameless: Output on both points: ===SORRY!=== Error while compiling /tmp/P346kCguBa␤Undeclared routines:␤    adorable used at line 1␤    is used at line 1␤
13:48 ambs joined #perl6
13:49 benchable joined #perl6
13:50 benchable Frameless: |«2016.04»:127.8726␤|«2016.07»:0.6181
13:50 Frameless Talk about getting the job done no matter what :P
13:52 Frameless I actually have a thingie to make things non-blocking: https://metacpan.org/release/POE-Component-NonBlockingWrapper-Base
13:53 user9 joined #perl6
13:55 AlexDaniel Frameless: you'd better have a thing for Perl 6 irc bots :)
13:55 Frameless Yeah, "soon" :)
13:56 AlexDaniel Frameless: by the way, do you know if any of huggable problems became less prevalent after several rakudo releases?
13:57 Frameless Well, there's really just one problem. She doesn't parse IRC messages correctly when they're spread across two sends. So when that happens, she craps out basically.
13:58 ilbot3 joined #perl6
13:58 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!
13:58 Frameless And the leak stuff. I've not checked that (nor do I have 100% guarantee she was leaking in the first place; it was just a quick observation based on `top`)
14:03 Frameless (FWIW, the message parsing is already fixed in the IRC::Client rewrite)
14:07 [Coke] oh, crap, I had time this weekend to work on the new profiler, and completely flaked! aigh.
14:11 timotimo oh well :)
14:19 cdg joined #perl6
14:20 ptolemarch joined #perl6
14:23 gtodd left #perl6
14:24 canopus joined #perl6
14:30 TreyHarr1 joined #perl6
14:36 perigrin joined #perl6
14:36 melezhik_ joined #perl6
14:38 melezhik_ Hi! Does anybody know a perl6 module for easy and fast development of command line utilities?
14:38 melezhik_ like handling command line parameters, etc ...
14:38 Tonik joined #perl6
14:38 timotimo no module needed; read up on "multi sub MAIN"
14:39 Frameless https://docs.perl6.org/language/functions#index-entry-MAIN
14:39 melezhik_ yeah, I just wanted to say that sub MAIN is cool, but seems not enough for me ...
14:40 Frameless melezhik_: there seem to be a couple of related modules in the Ecosystem: http://modules.perl6.org/#q=GetOpt
14:40 melezhik_ or I have not read a docs on it, too much (:
14:40 Frameless melezhik_: and if you find MAIN lacking in what you think should be part of its features, it may be worth reporting it as a feature request.
14:41 huggable joined #perl6
14:41 Frameless huggable: rakudobug
14:41 melezhik_ Frameless, will look at GetOpt pack ...
14:41 huggable Frameless, To report a bug, email detailed description and any test cases to rakudobug@perl.org or use perl6 query on http://rt.perl.org ; see https://github.com/rakudo/rakudo/#reporting-bugs
14:41 melezhik_ thanks
14:41 ugexe you can mutate @*ARGS before MAIN if you want to use most of MAIN features but only tweak a few things
14:42 melezhik_ ugexe, "you can mutate @*ARGS before MAIN" this is what I am looking for ...
14:43 ugexe can you give an example of something you are trying to do?
14:45 melezhik_ ugexe, sure. This is the boilerplate of my future module, API might change, but this is the draft of what I am looking for - https://github.com/melezhik/whatsup#wu-api
14:46 ugexe looks pretty basic, MAIN should be able to handle all of that as-is
14:49 timotimo ugexe: no. MAIN expects all named arguments before the first positional argument
14:51 dalek doc: 9188d22 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6:
14:51 dalek doc: tell that @ARGS can be mutated
14:51 dalek doc: review: https://github.com/perl6/doc/commit/9188d22b1f
14:54 hoelzro o/ #perl6
14:54 melezhik_ anybody knows who to mutate @ARGS before gets parsed by MAIN?
14:55 melezhik_ s{who}{how}
14:55 perigrin joined #perl6
14:55 TreyHarr1 joined #perl6
14:56 holyghost joined #perl6
14:56 Frameless m: BEGIN { @*ARGS = "meow" };  sub MAIN($x) { say $x }
14:56 camelia rakudo-moar 664af9: OUTPUT«meow␤»
14:57 hoelzro melezhik_: you should be able to do it in the part of your script not contained in any function
14:57 Frameless m: @*ARGS = "meow";sub MAIN($x) { say $x }
14:57 camelia rakudo-moar 664af9: OUTPUT«meow␤»
14:57 hoelzro m: @*ARGS = <foo bar>; sub MAIN(*@args) { .say for @args }
14:57 camelia rakudo-moar 664af9: OUTPUT«foo␤bar␤»
14:57 timotimo Frameless: no need for BEGIN. in fact, i'd say it's wrong.
14:57 perlpilot timotimo: wrong?
14:58 timotimo yeah. if your code gets precompiled, for example.
14:59 perlpilot timotimo: I'd say that depends on what you're really trying to achieve by manipulating @*ARGS before MAIN gets a shot at it
14:59 melezhik_ hoelrzo, "you should be able to do it in the part of your script not contained in any function" -
14:59 melezhik_ that's ok
15:00 perlpilot melezhik_: it could also be slightly confusing  :)
15:01 perlpilot m: sub MAIN(*@a) { say @a };  #`( ... ) @*ARGS = <a b c>
15:01 camelia rakudo-moar 664af9: OUTPUT«[a b c]␤»
15:02 pmurias hoelzro: \o
15:03 hoelzro o/ pmurias
15:03 * pmurias feels silly after profiling uncovered that a compiling a simple file could me made twice as fast by removing debugging leftovers...
15:04 RabidGravy joined #perl6
15:09 khw joined #perl6
15:11 konobi pmurias: yeah, a newer chrome probably
15:11 marcel_ joined #perl6
15:14 pmurias konobi: is there a difference between a flame graph and a flame chart?
15:16 xinming joined #perl6
15:30 cdg joined #perl6
15:48 pmurias nqp-js blog post: blogs.perl.org/users/pawel_murias/2016/07/adding-profiling-support-to-nqp-js.html
15:49 perigrin joined #perl6
15:51 [Coke] pmurias++
15:57 nine For better link detection: http://blogs.perl.org/users/pawel_murias/2016/07/adding-profiling-support-to-nqp-js.html
15:57 cdg joined #perl6
15:58 nine pmurias: typo: "For know I implemented"
16:04 decent joined #perl6
16:06 pmurias afk&
16:06 konobi pmurias: nope... just naming
16:22 marcel_ m: Buf.new((my int $i = 10) +& 0xFF)
16:22 camelia rakudo-moar 664af9: ( no output )
16:22 marcel_ m: say Buf.new((my int $i = 10) +& 0xFF)
16:22 camelia rakudo-moar 664af9: OUTPUT«Buf:0x<0a>␤»
16:28 captain-adequate joined #perl6
16:35 sufrostico joined #perl6
16:36 Frameless m: say $*SCHEDULER.max_threads
16:36 camelia rakudo-moar 664af9: OUTPUT«16␤»
16:36 dalek doc: b341e44 | (Steve Mynott)++ | bin/p6doc:
16:36 dalek doc: remove unused code
16:36 dalek doc: review: https://github.com/perl6/doc/commit/b341e4484b
16:36 Frameless Is this the maximum concurrent threads my program can run?
16:36 Frameless kinda LTA on my box: https://gist.github.com/zoffixznet/2ded8f675e0ea07197c3808c242550b9
16:37 timotimo it's the maximum amount of threads that particular scheduler will start to schedule tasks on
16:37 timotimo when you create a Thread object, that'll be a stand-alone thread that doesn't factor into that number in any way
16:37 timotimo when you build another ThreadPoolScheduler, you get an entirely different set of threads, also
16:38 Frameless I guess what I'm trying to figure out if I—as a user—run a Perl 6 program on that box, I'm only utilizing 66% of available CPU time, right?
16:39 timotimo yeah
16:39 Frameless :(
16:39 Frameless I wonder if the make spectest is affected by this
16:39 timotimo no
16:40 timotimo almost none of our tests actually do any multithreading stuff at all
16:40 nine Frameless: make starts processes, not threads
16:40 timotimo well, make itself isn't important for the spectest parallelism
16:40 gfldex also, expect your problems to be memory bound
16:40 timotimo right, you'll get at the very least 4 megabytes of ram nommed for a nursery per thread you start
16:41 timotimo when it reaches the first GC, there'll be an additional 4 megabytes
16:41 Frameless gfldex: what do you mean? The speed of RAM?
16:41 lambd0x joined #perl6
16:42 lambd0x Hi folks!
16:42 Frameless I have 90GB on that box
16:42 hoelzro timotimo: what about all of the S17 tests?
16:42 gfldex yes, I got 2 boxed that 2 and 4 cores but both got dual channel ddr3. There is very little difference between them
16:42 timotimo they will use a bit of multithreading, but not nearly as many as zoffix has cores available
16:42 gfldex in speed to handle .pod that is
16:43 hoelzro ah, I see what you mean
16:43 gfldex if you actually do computations instead of just shifting strings around, you may get more out of it ofc
16:44 lambd0x timotimo o/
16:44 timotimo heyo
16:45 zacts joined #perl6
16:49 lambd0x lads is there some encryption implementation for perl6? aes, rsa...
16:50 Frameless lambd0x: have you checked http://modules.perl6.org/ ?
16:50 timotimo https://github.com/sergot/openssl - this might help
16:50 ChristopherBotto joined #perl6
16:51 Frameless You can also use most modules from https://metacpan.org/ too, with :from<Perl5> (Inline::Perl5 module)
16:51 timotimo that's right
16:51 timotimo and stuff from python with Inline::Python, though the documentation for Inline::Python isn't as good
16:52 Frameless star: use Test::More:from<Perl5>; ok 42
16:52 camelia star-m 2016.04: OUTPUT«===SORRY!===␤Please install Inline::Perl5 for Perl 5 support. ␤»
16:52 Frameless aww
16:53 lambd0x Frameless: Will try using the perl5 ciphers then
16:53 ChristopherBotto Hello perl6 o/
16:53 Frameless \o
16:53 lambd0x thanks everyone
16:53 lambd0x \o/
16:53 Frameless it works from command line: :) https://gist.github.com/zoffixznet/39fd17c0dbd05d362a2f532f5422febf
16:54 TreyHarr1 joined #perl6
16:54 timotimo hax!!
16:55 ChristopherBotto Is there a simple way to increase the number of max threads in $*SCHEDULER ? I tried for @array.race( batch => 1, degree => 64) the other day and it only used 16 threads.
16:56 hoelzro ChristopherBotto: you can set RAKUDO_MAX_THREADS in your environment
16:56 hoelzro or you can create your own $*SCHEDULER
16:56 timotimo you can just have my $*SCHEDULER = ThreadPoolScheduler.new(...), but i think $*SCHEDULER.max_threads might actually be changable?
16:56 hoelzro oh, is it?
16:57 timotimo m: $*SCHEDULER.attributes>>.name.say
16:57 camelia rakudo-moar 18455a: OUTPUT«Method 'attributes' not found for invocant of class 'ThreadPoolScheduler'␤  in block <unit> at <tmp> line 1␤␤»
16:57 domidumont joined #perl6
16:57 timotimo m: $*SCHEDULER.^attributes>>.name.say
16:57 camelia rakudo-moar 18455a: OUTPUT«($!queue $!thread_start_semaphore $!loads $!threads_started $!counts_lock $!need_io_thread $!initial_threads $!max_threads $!started_any &!uncaught_handler)␤»
16:57 timotimo m: $*SCHEDULER.max_threads = 9999
16:57 camelia rakudo-moar 18455a: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at <tmp> line 1␤␤»
16:57 timotimo ah, no.
16:57 gfldex PROCESS::<$SCHEDULER> = ThreadPoolScheduler.new(initial_threads => 0, max_threads => $threads);
16:57 gfldex that works
16:58 hoelzro I think just my $*SCHEDULER = ThreadPoolScheduler.new(...) should do it, yeah?
16:58 ChristopherBotto m: $*SCHEDULER = ThreadPoolScheduler.new( max_threads => 64);
16:58 camelia rakudo-moar 18455a: OUTPUT«Cannot modify an immutable ThreadPoolScheduler␤  in block <unit> at <tmp> line 1␤␤»
16:58 wamba joined #perl6
16:59 ChristopherBotto m: my $*SCHEDULER = ThreadPoolScheduler.new( max_threads => 64);
16:59 hoelzro ChristopherBotto: throw a 'my' in front of that
16:59 camelia rakudo-moar 18455a: ( no output )
16:59 gfldex did you check if the number of used threads actually changed?
17:00 ChristopherBotto Wow! So we can create a "local" copy of $*SCHEDULER ?
17:00 gfldex i can't remember the details but I tried quite a few variations and none but the last worked
17:04 ChristopherBotto hoelzro, timotimo, and gfldex: Thanks!
17:04 kurahaupo joined #perl6
17:05 Some-body_ joined #perl6
17:05 pnu_ joined #perl6
17:06 japanoise_ joined #perl6
17:07 ilmari joined #perl6
17:08 PotatoGim joined #perl6
17:10 mrsolo joined #perl6
17:11 [particle] joined #perl6
17:13 hobbs joined #perl6
17:13 hobbs joined #perl6
17:13 notbenh_ joined #perl6
17:13 gabiruh joined #perl6
17:14 chee joined #perl6
17:16 geekosaur joined #perl6
17:16 mindos joined #perl6
17:17 Xliff Are there any graphical debuggers for perl? Or can perl6-gdb-m be used to inspect perl6 symbols?
17:18 tomboy64 joined #perl6
17:18 firstdayonthejob joined #perl6
17:18 olinkl joined #perl6
17:18 drforr1 joined #perl6
17:19 Lucas_One joined #perl6
17:19 timotimo joined #perl6
17:20 parisba joined #perl6
17:20 mithaldu_ joined #perl6
17:20 dylanwh_ joined #perl6
17:20 ssm joined #perl6
17:20 kurahaupo joined #perl6
17:23 ChristopherBotto hoelzro, timotimo, and gfldex: Oh, in should max_threads be max-threads to be consistent with other built-in methods? I remember a change from done_testing to done-testing a while back. (looking at https://github.com/rakudo/rakudo/blob/nom/src/core/ThreadPoolScheduler.pm)
17:23 timotimo oh, i got kicked off of the server, it seems like
17:24 gfldex ChristopherBotto: it should
17:24 timotimo methods vs attributes, though?
17:24 timotimo mayhaps?
17:24 timotimo i dunno
17:24 gfldex there is no spec test for max_threads
17:24 ChristopherBotto gfldex: So I can change it to max-threads without causing problems?
17:25 petercommand joined #perl6
17:25 gfldex you can add max-threads as an alias without breaking existing code
17:25 timotimo Xliff: we have beginnings of a python plugin for gdb to ease using perl6-gdb-m; it could learn a whole lot more stuff
17:25 Frameless ChristopherBotto: generally low-level stuff uses underscores. Like ^find_method ^add_method etc
17:26 Xliff timotimo: Thanks
17:26 ChristopherBotto Frameless: Why the difference?
17:26 timotimo low_level, mid-level, high‾level
17:26 Frameless ChristopherBotto: to indicate it's low-level stuff
17:27 Frameless And you shouldn't be using it willy-nilly
17:27 hobbs joined #perl6
17:27 kid51 joined #perl6
17:30 ChristopherBotto Frameless: Oh. In that case, I should probably discard my current edit of https://github.com/perl6/doc/edit/master/doc/Language/variables.pod6 that would suggest changing max_threads if one needs more cores?
17:31 dha joined #perl6
17:32 Frameless ChristopherBotto: willy-nilly doesn't mean ever :D
17:32 spider-mario joined #perl6
17:32 acrussell joined #perl6
17:32 Frameless If that's the way to change the max threads, sure it should be documented.
17:34 Xliff timotimo: Are there any docs for that python plugin?
17:34 Xliff All I am looking for is breakpoints into the perl script and some introspection.
17:35 dalek ecosystem: 0d68a2c | (Marcel Timmerman)++ | META.list:
17:35 dalek ecosystem: new module Semaphore::ReadersWriters
17:35 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/0d68a2cb7d
17:35 dalek ecosystem: e949b15 | Altai-man++ | META.list:
17:35 dalek ecosystem: Merge pull request #227 from perl6/MARTIMM-patch-1
17:35 dalek ecosystem:
17:35 dalek ecosystem: new module Semaphore::ReadersWriters
17:35 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/e949b1594d
17:36 timotimo Xliff: it has a bunch of comments in the source code; it's in moarvm's repository under tools/moar-gdb.py
17:38 Xliff timotimo, thanks.
17:42 timotimo if you know a bit of python, you'll likely be able to improve it :)
17:42 timotimo sad thing is, it's slow as molasses
17:42 timotimo mostly refering to the "moar-heap" command
17:45 gfldex ChristopherBotto: a proper fix would be to teach rakudo to respect %*ENV<PERL6-MAX-THREADS>
17:47 Xliff If anyone has some free time and could help me with a weird issue, I'd appreciate it.
17:47 Xliff Just PM me.
17:48 Xliff For some strange reason, nqp::bindattr and nativecast sometimes act as a no-op when they should be doing something and I cannot for the life of me figure it out.
17:49 Xliff It could be that I am trying to work with a type object, but I thought I had prevented that outcome by doing a $obj.defined check, which passes.
17:49 timotimo can you set MVM_SPESH_DISABLE to yesplease?
17:50 Xliff Yes. Did that. Same result.
17:50 timotimo OK
17:50 timotimo can you nopaste your code?
17:50 Xliff No. Project is too large.
17:50 Xliff And every time I try to pair it down, I can't reproduce the problem.
17:51 Xliff Code is here: https://github.com/Xliff/p6-XML-LibXML/
17:51 Xliff Branch 07dtd
17:51 timotimo ugh
17:51 timotimo that gigantic thing :(
17:51 Xliff Heh. Yeah.
17:51 MARTIMM m: say "az", *.succ ... "bb"
17:51 camelia rakudo-moar 18455a: OUTPUT«(az ba bb)␤»
17:51 timotimo sorry, before i'm even read into the code it'll be dinner time here and i'll have lost all my thoughts on the matter
17:52 Xliff timotimo, No problem.
17:52 Xliff I'm at wits end, now.
17:53 timotimo you can put a very rarely used nqp op near the code where it happens and then put a breakpoint into interp.c where that op gets handled
17:53 timotimo that'll let you single-step through the moar-level code
17:53 travis-ci joined #perl6
17:53 travis-ci Doc build failed. Brian Duggan 'done testing'
17:53 travis-ci https://travis-ci.org/bduggan/doc/builds/145605107 https://github.com/bduggan/doc/compare/7dc28932f0e8...6e182cc90008
17:53 travis-ci left #perl6
17:58 Xliff m: use NativeCall; class A is repr('CStruct') { has int32 $.a; has int64 $.b; setA($a) { $!a = $a } }; class B is A is repr('CStruct') { }; my $a = A.new.setA(64); my $b = nativecast(B, $a); $b.setA(48); say $a.a;
17:58 camelia rakudo-moar 18455a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$a' is not declared. Did you mean '$!a'?␤at <tmp>:1␤------> 3') { has int32 $.a; has int64 $.b; setA(7⏏5$a) { $!a = $a } }; class B is A is repr␤»
17:58 Xliff m: use NativeCall; class A is repr('CStruct') { has int32 $.a; has int64 $.b; method setA($a) { $!a = $a } }; class B is A is repr('CStruct') { }; my $a = A.new.setA(64); my $b = nativecast(B, $a); $b.setA(48); say $a.a;
17:58 camelia rakudo-moar 18455a: OUTPUT«Native call expected return type with CPointer, CStruct, CArray, or VMArray representation, but got a P6opaque (Int)␤  in sub nativecast at /home/camelia/rakudo-m-inst-2/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 406…»
17:59 [Coke] docs, make test; we have a nice failure if URI::Escape isn't installed, but a horrible one if File::Temp is missing.
18:00 ChristopherBotto Should the "RAKUDO_" variables listed at https://docs.perl6.org/programs/00-running.html really be "PERL6_" variables? For example, it isn't immediately obvious to me why there should be RAKUDO_MAX_THREADS instead of PERL6_MAX_THREADS.
18:02 hoelzro RAKUDO_ tends to refer to implementation details; they sometimes are used as prototypes for language details, though
18:03 arnsholt m: use NativeCall; class A is repr('CStruct') { has int32 $.a; has int64 $.b; method setA($a) { $!a = $a } }; class B is A is repr('CStruct') { }; my $a = A.new; $a.setA(64); say $a.a; my $b = nativecast(B, $a); $b.setA(48);  say $a.a; # Probably what you wanted, Xliff
18:03 camelia rakudo-moar 18455a: OUTPUT«64␤48␤»
18:03 solarbunny joined #perl6
18:04 ChoHag joined #perl6
18:09 [Coke] RAKUDO_ == "not spec"
18:09 dvinciguerra_ joined #perl6
18:14 dalek doc: b676fce | (Jan-Olof Hendig)++ | doc/Type/Bool.pod6:
18:14 dalek doc: Added docs for methods 'succ', 'pred' and 'enums' in Bool
18:14 dalek doc: review: https://github.com/perl6/doc/commit/b676fce112
18:14 perlpilot ChristopherBotto: Is there some place it could be better documented such that it would be more obvious to you why it's RAKUDO_MAX_THREADS instead of PERL6_MAX_THREADS?
18:14 pecastro joined #perl6
18:16 riatre joined #perl6
18:18 nowan joined #perl6
18:18 gfldex ChristopherBotto: one could argue that one an install more then Perl 6 compiler (in a future/parallel universe) so the distinction would make sense. In fact any Perl 6 compiler should respect PERL6_* but only Rakudo should expect that _and_ RAKUDO_* while giving the latter priority.
18:19 gfldex s/one an/one can/
18:19 lnrdo joined #perl6
18:20 hobbs joined #perl6
18:21 labster joined #perl6
18:30 mohae joined #perl6
18:31 sno joined #perl6
18:31 Peter_R joined #perl6
18:31 perlpilot gfldex: Assuming @Larry elevates any PERL6_* vars to the level of "language spec"
18:33 addison joined #perl6
18:36 dwarring joined #perl6
18:41 domidumont joined #perl6
18:44 Cabanossi joined #perl6
18:48 labster joined #perl6
18:50 girafe joined #perl6
18:51 rindolf joined #perl6
18:53 cpage_ joined #perl6
18:54 FROGGS joined #perl6
18:57 FROGGS joined #perl6
18:59 gfldex http://design.perl6.org/S26.html is back for your viewing pleasure
19:01 ChristopherBotto hoelzro, timotimo, gfldex, Frameless, and perlpilot: Proposed documentation update as a result of our discussion: https://github.com/perl6/doc/pull/719
19:02 stmuk http://pl6anet.org/drop/rakudo-star-2016.07-RC1.tar.gz
19:04 timotimo ChristopherBotto: seems a bit misleading to say hyper operators use multiple threads; they don't do that yet
19:04 Frameless ChristopherBotto: the last line is either missing opening parenthesis or has an extra closing one :)
19:04 perlpilot ChristopherBotto: you might mention that they need to set the env var prior to the ThreadPoolScheduler being built.
19:05 perlpilot (which is usually prior to running the program :)
19:06 * RabidGravy makes a pre-emptive fix for https://www.kb.cert.org/vuls/id/797896 in HTTP::UserAgent (seeing as it's been fixed in LWP::UserAgent for fifteen years ;-)
19:06 dalek bisectbot: 25550c3 | MasterDuke17++ | benchable.pl:
19:06 dalek bisectbot: Make the title of the graph the complete query
19:06 dalek bisectbot: review: https://github.com/perl6/bisectbot/commit/25550c322c
19:08 timotimo does RAKUDO_MAX_THREADS actually cause the max_threads to be set?
19:08 Frameless It does change $*SCHEDULER.max_threads, yeah
19:10 timotimo good
19:12 pecastro joined #perl6
19:13 perlpilot m: say $*SCHEDULER.max_threads; %*ENV<RAKUDO_MAX_THREADS> = 57; say $*SCHEDULER.max_threads;
19:13 camelia rakudo-moar 18455a: OUTPUT«16␤16␤»
19:13 perlpilot m: %*ENV<RAKUDO_MAX_THREADS> = 57; say $*SCHEDULER.max_threads;
19:13 camelia rakudo-moar 18455a: OUTPUT«57␤»
19:14 timotimo a lot of dynamic vars are set up the first time they are used
19:14 perlpilot ChristopherBotto: ^^^^ that's the situation I was suggesting you warn of.
19:14 setty1 joined #perl6
19:15 mcmillhj joined #perl6
19:17 Xliff arnsholt: Probably. LOL! Thanks.
19:17 Xliff At any rate, I've finally managed to get this segfault issue boiled down to a simple test case.
19:17 Xliff gisting it now.
19:18 pecastro joined #perl6
19:18 Xliff m: https://gist.github.com/Xliff/5d9fe7c62af791144df8f449bcb521ce
19:18 camelia rakudo-moar 18455a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:35␤------> 3<BOL>7⏏5<EOL>␤»
19:18 Xliff m: https://gist.github.com/Xliff/5d9fe7c62af791144df8f449bcb521ce
19:18 camelia rakudo-moar 18455a: OUTPUT«(signal SEGV)»
19:18 Xliff Yup!
19:18 Xliff This is using nqp::bindattr
19:19 timotimo um
19:19 timotimo wtf
19:19 timotimo why are you expecting Pointer.new to be decontable?
19:19 Xliff I figure even if what I am trying to do is wrong, it shouldn't segfault.
19:19 timotimo m: use NativeCall; use nqp; my $a = Pointer.new(); nqp::decont($a);
19:19 camelia rakudo-moar 18455a: ( no output )
19:19 timotimo m: use NativeCall; use nqp; my $a = Pointer.new(); say nqp::decont($a);
19:19 camelia rakudo-moar 18455a: OUTPUT«NativeCall::Types::Pointer<NULL>␤»
19:19 brrt joined #perl6
19:20 timotimo ...
19:20 Xliff timotimo: This is a barebones test case that I managed to coble together. It basically represents some of the things we are trying to do with p6-XML::LibXML
19:20 Xliff Passing around pointers is one of the things we need to do.
19:20 timotimo let me give it a little go
19:20 Xliff kk
19:20 timotimo but first i'll have to build some stuff at the latest revisions
19:20 Xliff No rush.
19:21 araujo_ joined #perl6
19:21 timotimo fwiw, using Pointers is a sure way to be able to segfault
19:21 Xliff If there is a better pure perl6 solution that doesn't involve the use of nativecast, then great
19:21 Xliff timotimo: Yes. I know. However binding to an attribute should be safe, yes?
19:22 Xliff As long as a bad dereference is not made behind the scenes?
19:22 timotimo getA seems to not be used at all?
19:22 Xliff No. Needed a method and didn't need it after all before I got a usable segv to represent the problem.
19:23 timotimo so you can still golf it further :)
19:23 pecastro joined #perl6
19:25 timotimo m: https://gist.github.com/timo/51c0a4660a18b9ce416644fa84387a3b
19:25 camelia rakudo-moar 18455a: OUTPUT«(signal SEGV)»
19:25 timotimo mhm mhm
19:25 Xliff timotimo: Updated to show use of getA() and how we are currently working around the segv
19:26 Xliff m: https://gist.github.com/Xliff/5d9fe7c62af791144df8f449bcb521ce # Updated
19:26 camelia rakudo-moar 18455a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3https:7⏏5//gist.github.com/Xliff/5d9fe7c62af79114␤    expecting any of:␤        colon pair␤»
19:26 Xliff :s
19:26 timotimo i don't see a reason to use nativecast there at all
19:27 Xliff If we don't use nativecast() to cast back to A, the segfault occurs.
19:27 Xliff This should work since "B is A" and both are repr('CStruct')
19:27 ChristopherBotto hoelzro, timotimo, gfldex, Frameless, and perlpilot: Updated my previous pull request. Thanks for the feedback (see https://github.com/perl6/doc/pull/719)
19:27 Xliff However, lately I've been worried that's not been the case in certain edge cases.
19:28 timotimo cool, thanks for contributing
19:29 timotimo Xliff: you do know you can bindattr to a superclass?
19:30 Xliff timotimo: I was hoping there would be a way. Could you show me how to do that, please?
19:31 arnsholt timotimo: You know, that's probably the problem!
19:31 nine Xliff: you do have to pass the type to bindattr. So just pass in the superclass
19:31 arnsholt Quoth nqp/docs/ops.markdown: "Binds `$new_value` to the attribute of name `$attributename` of object `$obj`, where the attribute was declared in type `$type`."
19:32 Xliff Will try that.
19:32 arnsholt So the class you pass in to bindattr has to be the class where the attribute is *declared*
19:32 arnsholt Making this work in a generalized setting (like Xliff probably wants?) might be tricky
19:32 cdg joined #perl6
19:33 Xliff Still get segfault
19:33 Xliff Acually, before I hat setObjAttr() most of these were direct calls to bindattr. And we did try using the superclass, but ran into the segfault issue.
19:34 Xliff Hence the nativecast() to the actual superclass type.
19:34 timotimo we run try_get_slot on an object that isn't just not concrete, it's null
19:35 timotimo i suppose try_get_slot would be allowed to return failure in that case, instead of crashing
19:35 arnsholt The segfault is definitely LTA, but it looks like an error in application code, not a Moar-bug
19:35 Xliff arnsholt: https://gist.github.com/Xliff/5d9fe7c62af791144df8f449bcb521ce
19:36 timotimo that's weird. how does a null pointer get into the name_map?
19:36 Xliff Let me actually stick something into P. This occurs even when the pointer is NOT null.
19:38 Xliff doing "$p = nativecast(Pointer, $a)" still causes crash.
19:39 Xliff arnsholt: So why is it that I can cast to the superclass and bindattr works, but when I use a subclass, it segfaults?
19:39 arnsholt Xliff: Works if you actually use the :$what named param
19:39 Xliff It crashes here.
19:40 timotimo it definitely does die in setObjAttr
19:40 timotimo what i get with a trivial fix is:
19:40 timotimo Can not bind non-existent attribute '$!four'
19:40 timotimo in sub setObjAttr at This%20will%20crash%20rakudo. line 21
19:40 Xliff Weird... now it does.
19:41 Xliff m: my class A { }; my $p = A; say $p.defined;
19:41 camelia rakudo-moar 18455a: OUTPUT«False␤»
19:41 Xliff arnsholt: The trick is determining when the named parameter is used.
19:41 Xliff I may just have to use a multi.
19:41 arnsholt I just made it :$what = $obj.WHAT
19:42 arnsholt And then always use $what
19:42 Xliff Ah.
19:42 arnsholt Default values =)
19:42 Xliff arnsholt++
19:44 Xliff Boo ha.
19:44 Xliff And that fixed the issue I was having with the actual test.
19:47 Xliff Now all tests are passing.
19:48 Xliff timotimo++ && arnsholt++ # Thanks!!
19:48 timotimo i just put a moarvm commit up that prevents the segfault
19:51 itaipu joined #perl6
19:52 Xliff Thanks, timotimo++!
19:55 rindolf timotimo++
20:05 labster joined #perl6
20:13 TEttinger joined #perl6
20:15 timotimo but as arnsholt found out, you were violating protocol. still shouldn't segfault :)
20:15 timotimo we probably also want a similar commit for P6Opaque
20:20 rindolf joined #perl6
20:22 dha joined #perl6
20:29 Ven joined #perl6
20:37 [Coke] Xliff: OOC, why are you using nqp ops?
20:37 [Coke] (and not straight p6?)
20:38 pecastro joined #perl6
20:40 kent\n joined #perl6
20:40 kent\n joined #perl6
20:46 Xliff [Coke] - Because sometimes rakudo will say an attribute is immutable, especially when dealing with values returned from C libs.
20:50 timotimo could try := in those cases?
21:10 AlexDaniel joined #perl6
21:10 dalek doc: f4843c3 | (Christopher Bottoms)++ | doc/Language/variables.pod6:
21:10 dalek doc: How to increase the maximum threads in $*SCHEDULER
21:10 dalek doc:
21:10 dalek doc: Explain the current default limit on hyperoperators and methods.
21:10 dalek doc: review: https://github.com/perl6/doc/commit/f4843c340f
21:10 dalek doc: 1c6b878 | (Christopher Bottoms)++ | doc/Language/variables.pod6:
21:10 dalek doc: Update variables.pod6
21:10 dalek doc:
21:10 dalek doc: Updated my previous change to be more accurate.
21:10 dalek doc: review: https://github.com/perl6/doc/commit/1c6b878e04
21:10 dalek doc: 4a74da2 | (Christopher Bottoms)++ | doc/Language/variables.pod6:
21:10 dalek doc: removed trailing whitespace
21:10 dalek doc: review: https://github.com/perl6/doc/commit/4a74da2a4b
21:10 dalek doc: e1f85c5 | ab5tract++ | doc/Language/variables.pod6:
21:10 dalek doc: Merge pull request #719 from molecules/patch-3
21:10 dalek doc:
21:10 dalek doc: How to increase the maximum threads in $*SCHEDULER
21:10 dalek doc: review: https://github.com/perl6/doc/commit/e1f85c554c
21:14 cyphase joined #perl6
21:15 dalek doc: 5f27719 | (Aleks-Daniel Jakimenko-Aleksejev)++ | TODO:
21:15 dalek doc: We do not need TODO file anymore
21:15 dalek doc:
21:15 dalek doc: Github issues were created for all TODO items (see #712)
21:15 dalek doc: review: https://github.com/perl6/doc/commit/5f27719aa2
21:17 timotimo waiting for my laptop to un-starve itself...
21:19 trnh joined #perl6
21:19 trnh joined #perl6
21:22 Zoffix TimToady++ # good Slashdot AMA. I liked the responses to troll-ish questions :)
21:22 * dha needs to read that.
21:25 itaipu joined #perl6
21:28 TEttinger joined #perl6
21:30 lizmat and another Perl 6 weekly hits the Net: https://p6weekly.wordpress.com/2016/07/18/2016-29-the-zoffix-has-landed/
21:30 * Zoffix eyes the URL
21:30 Zoffix Already exciting! :)
21:34 _28_ria joined #perl6
21:34 Zoffix lizmat++ good weekly. And thanks for the spotlight :)
21:37 lizmat Zoffix: pretty sure you earned it  :-)
21:39 Nex6 joined #perl6
21:40 Nex6 if you want to work with perl6 and linux which distort has update to date packages?
21:40 gfldex Nex6: none
21:41 ovibos archlinux has AUR packages for perl6
21:41 AlexDaniel debian testing has up-to-date rakudo
21:42 gfldex Package: rakudo (2016.06-1)
21:42 Nex6 tried 'opens use leap' = fail
21:42 AlexDaniel well, that's pretty much up-to-date :)
21:43 freezerburnv joined #perl6
21:43 Nex6 oddly, the mac package worked
21:43 gfldex Nex6: rakudo got very few dependencies, there is no reason not to build form source
21:44 Nex6 "opens use" fails to build
21:44 Nex6 bin/sh: /root/rakudo-star-2016.04/install/bin/perl6-m: No such file or directory
21:44 Nex6 Makefile:65: recipe for target 'modules-install-m' failed
21:44 Nex6 make: *** [modules-install-m] Error 127
21:44 Nex6 so its either dig in to that or use something with clean packages
21:45 AlexDaniel few dependencies also means that you can add “testing” repo and pull it from there, if you are using debian :)
21:45 Nex6 think I will go to debian testing
21:45 gfldex AlexDaniel: that can pull in new gcc versions
21:46 AlexDaniel gfldex: new gcc version! Great!
21:46 AlexDaniel but yeah, gfldex is right of course
21:46 gfldex git clone https://github.com/rakudo/rakudo && cd rakudo && perl Configure.pl --gen-moar --gen-nqp --backends=moar && make all test install
21:47 * Zoffix mentions https://github.com/tadzik/rakudobrew
21:48 gfldex Nex6: we got a -RC1 tar ball for Rakudo *: http://pl6anet.org/drop/rakudo-star-2016.07-RC1.tar.gz
21:48 gfldex that will bring some basic modules
21:48 konobi .tell pmurias awesome... nice work. I have an NQP conjecture I'd like to run past you
21:48 yoleaux konobi: I'll pass your message to pmurias.
21:50 Zoffix left #perl6
21:54 dalek doc: bf0e015 | (Jan-Olof Hendig)++ | doc/Type/Map.pod6:
21:54 dalek doc: Added docs for Map.Capture
21:54 dalek doc: review: https://github.com/perl6/doc/commit/bf0e015b1d
21:55 * Nex6 downloading debian testing iso
21:56 * Nex6 will still jack with "OpenSuse"
21:56 parabolize m: my $value; my $count = 0; Proxy.new( FETCH => method {++$count; $value}, STORE => method ($new) {$value = $new} ); $count
21:56 camelia rakudo-moar 18455a: OUTPUT«WARNINGS for <tmp>:␤Useless use of $count in sink context (line 1)␤»
21:57 parabolize huh?
21:57 lue joined #perl6
21:57 * parabolize updates rakudo
21:58 parabolize I was getting 5 in the REPL
21:58 gfldex m: my $value; my $count = 0; Proxy.new( FETCH => method {++$count; $value}, STORE => method ($new) {$value = $new} ); dd $count
21:58 camelia rakudo-moar 18455a: OUTPUT«Int $count = 5␤»
21:58 geekosaur the repl autoprints values (that's the "p" in "repl")
21:58 geekosaur the bot does not
21:59 parabolize oh right
22:00 cyphase joined #perl6
22:00 parabolize The FETCH block was run multiple times. I think this was mentioned before but I couldn't find record of it. Is this acceptable behavior or is it another bug involving Proxy?
22:00 Nex6 ok, perl6works on open sure in a half assed way, the unpack folder in /root in if ./perl6 -e 'say "Hello, world!";' it works
22:00 gfldex parabolize: that was likely in my advent post, and yes, containers are rather involved
22:01 Nex6 damn auto correct
22:04 Sgeo joined #perl6
22:06 dogbert17 joined #perl6
22:10 timotimo shouldn't it actually be 2016.06.1?
22:10 timotimo instead of 2016.06-1?
22:10 timotimo the package, i mean
22:11 lizmat 2016.07.1 ?
22:11 timotimo sorry. yes.
22:13 timotimo parabolize: it's to be expected. you are not to rely on how often FETCH gets called. there may be optimizations in the future that reduce that, though.
22:14 gfldex timotimo: i believe to have seen a written down rule how the naming works
22:14 timotimo the part after the dash is for distro-owned changes
22:15 mrsolo joined #perl6
22:19 lucasb_ joined #perl6
22:20 lucasb_ lizmat: thanks for the weekly
22:20 lizmat lucasb_: you're welcome  :)
22:21 lucasb_ a small correction is that the recently added module Uzu lives on gitlab, not github
22:21 lizmat argh, ok, what is the correct URL ?
22:21 lucasb_ I think it is https://gitlab.com/samcns/uzu
22:23 frobisher joined #perl6
22:23 lizmat lucasb_: thanks and fixed
22:23 lucasb_ thank you :)
22:24 parabolize timotimo: its a very strange thing to see when running perl6-debug-m. Also I'm used to using @property in python to debug when and where attributes are used.
22:24 parabolize
22:27 timotimo you mean perl6-gdb-m?
22:30 parabolize I was using perl6-debug-m. but I'm guessing its the same thing in gdb if you actually step through the program
22:32 timotimo huh. i have both of those on my system
22:33 timotimo oh!
22:33 timotimo no, of course, perl6-debug-m is our perl6 debugger
22:33 timotimo epic brainfart
22:41 canopus joined #perl6
22:44 skids joined #perl6
22:45 niko joined #perl6
22:53 TEttinger joined #perl6
23:01 freezerburnv joined #perl6
23:01 canopus joined #perl6
23:19 snarkyboojum joined #perl6
23:21 canopus joined #perl6
23:22 cyphase joined #perl6

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

Perl 6 | Reference Documentation | Rakudo