Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-06-04

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:11 koo6 joined #perl6
00:33 aborazmeh joined #perl6
00:33 aborazmeh joined #perl6
00:51 hobbs joined #perl6
00:54 dayangkun joined #perl6
01:18 aindilis` joined #perl6
01:20 dayangkun_ joined #perl6
01:22 kurahaupo joined #perl6
01:23 ShimmerFairy joined #perl6
01:23 DarthGandalf joined #perl6
01:33 adu joined #perl6
01:59 llfourn joined #perl6
02:14 llfourn joined #perl6
02:28 davido_ joined #perl6
02:35 rmgk_ joined #perl6
02:37 noganex joined #perl6
02:48 hoelzro joined #perl6
02:49 SevenWolf joined #perl6
02:55 ShimmerFairy joined #perl6
03:05 sjn_phone joined #perl6
03:07 zostay m: my @h = Pair.new('a', 1);
03:07 camelia rakudo-moar c2a57e: OUTPUT«Too many positionals passed; expected 1 argument but got 3␤  in block <unit> at /tmp/mEMguar280:1␤␤»
03:08 zostay m: my @h = Pair.new(:key<a>, :value(1));
03:08 camelia rakudo-moar c2a57e: ( no output )
03:09 tadzik I wouldn't mind Pair.new to have a positional variant, frankly
03:11 zostay m: enum Test <Zero One Two>; my @h = Zero => 0, One => 1, Two => 2; @h.perl.say;
03:11 camelia rakudo-moar c2a57e: OUTPUT«[:Zero(0), :One(1), :Two(2)]<>␤»
03:12 zostay m: enum Test <Zero One Two>; my @h = ::(Zero) => 0, ::(One) => 1, ::(Two) => 2; @h.perl.say;
03:12 camelia rakudo-moar c2a57e: OUTPUT«[Test::Zero => 0, Test::One => 1, Test::Two => 2]<>␤»
03:13 bin_005 joined #perl6
03:20 Sqirrel joined #perl6
03:21 cschwenz joined #perl6
03:25 atweiden m: enum Test <Zero One Two>; grammar T1 { token TOP { Zero } }; class TA { method TOP($/) { make ::(EVAL $/.Str); } }; my Str $content = "Zero"; my $actions = TA.new; if my $parsed = T1.parse($content, :$actions) { say $parsed.made.perl };
03:25 camelia rakudo-moar c2a57e: OUTPUT«Test::Zero␤»
03:27 atweiden won't be needing this method i see: https://github.com/atweiden/nightscape/blob/develop/lib/Nightscape/Types.pm#L35
03:28 atweiden m: enum Test <Zero One Two>; grammar T1 { token TOP { Zero } }; class TA { method TOP($/) { make ::($/.Str); } }; my Str $content = "Zero"; my $actions = TA.new; if my $parsed = T1.parse($content, :$actions) { say $parsed.made.perl };
03:28 camelia rakudo-moar c2a57e: OUTPUT«Test::Zero␤»
03:32 SevenWolf joined #perl6
03:56 diegok joined #perl6
04:02 diegok joined #perl6
04:02 flussence joined #perl6
04:18 kaare_ joined #perl6
04:33 lmc_1136 joined #perl6
04:34 lmc_1136 left #perl6
04:54 amurf joined #perl6
05:10 masak morning, #perl6
05:13 meis joined #perl6
05:18 masak m: say sign(NaN)
05:18 camelia rakudo-moar c2a57e: OUTPUT«1␤»
05:18 masak ok, old Rakudo.
05:18 masak lizmat: I don't think the fix in d5d93adcc30 goes to the root of the problem.
05:19 masak the above would be NaN on a new Rakudo, but...
05:19 masak m: say NaN.sign
05:19 camelia rakudo-moar c2a57e: OUTPUT«1␤»
05:19 masak still a problem.
05:19 masak I think the fix should be applied in src/core/Real.pm, the method that sign() delegates to
05:20 masak also,
05:20 masak multi method sign(Real:U:) { Mu }
05:21 masak I don't see why this has a claim to being Mu. Int sounds more reasonable to me. (the type object for the type being returned)
05:21 masak or possibly Num, since NaN is also in the codomain.
05:34 moritz or maybe Real
05:34 moritz which can be either Int or Num
05:34 masak aye.
05:35 masak Mu is problematic -- can't store it in a lexical, for example.
05:35 masak m: say (my $x).WHAT
05:35 camelia rakudo-moar c2a57e: OUTPUT«(Any)␤»
05:36 moritz m: my $x = Mu
05:36 camelia rakudo-moar c2a57e: ( no output )
05:36 moritz it's passing to a function that's problematic
05:36 moritz m: sub f($x) { }; f Real.sign
05:36 camelia rakudo-moar c2a57e: OUTPUT«Type check failed in binding $x; expected 'Any' but got 'Mu'␤  in sub f at /tmp/WZoCkleQYr:1␤  in block <unit> at /tmp/WZoCkleQYr:1␤␤»
05:39 masak oh, ok.
05:40 masak m: my Any $x = Mu
05:40 camelia rakudo-moar c2a57e: OUTPUT«Type check failed in assignment to '$x'; expected 'Any' but got 'Mu'␤  in block <unit> at /tmp/IWBnJ0JjXN:1␤␤»
05:40 masak oh, so Any isn't the implicit type constraint of a declared lexical, it's just the default value. got it.
05:41 jack_rabbit joined #perl6
05:52 moritz m: my $a = 0; my $b is default(++$a); say $b; $b = Nil; say $b
05:52 camelia rakudo-moar c2a57e: OUTPUT«1␤1␤»
05:52 diana_olhovik_ joined #perl6
05:55 dalek doc: eca2f2d | moritz++ | lib/Language/variables.pod:
05:55 dalek doc: variables: Document "is default" trait
05:55 dalek doc: review: https://github.com/perl6/doc/commit/eca2f2d3ae
05:56 _mg_ joined #perl6
05:57 [Sno] joined #perl6
05:58 masak m: my ($a, $b, $c) is default(42); say $b
05:58 camelia rakudo-moar c2a57e: OUTPUT«(Any)␤»
05:58 masak this feels like it's a rakudobug for either of two reasons.
05:59 masak (a) the default didn't apply, but it should
05:59 masak (b) you're not allowed to do that, but there's no error message
05:59 masak I kinda prefer (a), because it feels like it could be a useful thing to do sometimes -- to initialize several variables with the same default
05:59 masak but I confess to not knowing how tricky it'd be implementation-wise
06:00 masak one could argue that any trait in a declaration like that should just automatically distribute to all the declared variables
06:00 masak as if they'd been declared individually with `is default(42)`
06:04 Akagi201 joined #perl6
06:13 RabidGravy joined #perl6
06:13 domidumont joined #perl6
06:18 oetiker joined #perl6
06:18 moritz +1
06:18 domidumont joined #perl6
06:19 El_Che w
06:20 * masak submits rakudobug
06:20 FROGGS joined #perl6
06:21 masak m: my $b is default(42); say $b
06:21 camelia rakudo-moar c2a57e: OUTPUT«42␤»
06:23 FROGGS good morning
06:23 masak morning, FROGGS
06:41 moritz quick DB design straw poll: do you prefer natural keys or surrogate keys as primary key?
06:43 amurf joined #perl6
06:54 masak surrogate keys.
06:54 zakharyas joined #perl6
06:55 masak (because data changes, so the only thing that stays the same in all possible situations is something made-up.)
06:57 masak ("but masak, things like countries or datetimes are stable enough to be used as natural keys!" -- "Czechoslovakia. leap seconds. all instances of adopting or getting rid of DST, ever." -- "oh.")
06:58 masak moritz: see also http://c2.com/cgi/wiki?AutoKeysVersusDomainKeys for lots of back-and-forth about this.
07:00 masak moritz: http://blog.plover.com/IT/GUID.html also supports my case.
07:00 oetiker joined #perl6
07:07 Ven joined #perl6
07:16 Ven_ joined #perl6
07:17 Ven_ \o, #perl6
07:20 masak o/
07:24 moritz masak: takk
07:25 moritz masak: I also use surrogate keys
07:26 moritz masak: one argument I don't see very often that referencing a table with a composite, natural key leads to a lot of data duplication
07:26 moritz *is that
07:27 moritz and makes the referencing tables brittle when the business rules for the referenced tables change
07:29 moritz ah, the c2 page does mention it further down the page
07:31 [Sno] joined #perl6
07:33 masak right. a surrogate key is comparable to an impartial "handle" with which you can refer to a particular table row.
07:34 moritz not to mention tooling support (I'm looking at you, Django)
07:40 masak Django automatically gives everything an id, no_
07:40 masak ?
07:45 dalek rakudo/nom: 0a30724 | lizmat++ | src/core/ (2 files):
07:45 dalek rakudo/nom: Fix sign NaN at the root, masak++
07:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0a30724cbb
07:45 masak lizmat++
07:45 lizmat $ 6 'say NaN.sign; say sign NaN'
07:45 lizmat NaN
07:45 lizmat NaN
07:45 masak yay
07:50 lizmat .tell [Tux] $=finish now works
07:50 yoleaux lizmat: I'll pass your message to [Tux].
07:50 [Tux] lizmat++
07:50 yoleaux 07:50Z <lizmat> [Tux]: $=finish now works
07:52 lizmat m: my ($a, $b, $c) is argh(42)   # masak, agree we need some kind of error here, right ?
07:52 camelia rakudo-moar c2a57e: ( no output )
07:53 jaffa4 joined #perl6
07:53 jaffa4 hi all
07:54 jaffa4 I am testing the speed of n body implemented in perl 6
07:54 jaffa4 It is very slow. Could someone look at the code if there is a mistake in it?
07:57 masak jaffa4: sure thing! maybe provide it as a gist or something?
07:58 domidumont joined #perl6
07:58 jaffa4 gist?
07:58 masak lizmat: "need some kind of error" because there's no `argh` trait?
07:58 masak jaffa4: http://gist.github.com/
07:58 lizmat yes
07:58 masak lizmat: agreed.
07:59 masak m: my $a is argh(42)
07:59 camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fPt9WzHilk␤Can't use unknown trait 'is argh' in a variable declaration.␤at /tmp/fPt9WzHilk:1␤------> 3my $a is argh(42)7⏏5<EOL>␤    expecting any of:␤        TypeObject␤        default␤     …»
07:59 masak lizmat: like that, basic'ly.
07:59 lizmat yup
07:59 lizmat but apparently it's a parsing issue, as the it never winds up in a trait mod, not if in an Any:D trait mod
08:00 masak in general, I'd expect `my ($a, $b, $c) is x($y);` to work exactly like `my $a is x($y); my $b is x($y); my $c is x($y);` -- no matter what x and $y are.
08:00 lizmat yeah...  but like I said, looks like a parsing / action issue atm
08:00 jaffa4 https://gist.github.com/jaffa4/27bc61e573f086feafed
08:00 FROGGS lizmat: action issue
08:01 lizmat FROGGS o/
08:01 jaffa4 perl6-m.bat nbodies.p6 50000000
08:01 lizmat FROGGS: any idea where ?
08:01 FROGGS lizmat: I'm looking for the right spot currently
08:02 masak jaffa4: you have data duplication between $NBODIES and @bodies. that's not a reason for your slowdown, but it's kinda weird in Perl 6.
08:02 masak jaffa4: maybe because you converted from an ancient language, like FORTRAN or C?
08:02 masak (where one needs to pass on the length of an array along with the array)
08:03 FROGGS lizmat: are you sad if I attempt a fix?
08:03 lizmat no, please do  :-)
08:03 jaffa4 masak: yes, no reason
08:03 masak did you mean "no good reason"? :P
08:03 lizmat I'm just trying to do small things until I have a few days of consecutive quality time
08:03 jaffa4 no reson for slowdown
08:04 jaffa4 yes, it is translation from c
08:04 masak well, you can simplify that bit if you want.
08:04 masak the rest looks fairly straightforward. no big mistakes that might be the cause of the slowdown.
08:04 jaffa4 it is very slow
08:05 dalek Heuristic branch merge: pushed 20 commits to rakudo/newio by lizmat
08:05 jaffa4 that is the state of Moar jit then
08:05 masak could be that this is the kind of thing that's amenable to vector calculation, or parallel calculations...
08:05 FROGGS $ perl6-m -e 'my ($a, $b, $c) is argh(42)'
08:05 FROGGS ===SORRY!=== Error while compiling -e
08:05 FROGGS Can't use unknown trait 'is argh' in a variable declaration.
08:05 FROGGS $ perl6-m -e 'my ($a, $b, $c) is default(42); say "$a $b $c"'
08:05 FROGGS 42 42 42
08:06 masak \o/
08:06 FROGGS masak: wait for the fix :D
08:07 dalek Heuristic branch merge: pushed 31 commits to roast/newio by lizmat
08:07 dalek rakudo/nom: 45068ba | FROGGS++ | src/Perl6/Actions.nqp:
08:07 dalek rakudo/nom: handly traits when declaring vars in a list
08:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/45068ba4b6
08:07 lizmat wow!
08:07 lizmat FROGGS++
08:08 masak FROGGS++
08:08 FROGGS I love single line patches :o)
08:09 lizmat although not a single line patch, I loved the low number of patches needed to get $=finish to work
08:10 FROGGS aye
08:10 FROGGS that proves a good design IMO
08:10 lizmat yup
08:10 FROGGS and that is one thing that makes hacking on perl6 fun
08:11 lizmat agree
08:11 FROGGS and I am very proud that I was able to apply an almost equally good design to an application at work
08:12 FROGGS I would not have been able to do that without what I have learned here
08:12 moritz same here
08:12 FROGGS I mean, I never studied CS or anything else...
08:13 darutoko joined #perl6
08:19 rba_ joined #perl6
08:23 _mg_ joined #perl6
08:27 dalek rakudo/nom: ad21e90 | lizmat++ | src/Perl6/World.nqp:
08:27 dalek rakudo/nom: Stub "use internals" for internal helper subs
08:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ad21e906a0
08:29 lizmat afk for a few hours&
08:31 domidumont joined #perl6
08:31 espadrine joined #perl6
08:35 DrForr ===SORRY!===
08:35 DrForr Could not find ANTLR4::Actions::Perl6 in any of: file#lib:../json/lib
08:35 DrForr Doesn't seem that PERL6LIB allows setting multiple paths?
08:37 bin_005 joined #perl6
08:38 FROGGS DrForr: what delimiter do you use?
08:39 FROGGS m: say $*DISTRO.cur-sep
08:39 camelia rakudo-moar c2a57e: OUTPUT«,␤»
08:42 DrForr Well, I was using the (reasonably traditional) ':'.
08:42 Ulti joined #perl6
08:46 DrForr PERL6LIB=lib:../json/lib bin/antlr2perl6 foo.g4 # Here's the CLI.
08:48 DrForr I can invoke it as perl6 -Ilib -I../json/lib bin/antlr2perl6 # of course, but it'd be nice to be able to just run the app.
08:52 andreoss joined #perl6
08:55 RabidGravy m: IO::Socket::INET.new(host => "127.0.0.1:80")
08:55 camelia rakudo-moar c2a57e: OUTPUT«IO::Socket::INET is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:1␤  in method new at src/RESTRICTED.setting:32␤  in block <unit> at /tmp/50mde9ZMy8:1␤␤»
08:55 RabidGravy boo
08:55 larion joined #perl6
08:56 RabidGravy anyway, just going to send a PR to fix "Type check failed in assignment to '$!port'; expected 'Int' but got 'Str'
08:56 RabidGravy in block <unit> at -e:1" when you do that
08:56 FROGGS RabidGravy++
08:57 cschwenz joined #perl6
08:57 cschwenz left #perl6
09:00 chenryn joined #perl6
09:03 jnthn morning, #perl6
09:04 telex joined #perl6
09:05 arnsholt FROGGS: If it's any consolation, good development methodology and architecture is not always a very large part of CS curricula
09:06 arnsholt Also, it feels to me like they're very much practical skills. It's hard to see the wisdom of some things before you've felt the pain of doing it wrong
09:07 FROGGS arnsholt: yes, and I do not regret getting my hands dirty with about age 16
09:08 FROGGS I had enough of schools and wanted to do something "sensible"
09:09 FROGGS but sometimes I lack knowledge, and it feels sometimes hard to learn (or even just understand) concept that were teached in CS classes
09:09 FROGGS taught*
09:09 arnsholt Yeah, it's a hard balance to strike
09:09 FROGGS morning jnthn
09:10 arnsholt I sometimes have the inverse feeling. I have lots and lots of theory, but it's often hard to see where it's relevant (or how to apply it)
09:10 RabidGravy https://github.com/rakudo/rakudo/pull/435 if anyone feels that specifying host:port is sufficiently useful to need to work ;-)
09:10 dalek rakudo/nom: b9ab2c2 | RabidGravy++ | src/core/IO/Socket/INET.pm:
09:10 dalek rakudo/nom: Make port an Int if extracted from host:port in host
09:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b9ab2c2752
09:10 dalek rakudo/nom: fbd86b4 | FROGGS++ | src/core/IO/Socket/INET.pm:
09:10 dalek rakudo/nom: Merge pull request #435 from jonathanstowe/nom
09:10 dalek rakudo/nom:
09:10 dalek rakudo/nom: Make port an Int if extracted from host:port in host
09:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fbd86b4cde
09:10 RabidGravy :)
09:11 FROGGS jnthn: so you are living in Praha now, right?
09:11 bin_005 joined #perl6
09:13 FROGGS jnthn: because it is quite possible that I'll be there around august for a week, with wife and kids
09:13 * masak waves... from A TRAIN o
09:14 FROGGS masak: *g*
09:14 FROGGS o/
09:15 FROGGS fffrrroomm aa ttrn
09:15 FROGGS ohh, that wasnt even right I think
09:15 masak FROGGS: I'm in the same boat as you are wrt uni education. I took a lot of bioinformatics, but ended up wishing I could've studied a lot more of the "informatics" part.
09:16 jnthn FROGGS: Yes, right. :)
09:16 jnthn FROGGS: I'll be around in August when I'm not at YAPC::Asia and Swiss Perl workshop :)
09:16 FROGGS jnthn: awesome :o)
09:17 amurf joined #perl6
09:17 masak oh, and... I have a Perl 6 day today!
09:17 masak my goal is to blog, but I won't say what about ;)
09:17 jnthn Macros!
09:18 FROGGS masak: I became an electronics engineer after school (with 16), and quite enjoyed it
09:18 FROGGS I always wanted to fix things I guess
09:18 FROGGS jnthn: now you spoiled it!
09:18 El_Che jnthn: happy marrying etc!
09:20 zeleiadi joined #perl6
09:21 masak jnthn: nope :)
09:21 masak (though it's a decent guess)
09:22 jnthn El_Che: Thanks :)
09:22 Ven joined #perl6
09:22 masak FROGGS: is "with 16" (intead of "at 16") a Germanism? I'm intrigued.
09:23 FROGGS masak: ohh, indeed
09:26 masak "mit sechzehn [Jahre]"?
09:26 FROGGS mit sechzehn Jahren
09:27 masak ah, yes.
09:27 masak but still, in German you *are* your age ("ich bin") instead of *having* your age ("ich habe"), right?
09:27 FROGGS correct
09:28 nwc10 masak: is this train moving in an appropriate direction?
09:34 masak nwc10: well, it is moving away from you... :P
09:34 masak (north)
09:35 * masak .oO( "masak, this kind of senseless meanness is not becoming of #perl6!" )
09:38 nwc10 you're running away from the heat?
09:39 masak I'm going up to my old university town (Uppsala) to be a part of the doctoral defense of a good friend.
09:39 masak basically, I started at Edument; he stuck around and did a PhD.
09:40 nwc10 if anything, it seems to be warmer there: http://www.bbc.co.uk/weather/2666199 http://www.bbc.co.uk/weather/2692969
09:41 domidumont joined #perl6
09:47 brrt joined #perl6
09:47 _itz can anyone recommend a good LISP intro and system for a beginner to play with?
09:47 brrt .tell lizmat that i now know why we haven't implemented isatty yet :-P
09:47 yoleaux brrt: I'll pass your message to lizmat.
09:47 brrt _itz: why not SICP
09:47 brrt has a book, video lectures on the internets
09:48 brrt helped me a lot
09:48 masak +1 for SICP
09:48 brrt http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/ <- this taught me a lot
09:48 _itz thanks I'll take a look
09:49 masak this version is very nicely formatted: https://sicpebook.wordpress.com/ebook/
09:53 larion joined #perl6
09:54 jab joined #perl6
09:55 jab Where can I find the syntax for the enum statement?
09:56 DrForr s/// seems to throw an excption when run on class 'Any' rather than silently do nothing. I assume this is by design?
09:57 jab it is
09:57 masak exception is what I would expect, yes.
09:57 masak jab: described in S12, at least.
09:58 masak S12:Enumerations
09:58 synbot6 Link: http://design.perl6.org/S12.html#Enumerations
09:58 jab thanks
09:58 masak dunno if docs.perl6.org has something. if not, it probably should.
09:59 masak cursory search yields nothing.
09:59 jab Yeah it's hard to find enum info
09:59 * masak files issue
10:00 bin_005_i joined #perl6
10:00 _itz http://rosettacode.org/wiki/Enumerations#Perl_6
10:01 masak https://github.com/perl6/doc/issues/87
10:02 DrForr While I can guess why that's now disallowed it means 'if $content' needs to be added...
10:03 * Ven never read SICP
10:03 Ven I should someday.
10:03 bin_005_i_q joined #perl6
10:06 jab Is there anything perl6 implementations that use JVM?
10:09 DrForr Yep, it's even mentioned on the rakudo homepage.
10:09 rindolf joined #perl6
10:10 brrt the rakudo compiler has a JVM backend
10:10 jab Can you combine perl and java code?
10:11 brrt i'm not terribly sure how that works, but i believe there has been some work on java/rakudo interop
10:13 mr-foobar joined #perl6
10:14 llfourn joined #perl6
10:24 llfourn_ joined #perl6
10:26 timotimo o/
10:26 timotimo oh, jaffa4 isn't around any more
10:27 lizmat brrt: do tell  :-)
10:27 yoleaux 09:47Z <brrt> lizmat: that i now know why we haven't implemented isatty yet :-P
10:28 timotimo .tell jaffa4 i found it a bit strange that you were using hashes for the bodies in your nbodies translation
10:28 yoleaux timotimo: I'll pass your message to jaffa4.
10:28 brrt long story short: we use libuv. libuv exposes two conflicting notions of the idea 'file stream'. One is the simple synchronous uv_file (always an int, always a file descriptor) and one is the uv_handle (a multiplexed magic wrapper for sockets, pipes, file streams, ttys, etc)
10:28 brrt to determine if something is a tty, one uses the standard posix isatty() call on a posix file handle
10:29 brrt uv_file behaves in all respects like a posix file handle
10:29 timotimo well, uv has this magical "guess handle type" function
10:29 timotimo we even use that in one spot to get the right type to build the stdin stream with
10:29 brrt uv_handle can resolve, if desired, to a posix file handle (now called a uv_os_fd_t), *if* you are on a unix system
10:31 brrt on windows uv_handle resolves to a HANDLE, which is defined as an opaque void pointer, which may - depending on context - actually be an integer or may actually be a pointer, whatever the OS likes best
10:31 lizmat brrt: fwiw, isatty should only return true on the handle that has the default STDOUT / STDERR stream
10:31 brrt yes timotimo, and that function accepts an uv_file (i.e. an int)
10:31 brrt why?
10:31 lizmat in all other cases it should return false
10:31 timotimo hm, oh.
10:31 lizmat in my "world"  :-)
10:31 brrt if i do "/dev/tty1/".IO.open.t that should be 'yes'
10:32 lizmat what you want to know, is whether there is potentially a person that with which you can interact
10:32 timotimo and if i do echo "hello" | perl6 -e ... it should be 'no' for stdin and if i do perl6 -e '...' > foobar, it should be 'no' for stdout
10:32 brrt exactly :-)
10:32 timotimo in my world that's exactly what "isatty" is for ... also i think you can't use tty-like stuff on such handles
10:33 timotimo using ansi escapes for colors for example, or placing the cursor "on the screen"
10:33 brrt that restricts isatty to syncfile structures
10:35 brrt which, i suppose, is fair enough
10:35 brrt and that means we'll only support getting a file descriptor on syncfiles
10:35 brrt which i also suppose is reasonable
10:39 timotimo the profiler gets very upset with the nbodies program
10:40 timotimo exit, THE_END and <unit> all share 33.33% of the time (18446744073709.51ms each) and everything else has almost 0ms
10:40 * brrt lunch &
10:40 brrt left #perl6
10:42 lizmat timotimo: is the program exiting all the time ?
10:42 * lizmat is confused
10:42 lizmat m: THE_END   # :-)
10:42 camelia rakudo-moar c2a57e: ( no output )
10:45 masak hm, we might want to hide that symbol from public use...
10:45 yqt joined #perl6
10:46 dakkar joined #perl6
10:47 timotimo lizmat: no, it only exits once, but it spends almost all of its time in that
10:47 lizmat masak: working on that
10:48 lizmat timotimo: are there many phasers ?
10:48 lizmat END phasers I mean
10:48 timotimo no
10:48 timotimo but it ends in "exit(0)"
10:48 timotimo so maybe that confuses it?
10:49 lizmat sub exit($status = 0)
10:49 lizmat so, hardly any confusion possible
10:50 timotimo no, i mean ... just exiting at all
10:52 yakudza joined #perl6
10:53 masak m: sub foo($x = exit) { say $x }; foo "OH HAI"; foo; foo "Elvis has left the building"
10:53 camelia rakudo-moar c2a57e: OUTPUT«OH HAI␤»
10:53 timotimo i managed to reduce the number of BOOTCode allocations from 8060610 to 3860605, but at the same time, i got the number of Num allocations up from 7100430 to 6300430
10:53 timotimo oh, wait
10:53 timotimo m: say 6300430 / 7100430
10:53 camelia rakudo-moar c2a57e: OUTPUT«0.8873308␤»
10:53 timotimo that's not more
10:56 timotimo and the number of GCs from 275 to 217
10:58 timotimo m: say "METAOP_ASSIGN takes { 583.85 / 1500000 }ms per call"
10:58 camelia rakudo-moar c2a57e: OUTPUT«METAOP_ASSIGN takes 0.000389233ms per call␤»
10:58 dalek rakudo/nom: 47f91b0 | lizmat++ | src/core/control.pm:
10:58 dalek rakudo/nom: Use a more elegant once block for the end
10:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/47f91b0d15
10:58 timotimo well, that lets it end up in 4th place
10:59 xinming joined #perl6
10:59 timotimo oh!
10:59 timotimo second place is the anonymous sub that implements METAOP_ASSIGN and that's in second place with 12%
11:00 timotimo so actually METAOP_ASSIGN ends up taking about 16.5% of the program's time
11:02 FROGGS timotimo: what's the program ooc?
11:02 timotimo i was taking jaffa4's nbody.p6 and turning the hashes into classes
11:03 lizmat looking at the METAOP subs, I wonder if it would be worthwhile to factor out the $triangle business in a separate candidate
11:03 timotimo postcircumfix:<{ }> used to be in second place at 10.3% and AT_KEY in 4th place (just above METAOP_ASSIGN) with 7.9%
11:05 * timotimo has the brilliant idea to use native num instead of Real
11:07 timotimo 5.37user 0.02system 0:05.40elapsed 99%CPU (0avgtext+0avgdata 77424maxresident)k
11:07 timotimo oh!7.80user 0.02system 0:07.83elapsed 99%CPU (0avgtext+0avgdata 96824maxresident)k
11:07 timotimo (without "oh!")
11:07 timotimo that's the improvement i got so far
11:10 timotimo oh holy wow. with the "better" version with native nums, the amount of spesh'd vs jitted frames is *much* worse, and there's a whole lot more allocations and GCs, but it's still faster
11:12 timotimo what the ... find_method gets invoked?
11:13 FROGGS hmmm, sounds like you get quite some insights currently :o)
11:13 timotimo well, the not jitting is possibly because of NumAttrRef and related ops, maybe those aren't implemented yet; the jit log will tell me in a second.
11:15 timotimo BAIL: op <getattrsref_n>
11:15 timotimo should be easy enough.
11:15 FROGGS that's what I was hoping for :o)
11:17 chenryn joined #perl6
11:20 adu joined #perl6
11:25 Rotwang joined #perl6
11:26 Rotwang hi
11:27 noganex joined #perl6
11:36 Ven joined #perl6
11:41 _mg_ joined #perl6
11:45 Ven can anyone confirm a bug I'm seeing in the REPL (os x)?
11:45 Ven if I just `$ perl6` then up arrow + enter, it segfaults
11:46 lizmat $ perl6
11:46 lizmat > ^[[A
11:46 lizmat ===SORRY!=== Error while compiling <unknown file>
11:46 lizmat Bogus statement
11:46 lizmat at <unknown file>:1
11:46 Ven weird, I recompiled everything an hour ago :|
11:46 * Ven re-pulls
11:47 lizmat fwiw, I don't have readline or linenoise or anything like that installed
11:47 Ven ah, that might be it
11:51 Ven seems like I was just missing a panda rebootstrap
11:51 dalek rakudo/nom: d4dcca7 | lizmat++ | src/core/metaops.pm:
11:51 dalek rakudo/nom: MMDize METAOP_REDUCE_xxx subs
11:51 dalek rakudo/nom:
11:51 dalek rakudo/nom: The short-term win is about 4% in each call without :triangle.  The longer
11:51 dalek rakudo/nom: term win is that we can now easily add optimized candidates for e.g. [+].
11:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4dcca781b
11:54 Ven lizmat: :triangle is [\+]?
11:55 lizmat I think so
11:55 Ven which makes me realize there's no syntax for named "matching". what I mean is that this works:
11:55 Ven m: multi foo(True){1}; multi foo($){0}; say foo(True);
11:55 camelia rakudo-moar c2a57e: OUTPUT«1␤»
11:55 Ven but this doesn't:
11:56 Ven m: multi foo(:val(True)){1}; multi foo(:val($)){0}; say foo(:val);
11:56 camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YUBqhZKO4e␤Malformed parameter␤at /tmp/YUBqhZKO4e:1␤------> 3multi foo(:val(7⏏5True)){1}; multi foo(:val($)){0}; say fo␤    expecting any of:␤        formal parameter␤»
11:57 lizmat Ven: yes, named params are only for breaking ties between candidates
11:57 FROGGS std: multi foo(:val(True)){1}; multi foo(:val($)){0}; say foo(:val);
11:57 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Malformed parameter at /tmp/upMZicrion line 1:␤------> 3multi foo(:val(7⏏5True)){1}; multi foo(:val($)){0}; say fo␤    expecting any of:␤    named_param_term␤       new name to be defined␤ parameter␤      routine_def␤    signature␤Parse …»
11:57 FROGGS Ven: I like that syntax fwiw
11:57 Ven lizmat: I know it is
11:57 Ven I'm just making a parallel between named and positional params :)
11:57 Ven FROGGS: nice :)
11:58 FROGGS Ven: and it fits the concept of what we do with pairs usually
11:58 FROGGS though one could argue that the value of that pair is not a matcher but the default value
12:00 Ven we have a syntax for default values already, though
12:05 grondilu m: say [+] rand xx 3
12:05 camelia rakudo-moar c2a57e: OUTPUT«1.54526622351538␤»
12:05 grondilu locally I get a 'can not call infix:<+>'
12:06 * grondilu pulls rakudo and recompiles
12:07 lizmat $ 6 'say [+] rand xx 3'
12:07 lizmat 1.58108774004982
12:07 lizmat Looks like my MMDing of METAOPs is doing bad things on the JVM  :-(
12:10 stanrifkin joined #perl6
12:14 lizmat dilemma: do I just revert, or do I re-instate the old code for the JVM and the new code for Moar ?
12:14 lizmat jnthn: ^^^ opinions ?
12:19 uncleyear joined #perl6
12:20 FROGGS lizmat: bad things in what way?
12:21 lizmat massive spectest failure
12:21 timotimo anyway, with attrref_* and attrsref_* implemented, the number of jitted frames goes up to 76%
12:22 FROGGS timotimo: \o/
12:22 * timotimo is quite sidetracked at the moment, though
12:22 FROGGS cats again? :o)
12:23 timotimo nope
12:23 * FROGGS has a cat on his back near his neck, though it is just printed on his shirt
12:23 timotimo :3
12:24 * lizmat tries to get a better idea about the actual failures on the JVM
12:25 FROGGS lizmat: yeah, that sounds like a good thing to do
12:27 FROGGS and I am also think that we should turn the named $triangle into a positional
12:27 lizmat hmmm.... that's a good idea...  :-)
12:28 FROGGS which happens at rakudo/src/Perl6/Actions.nqp:5836
12:29 lizmat $ perl6-j -e 'my @a; [+] @a'
12:29 lizmat java.lang.NullPointerException
12:29 lizmat in block <unit> at -e:1
12:30 FROGGS j: my @a; @a.shift
12:30 camelia rakudo-jvm c2a57e: OUTPUT«Unhandled exception: Cannot .shift from an empty Array␤  in throw (gen/jvm/CORE.setting:14593)␤  in sink (gen/jvm/CORE.setting:16528)␤  in MAIN (gen/jvm/main.nqp:41)␤  in <mainline> (gen/jvm/main.nqp:35)␤  in  (gen/jvm/main.nqp)␤␤»
12:31 lizmat same here
12:31 FROGGS ahh, I have no idea what it is... and I cannot compile perl6-j right now
12:31 FROGGS but hopefully --ll-exception points to something
12:32 lizmat FROGGS: no, it doesn't :-(
12:34 grondilu m: say [+] rand xx 1_000
12:34 camelia rakudo-moar c2a57e: OUTPUT«512.224868591308␤»
12:34 grondilu m: say [+] rand xx 19_000
12:34 camelia rakudo-moar c2a57e: OUTPUT«9514.29931266904␤»
12:34 grondilu well that's weird
12:35 lizmat grondilu: what is ?
12:35 grondilu I get 'can not call infix' if I try to sum one thousand numbers
12:35 grondilu m: say [+] rand xx 3  # is fine locally
12:35 camelia rakudo-moar c2a57e: OUTPUT«1.43158160533389␤»
12:35 mr-fooba_ joined #perl6
12:35 grondilu m: say [+] rand xx 1_000  # is not
12:35 camelia rakudo-moar c2a57e: OUTPUT«507.256616612841␤»
12:35 uncleyear joined #perl6
12:36 grondilu This is perl6 version 2015.05-105-gd4dcca7 built on MoarVM version 2015.05-35-gc4c7ebd
12:36 lizmat hmmm... the triangle version is fine on the JVM
12:37 grondilu [+] rand xx $n works unless $n > 135  (wtf?)
12:38 * grondilu tries this on his raspberry pi FYI
12:38 FROGGS ahh
12:38 moritz Perl 6: add up to 136 numbers in one statement!
12:39 FROGGS that probably explains it
12:39 lizmat grondilu: could you try with MVM_SPESH_DISABLE=1 ?
12:39 grondilu lizmat++ that make it work indeed
12:40 grondilu oh wait
12:40 grondilu lol
12:40 lizmat yeah, this looks similar to the SPESH issue that [Tux]  found with repeated CATCHes in a loop
12:40 grondilu weirdly enough MVM_SPESH_DISABLE=0 makes it work as well!?
12:41 * grondilu guesses as long as it's not empty, it's true
12:41 lizmat that would be another bug  :-)
12:42 jnthn lizmat: Is the failure mode the control exception + continuation one?
12:42 lizmat yeah, I think so
12:42 jnthn Hmmm...
12:42 jnthn We should probably figure that one out
12:42 lizmat also 135 times or so
12:43 lizmat [Tux] probably can whip up the RT number just like that
12:43 smls joined #perl6
12:43 |Tux| RT#124191
12:43 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=124191
12:43 FROGGS lizmat: I'll have a perl6-j soon
12:43 jnthn lizmat: If you go with the two code-paths approach, please leave a note saying why, with the error in, so we can triage them.
12:43 lizmat will do
12:44 Akagi201 joined #perl6
12:45 grondilu line 352 of moar.c:
12:45 grondilu if (!spesh_disable || strlen(spesh_disable) == 0) {
12:46 grondilu though I get that parsing a "yes/no" string properly in C is a hassle
12:47 timotimo is that terrible?
12:47 LonelyGM joined #perl6
12:47 grondilu nah it probably does not matter much
12:54 amurf joined #perl6
12:56 FROGGS lizmat: I found the issue
12:56 lizmat FROGGS: do tell  :-)
12:57 dalek rakudo/nom: 8d2899e | FROGGS++ | src/core/metaops.pm:
12:57 dalek rakudo/nom: bind returned closure to scalar to aid jvm
12:57 dalek rakudo/nom:
12:57 dalek rakudo/nom: Otherwise it will blow up with an NPE...
12:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d2899e16b
12:58 lizmat aw yuk
12:58 lizmat would you mind if I made that conditional for the JVM ?
12:58 FROGGS no, go ahead
12:59 FROGGS are you changing the :$triangle to positional or shall I?
12:59 lizmat I'll do the triangle as well
12:59 FROGGS lizmat++
12:59 lizmat thanks for pointing me in the direction
12:59 FROGGS :o)
12:59 * FROGGS goes back to $work
12:59 lizmat FROGGS++
13:04 masak what's the idiomatic way to introspect a given attribute, again? I forget.
13:04 uncleyear joined #perl6
13:04 masak I see the method .^attributes -- do I have to loop over it to find my attribute?
13:04 LonelyGM joined #perl6
13:05 masak or is .^get_attribute_for_usage what I'm supposed to use?
13:05 lizmat .^attributes.first ?
13:05 jnthn masak: Yes, you have to grep it out, and then .get_value
13:05 masak I could've sworn we had a .^get_attribute...
13:05 masak oki
13:06 jnthn There's no especially idiomatic way 'cus it's usually a bad idea :P
13:06 jnthn And in the cases where it is a good idea you normally care about all of them. :)
13:06 jnthn ('cus you're writing generic code)
13:06 masak :)
13:06 masak that's what I thought you were going to say :P
13:07 masak though I'll note for posterity that I only partially buy "we're making it difficult because we know what's best for you" as an argument...
13:07 jnthn .oO( a little later... <masak> gah, it was a bad idea to introspect that attr... )
13:07 masak in many cases it's turned out that we *can't* predict all the legitimate needs of users.
13:07 masak I'm writing a blog post! :P
13:07 lizmat masak: it's not that we're making it difficult, it's that we're not making it easy  :-)
13:07 masak nodnod
13:08 jnthn OK, I'll read the blog post and then see if I can see a better way :)
13:08 masak you do that
13:08 masak my use case was exactly "ok, we can't do hash lookup on objects like in Perl 5, but we can do this:"
13:09 dalek rakudo/nom: fbe67fe | lizmat++ | src/core/metaops.pm:
13:09 dalek rakudo/nom: Add binding METAOPs only for the JVM
13:09 dalek rakudo/nom:
13:09 dalek rakudo/nom: To prevent an unbound closure causing an NPE on the JVM, FROGGS++
13:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fbe67fed6c
13:09 masak m: class C {}; say C.HOW.^methods
13:09 camelia rakudo-moar c2a57e: OUTPUT«Method 'gist' not found for invocant of class 'NQPRoutine'␤  in block <unit> at /tmp/I2Zy3pPfrh:1␤␤»
13:10 masak by the way, do we expect the above ever to work?
13:10 jnthn I can imagine making them work, yeah
13:10 masak in this case, it made me have to go and read source instead of staying inside the REPL
13:11 adu joined #perl6
13:17 masak m: class C { method foo is export { say "OH HAI, {self}" } }; import C; foo C.new
13:17 camelia rakudo-moar c2a57e: OUTPUT«OH HAI, C<140563536010464>␤»
13:17 masak oh wow, that still works :)
13:18 smls m: say "apples and oranges" ~~ /:s ^ (apples|oranges)+ % "and"/
13:18 camelia rakudo-moar c2a57e: OUTPUT«「apples 」␤ 0 => 「apples」␤»
13:18 smls ^^ why does thos not match the full string?
13:18 masak is there a good reason we don't use `is export` more on methods in the core setting?
13:18 smls shouldn't sigspace allow space between the elements and separator of % ?
13:18 LonelyGM joined #perl6
13:19 FROGGS m: say "apples and oranges" ~~ /:s ^ (apples|oranges) +% "and"/
13:19 camelia rakudo-moar c2a57e: OUTPUT«「apples 」␤ 0 => 「apples」␤»
13:19 lizmat masak: because is export doesn't work in the settings
13:19 lizmat like many attributes, if not all
13:19 masak huh. did not know that. thank you.
13:19 masak so it's a case of "if we could, we would"?
13:19 arnsholt IIRC the solution to <ws> around the separator is /:s<stuff>+ % [ ',' ]/
13:19 masak m: say "apples and oranges" ~~ /:s ^ (apples|oranges)+ % [ "and" ]/
13:19 camelia rakudo-moar c2a57e: OUTPUT«「apples 」␤ 0 => 「apples」␤»
13:20 lizmat masak: I think so, yes
13:20 masak m: say "apples and oranges" ~~ /:s ^ (apples|oranges) + % [ "and" ]/
13:20 camelia rakudo-moar c2a57e: OUTPUT«「apples and oranges」␤ 0 => 「apples」␤ 0 => 「oranges」␤»
13:20 smls why is that?
13:20 masak arnsholt, FROGGS: seems you need both in this case.
13:20 FROGGS aye
13:20 masak my bet is that ' ' before '+' is needed for the ' ' before the 'and'.
13:20 masak and the ' ' before ']' for the space after.
13:21 masak lizmat: the answer I expected someone to offer was something related to inlineability. but maybe our JIT is already smart enough for that not to matter.
13:22 lizmat if it isn't yet, it will be  :-)
13:22 arnsholt Oh, wait. Looks like I'm wrong
13:23 arnsholt It's the spacing *after* each matching element that's the key. From S05: "When significant space is used under :sigspace, each matching element enables the immediately following  whitespace to be considered significant. Space after the % does nothing. If you write:"
13:24 arnsholt ms/ <element> +  %  ',' /
13:24 arnsholt #1        #2 #3 #4  #5
13:24 arnsholt it ignores whitespace #1 and #4, and rewrites the rest to:
13:24 arnsholt / [ <element> <.ws> ]+ % [ ',' <.ws> ] <.ws> /
13:24 arnsholt #2               #5      #3
13:27 skids joined #perl6
13:28 uncleyear joined #perl6
13:31 dalek rakudo/nom: 7978f4a | lizmat++ | src/ (2 files):
13:31 dalek rakudo/nom: Make METAOPs triangle a positional for better MMD
13:31 dalek rakudo/nom:
13:31 dalek rakudo/nom: Suggested by FROGGS++
13:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7978f4a2f2
13:33 FROGGS ncie
13:33 FROGGS nice*
13:37 masak sometimes I think it's a pity that .can returns an array, and not just the first applicable method.
13:37 masak (because the first applicable method is what I'm interested in 90% of the time, so I do `[0]` a lot)
13:38 Ven joined #perl6
13:38 jnthn masak: Why aren't you using .^lookup or .^find_method ?
13:38 Akagi201 joined #perl6
13:38 masak good question.
13:39 masak I haven't heard of .^lookup before, what's the difference between that and .^find_method ?
13:39 jnthn .^lookup is "give me the thing that was actually declared"
13:39 jnthn .^find_method is "give me something to invoke that will handle the message"
13:39 masak oh, so .^find_method if I'm fine with under-the-hood magic happening?
13:40 jnthn In simple cases they overlap, but if you were using, say, Grammar::Tracer or OO::Monitor or so on, .^find_method gives you back something that, if invoked, will do the logging/locking as needed
13:40 masak nodnod
13:40 jnthn While .^lookup will give you the Method object, which is useful if you want to look at its Pod.
13:40 masak right. they diverge in cases where we are living under an interesting metaclass.
13:41 jnthn .oO( We all live in a yellow metaclass... )
13:45 lizmat afk for a bit&
13:54 Ven joined #perl6
13:56 uncleyear joined #perl6
13:56 dalek specs/newio: f0dc104 | (Stéphane Payrard)++ | S99-glossary.pod:
13:56 dalek specs/newio: added NPE and rakudobrew spotted on #perl6. fixed a link
13:56 dalek specs/newio: review: https://github.com/perl6/specs/commit/f0dc104548
13:57 masak cognominal: ...wrong branch?
13:58 yqt joined #perl6
14:00 |Tux| https://gist.github.com/Tux/3e10b75ae0752654bb28 - Inline::Perl5 compilation warning
14:01 dalek specs: c9f4f63 | (Stéphane Payrard)++ | S99-glossary.pod:
14:01 dalek specs: added NPE and rakudobrew spotted on #perl6. fixed a link
14:01 dalek specs: review: https://github.com/perl6/specs/commit/c9f4f63341
14:02 masak detrain &
14:02 cognominal joined #perl6
14:04 cognominal Thx masak. I need to learn how to revert on a public repo.
14:05 cognominal Or is this necessary because it will eventually get merged?
14:07 * jnthn finally has time and energy for some Perl 6 work again :)
14:07 jnthn ...and a cup of tea to go with it
14:07 rindolf joined #perl6
14:11 hoelzro morning #perl6
14:12 jnthn o/ hoelzro
14:13 |Tux| TIMEZONE's--
14:13 sjn \o
14:14 sjn jnthn: have you moved to Prague yet? :)
14:15 jnthn sjn: Move in progress. :)
14:15 sjn ah, cool
14:15 jnthn sjn: I'm in Prague, some of my stuff is in Prague, the rest of it will be by the time the month's out :)
14:15 * sjn will be in Vienna for 6 weeks, starting the end of this month
14:16 jnthn Cool :)
14:16 sjn need to familiarize myself with the beer options in the area :D
14:17 sjn (where "the area" really might include anything within a 4-hour train trip :D)
14:17 jnthn Prague is just over 4 hours
14:17 jnthn BUT if you get the right train, then it has draught beer on board! :P
14:18 |Tux| lizmat, between Tue and now, csv.pl started failing with "Cannot invoke null object in method parse at csv.pl:69"
14:18 |Tux| which makes no sense at all
14:18 |Tux| FWIW csv.pl is Jihn's state machine that never changed
14:18 |Tux| John
14:19 sjn jnthn: oh, cool!
14:20 mohij joined #perl6
14:23 dalek specs: 16eb4ec | (Stéphane Payrard)++ | S17-concurrency.pod:
14:23 dalek specs: S17: sub start is deprecated
14:23 dalek specs: review: https://github.com/perl6/specs/commit/16eb4ecdb5
14:28 dalek specs: a1a7745 | jnthn++ | S29-functions.pod:
14:28 dalek specs: s/evalfile/EVALFILE/, for consistency with EVAL.
14:28 dalek specs: review: https://github.com/perl6/specs/commit/a1a774570d
14:29 Ven joined #perl6
14:30 FROGGS jnthn: do we need EVALFILE at all?
14:31 dalek roast: 367f23b | jnthn++ | S29-context/evalfile.t:
14:31 dalek roast: s/evalfile/EVALFILE/, add lexical visibility test.
14:31 dalek roast: review: https://github.com/perl6/roast/commit/367f23b1a4
14:31 colomon joined #perl6
14:32 jnthn FROGGS: It's a small convenience I gues.
14:32 jnthn *guess
14:32 dalek rakudo/nom: 9be4715 | jnthn++ | src/ (2 files):
14:32 dalek rakudo/nom: Implement EVALFILE.
14:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9be47152e4
14:32 jnthn And was an easy RT for me :)
14:32 FROGGS :P
14:33 jnthn It's long been in the design docs, and it's not a lot of work to do :)
14:34 jnthn Anyway, one RT down :)
14:34 llfourn joined #perl6
14:35 brrt joined #perl6
14:35 FROGGS jnthn: I guess there is one for 'goto' too :P
14:36 jnthn heh
14:37 * jnthn picks a "slightly tricker" one, having done an "easy" one :)
14:37 cognominal it seems that Promise implementation is not conform to the spec. It seems possible to keep a promise even if someone ele has taken a vow.
14:37 jnthn cognominal: Example?
14:37 FROGGS sorry... I just listen to sherlock holmes stories too much, and he's always talking about excercizing his brain
14:37 * jnthn is pretty sure that was working...
14:38 * jnthn picks RT #125260 as his next victim
14:40 cognominal jnthn, it seems I am wrong
14:41 cognominal m: my $p = Promise.in(10); $p.keep
14:41 camelia rakudo-moar c2a57e: OUTPUT«Access denied to keep/break this Promise; already vowed␤  in block <unit> at /tmp/92o58Lq_Mp:1␤␤»
14:42 cognominal so I misread the code :(
14:44 amurf joined #perl6
14:45 cognominal I should double check before crying wolf :(
14:48 jnthn Well, there's no use crying over spilt wolves...
14:52 uncleyear joined #perl6
14:56 DrForr m: say "\x[effff]"
14:56 camelia rakudo-moar c2a57e: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 983039␤  in block <unit> at /tmp/y3sYzfRQtM:1␤␤»
14:57 DrForr \x[effff] is a valid codepoint, at least it's inside the 0..0x10ffff range.
14:58 jnthn m: say uniname 0xeffff
14:58 camelia rakudo-moar c2a57e: OUTPUT«<unassigned>␤»
14:58 DrForr Unassigned ne unencodable, no?
15:00 sue_ joined #perl6
15:00 dalek rakudo/nom: 22f6232 | jnthn++ | src/Perl6/Actions.nqp:
15:00 dalek rakudo/nom: Enforce sigil types on placeholder params.
15:00 dalek rakudo/nom:
15:00 dalek rakudo/nom: Fixes RT #125260.
15:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/22f6232405
15:00 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125260
15:00 jnthn DrForr: Need to check the Unicode spec; was just trying to figure out what might be going on.
15:00 DrForr http://www.unicode.org/versions/Unicode7.0.0/ch01.pdf claims 0..0x10ffff is the codepoint range.
15:01 DrForr It is v7, but I think the upper end has been 10ffff since at least v5.
15:01 dalek roast: 09a6122 | jnthn++ | S06-signature/mixed-placeholders.t:
15:01 dalek roast: Tests for RT #125260.
15:01 dalek roast: review: https://github.com/perl6/roast/commit/09a6122760
15:01 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125260
15:02 DrForr 6.0 as well, checking 5.0.
15:03 colomon m: say 0xeffff
15:03 camelia rakudo-moar c2a57e: OUTPUT«983039␤»
15:03 DrForr All the way back to v4.0, I need to read v3.0 closer to determine.
15:05 DrForr v3.0 introduces surrogate pairs covering codepoints outside the BMP.
15:06 jnthn lizmat: I disagree with d841d4e14f0, and RT #125257 is not a bug. You can provide any number of things to await, if we make zero an error it's just going to make the await do for @things { start { ... } } pattern have a really awkward degenerate case.
15:06 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125257
15:07 DrForr 4.0 looks like the earliest spec stating that codepoints range from 0 to 0x10ffff, on page 6. Though that's just the introduction.
15:07 lizmat m: await my @a # not a problem
15:07 camelia rakudo-moar c2a57e: ( no output )
15:08 lizmat m: await # a problem, because developer misconception
15:08 camelia rakudo-moar c2a57e: ( no output )
15:08 jnthn DrForr: Well, it's not about codepoint range we want to be looking, it's the utf-8 encoding
15:08 lizmat jnthn: or do you think a bare "await" can make sense at any time ???
15:08 DrForr A point.
15:08 lizmat $ 6 'await'
15:08 lizmat Must specify a Promise or Channel to await on
15:09 jnthn lizmat: Ah, I see...
15:09 lizmat $ 6 'await my @a'
15:09 lizmat no problem
15:09 jnthn lizmat: OK, I think I'm happy enough with it done that way
15:09 lizmat it's a bit like the bare say
15:09 lizmat m: say
15:09 camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/SyC14Z5Zdx:1␤------> 3say7⏏5<EOL>␤Other potential difficulties:␤    Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or …»
15:10 lizmat hmmm... that looks like a double error
15:10 FROGGS double?
15:10 colomon @@EFF80UnassignedEFFFF
15:10 colomon @Noncharacters
15:10 colomon @+These codes are intended for process-internal uses.
15:10 colomon EFFFE<not a character>
15:10 colomon EFFFF<not a character>
15:11 bbkr joined #perl6
15:11 colomon m: say "\x[efffa]”
15:11 camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u8fdOdbphe␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/u8fdOdbphe:1␤------> 3say "\x[efffa]”7⏏5<EOL>␤    expecting any of:␤        argument list␤        dou…»
15:11 colomon m: say “\x[efffa]”
15:11 camelia rakudo-moar c2a57e: OUTPUT«󯿺␤»
15:11 lizmat FROGGS: malformed and unsupported use
15:12 colomon efffe and effff appear to be special
15:12 FROGGS lizmat: the unsupported use is correct
15:12 colomon http://www.unicode.org/Public/UCD/latest/ucd/NamesList.txt
15:12 lizmat yeah, wonder where the other comes from
15:12 FROGGS m: say ;
15:12 camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hx5Z_PofdC␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/hx5Z_PofdC:1␤------> 3say7⏏5 ;␤»
15:12 FROGGS parsing issue
15:13 FROGGS with eof
15:13 lizmat ah, ok
15:18 DrForr On closer reading I think the current interpretation *might* be consistent with http://www.unicode.org/versions/Unicode4.0.0/ch03.pdf but I'll have to read it closer later.
15:19 * jnthn is looking at v7 of the standard at the moment
15:19 uncleyear joined #perl6
15:19 uncleyear joined #perl6
15:19 DrForr I wasn't sure which version perl6 purports to support.
15:20 moritz The Best of course :-)
15:20 lizmat jnthn: I just realized that the await change prompted me to want to have a (+@a) signature
15:21 lizmat similar to a normal slurpy (*@a), but would need at least 1 value
15:21 lizmat that could make the bare await (and similar cases) a compile time error, rather than runtime (as it is now)
15:21 moritz but that's not the right semantics for await
15:21 moritz because 0 elements at runtime are fine
15:21 lizmat moritz: ??
15:21 jnthn @a where +@a # how to spell it now :)
15:21 brrt few things worse than 'we support unicode! lol but not *your* unicode because we support only UCS-2'
15:22 moritz jnthn: or even @a where @a
15:22 jnthn Or that, yes :)
15:22 lizmat jnthn: yeah, but that would make MMD a lot slower, no?
15:22 jnthn And as moritz++ points out, it would not help here
15:22 DrForr brrt: Careful, I pushed for UTF-9 support at one time :)
15:22 lizmat this would be about values specified, no?
15:22 jnthn lizmat: Inventing syntax sugar doesn't make it faster :P
15:22 brrt that has to be a joke somehow
15:22 lizmat I mean, an empty array would still be 1 parameter
15:22 jnthn lizmat: The fast paths are all about *type* distinctions
15:22 DrForr ch3 pg 19-20 seems to be terribly relevant.
15:23 DrForr brrt: it was an AFJ RFC, but it is implementable IIRC.
15:23 DrForr If you have PDP with 9-bit-wide registers, that is :)
15:23 brrt you can emulate any number of bits in a stream
15:24 lizmat jnthn moritz : what I suggest is *not* the same as (*@a where @a)
15:25 lizmat but rather to be applied to the number of elements *before* flattening
15:25 lizmat need to be afk, will check again later&
15:25 arnsholt lizmat: There's also ($required, *@rest)
15:25 DrForr Getting ready 4YAPC, cya there.
15:26 moritz lizmat: ok, that's not how I understood the proposal
15:26 arnsholt Although that would require a bit of gymnastics inside the function if you want all the args in a single list
15:28 moritz man, 'hg grep' really is slow
15:30 mr-foobar joined #perl6
15:31 raydiak sub foo (+@all) {} instead of sub foo ($first, *@rest) { my @all = $first, @rest; } would be nice and something I've wanted in the past as well
15:34 bbkr__ joined #perl6
15:35 jnthn DrForr: http://www.unicode.org/faq/private_use.html#nonchar8 gives an answer
15:37 jnthn Also http://www.unicode.org/versions/corrigendum9.html
15:38 jnthn So, I'll fix things :)
15:39 raydiak m: sub foo (*@all ($, *@)) { @all.perl.say }; foo <a b c>; foo 42; foo; # although you can get the same effect as +@ with a subsig
15:39 camelia rakudo-moar c2a57e: OUTPUT«["a", "b", "c"]<>␤[42]<>␤Too few positionals passed; expected 1 to 0 arguments but got 0 in sub-signature of parameter @all␤  in sub foo at /tmp/fn2vvAK50J:1␤  in block <unit> at /tmp/fn2vvAK50J:1␤␤»
15:39 raydiak that's an interesting error message
15:40 raydiak m: sub foo (*@all ($, |)) { @all.perl.say }; foo
15:40 camelia rakudo-moar c2a57e: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature of parameter @all␤  in sub foo at /tmp/Mkzwf2GkMZ:1␤  in block <unit> at /tmp/Mkzwf2GkMZ:1␤␤»
15:40 raydiak and...differently wrong :)
15:40 arnsholt raydiak: Oh, good idea to use destructuring on the *@ list!
15:41 raydiak thanks :)
15:44 uncleyear joined #perl6
15:45 moritz time ack 'class ImportError' in the cpython repo takes 32s on my Very Slow desktop machine, under load
15:45 moritz hg grep for the same string: still not finished after 8min
15:45 moritz wtf?
15:46 [ptc] moritz: hg is written in python?  ;-)
15:46 * [ptc] shames himself for dissing another language
15:47 moritz ah, reading the man page, it seems to search older revisions too
15:47 arnsholt Heh. That'll do it, yeah =)
15:49 dalek nqp: 97c86af | jnthn++ | tools/build/MOAR_REVISION:
15:49 dalek nqp: Bump MOAR_REVISION for UTF-8 non-char fix.
15:49 dalek nqp: review: https://github.com/perl6/nqp/commit/97c86afc07
15:49 dalek rakudo/nom: 6c1a478 | jnthn++ | tools/build/NQP_REVISION:
15:49 dalek rakudo/nom: Get a MoarVM that can UTF-8 encode non-chars.
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6c1a478daa
15:50 dalek roast: 8779aa0 | jnthn++ | S32-str/encode.t:
15:50 dalek roast: Tests for UTF-8 encoding of non-chars.
15:50 dalek roast: review: https://github.com/perl6/roast/commit/8779aa0d49
15:50 rindolf joined #perl6
15:50 jnthn DrForr: All fixed up now; thanks :)
15:51 mr-foobar joined #perl6
15:54 dalek roast: 76e600f | jnthn++ | S32-str/encode.t:
15:54 dalek roast: Add an RT ticket number to test.
15:54 dalek roast: review: https://github.com/perl6/roast/commit/76e600f5f8
15:56 _itz [ptc]: I'm hoping the Text::VimColour should pass more reliably now and was wondering about trying it on perl6-examples?
15:57 _itz oh you report a segfault
16:00 |Tux| moritz, I think the DBIsh is not a panda bug, but is rakudo/moar
16:01 moritz |Tux|: possible; I know too little about the state of panda and rakudo these days :(
16:01 dalek perl6-roast-data: a2dfa5b | coke++ | / (9 files):
16:01 dalek perl6-roast-data: today (automated commit)
16:01 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/a2dfa5bc26
16:01 |Tux| that null object is also seen inside a script that worked yesterday but not today
16:02 |Tux| but if it shows in panda, all the better: that'll trigger many more eyes than a single scripter
16:02 * |Tux| => $HOME
16:07 * [Coke] opens what might be a dupe Inline::Perl5 ticket - doesn't work on a fresh build on OS X.
16:09 * jnthn dinner &
16:14 uncleyea1 joined #perl6
16:23 domidumont joined #perl6
16:24 Ven joined #perl6
16:27 colomon joined #perl6
16:33 kaare__ joined #perl6
16:36 pierrot joined #perl6
16:38 telex joined #perl6
16:40 uncleyear joined #perl6
16:42 brrt joined #perl6
16:44 TimToady I see that camelia is still not updating due to DNS failure; do we need to increase the quasi-bus-number for that server somehow?
16:44 yoleaux 3 Jun 2015 22:04Z <lizmat> TimToady: could you check https://github.com/rakudo/rakudo/commit/2f1960c7e9 for sanity ?
16:51 spider-mario joined #perl6
16:52 japhb moritz said that it was outside his control ... whose control is it *inside*?
16:52 TimToady he hilit nine at the time, but I don't know if there's anyone else with access
16:53 molaf joined #perl6
16:58 HuStmpHrrr joined #perl6
16:59 HuStmpHrrr Hi guys, and tutorial or doc for pattern matching in perl6?
16:59 HuStmpHrrr very few docs mentioned about this
17:00 uncleyear joined #perl6
17:01 jnthn http://doc.perl6.org/language/regexes
17:01 HuStmpHrrr not regex matching
17:01 Ven joined #perl6
17:01 HuStmpHrrr functional pattern matching
17:02 HuStmpHrrr multi sub
17:02 koo6 joined #perl6
17:02 HuStmpHrrr ml type of matching
17:02 HuStmpHrrr just like this post: http://perlgeek.de/blog-en/perl-6/2013-pattern-matching.html
17:03 liztormato joined #perl6
17:03 jnthn Ah...
17:03 jnthn Only a short bit in http://doc.perl6.org/type/Signature#Destructuring_Parameters
17:03 jnthn Maybe somebody else knows some more references
17:03 liztormato arnsholt: the point was to make 'await' a compile time error
17:03 HuStmpHrrr oh
17:04 HuStmpHrrr i found doc.perl6.org has lots of dead links and wrong links
17:04 liztormato arnsholt: or more precisely: the optimizer not seeing a no-parameter candidate
17:05 liztormato arnsholt: that lists the alternatives
17:06 liztormato arnsholt: and having ($first, *@rest) listed, would be confusing
17:06 skids HuStmpHrrr: doc.perl6.org is actively maintained so we'd be interested to know here there are dead links.
17:07 HuStmpHrrr skids: alot when i went through the language tab and some in operator. let me find some
17:08 HuStmpHrrr skids: http://doc.perl6.org/routine.html postcircumfix .() link is wrong
17:09 HuStmpHrrr skids: the same as .{} .[], and a lot others
17:09 skids Yeah looks like something has gone wrong there.
17:10 HuStmpHrrr skids: btw, i think tutorials in language tab are in a bad order too.
17:10 andreoss joined #perl6
17:11 larion joined #perl6
17:12 HuStmpHrrr skids: another example: http://doc.perl6.org/language/classtut all links here are pointing to http://doc.perl6.org/routine/ which should not be
17:13 _sri_ perl 6 ruins perl 5 stats on github :( https://github.com/github/linguist/issues/2149
17:13 skids HuStmpHrrr: I cannot replicate that last one.
17:15 HuStmpHrrr skids: not exactly all, but in Constructors section, "bless" and "Mu" are pointing to http://doc.perl6.org/routine/
17:16 HuStmpHrrr and in Inheritance section, the github link is pointing to the same place too
17:16 skids HuStmpHrrr: thanks
17:18 HuStmpHrrr skids: another one http://doc.perl6.org/language/concurrency Promises section, the link to X::Promise::CauseOnlyValidOnBroken is broken
17:18 TimToady HuStmpHrrr: re pattern matching, see also http://rosettacode.org/wiki/Pattern_matching#Perl_6
17:20 HuStmpHrrr TimToday: thanks. but i am looking for pattern matching in a more ML sense, or paramter destruction.
17:23 TimToady HuStmpHrrr: did you look at it?  that's not about regex
17:24 HuStmpHrrr TimToady: oh, sorry, yeah, i looked. that's still not too complete and descriptive. for example, how to pattern match a custom class
17:25 japhb HuStmpHrrr: did you look at the one jnthn linked?
17:25 pyrimidine guessing that http://smoke.perl6.org isn't updating?  Last report is from May 29.
17:26 HuStmpHrrr japhb: the one about regex? yes, it's about regex.
17:26 japhb HuStmpHrrr: No, this one: http://doc.perl6.org/type/Signature#Destructuring_Parameters
17:26 beastd joined #perl6
17:27 HuStmpHrrr oh, yes, that one too. but still not too descriptive on how to customize.
17:27 japhb True.  There's always the source.  :-)
17:27 HuStmpHrrr i am hoping something like ML exists in perl6 too. that make things much powerful
17:27 TimToady you can destructure anything that does the Position or Associative role, I think
17:28 japhb HuStmpHrrr: TimToady++ meant Positional there, not Position.
17:29 HuStmpHrrr if that's the only case, it would be too bad
17:29 uncleyear joined #perl6
17:29 skids Wasn't there also obj->method destructuring.
17:29 skids ?
17:30 HuStmpHrrr is there?
17:30 japhb HuStmpHrrr: Anything that does the Positional or Associative *role*, not just those things, and destructuring any generic object based on its (public, IIRC) attributes.  What else are you looking for
17:30 japhb ?
17:31 HuStmpHrrr yeah, just generally look for what features perl6 has
17:32 HuStmpHrrr pattern matching is an important part for me
17:32 HuStmpHrrr and is there some feature like with statement in python in perl6?
17:33 japhb HuStmpHrrr: I say without any attempt at obfuscation: Perl 6 has so many features (some borrowed/adapted from other languages, some home grown), that you really need to tell us what your use cases are, so we can explain which features work for that.
17:33 japhb m: given "foo" { .say }
17:33 camelia rakudo-moar c2a57e: OUTPUT«foo␤»
17:33 japhb HuStmpHrrr: Like that ^^ ?
17:33 HuStmpHrrr i am just trying to learn it in a general sense, with comparison to other languages
17:34 koo6 joined #perl6
17:34 HuStmpHrrr yep, that's one type of pattern matching
17:34 japhb HuStmpHrrr: Yes, there is very generic given/when.
17:35 rindolf joined #perl6
17:35 japhb m: given 12 { when Str { say "String!" }; when Num { say "Floating point!" }; when * > 40 { say "Too big!" }; when 12 { say "Bingo!" } }
17:35 camelia rakudo-moar c2a57e: OUTPUT«Bingo!␤»
17:36 HuStmpHrrr let's say  class Abc { has $.xyz }  can i apply some form of destruction to get that xyz out?
17:37 moritz HuStmpHrrr: yes
17:37 HuStmpHrrr or apply constraint when matching Abc.new ?
17:37 japhb m: class Abc { has $.xyz }; sub foo($obj (:$xyz)) { say "$obj has xyz = $xyz" }; my Abc $a .= new(:xyz(42)); foo($a);
17:37 camelia rakudo-moar c2a57e: OUTPUT«Abc<140578331421688> has xyz = 42␤»
17:38 japhb HuStmpHrrr: ^^
17:38 japhb HuStmpHrrr: You mean you want multi-method constructors?  (Yes, we have that.)
17:38 HuStmpHrrr oh? an example please?
17:39 moritz m: class A { has $.x }; multi a ($ (:$x where { $x > 0 }) ) { say 'positive' }; multi a ($ (:$x where { $x < 0 }) ) { say 'negative' }; a A.new(x => -3)
17:39 camelia rakudo-moar c2a57e: OUTPUT«negative␤»
17:39 moritz m: class A { has $.x }; multi a ($ (:$x where { $x > 0 }) ) { say 'positive' }; multi a ($ (:$x where { $x < 0 }) ) { say 'negative' }; a A.new(x => 42)
17:39 japhb Thanks moritz!
17:39 camelia rakudo-moar c2a57e: OUTPUT«positive␤»
17:39 moritz m: class A { has $.x }; multi a ($ (:$x where { $x > 0 }) ) { say 'positive' }; multi a ($ (:$x where { $x < 0 }) ) { say 'negative' }; a A.new(x => 0)
17:39 camelia rakudo-moar c2a57e: OUTPUT«Cannot call a(A.new(x => 0)); none of these signatures match:␤    (Any $ (Any :x($x) where { ... }))␤    (Any $ (Any :x($x) where { ... }))␤  in block <unit> at /tmp/H79si5MxYC:1␤␤»
17:40 japhb Oh, those weren't constructors.  Still, same principle applies.  Constructors aren't special -- method new is a *convention*, not a requirement.
17:40 japhb s/requirement/special case/
17:41 HuStmpHrrr oh. nice
17:42 dalek doc: 8cd58a3 | skids++ | lib/Type/X/Promise/CauseOnlyValidOnBroken.pod:
17:42 dalek doc: Fix broken link by documenting X::Promise::CauseOnlyValidOnBroken
17:42 dalek doc: review: https://github.com/perl6/doc/commit/8cd58a371e
17:43 HuStmpHrrr another question, do i have to swallow the whole file in memory at once, without doing it in old way?(ie open->read->explicit close)
17:43 japhb HuStmpHrrr: Laziness is all over the place now.  That includes things like IO.lines.
17:44 HuStmpHrrr oh, that's sweet
17:44 liztormato left #perl6
17:44 liztormato joined #perl6
17:45 HuStmpHrrr a special case, if i once read to the file end, but the file gets appended, what would happen if i continue reading?
17:45 japhb (Of course, if you request eagerness, you'll get it, but then you deal with the consequences.  We trust you meant to do that.)
17:46 liztormato HuStmpHrrr: you can repeatedly call .lines on an IO::Handle afaik
17:46 japhb HuStmpHrrr: We understand both blocking and async I/O paradigms, including both traditional and channel/supply style.
17:46 japhb Some variants are NYI, but if you find something that's implemented and doesn't do what you'd expect, let us know.
17:47 HuStmpHrrr ok
17:49 HuStmpHrrr oh, i have another question which confuses me a lot
17:49 HuStmpHrrr what happened to parrot?
17:49 HuStmpHrrr why switch to moar? it seems parrot is not in the backend candidate any more
17:50 liztormato Moar is what parrot should have been
17:50 skids MoarVM was written specifically for Perl6 to speed up development.
17:50 HuStmpHrrr are they compatible? so what's wrong with parrot?
17:51 moritz HuStmpHrrr: basically MoarVM has the advantage of being faster, using less memory, offering concurrency in a way parrot can't, and being maintainable/extensible
17:51 moritz so rakudo has abandoned the parrot backend for now
17:51 geekosaur the main driver for dropping parrot was that its windows support is not sufficient for rakudo any more
17:51 moritz with the idea of maybe eventually reinstating it, if/when we have the resources, and good reason to
17:51 geekosaur iirc
17:51 Rotwang left #perl6
17:52 liztormato Parrot is one of the shoulders rakudo is standing on
17:52 moritz geekosaur: the main driver was that parrot offered virtually nothing that moar didn't, but slowed down rakudo development (due to stuff having to be ported to several platforms, conditional compilation etc.)
17:52 liztormato Without it, we wouldn't be where we are now
17:52 moritz liztormato: fully agreed
17:53 moritz the parrot developers still release it every month
17:53 moritz though the changelogs look pretty short this year
17:53 japhb If someone wanted to do the (hard) work of reinstating the parrot backend, we'd certainly support them, but it's *not* a simple thing at this point.
17:54 moritz ... and we'd only do it after the Christmas release
17:54 japhb moritz: Is nine the only person who can fix the DNS problems plaguing Camelia rebuild?
17:54 uncleyear joined #perl6
17:54 liztormato left #perl6
17:55 japhb moritz: agreed; we don't have the spare tuits before that.
17:55 HuStmpHrrr ok. understood
17:55 moritz https://github.com/parrot/parrot/graphs/contributors
17:55 moritz japhb: yes, I think so
17:56 Ulti HuStmpHrrr out of curiosity does it make a difference to you for using Rakudo?
17:57 japhb Sigh, always I am cursed on leaderboards by my tendency to do my changes in fewer commits.
17:57 FROGGS joined #perl6
18:00 smls masak: You rakudobug'd the "intermediate backtracking results end up in the Match object" issue a while ago, right
18:00 smls ?
18:00 nwc10 dear github, you don't mention me
18:00 nwc10 git log --author nick@ccl4.org --pretty=oneline | wc
18:00 nwc10 thinks I have 140 commits in parrot
18:01 jnthn smls: I saw a recent-ish ticket along those lines in RT earlier toniht...
18:01 jnthn *tonight
18:01 smls ah, I think I found the ticket.
18:02 nwc10 clearly, if you aren't on github, you're an unperson
18:04 ZoffixWork joined #perl6
18:06 ZoffixWork Hi. Would you agree that *lack* of a 'use v6;' is a sane heuristic when trying to determine whether source code is not Perl 6? GitHub's Linguist currently has trouble differentiating between Perl5 and Perl6 and the point has been brought up as a possible solution. Is 'use v6;' something that's recommended and wide-spread enough?
18:06 ZoffixWork This is the discussion in question BTW: https://github.com/github/linguist/issues/2149#issuecomment-108992653
18:07 Ulti just look for 'use strict;' to identify Perl 5 (oh zing)
18:07 ZoffixWork That's not sufficient. There are many different modules that enable strictures under the hood, so 'use strict' isn't present in those cases.
18:07 Ulti which is why it was meant as a joke, sorry >:3
18:07 ZoffixWork heh
18:08 FROGGS ZoffixWork: that won't work... all languages but Perl 6 lack a 'use v6' I guess
18:08 Ulti it would have the added bonus of making ugly Perl 5 look ugly without colours
18:08 ZoffixWork FROGGS, in this case the ambiguity is only between Perl5 and Perl6.
18:08 FROGGS ZoffixWork: but that is not how their heuristic work, no?
18:08 nwc10 ZoffixWork: alternative question - is it viable to help train the basien filter - ie would github be happy with a button for "you're wrong, it's this other language?"
18:08 FROGGS "disambiguate "Perl", "Perl6", "Prolog" do |data|"
18:08 nwc10 that feels like a more long term scalable solution, and one they might think is cool
18:09 Ulti ZoffixWork does it have to be a single criteria rather than a cascade of them?
18:09 Ulti I think if you dont use .pm6 .pl6 a shebang line with 'perl6' in or 'use v6;' then marking up as perl5 is more than acceptable
18:09 ZoffixWork Ulti, what about .t files?
18:10 Ulti well you could write some tests in a mix of perl5 and 6 anyway
18:10 ZoffixWork nwc10, what you said is way over my head, but I'll be sure to pass it into the ticket :P
18:10 Ulti you might want to use Perl5 with the Inline::Perl6 stuff just to get a lot of extra modules
18:10 SevenWolf joined #perl6
18:10 FROGGS Ulti: the mechanism at that time does not know the file extension
18:10 Ulti oh
18:12 Ulti well shebang line with a 6 in or use v6 still feels ok
18:12 nwc10 ZoffixWork: thanks.
18:12 Ulti since at some point you'd hope running 'perl' on a perl6 program would run perl6 for you
18:14 smls ZoffixWork: I posted a commentyon the github thread.
18:14 ZoffixWork Thanks
18:16 skids "const_iX NYI" Wow.  How did that ever happen?
18:20 bin_005 joined #perl6
18:20 grondilu do you guys use SSH on Windows?  Because:  http://www.extremetech.com/computing/207364-windows-powershell-and-openssh-together-at-last-after-nearly-a-decade
18:21 diana_olhovik_ joined #perl6
18:22 amurf joined #perl6
18:24 RabidGravy there fixed Cache::Memcached
18:25 ZoffixWork \o/
18:25 uncleyear joined #perl6
18:26 RabidGravy it's probably a load of cobblers as I have only used memcached once about four years ago but hey
18:29 _mg_ joined #perl6
18:30 skids https://gist.github.com/skids/7ba5cc3b031e69abcf83 # ll-exception trace for somehow reaching a bad opcode.  In case it is useful.
18:36 cdc joined #perl6
18:37 FROGGS grondilu: yes, I use Putty
18:43 cdc Hello #perl6
18:44 cdc https://github.com/perl6/specs/commit/16eb4ecdb5 seems suspicious to me
18:44 cdc as of my understanding, "start" -- as a statement -- is still supported
18:45 cdc m: start { 42.say }
18:45 camelia rakudo-moar c2a57e: ( no output )
18:46 cdc m: await start { 42.say }
18:46 camelia rakudo-moar c2a57e: OUTPUT«42␤»
18:46 cdc better :)
18:47 smls m: say (<1 2> X (<a b> Z <x y>)).perl
18:47 camelia rakudo-moar c2a57e: OUTPUT«(("1", "a"), ("1", "x"), ("1", "b"), ("1", "y"), ("2", "a"), ("2", "x"), ("2", "b"), ("2", "y"))␤»
18:47 smls ^^ can I prevent the RHS from being flattened before being passed to X ?
18:47 smls would have expected the result:  ("1", <a x>), ("1", <b y>), ("2", <a x>), ("2", <b y>)
18:48 cdc .tell cognominal http://irclog.perlgeek.de/perl6/2015-06-04#i_10702538
18:48 yoleaux cdc: I'll pass your message to cognominal.
18:50 smls m: say (<1 2> X (<a b> Z <x y>).tree.list).perl
18:50 camelia rakudo-moar c2a57e: OUTPUT«(("1", ("a"; "x").item), ("1", ("b"; "y").item), ("2", ("a"; "x").item), ("2", ("b"; "y").item))␤»
18:50 smls Hm I suppose this works, but it's not that nice to write.
18:50 uncleyear joined #perl6
18:52 japhb cdc: camelia is running an old Rakudo, because it can't rebuild on that host, because DNS problems.
18:54 japhb .ask nine moritz says around http://irclog.perlgeek.de/perl6/2015-06-04#i_10702197 that you are the only one who can fix the DNS problems plaguing Camelia's rebuilds.  Can that power be spread around a bit more?  Or is there a blocker to that?
18:54 yoleaux japhb: I'll pass your message to nine.
18:56 PerlJam .seen nine
18:56 yoleaux I saw nine 26 May 2015 18:56Z in #perl6: <nine> I guess "unit" refers to the CompUnit?
18:56 cdc japhb: ok for camelia, but as of my understanding lizmat made "start" (a statement instead of a sub): https://github.com/rakudo/rakudo/commit/211d7a1a1e034876f53ef1d6456f0d1bca47d3a3
18:57 cdc japhb: so "start { ... }" is legal, isn't it?
18:59 japhb Yes, sorry, my point was merely that believing camelia WRT whether something still works isn't valid at the moment.  :-(
19:00 Sqirrel joined #perl6
19:01 cdc japhb: no problem :)  I wasn't aware about current camelia's problem.
19:01 japhb Anyone happen to know an alternate contact method for nine if he doesn't pop in soon?
19:04 PerlJam we could kick camelia and run another version (with a higher truck number) on hack
19:05 uncleyear joined #perl6
19:11 yqt joined #perl6
19:11 RabidGravy cdc, yeah that is odd as whilst there is a deprecation on the sub start in asyncops.pm I don't think that is where the actual start comes from
19:14 RabidGravy (certainly running "await start { "foo" }" on a rakudo with that deprecation in doesn't raise the deprecation)
19:18 PerlJam If start takes a blorst now, I'm not sure how you'd ever hit the deprecation
19:20 bin_005 joined #perl6
19:24 TimToady by calling start() perhaps
19:25 espadrine joined #perl6
19:28 PerlJam doesn't look like it
19:28 moritz &start
19:28 uncleyear joined #perl6
19:29 moritz await map &start, &print, &say
19:29 meisl joined #perl6
19:30 RabidGravy odd
19:32 meisl hello #perl6
19:32 japhb Hello, meisl!
19:33 meisl oh hi :)
19:34 meisl I've got some "QASTions", ie am playing with the nqp toolchain
19:34 meisl anyone?
19:35 PerlJam meisl: you've got to ask the questions before anyone has a hope of answering them  ;)
19:36 meisl PerlJam: right - the 1st question was if anyone is willing to find out if she has a hope of answering :)
19:38 meisl so: I found that nqp produces QASTs where not all nodes are of type QAST::Node, plain str appear under circumstances (*not* wrapped in an SVal)
19:38 llfourn joined #perl6
19:39 meisl I, personally find that rather annoying, and incoherent. But maybe there's a good reason for this?
19:40 japhb meisl: Can you give an example of source that produces such a mixed-node AST?
19:40 meisl yep, just a moment plz
19:40 jnthn QAST::Want and a QAST::Op of type handle are two examples where that can happen.
19:41 jnthn In neither case are the strings actually serving as literals in the same way a QAST::SVal does though
19:41 meisl and there's an op "locallifetime" which has as last child a literal string (I don't understand what that op is for, actually)
19:42 jnthn For constraining the lifetime of a local
19:42 jnthn e.g. it's a codegen hint
19:42 lizmat PerlJam: start({42}) will do it after 2015.06 comes out
19:43 meisl jnthn: why not just use annotations for that?
19:43 jnthn meisl: Annotations are not aimed at the code-gen, they're intended as a stash for the compiler writer
19:45 RabidGravy lizmat, so the deprecation isn't aimed at start { ... } ?  In which case https://github.com/perl6/specs/commit/16eb4ecdb5 is wrong
19:45 meisl jnthn: hmm, ok. I see that it might make sense to keep those apart.
19:45 lizmat RabidGravy: agree, that commit is wrong
19:46 cognominal joined #perl6
19:46 jnthn meisl: It's worked well for us so far. :)
19:46 smls Is  <.&foo>  the only way to call a   my token foo {}   outside a grammar without creating a named capture?
19:47 jnthn smls: <&foo> doesn't create one
19:47 meisl jnthn: sure enough. Just trying to understand: isn't there Stmt (vs Stmt*s*) already for what I suppose is the purpose of Op locallifetime?
19:47 smls jnthn: oh, you're right, thanks.
19:48 dalek specs: 415fa4c | lizmat++ | S17-concurrency.pod:
19:48 dalek specs: Revert "S17: sub start is deprecated"
19:48 dalek specs:
19:48 dalek specs: start as a sub is deprecated, start as a statement is still very much there!
19:48 dalek specs:
19:48 dalek specs:   start 42;        # now works
19:48 dalek specs:   start { 42 };    # already works, was handled by sub, now in grammar
19:48 dalek specs:   start( { 42 } ); # still works, but deprecated
19:48 dalek specs: review: https://github.com/perl6/specs/commit/415fa4cc4d
19:49 PerlJam oh, I see.   I was misreading the deprecation.
19:49 jnthn meisl: Good question. I think we ended up with locallifetime sometime during the JVM porting work.
19:50 jnthn meisl: I don't remember exactly what blocked QAST::Stmt from being used, but I suspect it's a matter of granularity
19:50 meisl jnthn: Stmt being too coarse?
19:50 jnthn Yeah
19:51 mj41 joined #perl6
19:51 meisl in the src, I kinda remember to have seen to TODOs and XXXs re locallifetime...
19:51 meisl *to have seen some...*
19:52 jnthn That's entirely possible; on MoarVM we don't face some of the same constraints as on the JVM and so may get away without it so far. Suspect handling it may still get us better code-gen, however
19:52 uncleyear joined #perl6
19:53 meisl yes, it was in moar code where it said like "don't need it here, so noop it"
19:54 meisl jnthn: could give a hint what kind of constraints of the JVM you have in mind?
19:54 jnthn It may have been number of locals per method
19:55 kaare__ joined #perl6
19:56 masak smls: yes, I believe I did. do you need to find it?
19:56 smls already did
19:56 jnthn (iirc, it's 256, except doubles and longs take 2 slots)
19:57 smls jnthn: Ouch, replacing <filename> with <&filename> in one place in my regex causes a "Cannot call method '!cursor_next' on a null object"
19:57 smls Rakudo bug or possibly my mistake?
19:58 lizmat jnthn: did you realize that EVALFILE can also eval code from an open filehandle / socket ?
19:58 jnthn lizmat: Uh...can it?
19:58 jnthn lizmat: I'm pretty sure it can't given I implemented it using slurp :P
19:58 lizmat multi sub slurp(IO::Handle:D
19:59 cognominal m: say $/.WHAT for 'aaa' ~~ m:g/./
19:59 yoleaux 18:48Z <cdc> cognominal: http://irclog.perlgeek.de/perl6/2015-06-04#i_10702538
19:59 camelia rakudo-moar c2a57e: OUTPUT«(List)␤(List)␤(List)␤»
19:59 jnthn smls: If it's that error, then a Rakudo bug, though of course possibly both ;)
19:59 smls :P
19:59 smls Will try to golf.
19:59 jnthn lizmat: Feel free to add another candidate, and tests ;)
19:59 lizmat jnthn: slurp(IO::Handle:D:) is deprecated, though
19:59 meisl jnthn: oh... so that limit is actually hit?! Anyways, now I recall the main example for plain strs: Op handle with eg "CATCH" as last child - that really seems odd
20:00 TimToady lizmat: re sanity of said patch, note that perl -E 'say 123 __END__ stuff' works; there should be no ^^ or $$ constraint
20:00 jnthn meisl: Yes, we hit it :)
20:00 jnthn TimToady: wtf!! Perl 5 is crazy :P
20:00 lizmat TimToady: ok, so apart from that, you're ok with it ?
20:00 TimToady es
20:00 TimToady *y
20:00 lizmat k
20:00 lizmat o
20:01 jnthn meisl: I...think think CATCH shold be the last cild
20:01 jnthn *child
20:01 jnthn There should be something after it saying how CATCH is handled
20:01 dalek rakudo/nom: 5d0f9bd | lizmat++ | docs/ChangeLog:
20:01 dalek rakudo/nom: Mention EVALFILE, some more specifics
20:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d0f9bd7a1
20:01 raiph joined #perl6
20:01 TimToady lizmat: it should probably test for » though
20:01 jnthn Uh, and "don't think" :)
20:02 lizmat TimToady: ??
20:02 jnthn lizmat: Word boundary
20:02 lizmat ah, ok
20:02 jnthn >> in texas :)
20:02 lizmat okidoki
20:03 TimToady though it probably wouldn't ever fail due to LTM, but better to be safe
20:03 meisl jnthn: it seems to always be. But shouldn't that be rather an attribute of the handle op - or else be promoted to a kind of Node of its own?
20:03 lizmat TimToady: building and running tests
20:03 jnthn meisl: Why should it? :)
20:04 meisl well, because it's a structural thing, on the syntactic level
20:04 vendethiel joined #perl6
20:04 meisl or not?
20:04 jnthn meisl: I mean, we could do it that way, but...I've not really found myself wishing it was that way
20:05 jnthn We've generally preferred a small number of node types, to keep processing of trees relatively straightforward.
20:05 cognominal cdc++, you are right, I did not realize that start just changed status moving from sub to statement_prefix       https://github.com/rakudo/rakudo/blame/nom/src/Perl6/Grammar.nqp#L1546
20:05 jnthn When I first looked at QAST my first reaction was "oh my, we'll need LOADS more nodes!"
20:06 jnthn Having worked with it for some years, I'm mostly glad we've kept the number down.
20:06 meisl jnthn: ...and for the price of incoherence/inconsistency
20:06 jnthn All design is trade-offs.
20:06 meisl jnthn: just kidding, I just stumbled over it. And docs/qast.markdown gives you a whole different idea...
20:07 cognominal ho, lizmat++ already reverted my blunder
20:07 lizmat cognominal++ # for trying to keep up with changes!
20:07 meisl it is also omitting quite a bunch
20:07 jnthn Yeah, it's hardly complete, I'm afraid.
20:08 meisl I could try to improve it, if I feel a bit more comfortable with all that stuff
20:08 jnthn That'd be helpful. There's a set of tests to see what's yet to be documented, iirc.
20:08 cdc cognominal, lizmat: I didn't see the revert, my mistake.
20:09 cognominal cdc, lizmat reverted after your remark :)
20:09 cdc :)
20:09 lizmat TimToady: 'say 123 __DATA__'  is now a TTIAR, but I guess we can live with that?
20:09 meisl yes, there's t/docs/opcodes.t
20:10 meisl https://github.com/perl6/nqp/blob/master/t/docs/opcodes.t
20:10 cognominal lizmat++ and jnthn++ are so productive/creative that it becomes difficult keep pace with them
20:11 TimToady lizmat: surely obs throws immediately?
20:11 lizmat apparently not
20:11 lizmat token term:sym<p5end> {
20:11 lizmat -        ^^ __END__ $$
20:11 lizmat +        << __END__ >>
20:11 lizmat <.obs('__END__ as end of code',
20:11 lizmat 'the =finish pod marker and $=finish to read')>
20:11 TimToady oh, it's not looking for a term there
20:12 jnthn TimToady: I think we're already upset by the time we fail to find an infix..
20:12 TimToady __END__ isn't a term in P5
20:12 stanrifkin joined #perl6
20:12 cognominal I don't understand yet why   say $/.WHAT for 'aaa' ~~ m:g/./  gives lists
20:12 nwc10 IIRC __END__ is a token which behaves as EOF
20:12 stanrifkin are there any books out there yet?
20:12 meisl jnthn: to be honest, I don't get it, though. Any advice where else in the src I should look in order to understand what a particular Op I come across is doing/is for?
20:13 jnthn m: say .WHAT for 'aaa' ~~ m:g/./
20:13 camelia rakudo-moar c2a57e: OUTPUT«(Match)␤(Match)␤(Match)␤»
20:13 nwc10 and as the file is parsed a line at a time, a side effect is that the rest of the line contianing the __END__ is discardged
20:13 cognominal oops
20:13 jnthn cognominal: It's $_ that is bound each time
20:13 cognominal I guess I need to call it a day
20:14 TimToady and we recently added List to the category of success indicators
20:14 jnthn meisl: Looking for examples in NQP/Rakudo is one way, seeing if the NQP course material defines it is another, seeing how it's implemented in JVM/Moar is a third....but the laziest is to ask here :)
20:15 uncleyear joined #perl6
20:16 meisl jnthn: I did get lost before asking here...
20:17 meisl jnthn: by NQP course material you mean http://edumentab.github.io/rakudo-and-nqp-internals-course ?
20:18 lizmat meisl: yes
20:18 jnthn Yes
20:18 meisl thx (just hoped there was more)
20:20 TimToady well, it's called "internals" for a reason...
20:20 meisl btw: no offense, it's just that I am still in that stage where everything seems strange and overwhelming. I do know this, and also that later a lot of problems will look ridiculous.
20:21 jnthn meisl: None taken; NQP and QAST suffer a bit from being the thing we've built primarily in order to build a Perl 6 implementation.
20:21 jnthn meisl: So they only get so much attention themselves.
20:22 lizmat TimToady: I'm unclear on what to use instead of "term"  for __END__
20:22 meisl jnthn: sure, once they suffice to "make the leap"...
20:22 TimToady meisl: I've been working with them for a year or so, and they still seem strange and overwhelming :)
20:23 meisl TimToday: ooh, thx. To hear you say it - makes my day :)
20:24 lizmat afk for a bit&
20:24 TimToady lizmat: term is probably adequate for this purpose
20:25 dalek rakudo/nom: 51cccca | lizmat++ | src/Perl6/Grammar.nqp:
20:25 dalek rakudo/nom: Just work on word bounds, instead of line bounds
20:25 dalek rakudo/nom:
20:25 dalek rakudo/nom: As suggested by TimToady++
20:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/51ccccacaf
20:26 meisl jnthn: I understand the primary purpose of NQP, but imho it is already great in itself as a toolchain for building other langs (as advertised, btw)
20:26 jnthn meisl: Yes, it's just received a lot less polish. :)
20:27 meisl jnthn: maybe a bit of Czech would help?
20:27 meisl (@sorear++)
20:27 jnthn Možná... :)
20:28 stanrifkin are there any recent perl6 books out there?
20:29 Peter_R joined #perl6
20:29 timotimo i don't know of any, sadly :(
20:29 dalek nqp/openpipe3: 102e74d | FROGGS++ | / (2 files):
20:29 dalek nqp/openpipe3: map op syncpipe and adjusts tests for latest openpipe
20:29 dalek nqp/openpipe3: review: https://github.com/perl6/nqp/commit/102e74d179
20:31 mj41 jnthn: Vítej op v Česku. Doufám, že si užiješ nejlepši piva na planetě :-). A taky jsi určitě vítaný v Brně, třeba na Brno Perl Mongers (  https://www.facebook.com/brnopm ).
20:31 mj41 s/op/opět/
20:31 FROGGS ETOOMANYACCENTS
20:32 meisl jnthn: bezpiecznie; I consider my efforts a little bit of "Czech" (say it)
20:33 hoelzro I understood "piva na planetě" =)
20:34 maettu1 left #perl6
20:34 maettu1 joined #perl6
20:35 meisl bks
20:36 meisl hoelzro: I do my checks in Czech and my polishing... and I'm drinking Munich beer.
20:36 uncleyear joined #perl6
20:37 jnthn hoelzro: and of course the thing before it has to mean "best" :P
20:37 uncleyear joined #perl6
20:37 Ven joined #perl6
20:38 FROGGS and Brně is just another declination of Brno?
20:38 mj41 Seženu nějaké tipy na hospody a pivovary. Třeba http://www.pivovarskyklub.com/pivo/index/lang/en by mělo být ok.
20:38 FROGGS so, "nejlepši piva na planetě" means "best beer on this planet"?
20:38 FROGGS s/this planet/earth/ # as if there is just one
20:39 uncleyear joined #perl6
20:39 jnthn FROGGS: "on the planet" I think :)
20:40 bin_005_s joined #perl6
20:40 meisl FROGGS, jnthn: something like that, but the prominent thing is piva, imho
20:40 rurban joined #perl6
20:40 FROGGS is piva beer or wine?
20:40 jnthn Beer!
20:41 FROGGS I was under the impression that pivo is wine somewere
20:41 FROGGS but... no, must be a braino
20:41 jnthn That's vino :)
20:41 FROGGS onhh!
20:41 mj41 yes, Brno = Brně ... https://en.wikipedia.org/wiki/Czech_declension#Neuter
20:41 meisl it could be a verb in 1st person elsewhere
20:42 FROGGS 7!
20:42 FROGGS /o\
20:42 meisl "beering" / "wining"
20:42 meisl (I do, that is)
20:44 jnthn mj41: Děkuji! :-) And yes, once I'm settled here, I'll gladly make some visits to Brno.pm :-)
20:44 jnthn It's not all that far away...
20:44 mj41 piva means beers ... or types of beers
20:45 dalek rakudo-star-daily: 7da4b86 | coke++ | log/ (2 files):
20:45 dalek rakudo-star-daily: today (automated commit)
20:45 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/7da4b865a5
20:45 FROGGS lizmat: do I get your +1 to deprecate open(:p) ?
20:45 jnthn hah, that do
20:45 meisl mj41: so kind of a plural, or generalization?
20:45 mj41 plurar
20:45 mj41 plural
20:46 jnthn Darn, 5 years of not using any of the Slovak I've learned + Czech being a different language = I've got some quite some re-learning to do.
20:46 PerlJam stanrifkin: What kind of perl6 book would you want?  What would it cover?
20:47 * jnthn is back at "phew, I understand this restaurant menu enough to choose something tasty" and "yay I understand how much the cashier wants me to pay for these groceries"...
20:47 FROGGS and I guess the food really was tasty
20:47 jnthn FROGGS: Yes. :)
20:47 FROGGS I wish I could be in .cz right now :/
20:48 mohij joined #perl6
20:48 mj41 btw: GoodData ( http://www.gooddata.com/ ) has Perl developers in Brno and Prague. I will be in Prague tomorrow. I should wake up 5am, takže dobrou noc a uživej si Prahu a pivo.
20:49 meisl so: pivo / piva is Czech for "beer(s)", polish is "piwo", where "piwa" is for kinda genitive-ish use (eg "butelka piwa" = bottle o' beer = Flaschbier)
20:50 jnthn Dobrou noc, mj41 o/
20:50 llfourn joined #perl6
20:50 jnthn .oO( Flasch! Bier...saviour of the universe... )
20:51 timotimo :D
20:52 timotimo m: unit class Foo; has $.a, $.b, $.c; # LTA error, IMO.
20:52 camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iZekMrKESm␤Variable $.b used where no 'self' is available␤at /tmp/iZekMrKESm:1␤------> 3unit class Foo; has $.a, $.b7⏏5, $.c; # LTA error, IMO.␤    expecting any of:␤        term␤»
20:52 meisl mj41: g'night (that much I understood)
20:52 jnthn Hm, I think STD gets that one better maybe...
20:52 jnthn std: unit class Foo; has $.a, $.b, $.c;
20:52 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Variable $.b used where no 'self' is available at /tmp/8xrFIjN_1i line 1:␤------> 3unit class Foo; has $.a, 7⏏5$.b, $.c;␤Variable $.c used where no 'self' is available at /tmp/8xrFIjN_1i line 1:␤------> 3unit class Foo; has $.a, …»
20:53 jnthn std: unit class Foo; has $.a, $.b;
20:53 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Variable $.b used where no 'self' is available at /tmp/YoxtjQ1mXU line 1:␤------> 3unit class Foo; has $.a, 7⏏5$.b;␤Undeclared routine:␤     'unit' used at line 1␤Check failed␤FAILED 00:00 139m␤»
20:53 jnthn No, sadly not
20:53 meisl jnthn: yea, Werner. but actually I prefer the southern stuff, you know
20:53 jnthn m: my $a, $b;
20:53 camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ll7u2b82w0␤Variable '$b' is not declared␤at /tmp/Ll7u2b82w0:1␤------> 3my $a, 7⏏5$b;␤»
20:53 jnthn std: my $a, $b;
20:53 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Variable $b is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/pD7dgRvWZ8 line 1:␤------> 3my $a, 7⏏5$b;␤Check failed␤FAILED 00:00 137m␤»
20:53 jnthn Ah, it has one there that Rakudo could do with stealing
20:53 jnthn Wonder if we can't generalized it to has also.
20:54 timotimo very good
20:55 jnthn Maybe something for me to do in the morning :)
20:55 jnthn For now, time for some rest :)
20:56 FROGGS gnight jnthn :o)
20:56 meisl gnight & thx
20:56 hoelzro jnthn: I figured as much =)
20:59 timotimo gnite jnthn :)
21:00 hoelzro night jnthn
21:00 uncleyear joined #perl6
21:00 Ven joined #perl6
21:00 dalek rakudo/openpipe3: 7e1bee5 | FROGGS++ | src/core/ (2 files):
21:00 dalek rakudo/openpipe3: follow recent nqp::openpipe changes
21:00 dalek rakudo/openpipe3: review: https://github.com/rakudo/rakudo/commit/7e1bee5892
21:01 lizmat FROGGS: in newio branch, open(:p) is already deprecated  :-)
21:01 FROGGS lizmat: cool!
21:01 lizmat so yes, go ahead  :-)
21:01 FROGGS then I'll backport it (tomorrowish)
21:02 lizmat I can do that now, if you want  :-0)
21:02 FROGGS sure, that'd be great
21:02 PerlJam lizmat: when will newio merge?
21:03 lizmat PerlJam: as soon as it is a sufficient amount of-Ofun for me
21:03 PerlJam okie
21:05 FROGGS seems I need IO::Pipe from newio too
21:06 bin_005_s_t joined #perl6
21:06 lizmat FROGGS: well, that you will have to do yourself tomorrowish
21:06 FROGGS aye
21:06 lizmat I'm about to shutdown for an early night and a long commute to SLC tomorrow
21:06 FROGGS I also need to think more about it
21:06 FROGGS SLC?
21:07 lizmat Salt Lake City, UT
21:07 FROGGS ohh
21:07 lizmat YAPC::NA
21:07 FROGGS have fun there for me :S
21:07 lizmat will try  :-)
21:07 FROGGS *g*
21:08 meisl good night, lizmat; I'll quit too now. Bye #perl6.
21:08 FROGGS gnight meisl
21:09 meisl c-ya'll
21:10 hoelzro lizmat: have a safe flight, and enjoy!
21:11 lizmat hoelzro: I'll tell the pilot to fly safely  :-)
21:11 hoelzro =)
21:11 lizmat git diff
21:11 lizmat grrr
21:11 FROGGS :D
21:12 dalek rakudo/nom: 5afe889 | lizmat++ | src/core/IO/Handle.pm:
21:12 dalek rakudo/nom: Deprecate open(:p), FROGGS++
21:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5afe889a97
21:12 FROGGS lizmat: thank you
21:12 FROGGS gnight #perl6
21:13 hoelzro night freeze
21:13 hoelzro dammit
21:17 RabidGravy I'm thinking of adding a couple of exceptions to Panda - Panda::X::PlatformNotSupported and Panda::X::DepemdencyMissing for the the beneft of automated testing
21:18 RabidGravy such that a developer can make a Buld.pm and if they decide upfront the module won't work they can bail the build but supply richer information
21:20 RabidGravy any thoughts?
21:20 smls_ joined #perl6
21:22 timotimo i'm not sure it should be Panda::X ... shouldn't it be X::Panda:: ?
21:22 atweiden joined #perl6
21:23 [Coke] also, is panda deciding that something doesn't work on a platform? Or is that coming from the module you're installing?
21:23 timotimo it'd be for the module developer
21:25 RabidGravy the module,  currently I'm doing "class Builder is Panda::Builder { method build(..) { if $*DISTRO.is-win32 { die "not supported on Windows"; }}" for example
21:26 ugexe shouldnt those happen during the hooks
21:26 RabidGravy that stops fail test reports on platforms it won't work on, but completely aborts the build
21:27 ugexe well, i think it should show failures on a platform it fails on. even if its not meant to
21:27 RabidGravy it should show n/a or something
21:28 RabidGravy which is somewhat the point of the above
21:29 RabidGravy doing the above just aborts before the test report
21:29 uncleyear joined #perl6
21:30 ugexe i imagine module authors will just make a small script to throw in /hooks (if /hooks is still supposed to be a thing eventually)
21:32 timotimo https://gist.github.com/timo/7babb36055768fe04eeb - i'm putting step-by-step improvements to jaffa4's port of the nbody benchmark into the history of this gist
21:32 johan joined #perl6
21:32 RabidGravy right, but right now a tiny adjustment to panda, such that the developer can create a Build.pm which may throw an exception to signal that it wishes not to be tested
21:32 timotimo if someone could automate timing each commit in there, that'd be sweet. i only have my laptop which is on battery and power saving and such
21:35 timotimo i wonder if something branch-related would be good for that for exploring different things
21:35 timotimo and combinations
21:35 timotimo like "real vs Real in the attributes"
21:37 ggoebel2 joined #perl6
21:44 ugexe looks like perl6 is about to hit travis-ci https://github.com/travis-ci/travis-build/pull/415#issuecomment-109061325
21:44 ugexe "Also, if you have fun bits of information about you (and other volunteers) to share in the announcement blog post, I'd appreciate it!"
21:45 hoelzro wow, that's spectacular
21:46 ggoebel joined #perl6
21:48 timotimo now is really a good time to try to make rakudobrew build stuff faster
21:48 timotimo does travis-ci like multi-threaded build?
21:49 timotimo for MAKEOPTS=-j4 or something for moarvm
21:49 hoelzro timotimo: I think you can, but I think each build instance gets one core
21:49 timotimo OK, in that case there's no speed win
21:50 hoelzro would it just be for monthly releases?
21:50 hoelzro or nightlies too?
21:50 hoelzro either way, new VM images with rakudo built could be used for individual travis builds
21:51 timotimo it uses "rakudobrew triple"
21:51 timotimo +          if version == "latest"
21:51 timotimo +            sh.cmd "rakudobrew triple #{version} #{version} #{version}", assert: false
21:51 timotimo is this correct? #{version} three times? does that allow you to give different versions for rakudo, nqp and moar?
21:52 ugexe it would probably be best to use rakudobrew build anyway, to make it easier to add JVM
21:52 lizmat good night, #perl6!
21:52 timotimo hm, right
21:53 timotimo [ptc]: can you comment on this?
21:53 timotimo rakudobrew triple with #{version} #{version} #{version} would only allow you to get release versions, because only then will version names coincide
21:55 timotimo hm ... i guess that's fine
21:55 timotimo ugexe: you get "latest" by default and then it'll "rakudobrew build"
21:56 ugexe rakudobrew triple cannot build jvm backened
21:56 ugexe or are you talking about something else
21:57 uncleyear joined #perl6
21:59 amurf joined #perl6
22:01 adu joined #perl6
22:04 ggoebel2 joined #perl6
22:07 rurban joined #perl6
22:09 RabidGravy right, nighty night
22:10 timotimo ugexe: if you don't specify a version in your travis file, you'll get "latest"
22:11 timotimo then it does "rakudobrew build moar"
22:13 [ptc] hoelzro++  # Travis Perl 6 support!
22:13 [ptc] _itz: I'll give the new VimColour stuff a go as soon as I get time.  $dayjob is pretty busy atm
22:14 ugexe timotimo: ah i see what you mean. yeah it shouldnt be #{version} 3 times... it should be 3 different variables
22:22 smls joined #perl6
22:24 colomon joined #perl6
22:24 smls_ joined #perl6
22:25 [ptc] ugexe++ # Travis Perl 6 volunteer :-)
22:26 smls_ What's the difference between   -> ($a, $b) {...}   and   -> [$a, $b] {...}   ?
22:26 ggoebel joined #perl6
22:27 huf joined #perl6
22:27 smls_ both seem to unpack Positional arguments.
22:28 timotimo that's right. i'm not sure if there's a nother difference
22:28 timotimo can i just say
22:28 timotimo we're not compile-time-evaluating METAOP_ASSIGN
22:29 timotimo and i don't know why
22:29 ggoebel2 joined #perl6
22:30 sirdancealot joined #perl6
22:31 timotimo so for ^100 { $a += 5 } will generate += from + 100 times
22:32 _sri joined #perl6
22:33 ggoebel joined #perl6
22:35 pRiVi joined #perl6
22:35 hoelzro wait, what?
22:35 hoelzro so the "+=" magic is redundantly generated 100 times there?
22:38 zostay joined #perl6
22:39 vike1 joined #perl6
22:39 broquaint joined #perl6
22:39 llfourn joined #perl6
22:40 jercos joined #perl6
22:40 ggoebel2 joined #perl6
22:41 jdv79 what's goin on so early in SLC?  i'm flying out sunday myself.
22:42 jdv79 the pre-pre-pre-pre-arrival dinner?
22:43 danstone1 joined #perl6
22:43 ruoso joined #perl6
22:47 skids joined #perl6
22:48 SevenWolf joined #perl6
22:57 Akagi201 joined #perl6
22:58 ggoebel joined #perl6
22:59 Akagi201 joined #perl6
23:01 Mouq .ask lizmat So is #125312 (start 41 + 2) closable?
23:01 yoleaux Mouq: I'll pass your message to lizmat.
23:01 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125312
23:04 telex joined #perl6
23:05 amurf joined #perl6
23:15 ggoebel2 joined #perl6
23:22 ggoebel joined #perl6
23:28 spider-mario joined #perl6
23:29 timotimo hoelzro: yes, indeed
23:29 timotimo well, we only take a closure of the thing
23:29 hoelzro yikes
23:29 hoelzro sounds like a quick performance win, though =)
23:30 timotimo i suppose
23:31 timotimo the optimizer already has a case for $a += $b
23:31 timotimo to turn that immediately into $a = ($a // &infix:<+>()) + $b
23:31 timotimo but only if the assigned-to variable is a $-sigiled var
23:31 ggoebel joined #perl6
23:31 timotimo in the case we have in this benchmark here, the lhs is a method call on an object
23:31 timotimo (to get an is-rw container)
23:34 hoelzro ah ha
23:37 timotimo the thing is: we should actually be compile-time-calling METAOP_ASSIGN and generating the closure to be re-used
23:37 timotimo at least that should have been optimized by the existing optimizer
23:37 * timotimo is hacking on the optimizer this very moment
23:39 hoelzro timotimo++
23:39 hoelzro maybe I can pick your brain sometime about some things I'd like to speed up!
23:40 timotimo that's what i used to do all the time :P
23:42 uncleyear joined #perl6
23:44 ggoebel joined #perl6
23:52 Akagi201 joined #perl6
23:55 Akagi201 joined #perl6
23:56 Akagi201_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo