Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-24

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 ghostlines joined #perl6
00:06 erkan joined #perl6
00:06 erkan joined #perl6
00:12 daxim joined #perl6
00:17 aborazmeh joined #perl6
00:27 Hor|zon joined #perl6
00:27 eternaleye joined #perl6
01:20 raiph joined #perl6
01:34 kyun joined #perl6
01:46 Alula joined #perl6
01:49 haiveu joined #perl6
02:24 tony-o colomon: sorry it took so long to take PR, phone wouldn't let me do it
02:25 tony-o .tell brrt i can't duplicate the moar segfault on yosemite, it built 3 times without failure -
02:25 yoleaux tony-o: I'll pass your message to brrt.
02:25 tony-o oops - that was for bbkr
02:27 tony-o .tell bbkr couldn't duplicate moar build segfault on yosemite.  was able to reproduce your bug @ https://rt.perl.org/Public/​Bug/Display.html?id=122803
02:27 yoleaux tony-o: I'll pass your message to bbkr.
02:27 Hor|zon joined #perl6
02:27 tony-o .tell brrt sorry, previous message was meant for someone else ^^
02:27 yoleaux tony-o: I'll pass your message to brrt.
02:45 noganex_ joined #perl6
02:48 colomon joined #perl6
02:49 colomon tony-o++
02:53 yeahnoob joined #perl6
03:08 chenryn joined #perl6
03:14 mauke_ joined #perl6
03:16 dalek ecosystem: c28dce0 | colomon++ | META.list:
03:16 dalek ecosystem: Give IoC back to Jason May.
03:16 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/c28dce0f7b
03:24 SamuraiJack joined #perl6
03:29 tony-o colomon: what OS are you on?  the META.info still causes it not to build on on OSX - Pluggable is available in the ecosystem, not sure why Panda won't recognize it
03:30 tony-o make VIMRUNTIMEDIR=/usr/share/vim/vim74
03:32 colomon I'm on both OS X and Linux.  I'll give it a try.
03:33 colomon Hmmm.  I get HTTP::Server::Async test failures building on Linux.
03:33 tony-o i'm getting those too, are you running panda with --nodeps
03:33 colomon no?  I don't even know what --nodeps is
03:33 tony-o i'm trying to fix them but yosemite update broke my vim
03:34 tony-o panda install --nodeps ignores dependencies in Meta
03:34 colomon Pluggable successfully installed on both of them.
03:34 colomon you might need to do panda update?
03:34 tony-o i'll give it a shot
03:34 colomon I get the same test failures on OS X, too
03:38 tony-o hmm..does panda attempt to get Pluggable for you?  i removed it and panda install fails for HTTP Server Async
03:38 tony-o with the error it can't find Pluggable on the system, with no attempt to download it
03:38 rindolf joined #perl6
03:45 tony-o colomon: ^^
03:45 colomon tony-o: yes, panda successfully installs pluggable.
03:45 colomon what rakudo are you using?
03:46 tony-o his is perl6 version 2014.09-261-g8bcdfd2 built on MoarVM version 2014.09-54-g03ac9a7
03:46 chenryn joined #perl6
04:12 bjz joined #perl6
04:17 kyun_ joined #perl6
04:23 xenoterracide_ joined #perl6
04:28 Hor|zon joined #perl6
04:46 ggoebel111111110 joined #perl6
04:48 jack_rabbit joined #perl6
05:15 chenryn joined #perl6
05:17 ecocode joined #perl6
05:17 kaare_ joined #perl6
05:18 [Sno] joined #perl6
05:50 avuserow joined #perl6
05:53 gfldex joined #perl6
06:13 garyaj joined #perl6
06:19 rurban joined #perl6
06:21 masak g'm'ng, #perl6
06:22 raydiak \o masak
06:29 Hor|zon joined #perl6
06:30 Isp-sec joined #perl6
06:30 raydiak g'night #perl6
06:54 thou joined #perl6
07:00 rurban joined #perl6
07:00 mauke joined #perl6
07:00 kst joined #perl6
07:00 lucs joined #perl6
07:00 ilogger2 joined #perl6
07:00 PerlJam joined #perl6
07:00 erdic joined #perl6
07:00 vike joined #perl6
07:00 pdcawley joined #perl6
07:00 retupmoca joined #perl6
07:00 Tene joined #perl6
07:00 odc joined #perl6
07:00 silug joined #perl6
07:00 cibs joined #perl6
07:00 kshannon joined #perl6
07:00 peteretep joined #perl6
07:00 leedo joined #perl6
07:00 nine_ joined #perl6
07:00 apejens joined #perl6
07:00 Ulti joined #perl6
07:00 mls joined #perl6
07:00 ribasushi joined #perl6
07:00 Guest12380 joined #perl6
07:00 rhr joined #perl6
07:08 m_athias joined #perl6
07:09 bjz_ joined #perl6
07:09 rmgk joined #perl6
07:09 Guest58887 joined #perl6
07:09 Khisanth joined #perl6
07:09 jac50 joined #perl6
07:09 aindilis joined #perl6
07:09 sivoais joined #perl6
07:09 simcop2387 joined #perl6
07:09 btyler_ joined #perl6
07:09 cotto joined #perl6
07:13 moritz tadzik: ping
07:13 tadzik moritz: pong
07:13 tadzik I didn't oversleep :)
07:14 masak oversleep for what?
07:14 masak today is marked as a Perl 6 day in my $work calendar.
07:14 masak I'm going to steal some of it for $work, but I will also make it a goal to blog today.
07:14 moritz tadzik: just wanted to make sure you got my email and have all the relevant contact information
07:15 tadzik moritz: I think so :)
07:15 moritz masak: also, t5 :-)
07:15 masak *nod*
07:15 masak moritz++
07:16 kurahaupo joined #perl6
07:16 cibs joined #perl6
07:16 tadzik ;)
07:17 tadzik moritz: expect me to do a dry-run for the correctness of the phone number provided :)
07:22 sivoais_ joined #perl6
07:22 kurahaupo_ joined #perl6
07:31 virtualsue joined #perl6
07:32 ribasushi joined #perl6
07:32 mls joined #perl6
07:32 apejens joined #perl6
07:32 nine_ joined #perl6
07:32 leedo joined #perl6
07:32 peteretep joined #perl6
07:32 kshannon joined #perl6
07:32 silug joined #perl6
07:32 retupmoca joined #perl6
07:32 pdcawley joined #perl6
07:32 vike joined #perl6
07:32 erdic joined #perl6
07:32 kst joined #perl6
07:32 mauke joined #perl6
07:32 rurban joined #perl6
07:32 bjz_ joined #perl6
07:32 rmgk joined #perl6
07:32 Guest58887 joined #perl6
07:32 Khisanth joined #perl6
07:32 jac50 joined #perl6
07:32 aindilis joined #perl6
07:32 simcop2387 joined #perl6
07:32 btyler_ joined #perl6
07:32 cotto joined #perl6
07:37 lucs joined #perl6
07:37 ilogger2 joined #perl6
07:37 PerlJam joined #perl6
07:37 Tene joined #perl6
07:37 odc joined #perl6
07:37 Ulti joined #perl6
07:37 Guest12380 joined #perl6
07:37 rhr joined #perl6
07:37 FROGGS joined #perl6
07:39 darutoko joined #perl6
07:40 rurban joined #perl6
07:40 mauke joined #perl6
07:40 kst joined #perl6
07:40 erdic joined #perl6
07:40 vike joined #perl6
07:40 pdcawley joined #perl6
07:40 retupmoca joined #perl6
07:40 silug joined #perl6
07:40 kshannon joined #perl6
07:40 peteretep joined #perl6
07:40 leedo joined #perl6
07:40 nine_ joined #perl6
07:40 apejens joined #perl6
07:40 mls joined #perl6
07:40 ribasushi joined #perl6
07:43 ribasushi joined #perl6
07:50 cibs joined #perl6
07:50 ugexe joined #perl6
07:50 cibs joined #perl6
07:55 cognominal joined #perl6
07:57 sergot hi o/
07:57 masak hi, sergocie \o
07:59 sergot cześć masaku! :)
08:05 Hor|zon joined #perl6
08:16 TuxCM joined #perl6
08:19 fhelmberger joined #perl6
08:20 Alina-malina joined #perl6
08:32 sqirrel joined #perl6
08:33 zakharyas joined #perl6
08:42 smls joined #perl6
08:43 thou joined #perl6
09:06 kjs_ joined #perl6
09:07 ghostlines joined #perl6
09:15 grep0r joined #perl6
09:18 rmgk_ joined #perl6
09:21 pochi joined #perl6
09:38 ghostlines joined #perl6
09:40 virtualsue joined #perl6
09:47 grondilu joined #perl6
09:48 brrt joined #perl6
09:50 brrt tony-o - i can try and make moar segfault on os x yosemite too :-)
09:50 yoleaux 02:25Z <tony-o> brrt: i can't duplicate the moar segfault on yosemite, it built 3 times without failure -
09:50 yoleaux 02:27Z <tony-o> brrt: sorry, previous message was meant for someone else ^^
09:53 sivoais_ joined #perl6
09:53 avuserow joined #perl6
09:53 ggoebel111111110 joined #perl6
09:53 japhb joined #perl6
09:53 cxreg joined #perl6
09:53 gtodd joined #perl6
09:53 lue joined #perl6
09:54 pdcawley joined #perl6
09:56 pdcawley joined #perl6
09:56 fhelmberger joined #perl6
09:56 rurban joined #perl6
09:56 mauke joined #perl6
09:56 kst joined #perl6
09:56 erdic joined #perl6
09:56 vike joined #perl6
09:56 retupmoca joined #perl6
09:56 silug joined #perl6
09:56 kshannon joined #perl6
09:56 peteretep joined #perl6
09:56 leedo joined #perl6
09:56 nine_ joined #perl6
09:56 apejens joined #perl6
09:56 mls joined #perl6
09:56 cxreg joined #perl6
09:57 smls How usable is «Buf» these days?
09:58 smls And what's the equivalent of Perl's «unpack»  (for parsing binary files?)
09:58 grondilu joined #perl6
09:58 nebuchadnezzar joined #perl6
09:58 xinming joined #perl6
09:58 davido_home joined #perl6
09:58 MilkmanDan joined #perl6
09:58 robinsmidsrod joined #perl6
09:58 yakudza joined #perl6
09:58 sunnavy joined #perl6
09:58 rjbs joined #perl6
09:58 breinbaas joined #perl6
09:58 [Coke] joined #perl6
09:58 ChoHag joined #perl6
10:00 Alina-malina joined #perl6
10:00 grondilu it is writeable, if that's what you mean (IIRC not so long ago, it wasn't).
10:01 moritz smls: Buf has a method unpack
10:01 moritz smls: not very complete though
10:01 grondilu but you cn't use the my Buf $b .= new idiom
10:01 wind_chh joined #perl6
10:01 moritz smls: take a look at src/core/Buf.pm
10:07 raiph joined #perl6
10:10 smls ok
10:10 pdcawley joined #perl6
10:20 chenryn joined #perl6
10:20 denis_boyun_ joined #perl6
10:26 sisar joined #perl6
10:31 thou joined #perl6
10:34 smls What features that are typically associated with functional languages, does Perl 6 have?
10:34 smls I can think of:    1) Immutable data types,    2) Lazy lists,    3) Simple pattern matching (in the form of multi-dispatch)
10:34 smls What else?
10:38 moritz easy ways to create functions/lamdas/callables
10:39 Timbus i was typing that, but i couldnt quite word it
10:39 moritz lexical scoping (as opposed to method lookup semantics)
10:39 moritz closures
10:39 Timbus .assuming
10:40 Timbus autothreading w/ hyper operators?
10:40 Timbus is that still a thing
10:41 Alula joined #perl6
10:41 masak declarative ways of saying things, as opposed to imperative
10:41 leont joined #perl6
10:41 moritz I guess now would be a good time to implement autothreading
10:42 moritz well, auto-concurrency with hypers
10:44 Ven joined #perl6
10:45 Ven http://www.reddit.com/r/programmin​g/comments/2k4mlk/google_atscript/
10:45 Ven More alt-js languages by google!
10:47 Timbus im always both angry and happy that people are constantly writing javascript alternatives.
10:47 moritz well, there seem to be two approaches
10:47 moritz the first is to build rather thin layers over javascript
10:48 moritz those typically solve some of the syntactic odditites
10:48 moritz or you can build a "full" cross-compiler
10:48 moritz then you typically end up with something that's slow, and/or bears no resemblance with JS anymore
10:48 moritz which might or might not be a plus :-)
10:52 Timbus i just want everything to target asmjs or something similar
10:53 Ven that doesn't make sense.
10:53 Ven You can't "target" asm.js for most of the languages out there.
10:53 Ven Dart has no type system, for example
10:54 masak Ven: I saw this language show up in slide photos from ngEurope yesterday :)
10:54 Ven eh. I know there's scalaIO going on here (in france) right now, but I can't go :(
10:54 masak Ven: it makes sense-in-retrospect that they would go in this direction with Angular and alt-js
10:55 Ven definitely. Dart sucks :)
10:55 * Ven *g* so early in the morning
10:56 Ven sometimes I think I should just make LiveScript target typescript as a backend :-)
10:56 Timbus Ven: im vaguely aware that asmjs is pretty minimal, but i would assume you can build complicated things on top of it?  i guess ill settle for 'or something similar' then
10:57 Ven Timbus: there are no strings in asm.js
10:57 Timbus aa
10:57 Ven we sometimes get people asking us to "target asm.js" on the coffee bugtracker. That doesn't make any sense. We don't have types.
10:58 Ven TypeScript is adding untagged union types L(
10:58 Ven :(*
11:01 lizmat good *, #perl6!
11:01 Ven o/, lizmat
11:02 lizmat \o Ven
11:02 lizmat I guess PerlJam is still working on the release, as I have not seen an announcement yet ?
11:03 [Sno] joined #perl6
11:08 dalek roast: d088d6b | (Elizabeth Mattijsen)++ | S05-mass/properties-general.t:
11:08 dalek roast: Fudge failing tests on parrot for release
11:08 dalek roast: review: https://github.com/perl6/roast/commit/d088d6bda8
11:16 dalek roast: 5e77113 | (Elizabeth Mattijsen)++ | S02-names/symbolic-deref.t:
11:16 dalek roast: Unfudge now passing test on parrot/jvm for release
11:16 dalek roast: review: https://github.com/perl6/roast/commit/5e77113ac6
11:16 lizmat JVM is now clean for me as well
11:16 lizmat parrot has some long-standing fails on OS-X that I think survived many release already  :-(
11:17 Ven nice :-)
11:19 bartolin lizmat: some of the parrot failures (e.g. those from S19-command-line-options/02-dash-e.t) are hopefully gone with the new parrot (6.9.0).
11:19 lizmat so maybe we should bump the PARROT_REVISION?
11:19 * lizmat will check
11:19 bartolin lizmat: I didn't try to build with the new parrot.
11:21 bartolin lizmat: also I found a test in S02-names-vars/perl.t which sometimes (rarely) fails on JVM. I think it doesn't make sense to fudge it now, but I'm looking at it.
11:21 * lizmat is building with 6.9.0 parrot
11:22 bartolin m: for 1..1000 { my $a = rand; say $a if $a.chars > 19 }
11:22 camelia rakudo-moar 315ec6: OUTPUT«0.000648212182777552␤»
11:22 bartolin j: for 1..1000 { my $a = rand; say $a if $a.chars > 19 }
11:22 camelia rakudo-jvm 315ec6: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
11:23 bartolin hmm. locally I got much more results for JVM -- and the results look different, e.g.:
11:23 bartolin 0.029514869958183088
11:23 bartolin 0.015189550239314453
11:23 bartolin 0.012097777536452803
11:23 bartolin m: my %h; %h{rand.chars}++ for 1..1000; say %h
11:23 camelia rakudo-moar 315ec6: OUTPUT«"14" => 1, "15" => 8, "16" => 80, "17" => 807, "18" => 92, "19" => 11, "20" => 1␤»
11:24 bartolin locally: perl6-j -e 'my %h; %h{rand.chars}++ for 1..1000; say %h'
11:24 bartolin "16" => 8, "17" => 65, "18" => 620, "19" => 270, "20" => 37
11:24 bartolin somehow the numbers generated on JVM look different
11:28 bartolin m: for 1..500 { my $t1 = rand; my $t2 = EVAL($t1); if $t1 ne $t2 { say "$_: ERROR:\n  ", $t1, "\n  ", $t2; }
11:28 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_MzWJq98FLâ�¤Unable to parse expression in block; couldn't find final '}' â�¤at /tmp/_MzWJq98FL:1â�¤------> [32may "$_: ERROR:\n  ", $t1, "\n  ", $t2; }[33mâ��[31m<EOL>[0mâ�¤    expecting any of…»
11:28 bartolin m: for 1..500 { my $t1 = rand; my $t2 = EVAL($t1); if $t1 ne $t2 { say "$_: ERROR:\n  ", $t1, "\n  ", $t2; } }
11:28 camelia rakudo-moar 315ec6: OUTPUT«182: ERROR:␤  0.842760512692125␤  0.84276051269213␤196: ERROR:␤  0.385157163275392␤  0.38515716327539␤302: ERROR:␤  0.6708292500736␤  0.670829250074␤»
11:30 lizmat ===SORRY!===
11:30 lizmat I'm missing some needed files:
11:30 lizmat /Users/liz/Github/rakudo.parrot/install/bin/ops2c
11:30 lizmat (Perhaps you need to 'make install', 'make install-dev',
11:30 lizmat or install the 'devel' package for NQP or Parrot?)
11:30 bartolin maybe thats not the problem in the test file (since that runs fine on moar even when I run it 1000 times or more)
11:32 bartolin lizmat: when I tried to build with latest parrot earlier this month, I got the same failure.
11:32 lizmat hmm... I didn't pull parrot, maybe that's the problem
11:32 bartolin lizmat: this looks like a relevant commit: https://github.com/parrot/parrot/commit/c28873be67
11:33 bartolin maybe there are changes needed in rakudo to reflect the changes in parrot? (only guessing)
11:42 prevost joined #perl6
11:43 lizmat giving up on building rakudo with parrot 690 for now
11:46 frew joined #perl6
11:46 dalek rakudo/parrot-690: 47644a4 | moritz++ | / (3 files):
11:46 dalek rakudo/parrot-690: ops2c is now called parrot-ops2c
11:46 dalek rakudo/parrot-690: review: https://github.com/rakudo/rakudo/commit/47644a4a91
11:48 * lizmat tries again  :-)
11:49 moritz I'm now testing whether NQP changes are necessary
11:49 moritz (this is a shot in the dark, mind you)
11:52 Ven poor dark.
11:53 * masak .oO( how do I shot dark )
11:53 Ven .oO( next you'll shoot minut )
11:53 Ven minus*. sight.
11:53 masak sight, indeed.
11:53 Ven .oOo( next you'll shoot  )
11:53 Ven masak: 'tis but my keyboard!
11:58 masak verily.
12:00 lizmat moritz: looks like the only other thing needed is a PARROT_REVISION bump in nqp
12:00 lizmat OTOH, I'm seeing new spectest failures  :-(
12:03 lizmat would *not* recommend bumping it *before* the release
12:03 lizmat of this month's rakudo
12:06 Ven https://www.youtube.com/watch?v=v3XoWi0XbZk c++ is fun!
12:07 Ven (that'd make leont happy :P)
12:07 Ven (leont++, even)
12:07 jimgnosis joined #perl6
12:11 Ven (I admit I sort of miss type arguments on subsets :P)
12:11 PerlJam greetings
12:11 Ven subset X of ::T :D.
12:11 Ven o/, PerlJam
12:11 PerlJam Yes, I'm still working on the release.
12:12 JimmyZ joined #perl6
12:12 bartolin lizmat: in that case someone needs to revert the latest commit to rakudo, or?
12:12 lizmat bartolin: it was in a branch
12:12 lizmat so no revert necessary
12:13 bartolin oh, overlooked that!
12:13 PerlJam I had some family stuff last night that prevented completion and I've got a doctor appointment in a little while.   I likely won't get to finish until later this afternoon
12:13 molaf joined #perl6
12:13 PerlJam in any case, there were lots of parrot failures when I ran stresstest.
12:14 leont Ven: thanks, that does sound interesting
12:14 lizmat gist of failures with parrot 6.9.0: https://gist.github.com/li​zmat/05a8462ffe4d6b0a8e52
12:14 Ven leont: talk is pre-c++14, but still, metaparse and metamonad are incredible pieces of c++
12:14 lizmat PerlJam++ nonetheless!!
12:15 leont C++14 is a nice addition, but not nearly as big/important as C++11
12:15 Ven well, constexprs relaxations are nice for metaprogramming :-)
12:15 leont True!
12:16 leont They seem to have switched to a regular release schedule, much like perl{5,6}, except that their iteration speed is slower
12:17 rindolf joined #perl6
12:18 PerlJam Here's what I saw for parrot 6.8.0: https://gist.github.com/per​lpilot/85c1d10dedc6e651df66
12:19 PerlJam and now I have to move some kids around prior to my appointment
12:19 PerlJam bbl &
12:19 thou joined #perl6
12:19 * lizmat wishes PerlJam a good visit
12:21 moritz lizmat: there are reasons I'm doing that stuff in a branch :-)
12:21 * JimmyZ can't open http://irclog.perlgeek.de :(
12:21 lizmat and good ones at that!
12:22 chenryn joined #perl6
12:22 lizmat JimmyZ: works ok for me, Great Firewall issues ?
12:22 moritz JimmyZ: I can. What error do you get?
12:22 JimmyZ time out, I'm not in china
12:23 xinming_ joined #perl6
12:24 lizmat JimmyZ: I'm thinking routing issues next, do you have a traceroute ?
12:26 JimmyZ yeah, looks like it is
12:29 rindolf joined #perl6
12:30 brrt hmm... we should have a uwsgi plugin for moarvm
12:30 masak feature request: .classify takes the identity function as a default first argument
12:31 masak that way, I can write @things.classify
12:31 moritz and classify objects by their stringification?
12:31 masak instead of `sub id { $^the_thing }; @things.classify(&id)`
12:33 moritz well, @things.classify(-> $x { $x }) is a bit shorter
12:34 moritz or just @things.classify({ $_ })
12:34 moritz that said, +1
12:34 masak I still think it'd be a nice default.
12:34 masak ok, changing spec.
12:34 moritz (and I've long wanted a more concise way to write the identity function)
12:35 masak maybe we should provide it in CORE, as `&id` or `id`
12:35 kjs_ joined #perl6
12:35 lizmat masak: if identity would be the default, what if it is not a Str ?
12:35 lizmat should it create a Typed Hash automagically ?
12:35 moritz nope
12:35 masak lizmat: .classify doesn't build a Hash, it builds a list of pairs.
12:36 moritz and that's wrong
12:36 rindolf joined #perl6
12:36 moritz it should return a hash
12:36 moritz according to S32::Containers
12:36 moritz m: say <aa ab bc>.classify(*.substr(0, 1)).perl
12:36 camelia rakudo-moar 315ec6: OUTPUT«("b" => ["bc"], "a" => ["aa", "ab"]).hash␤»
12:36 moritz oh, it does return a hash
12:36 moritz masak: your mental model needs updating :-)
12:37 masak seemingly.
12:37 lizmat fwiw, making it a list of pairs, would neatly circumvent the Typed Hash issue
12:37 masak it used to be a list of pairs.
12:37 masak ok, I don't understand the current classify spec.
12:37 masak standing down change, pending my understanding. :)
12:38 lizmat well, that could be...  and it is very easily changed by adding .pairs internally
12:38 lizmat but the underlying implementation would always use a Hash I would think
12:38 lizmat or do we want to linearly check a list of pairs for its keys when classifying ?
12:39 Ven masak: @things.classify({$_}) doesn't sound that bad tho
12:39 rindolf joined #perl6
12:39 lizmat @things.classify(*) would even be better :-)
12:40 sivoais joined #perl6
12:40 moritz masak: well, @things.classify would be identical to @things.classify(*.Str)
12:41 moritz masak: so it would classify things by their stringification. Not very useful very often, but falls out quite naturally
12:41 lizmat moritz: disagree, that falls out of the default implemenattion of hashes naturally
12:41 moritz m: say ([1, '2 3'], ['1 2', 3], [4, 5]).classify(*.Str).perl
12:41 camelia rakudo-moar 315ec6: OUTPUT«("4 5" => [[4, 5]], "1 2 3" => [[1, "2 3"], ["1 2", 3]]).hash␤»
12:43 lizmat m: (now, now, now).classify({$_}).perl.say   # feels weird
12:43 camelia rakudo-moar 315ec6: OUTPUT«("Instant:1414154672.027178" => [Instant.new(<1769107494706/1251>)], "Instant:1414154672.016588" => [Instant.new(<596773271591/422>)], "Instant:1414154672.023692" => [Instant.new(<1432538682760/1013>)]).hash␤»
12:44 lizmat the key and values don't match ?
12:44 moritz that's what you get with a default hash :-)
12:45 lizmat ah, I read the values wrong: they're expressed as Rats  :-)
12:45 moritz m: say (now xx 5).classify(*.x.Int).perl
12:45 camelia rakudo-moar 315ec6: OUTPUT«("1414154791" => [Instant.new(<489297558001/346>), Instant.new(<1795976585737/1270>), Instant.new(<1093141654156/773>), Instant.new(<1648904487387/1166>), Instant.new(<885260899749/626>)]).hash␤»
12:46 moritz m: say (now xx 5).classify(*.x.Int).elems for ^10
12:46 camelia rakudo-moar 315ec6: OUTPUT«2␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
12:46 lizmat that .x is still also very weird to me
12:47 moritz say ((now xx 5).classify(*.x.Int).elems xx *).grep(* != 1)[^3]
12:47 moritz lizmat: yes, that should be .seconds or so
12:47 moritz m: say ((now xx 5).classify(*.x.Int).elems xx *).grep(* != 1)[^3]
12:47 camelia rakudo-moar 315ec6: OUTPUT«2 2 2␤»
12:47 * lizmat puts it on her cage cleaning list
12:49 rindolf joined #perl6
12:51 Ven moritz: lines like that are why I love p6 :P
12:54 j4jackj joined #perl6
12:55 kaare_ joined #perl6
12:58 Ven m: use MONKEY_TYPING; class Unit{has $.mul;has $.val; method ago {now-$.val*$.mul}}; augment class Num{method seconds{Unit.new(:0mul, :val(self))} }; say 3.seconds.ago;
12:58 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/EWJCMRkNNHâ�¤Undeclared routine:â�¤    now used at line 1â�¤â�¤Â»
12:58 Ven uh?
12:59 Ven m: use MONKEY_TYPING; class Unit{has $.mul;has $.val; method ago {now - $.val*$.mul}}; augment class Num{method seconds{Unit.new(:0mul, :val(self))} }; say 3.seconds.ago;
12:59 camelia rakudo-moar 315ec6: OUTPUT«No such method 'seconds' for invocant of type 'Int'␤  in block <unit> at /tmp/7WfC6CIK6_:1␤␤»
12:59 Ven m: use MONKEY_TYPING; class Unit{has $.mul;has $.val; method ago {now - $.val*$.mul}}; augment class Int{method seconds{Unit.new(:0mul, :val(self))} }; say 3.seconds.ago;
12:59 camelia rakudo-moar 315ec6: OUTPUT«Instant:1414155624.921789␤»
12:59 Ven \o/
13:00 Ven kids: don't do that at home :P.
13:01 rindolf joined #perl6
13:05 rindolf joined #perl6
13:10 Alina-malina joined #perl6
13:11 guru joined #perl6
13:12 rindolf joined #perl6
13:16 shlomif joined #perl6
13:27 immortal joined #perl6
13:27 immortal joined #perl6
13:28 rindolf joined #perl6
13:29 xinming joined #perl6
13:30 xenoterracide_ joined #perl6
13:30 * gtodd does a quick comparison of "perlmonks benchmark" http://perlmonks.org/?node_id=1099617
13:31 gtodd perl6 -e 'for lines() {  say ~$/ if  m/(<<\w**5>>)/}' 150k-lines.txt # used to take ~ 70 seconds on my system
13:31 gtodd and 100% cpu ;-)
13:31 gtodd now ... perl6 -e 'for lines() {  say ~$/ if  m/(<<\w**5>>)/}' 150k-lines.txt  57.85s user 0.21s system 0% cpu 1:00.18 total
13:32 timotimo gtodd: can you try what happens if you for lines(:eager)?
13:32 Ven gtodd: can you try lines(:eager) ?
13:32 timotimo %)
13:32 Ven dammit timo.
13:32 lizmat fwiw, the sub lines() has not yet received optimization treatment afaik
13:32 gtodd it doesn't make as big a difference anymore ... is it due to changes in how lists work?
13:32 gtodd oh ok
13:33 timotimo oh
13:33 lizmat it's a complete different code path
13:33 lizmat (I realised much later)
13:34 gtodd one thing I noticed was doing 10k-lines.txt and getting say 4 seconds then 100K would give me 40 seconds ....
13:35 gtodd or well 10K would give 4.4 seconds now 10K takes 4 seconds flat and 100K does 35-36 seconds so isomething in there is getting faster ;-)
13:35 lizmat how did you code that ?
13:36 lizmat 10k-lines.txt.IO.lines(:eager)
13:36 gtodd same way ... naively
13:36 lizmat might be faster  :-)
13:36 gtodd ohh will try
13:36 gtodd perl6 -e 'for lines(:eager) {  say ~$/ if  m/(<<\w**5>>)/}' 150k-lines.txt  57.60s user 0.25s system 1% cpu 59.750 total
13:36 lizmat actually: "10k-lines.txt".IO.lines(:eager)
13:36 gtodd eager used to make a bigger difference (~ a month ago)
13:37 lizmat well, :eager on ArgFiles is silently ignored
13:37 rindolf joined #perl6
13:39 gtodd perl6 -e 'for "10k-lines.txt".IO.lines(:eager) {  say ~$/ if  m/(<<\w**5>>)/}  3.80s user 0.10s system 0% cpu 4.016 total
13:39 gtodd perl6 -e 'for lines() {  say ~$/ if  m/(<<\w**5>>)/}' 10k-lines.txt  4.12s user 0.09s system 7% cpu 4.316 total
13:39 gtodd so IO.lines(:eager) faster
13:39 gtodd NB: I have slow disks :-)
13:39 lizmat wonder how big the difference is with a 100K lines file
13:40 lizmat ah, not much, you're doing more than just reading  :-)
13:43 gtodd yeah the relative speed up as the file gets bigger  is new but it could be the machine is just less occupied or something  ...
13:44 gtodd 100k-lines.txt".IO.lines(:eager) is 35 seconds
13:44 * timotimo doesn't know what "NB:" means and can't find it in the s99
13:44 gtodd hehe
13:45 gtodd nota bene  :-)
13:45 timotimo oh
13:45 gtodd I have SSDs somewhere but ....  not on this machine
13:45 timotimo just put it into a ramdisk
13:45 gtodd :)
13:45 timotimo if your file is popular, it should land in ram anyway
13:46 rindolf joined #perl6
13:47 masak "nota" is the singular imperative of "notāre".
13:47 gtodd yeah the script I had was running it over and over .... this was ZFS on BSD geoms on multiple disks and does lords knows what to caches etc the speed up as the file gets larger is probably OS or FS related  I guess
13:47 timotimo i've read the wikipedia article on it now :)
13:47 timotimo well, skimmed it
13:48 * lizmat goes offline for a bit for some sysadmin work
13:48 [Coke] which rhymes with ♬ Volare!
13:48 timotimo [Coke]: oh god no
13:48 masak [Coke]: :D
13:48 leont Ven: their approach to strings is awesome though. I might abuse that to implement pack on C++. The world will hold you responsible for this :-p
13:48 Ven leont: I'm all for witchcrafting.
13:53 Ven (I mean - I'm doing perl6!)
13:54 timotimo craft moar witches
13:55 gtodd it will be cool when perl6 gets  faster to the point of being practical for this kind of file/data munging etc (I don't think matching perl5 on this sort of thing is going to happen very soon ! perl5 does it 0.05 seconds!) ... but what is "fast"?  if perl6 does something like this in 2 seconds (instead of 5 one hundredths)   errm ...
13:57 timotimo gtodd: i think we'll get close enough to allow comfortable use soon
13:57 timotimo and the jit is still "stupid"
13:57 rindolf joined #perl6
13:57 timotimo do you have a bit of knowledge about assembler-level performance?
13:57 colomon 199 modules passing tests in the latest smoke run.
13:57 gtodd oh right jitting is not really done yet
13:57 timotimo because we're still loading every argument off the stack, doing the calculation, storing it back onto the stack
13:58 timotimo we don't eliminate redundant loads and stores ever
13:58 timotimo and many optimizations in spesh turn complex operations into just "set the value of this register to the value of that register", which is pretty much exactly a load + store on the heap, rather than a register-level operation
14:00 gtodd since the jit option in now the default in the build I always forget jitting is turned on  but nowhere near being fullspeed
14:00 gtodd I mean didn't the jit just get started this summer?
14:01 timotimo that's correct
14:01 thou joined #perl6
14:02 gtodd timotimo: so the jit is doing things that are more about testing for future improvement of the jit  rather than real speed ups
14:04 timotimo that's not really true either
14:04 timotimo it already gives a nice boost on some workloads
14:04 gtodd :-)
14:04 tardisx joined #perl6
14:04 timotimo especially doing stuff with native nums and ints is pretty good
14:04 timotimo but there is still a whole lot of improvements possible in the future
14:05 BenGoldberg joined #perl6
14:06 colomon FROGGS: ping?  looking at Inline...
14:08 Ven trust me timotimo, just overload tan2 ;-)
14:08 timotimo psst
14:08 Ven good jit performance!
14:09 FROGGS colomon: pong
14:10 colomon FROGGS: just looked at GD to see why it was failing, which lead me to Inline.
14:10 FROGGS colomon: I was able to install Inline yesterday
14:10 colomon …. which, confusingly, appears to pass all tests in the smoke, but is failing when I try to install it directly.  :\
14:11 FROGGS hmmm
14:11 colomon Failed to open file: permission denied
14:11 colomon […]
14:11 colomon in method postcircumfix:<( )> at /home/colomon/tools/p6-Inline-C/lib/Inline/C.pm:32
14:11 colomon actually, that's not even installed, that's run by hand from the repo
14:11 FROGGS ohh, it is trying to create a tempfile... maybe it is just that
14:12 FROGGS ==> Successfully installed Inline
14:12 FROGGS worx on my box :/
14:14 colomon oh!
14:14 colomon it's a bug of yours, I think, but very subtle
14:14 rindolf joined #perl6
14:15 colomon it's trying to create /tmp/inline_a_plus_b.c, but it cannot, because that file already exists, created by a different user
14:15 colomon namely smoker, the smoke-test user
14:15 * colomon keeps it separate so that smoke testing builds don't interfere with his normal p6 hacking
14:16 FROGGS ohh
14:16 geekosaur fixed temporary file names are arguably a security hole...
14:16 colomon … though actuially might be a bug in .e ?
14:16 colomon $!libname    = $basename ~ 1000.rand.Int while $!libname.IO.e;
14:17 colomon I don't understand why that doesn't … oh!
14:17 colomon yeah, that's your bug.  :)
14:17 FROGGS what exactly?
14:18 colomon you check for name collisions with $!libname
14:18 colomon but the actual files you create are inline_a_plus_b.c inline_a_plus_b.o and libinline_a_plus_b.so
14:18 FROGGS ohh
14:18 colomon (also, should those temp files really be left lying around?)
14:22 colomon yeah, if I delete those /tmp files, everything works.
14:24 treehug88 joined #perl6
14:26 colomon FROGGS: do you have it, or do you want me to code up a fix?
14:26 FROGGS colomon: I am testing something...
14:26 colomon FROGGS++
14:28 bartolin m: say 0.005634127707264636e1 == 0.05634127707264636e0
14:28 camelia rakudo-moar 315ec6: OUTPUT«True␤»
14:28 rindolf joined #perl6
14:28 bartolin rakudo.jvm doesn't agree here:
14:28 bartolin $ perl6-j -e 'say 0.005634127707264636e1 == 0.05634127707264636e0'
14:28 bartolin False
14:29 bartolin could that be a bug?
14:30 masak only if you expect big decimal semantics there.
14:30 masak I'm not sure I do.
14:30 thou joined #perl6
14:30 bartolin I think it's the reason for a (rarely) failing test in roast on rakudo.jvm
14:31 colomon p6: say 0.005634127707264636e1 - 0.05634127707264636e0
14:31 bartolin that test uses 'rand' and on rakudo.jvm it produces values like 0.005634127707264636e1 sometimes.
14:31 camelia rakudo-{parrot,moar} 315ec6: OUTPUT«0␤»
14:31 colomon woah, camelia not handling jvm at the moment?
14:32 colomon m: say $*VM
14:32 camelia rakudo-moar 315ec6: OUTPUT«moar (2014.9.54.g.3.ac.9.a.7)␤»
14:32 bartolin the test is here: https://github.com/perl6/roast/blob​/master/S02-names-vars/perl.t#L103
14:32 colomon m: say $*VM<config>
14:32 camelia rakudo-moar 315ec6: OUTPUT«"ar" => "ar", "arflags" => "rcs", "arout" => "", "asm" => ".s", "asmout" => "-o ", "asmswitch" => "-S", "auxclean" => "\@:", "be" => "0", "can_unaligned_int32" => "1", "can_unaligned_int64" => "1", "can_unaligned_num64" => "1", "cancgoto" => "1", "cat" => …»
14:32 colomon m: say $*VM<config><load_ext>
14:32 camelia rakudo-moar 315ec6: OUTPUT«(Any)␤Saw 1 call to deprecated code during execution.␤========================​===================================​=====================␤$*VM<config> called at:␤  /tmp/VxVK2_C8Ia, line 1␤Deprecated since v2014.5, will be removed with release v2015.…»
14:32 lizmat joined #perl6
14:33 colomon how do we do that today?
14:33 colomon .config, eh
14:33 colomon m: say $*VM.config<load_ext>
14:33 camelia rakudo-moar 315ec6: OUTPUT«(Any)␤»
14:33 colomon m: say $*VM.config
14:33 camelia rakudo-moar 315ec6: OUTPUT«"ar" => "ar", "arflags" => "rcs", "arout" => "", "asm" => ".s", "asmout" => "-o ", "asmswitch" => "-S", "auxclean" => "\@:", "be" => "0", "can_unaligned_int32" => "1", "can_unaligned_int64" => "1", "can_unaligned_num64" => "1", "cancgoto" => "1", "cat" => …»
14:34 bartolin m: my $a = 5.634127707264636e-02; say $a.perl; say EVAL($a.perl).perl
14:34 camelia rakudo-moar 315ec6: OUTPUT«0.0563412770726464e0␤0.0563412770726464e0␤»
14:35 bartolin $ perl6-j -e 'my $a = 5.634127707264636e-02; say $a.perl; say EVAL($a.perl).perl'
14:35 bartolin 0.056341277072646356e0
14:35 bartolin 0.05634127707264635e0
14:36 dalek Perlito: 269af47 | (Flavio S. Glock)++ | / (2 files):
14:36 dalek Perlito: Perlito5 - js - tr() tweak
14:36 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/269af47286
14:36 bartolin well, I'll submit a rakudobug for the failing test
14:38 FROGGS colomon: done
14:39 colomon \o/
14:40 colomon woah, the tests for GD are sort of spectacularly useless.  :)
14:40 FROGGS hehe
14:41 colomon basically, it passes if "use GD" doesn't fail
14:41 FROGGS well, that is usually the first test I write :o)
14:41 colomon really?
14:41 rindolf joined #perl6
14:41 FROGGS sure
14:42 colomon I mean, every test file for a module does that automatically.
14:42 colomon no need for an explicit test
14:43 colomon does anyone know mrhdias?
14:43 FROGGS I dunno why but I do that since forever... like my first test in P5 is a use_ok
14:43 FROGGS not personally
14:45 [Coke] colomon: it's easier to diagnose explicit test failures than implicit ones.
14:46 [Coke] but that is pretty basic, aye
14:46 colomon m: use fdsakjfklds
14:46 camelia rakudo-moar 315ec6: OUTPUT«===SORRY!===␤Could not find fdsakjfklds in any of: /home/camelia/rakudo-inst-1/languages/perl6/lib, /home/camelia/rakudo-inst-1/languages/perl6␤»
14:46 colomon is it really that hard to diagnose that error?  :)
14:47 colomon okay, mailed mrhdias
14:47 colomon and actually, you're going to get the above error whether or not you put an "alive" test after it.
14:48 cognominal joined #perl6
14:49 hometra joined #perl6
14:56 rindolf joined #perl6
14:59 treehug88 joined #perl6
15:02 rindolf joined #perl6
15:02 odc left #perl6
15:07 timotimo tadzik: can you add a feature to rakudobrew that'd run spectests automatedly and give nice uploadable output?
15:09 colomon https://github.com/perl6-c​ommunity-modules/perl6-GD # not official yet, but if I don't hear from mrhdias….
15:12 guru joined #perl6
15:13 BooK are the Perl 6 on MoarVM vs Perl 6 on Parrot vs Perl 5 benchmarks published somewhere?
15:15 erkan joined #perl6
15:15 erkan joined #perl6
15:16 lizmat timotimo might know
15:17 timotimo i've had a quick look over my list of benchmarks
15:18 rindolf joined #perl6
15:19 timotimo one sec.
15:20 timotimo http://t.h8.lv/p6bench/ - i added a very simple index.html for you
15:20 lizmat masak: wrt to .classify having a default of identity: wouldn't you be served better by a .Bag in such a case ?
15:24 BooK timotimo: thanks!
15:25 timotimo i didn't see the one jnthn used in there yet
15:27 immortal joined #perl6
15:30 lizmat cycling&
15:30 treehug88 joined #perl6
15:34 rindolf joined #perl6
15:48 smls m: ([1], { [0, @^a Z+ @^a, 0] } ... *)[^5].perl.say;    # Pascal's triangle
15:48 camelia rakudo-moar 315ec6: OUTPUT«([1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1])␤»
15:48 smls ^ Will this still work post-GLR?
15:49 [Coke] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=200m; support was removed in 8.0
15:49 smls That is, are both sides of the Z operator considered slurpy lists?
15:49 rindolf joined #perl6
15:52 TimToady it's bound to @^a, which is not itemized
15:52 TimToady so should still work
15:52 araujo joined #perl6
15:54 lue joined #perl6
15:55 TimToady and the X and Z metaops should still be smart about whether their base op is a list infix or not, and flatten accordingly, just as it is now
15:56 TimToady most of the semantic shift is in invocants, and operators are really functions, which stay much the same
15:57 smls right
15:58 TimToady this aspect of the GLR can be viewed as clarification of the difference between the OO and FP world views
15:58 SOLEIL joined #perl6
16:00 TimToady those world views were most confused in the earlier designs, and have subsequently undergone various changes that keep the two worlds from interacting, so it's kind of natural now to give invocants different semantics than ordinary arguments
16:01 masak lizmat: yes, I'd've probably been better served by a .Bag
16:01 masak lizmat: I'm no longer championing for the identity function being the default :)
16:01 SOLEIL left #perl6
16:01 TimToady there might be some slight fallout for where we do "method foo (@stuff) is export"
16:02 [particle] joined #perl6
16:03 TimToady that is, for an exported method, the first arg will get invocant semantics even though you are invoking it through the FP interface
16:03 rindolf joined #perl6
16:03 aindilis joined #perl6
16:03 TimToady but that's more or less how it is already, so probably will not be noticed much
16:04 eternaleye joined #perl6
16:04 djanatyn joined #perl6
16:04 Guest1419 joined #perl6
16:04 * TimToady logs back
16:07 erkan joined #perl6
16:07 erkan joined #perl6
16:15 rindolf joined #perl6
16:17 cognominal joined #perl6
16:25 rindolf joined #perl6
16:26 FROGGS joined #perl6
16:28 immortal joined #perl6
16:28 immortal joined #perl6
16:38 rindolf joined #perl6
16:42 dalek perl6-bench/stress: fa5392f | (Geoffrey Broadwell)++ | timeall:
16:42 dalek perl6-bench/stress: Add symbolic diagnosis to timeall data
16:42 dalek perl6-bench/stress:
16:42 dalek perl6-bench/stress: First rule of data producers: Don't force consumers to parse human-friendly
16:42 dalek perl6-bench/stress: strings to get the data back out.  Thus, add a symbolic diagnosis next to
16:42 dalek perl6-bench/stress: every human-readable failure reason.
16:42 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/fa5392fc64
16:42 dalek perl6-bench/stress: 4a42954 | (Geoffrey Broadwell)++ | analyze:
16:42 dalek perl6-bench/stress: Add first-pass analysis for test diagnoses
16:42 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/4a429547e6
16:42 dalek perl6-bench/stress: f61cfa0 | (Geoffrey Broadwell)++ | analyze:
16:42 dalek perl6-bench/stress: Widen text comparison columns to fit diagnoses
16:45 grettis joined #perl6
16:46 abraxxa joined #perl6
16:48 MilkmanDan joined #perl6
16:55 nwc10 joined #perl6
16:55 colomon joined #perl6
16:55 nwc10 I checked the logs - has no-one pasted a link to jnthn's APW talk yet?
16:56 nwc10 https://www.youtube.com/watch?v=AhCx3CTauBY -- Objects ∩ Concurrency,
16:56 FROGGS nwc10: I did so in #perl6
16:56 nwc10 clearly I fail at log parsing
16:57 rindolf joined #perl6
16:57 MilkmanDan joined #perl6
16:57 dalek Perlito: 55e36b5 | (Flavio S. Glock)++ | / (3 files):
16:57 dalek Perlito: Perlito5 - fix 'use strict' - https://github.com/fglock/Perlito/issues/25
16:57 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/55e36b5eb5
17:05 kaare_ joined #perl6
17:16 prevost joined #perl6
17:20 abraxxa joined #perl6
17:36 kjs_ joined #perl6
17:39 kaare__ joined #perl6
17:40 [Sno] joined #perl6
17:47 cognominal joined #perl6
17:48 nwc10 left #perl6
17:48 guru joined #perl6
17:49 * TimToady thinks that Instant.x ought to be renamed Instant.cheat or Instant.don't-try-this-at-home
17:49 sqirrel_ joined #perl6
17:50 * grondilu does not know about Instant.x
17:50 grondilu is that in Temporal?
17:51 FROGGS joined #perl6
17:51 TimToady m: say now
17:51 camelia rakudo-moar 315ec6: OUTPUT«Instant:1414173124.087981␤»
17:51 TimToady m: say now.x
17:51 camelia rakudo-moar 315ec6: OUTPUT«1414173128.797084␤»
17:52 TimToady it tempts you to cheat on the internal epoch, which Instant is not guaranteed to preserve
17:52 FROGGS m: say and now
17:52 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GZNRYPhQjKâ�¤Undeclared routine:â�¤    and used at line 1. Did you mean 'end', 'any', 'rand'?â�¤â�¤Â»
17:53 TimToady now andthen ...
17:53 TimToady m: now andthen ...
17:53 camelia rakudo-moar 315ec6: OUTPUT«Unhandled exception: Stub code executed␤   at <unknown>:1  (/home/camelia/rakudo-inst-1/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13680  (/home/camelia/rakudo-inst-1/langu​ages/perl6/runtime/CORE.setting.…»
17:54 grondilu std: { say } and now
17:54 camelia std 14ad63b: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/KeCtGV6JoI line 1:�------> [32m{ say[33m�[31m } and now[0m�Check failed�FAILED 00:00 139m�»
17:54 ivanshmakov joined #perl6
17:54 PerlJam okay ... working on the release again.   Most (if not all) of the parrot test failures appear to be because of unicode characters.   moritz++ added a note to the announcement that this is the last release to support parrot without ICU.  Is that really true?
17:54 TimToady I believe that was the consensus
17:55 TimToady it ain't Perl 6 if it don't do unicode...
17:55 PerlJam What should I do about all of the failing tests?  Many of them seem to not even compile with rakudo-p because it barfs on some character during the parse.
17:56 TimToady install icu?
17:56 TimToady well, first verify that the lack of icu is the problem
17:58 TimToady parrot::has_icu, I guess
17:58 TimToady according to perl6-p -V
17:59 TimToady I'm fine with the tests failing this release for non-icu systems, even though we "support" it
17:59 PerlJam parrot::has_icu=0
18:00 TimToady though I suppose we should test at least once with icu
18:02 TimToady seeing if installing icu-devtools helps here
18:02 * PerlJam installs libicu-dev
18:03 TimToady that makes more sense
18:03 ivanshmakov joined #perl6
18:05 * TimToady wishes he had his brane back, but still recovering from whatever it was I have
18:06 raiph joined #perl6
18:06 TimToady tenses, who needs 'em
18:06 rurban but I just added needed namealiases which were not icu
18:06 rurban in icu
18:07 TimToady I seem to recall reading that they'd bump the parrot version next release, so maybe that isn't in play
18:10 rurban I'd wish I'd known it earlier, then I could have added more names to the list for —without-icu
18:11 PerlJam no worries.   I figure the Nov or Dec release will make more of an impression upon the world as the GLR should have happened :)
18:13 rurban are those http://t.h8.lv/p6bench/all_backends.html with moar jit already? dont think so
18:14 rurban I see: http://t.h8.lv/p6bench/201​4-10-10-huge_history.html it is
18:17 molaf joined #perl6
18:22 PerlJam I don't know how those graphs relate, but commit 1eed27d to NQP is from 1 year ago, so I would guess the graphs on http://t.h8.lv/p6bench/all_backends.html are all pre-JIT
18:23 gfldex joined #perl6
18:25 SamuraiJack joined #perl6
18:46 smash TimToady++ # 5 Programming Languages Everyone Should Know
18:50 psch joined #perl6
18:50 psch hi #perl6 o/
18:51 psch i figured out my cliparser bug and i can now spectest the branch again \o/
18:51 psch turns out the problem was still in the grammar and i didn't build TOP correctly to also work with a cli that only supplies arguments
18:51 psch s/build/write/
18:52 psch regarding the delimited options stuff i don't have any idea yet, but they should at least end up somewhere in Perl6::Compiler and afaiu i can borrow from Inc.pm to get them into perl6-land
18:58 j4jackj joined #perl6
19:01 rindolf joined #perl6
19:16 timotimo i'm sorry that the index.html for the benchmark graphs is so useless
19:16 timotimo i've wanted to write a more complex index generator or something similar, but i still don't know what it should show and what you should be able to do with it
19:24 gtodd I like how perl6 does this:
19:24 gtodd m: say "foo" ~~ /fum/ ?? "matched" !! "nope" ;
19:24 camelia rakudo-moar 315ec6: OUTPUT«nope␤»
19:24 gtodd oops I meant
19:24 gtodd m: say "foo" =~ /fum/ ?? "matched" !! "nope"
19:24 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Bl8VVOXdaj�Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~�at /tmp/Bl8VVOXdaj:1�------> [32msay "foo" =~[33m�[31m /fum/ ?? "matched" !! "nope"[0m�»
19:24 timotimo does what exactly?
19:24 gtodd "in Perl 6 please use ~~" rox
19:25 gtodd I want to put error messages like that all over the place :-)
19:25 timotimo aaah
19:25 timotimo i understand
19:25 moritz TimToady++ put a lot of effort into error messages
19:26 mauke m: "foo" ~=~ "bar"
19:26 camelia rakudo-moar 315ec6: OUTPUT«Cannot modify an immutable Str␤  in block  at src/gen/m-CORE.setting:18918␤  in block <unit> at /tmp/vFGYrZ8V4o:1␤␤»
19:27 gtodd yeah ... do they all live in CORE.setting?  or I mean
19:27 gtodd is that where the catching and exceptions start from?
19:28 japhb gtodd: Some are found in the grammar, some in the setting.
19:28 psch some of the throwing starts from nqp
19:28 gtodd I wanted to add a simple message for "reverse" when used on a hash "in Perl 6 please use invert"
19:28 psch but at least P6Regex should almost only throw from Perl6::Grammar by now i think
19:29 gtodd but couldn't figure out a) if it was non trivial b) if there was a better way ... that lead me to nqp :-)
19:29 mauke_ joined #perl6
19:31 Sqirrel joined #perl6
19:33 dalek doc: 88bad9d | usev6++ | / (2 files):
19:33 dalek doc: Add exception X::Syntax::Term::MissingInitializer
19:33 dalek doc: review: https://github.com/perl6/doc/commit/88bad9d191
19:35 gtodd It would be cool if there was a way to annotate messages like that even further - or translate them into languages that use all the beautiful unicode support  ;-) ... or load a module and then along with those messages you'd get referred to relevant snippets of documentation (the docs are going to be fantastic anyways but ...)  and maybe a heirarchy of community generated and/or internal PBP policy style docs that popup
19:36 gtodd little "documentation hooks"
19:36 k2t2 joined #perl6
19:37 k2t2 help
19:37 timotimo PBP?
19:38 lizmat gtodd: by having exceptions as classes, such an approach would be just a matter of augmenting said classes  :-)
19:38 SamuraiJack_ joined #perl6
19:38 gtodd that way every time someone came up with an idiom they could stick an example in ~/.perl6/docs/hooks/<some ref to the error> ... maybe with URL in it to further examples on rosettacode or perl6.org
19:38 gtodd and periodically people could cd ~/.perl6/docs/hooks ; git push
19:39 gtodd to some massive repo of perl6 lore ...
19:39 gtodd lizmat: good! :-D
19:39 gtodd timotimo: the classic Perl Best Practices
19:39 gtodd I really liked that book
19:39 gtodd like :-)
19:40 * lizmat thinks Instant.x should be called .tai
19:41 gtodd lizmat: you were fixing some error messages lately and was trying to watch your commits to see how you were doing it ... I wanted to see if I could make %hash.invert more famous
19:41 * masak thinks he could live with .tai
19:41 gtodd lizmat: .tai++
19:41 * masak .oO( .太 )
19:41 japhb lizmat: Is it actually tai though?
19:41 gtodd hehe
19:42 lizmat has Rat $.x;
19:42 lizmat # A linear count of seconds since 1970-01-01T00:00:00Z, plus
19:42 lizmat # tai-utc::initial-offset. Thus, $.x matches TAI from 1970
19:42 lizmat # to the present.
19:42 lizmat is what the code says
19:42 lizmat as we know, internal documentation is always right  :-)
19:42 japhb OK, that's reasonable then.
19:42 japhb hehe
19:43 japhb I just didn't want to give people an accessor that was not really correct for some reason.
19:44 gtodd will this intimate that perl6 explicitly agrees with DJB about time :-)   http://cr.yp.to/proto/utctai.html
19:44 mls joined #perl6
19:46 sharpie99 joined #perl6
19:48 timotimo i'm just now watching masaks goto statement considered awesome talk
19:48 japhb Hmmm, this does have the problem that we are treating a seconds-since-epoch value as TAI, which is not quite accurate (if the cr.yp.to page is to be believed; I've forgotten the details I learned way back when, except for "UTC for humans, TAI for computers")
19:48 timotimo masak: do you feel we could have the slip keyword/functionality without a big amount of changes?
19:48 timotimo because that does sound pretty awesome to have
19:48 masak timotimo: I'm not seriously proposing this keyword in core.
19:48 tony-o timotimo: link?
19:48 japhb slip?
19:49 masak timotimo: let's just say if we ended up with a mutable-enough language that such a keyword could be added, I wouldn't complain. :)
19:49 masak japhb: `slip` is `next` without losing position and state in the iteration.
19:49 timotimo https://www.youtube.com/watch?v=D32rpo5TeVg&amp​;list=UU7PuZDAIVMyE7mgkZHunXGw&amp;spfreload=10
19:49 timotimo right, slip causes the iterator to go to the next iteration without leaving the code block
19:50 masak japhb: or, put differently `slip` + `redo` == `next`
19:50 japhb Oh now that's an interesting idea
19:50 masak and you could do it with labels, iterating an *outer* loop, leaving the inner state intact.
19:50 japhb Kinda like the CRLF decomposition, except moderately less likely to cause instant insanity.
19:51 sharpie99 left #perl6
19:51 masak I find now and then that I am in need of such a construction.
19:51 japhb Oooh, example?
19:55 masak parse a line-based format. one line ends with a line continuation marker. I want to go to the next iteration, but keep doing what I was doing.
19:56 masak in a language without `slip`, I have to set flags and stuff.
19:56 * lizmat has just been convinced
19:56 masak it's the same kind of poverty of language that led C# to async/await.
19:56 masak but for a different problem.
19:58 TimToady gtodd: I've been ranting about leap seconds vs POSIX since the turn of the millenium, when we should've thrown out leap seconds and established 2000 as the new epoch
20:00 cognominal joined #perl6
20:00 timotimo masak: i wouldn't mind i fthe slip feature wouldn't actually do the changes to the loop "variables"
20:00 gtodd yeah
20:01 masak timotimo: as long as it reads another line of input.
20:01 dalek rakudo/nom: 29757fe | duff++ | docs/announce/2014.10.md:
20:01 dalek rakudo/nom: update announcement slightly
20:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29757fe46e
20:01 gtodd TimToady:  milleniums don't come around that often   ... :-)
20:01 gtodd every 3.15569e10 seconds?  give or take a few leaps
20:04 timotimo masak: if we don't require weird interactions, we could just have something like a dynamic variable to represent the loops we're in (or go via the labels on the loops) and bump the iteration and grab the new value
20:04 lizmat PerlJam++
20:04 timotimo my $next_line = slip Label;
20:05 lizmat maybe 'slip' implementation should be part of the GLR ?
20:05 timotimo i wouldn't mind if we had that
20:05 masak no please don't :)
20:05 masak please focus on real problems
20:05 timotimo OK
20:06 lizmat masak: so slip *would* call the NEXT phaser, but not the LEAVE phaser ?
20:06 gtodd I like the idea of slip but not the word it looks odd :-D  (plus I speak french errm) ... maybe a linguistics expert will come up with something else ;-)
20:06 masak no idea.
20:06 masak gtodd: as long as it's four letters long.
20:06 masak gtodd: I kind of like the connotations of "slip", though. the loop iterates under your feet, so to speak.
20:07 timotimo yes, the name struck me as very fitting
20:10 travis-ci joined #perl6
20:10 travis-ci Rakudo build passed. Jonathan Scott Duff 'update announcement slightly'
20:10 travis-ci http://travis-ci.org/rakudo/rakudo/builds/38963173 https://github.com/rakudo/rakudo/c​ompare/a37259208a0e...29757fe46efb
20:10 travis-ci left #perl6
20:10 lizmat masak:  I think 'slip' would be handy for e.g. a Text::CSV port  :-)
20:10 [Tux] looking at my code?
20:11 lizmat [Tux]  no, must admit I haven't yet much  :-(
20:13 timotimo i wonder how easy it is to make slangs composable
20:15 ghostlines joined #perl6
20:16 masak we'd better make them composable.
20:16 masak otherwise, they're no better than source filters. :)
20:16 timotimo there's a part that we as the perl6 creators and implementors have to get right
20:17 timotimo and there's probably parts where users may end up inadvertently making their slang hostile to either embedding others or being embedded in others
20:17 TimToady masak: smile when you say that...oh wait, you did...
20:17 timotimo (embedded as in "called from")
20:17 masak also, if Angular can make directives composable using *JavaScript* and the DOM as the substrate, I think we should be able to make slangs composable using Perl 6 as the substrate.
20:18 timotimo masak: you also handle "lexpads" with your $cont object, right?
20:18 timotimo the good thing about "cont" is that it's both the beginning of "context" and "continuation"
20:19 tony-o masak: that talk is ++
20:19 masak cool. thanks.
20:19 masak timotimo: yes :)
20:19 masak timotimo: though Continuations::Kinda remains quite underpowered still.
20:19 timotimo that's neat
20:19 masak timotimo: but yes, it would do lexpads inside the routine, too.
20:19 timotimo it still doesn't have the slang bit to it, yeah?
20:20 masak no, that's just a twinkle in my eye yet.
20:20 masak I write things "long form" right now.
20:21 timotimo masak: good job in any case
20:21 masak I have this idea lately that most language feature can be designed in two steps: (a) get the semantics right with just funcations, methods, closures, etc. (b) get the syntax right, sugaring the semantics with macros, slangs and whatnot.
20:21 masak features*
20:22 * timotimo is now watching "c day is coming"
20:22 * lizmat is too afraid to go look herself
20:22 timotimo heh
20:23 timotimo moarvm is faster than rakudo? :)
20:23 lizmat yeah
20:23 masak if only we could optimize away that whole "Perl 6" part on top of moarvm... :P
20:23 lizmat started that presentation at 6am, so that also meant not enough sleep  :(
20:24 timotimo sometimes i wish i could just write a piece of code in-line as nqp, but that desire will go away when we get better and better at optimizing perl6 code
20:27 PerlJam masak++ I like "slip"
20:27 timotimo lizmat: you said "i'm sure there's going to be a video of [jnthn's talk about performance advances] very soon"
20:27 timotimo lizmat: you couldn't have been more wrong ;(
20:28 lizmat yeah...  :-(
20:28 timotimo not your fault of course
20:28 lizmat but but, it is!
20:28 masak fun hackathonoid for some weekend: cloning Rakudo, and getting `slip` to work in it. preferably while passing all spectests ;)
20:28 lizmat everything is my fault anyway  :-)
20:29 timotimo many good things are your fault! :)
20:30 woolfy Videos for Austrian Perl Workshop (with a lot of Perl 6) are online now: https://www.youtube.com/chan​nel/UCB9cjCMJPZRJrYyOw0Wo-oQ
20:30 masak lizmat++ # to blame for many good things
20:30 timotimo woolfy: after the fact, it kind of seems to me like it was not really "that much"
20:30 masak ooh, APW videos
20:31 masak woolfy++
20:32 woolfy (I was quite happy to see Larry & Jonathan & Stefan & Nick and to attend the hackathon, it all had a strong Perl 6 feel to me)
20:32 pmichaud good afternoon, #perl6
20:32 pmichaud PerlJam++  # 2014.10 release
20:32 PerlJam pmichaud o/
20:33 woolfy For the people who didn't know yet, the videos of the main room of YAPC::EU are now online too, including the talks by Lichtkind++ and jnthn++: https://www.youtube.com/user/yapceu
20:33 pmichaud ooooh, video
20:33 * pmichaud adds to playlist
20:33 * masak looks at nine++'s Inline::Perl6 APW talk
20:33 woolfy pmichaud \o/
20:33 PerlJam woolfy++
20:34 lizmat masak: Inline::Perl6 ???
20:34 woolfy masak: Inline::Perl5?
20:34 woolfy :-)
20:34 * PerlJam is watching TimToady talk about what he didn't do this summer
20:34 pmichaud Hey, I can write an Inline::Perl6 module!
20:34 woolfy pmichaud: even I can do that!
20:34 pmichaud I think we should put one into the ecosystem just to see what people do :)
20:35 masak ah, Inline::Perl5, of course.
20:35 masak I guess I'm too used to writing a "6" there...
20:35 pmichaud masak: that's not a bad thing to be too used to doing
20:36 timotimo lizmat: damn it, the video recordings are up now that planetaria is dead and your talk references that; maybe we can get the yapceu channel owner to put an annotation up or something?
20:36 timotimo oh hey pmichaud :)
20:36 masak I'd have left here long ago, but I keep writing `/join #perl6` instead of `/join #perl`... :P
20:36 woolfy masak: it would feel empty without you here!
20:37 masak aww <3
20:37 gtodd I guess in a way the word "slip" implies a kind of short quick less obvious variant of "shift"
20:37 timotimo i like having masak around :)
20:37 dalek specs: e4c5b10 | (Elizabeth Mattijsen)++ | S04-control.pod:
20:37 dalek specs: Naively spec 'slip'
20:37 dalek specs: review: https://github.com/perl6/specs/commit/e4c5b10b3b
20:37 masak o.O
20:37 timotimo masak: also, in your talks you have a very soothing tone and pleasant voice
20:37 gtodd timotimo: so true
20:38 pmichaud yes, when I need a "Don't panic" talk, masak++ should be the one to give it.  :)
20:38 pmichaud afk for a bit
20:38 gtodd masak++ watch the talk feel more calm
20:38 masak timotimo: that would explain why I feel so relaxed and at ease all the time. I hear myself speak quite a lot.
20:38 gtodd hehe
20:38 timotimo oh wow, the video is 30 minutes, your talk was 15 minutes, so there must have been some good Q&A :)
20:38 timotimo masak: :D
20:38 masak surely I spoke for more than 15 minutes...
20:39 timotimo masak: refering to liz' talk right now
20:39 lizmat PerlJam++  # for the Octover 2014 release  :-)
20:39 woolfy just reading masak's lines here calms me down...
20:39 timotimo PerlJam++ # release \o/
20:39 masak PerlJam++
20:40 woolfy PerlJam++  indeed
20:41 masak lizmat: re https://github.com/perl6/specs/commit/e4c5b10b3b -- I don't believe this belongs in spec. at least not without a big '[CONJECTURAL]' notice next to it.
20:41 timotimo something i notice is that all these links liz put on her slides ... it kinda seem like each one of them has a different domain that hosts it
20:41 timotimo we might do well to make discoverability easier with a centralized index that's more than just a bunch of links
20:41 masak lizmat: it's exactly the kind of "move the goalposts" feature-creeping we *shouldn't* be doing as we aim for stability and completeness... :/
20:42 masak lizmat: also, I need some cool examples of how Perl 6 could be extended with macros, slangs, and language introspection... :)
20:43 dalek specs: 24850d6 | (Elizabeth Mattijsen)++ | S04-control.pod:
20:43 dalek specs: Add CONJECTURAL to slip, and ++ version: masak++
20:43 dalek specs: review: https://github.com/perl6/specs/commit/24850d6b66
20:43 timotimo it kind of seems like (to me) that the iterator itself has to cooperate for slip to make work
20:43 masak yeah, it's a pretty intrusive change.
20:43 lizmat hence my suggestion it'd be part of GLR
20:43 masak nonono please no
20:44 masak let's focus on real problems for GLR
20:44 timotimo there are only 25 synopses? i thought there were 99! :P
20:44 masak there's one way to make GLR hurt, and that's to throw everything and its cat into the blender
20:45 lizmat fwiw, if you need to add flags and stuff yourself to make the code do what your want, we're missing a feature
20:45 timotimo hmm, that sounds a bit oversimlified
20:45 lizmat ok, anyway, it's now in as CONJECTURAL
20:46 lizmat so it's something we might want to keep in the back of our minds while working on the GLR  :-)
20:46 timotimo lizmat: during the Q&A part, at one point you say "thank you, lichtkind" into the audience, directly after "my personal project is to go through all the synopses and check what we still have to implement"
20:46 timotimo what did he say?
20:46 gtodd no slippage in GLR?
20:47 lizmat timotimo: he didn't say anything  :-)
20:47 timotimo did you thank him for not saying anything? :)
20:48 * lizmat feels embarrassed to really discuss...
20:48 timotimo OK, fair enough
20:50 raydiak does Math::Symbolic sound like a reasonable name for an expression/equation parsing/manipulating module?
20:53 awwaiid does to me
20:53 pmichaud lizmat: how would slip work in a while loop?
20:53 raydiak then in the absence of objections, I'll name it that :)
20:55 colomon raydiak: +1
20:55 lizmat pmichaud: just like redo, but it *would* call the NEXT phaser
20:55 dalek perl6-bench/stress: b932bb0 | (Geoffrey Broadwell)++ | analyze:
20:55 dalek perl6-bench/stress: Diagnosis 'other' is now 'unknown'; make sure we always have a diagnosis
20:55 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/b932bb09cf
20:55 dalek perl6-bench/stress: 758386d | (Geoffrey Broadwell)++ | analyze:
20:55 dalek perl6-bench/stress: First pass at showing failures in text summary
20:55 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/758386d24b
20:55 dalek perl6-bench/stress: 15222c2 | (Geoffrey Broadwell)++ | analyze:
20:55 dalek perl6-bench/stress: Make compare and show-failures independent
20:55 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/15222c2078
20:55 dalek perl6-bench/stress: 1e28573 | (Geoffrey Broadwell)++ | analyze:
20:55 dalek perl6-bench/stress: Show test name only once per test, no matter which text summary lines are being shown
20:55 dalek perl6-bench/stress: review: https://github.com/japhb/pe​rl6-bench/commit/1e28573fb4
20:55 pmichaud ummmmmmmmmm....
20:55 lizmat actually
20:55 lizmat I *thought* redo in a while loop would call the NEXT phaser
20:55 lizmat but it doesn't
20:56 lizmat hmmm.....
20:56 lizmat that wouldn't make sense, indeed... and redo is specced to not be a next iteration
20:57 pmichaud slip sounds like it introduces quite a few warts
20:57 lizmat so it's correct that the NEXT phaser isn'r called
20:57 masak `redo` is basically a kind of goto instruction.
20:57 masak `slip` is basically a kind of CPS thing.
20:57 pmichaud I'm not saying slip isn't useful or warranted, only that there are a lot of edge cases to consider
20:57 masak what pmichaud said.
20:58 masak `slip` is about as disruptive as `gather`, and should not be spec'd lightly.
20:58 pmichaud how does 'slip' differ from 'next' ?
20:58 lizmat pmichaud: it would not leave the scope
20:58 masak pmichaud: `slip` goes on to the next instruction, with all values intact.
20:59 pmichaud lizmat: meaning it continues on from where the 'slip' occurred?
21:00 masak yes.
21:00 TimToady slip could just call NEXT if the compiler poked the iterating code and bind into NEXT
21:00 pmichaud there's a difference between "not leave the scope" and "returns to the top of the scope"
21:00 masak it doesn't leave the scope, at least not from the point of view of the user.
21:01 pmichaud because 'next' definitely leaves the scope, as currently defined.
21:01 masak yes.
21:01 mauke slip is just a time warp
21:01 pmichaud so saying that 'next' is 'slip + redo' is very misleading, if neither slip nor redo leave the scope.
21:01 TimToady but NEXT is merely what happens when you do that
21:01 masak pmichaud: that's a really good point.
21:01 masak didn't think about that.
21:02 mauke redo = CR, slip = LF
21:02 masak hehe
21:02 pmichaud what happens to the return value from a slip?  is it skipped?
21:02 TimToady or, arguably, slip is the abstraction of what happens right after NEXT before re-entering the loop
21:03 pmichaud from a performance standpoint, I don't want to be moving the iterator into the NEXT phaser.
21:03 TimToady not suggesting that anymore
21:03 TimToady but slip could be an inlined function
21:04 pmichaud so, slip in a while loop is effectively a no-op?
21:04 pmichaud other than calling the NEXT phaser
21:04 TimToady no, slip tests the condition
21:04 TimToady I think
21:04 pmichaud and exits if false?
21:04 pmichaud weeeeeeird.
21:04 mauke wait, that makes it less useful for parsing continuation lines
21:05 TimToady not really
21:05 masak I had it as reading the next line, or doing whatever other iteration goes with the loop.
21:05 pmichaud wait wait wait wait
21:05 pmichaud you mean:
21:05 masak that is, all the state in the loop is the same, except that you're now "in the next iteration".
21:05 pmichaud for lines() { slip; .say; }    #  should rebind $_ to the 2nd line read?!?
21:06 TimToady I think so
21:06 masak and 4th, and 6th, and 8th...
21:06 pmichaud how exactly does that work if we aren't re-entering the block?
21:06 masak by torturing implementors.
21:06 pmichaud since   for lines() { slip; .say }   is really    for lines() <-> $_ { slip; .say }
21:06 TimToady normal binding has to have already entered the block in some sense, or there's no lexpad
21:06 mauke I propose a 'handwave' primitive
21:07 pmichaud more directly:
21:07 masak pmichaud: I can think of a mechanism that does this, but that mechanism breaks the code down using a CPS transform.
21:07 pmichaud lines().for( -> $x { slip; say $x; } )
21:07 * TimToady thinks using CPS to goto where I am already is silly :)
21:07 masak pmichaud: that's also what Continuations::Kinda does, by the way.
21:08 TimToady but I'm all in favor of pessimizing slip vs normal code
21:08 masak +1
21:08 pmichaud so, slip has to know what block has been called, and has to re-bind the parameters to the next set of arguments coming from the iterator, all without leaving the scope.
21:08 TimToady otoh, we're still trying to avoid overt requirements for continuations
21:08 masak I think if I get macros and Qtrees where I want, a sufficiently motivated macro programmer would be able to do CPS transforms on Perl 6 code.
21:09 masak so no need for actual continuations.
21:09 masak just arduous code tree rewriting.
21:09 * lizmat sneaks away to get some sleep before setting up the Perl booth at T-Dose (http://www.t-dose.org)
21:10 pmichaud so, let's start with a more basic question:  is there a way for a Routine to rebind its parameters from a new set of arguments, short of doing a lot of introspection?
21:11 pmichaud or, actually, any Block, not just a Routine
21:11 * masak doesn't know the answer, but would also like to know :)
21:11 pmichaud reminds me somehow of "callsame", but different.
21:11 masak pmichaud: my intuition is that it sounds a bit "wrong", or counter to the original intent of blocks/lambda calculus.
21:11 TimToady sig ::= args, for some value of sig and args
21:11 masak pmichaud: don't know how strong that objection is/should be, though.
21:12 pmichaud masak: well, that's effectively what 'slip' is saying, I think.
21:12 masak maybe :)
21:12 pmichaud perhaps slip is really a target LABEL
21:12 pmichaud saying "when you do the next iteration, skip forward to this point"
21:12 TimToady .oO(syntax : sugar :: semantics : ratpoison)
21:13 pmichaud but that kind of blows the "continuation line" model out of the water, I think.
21:13 masak pmichaud: in my mental model, it's the start of a new "basic block", in moar's meaning of the word.
21:13 masak pmichaud: so yes, a kind of anonymous label.
21:13 dalek rakudo/nom: 5b716e8 | (Elizabeth Mattijsen)++ | src/core/Array.pm:
21:13 dalek rakudo/nom: Fix .perl for typed arrays
21:13 dalek rakudo/nom:
21:13 dalek rakudo/nom: This is really fixing a symptom rather than the cause, because the real problem
21:13 dalek rakudo/nom: is that the iterator on the typed array is returning the wrong thing.  Since
21:13 dalek rakudo/nom: this gets me into gimme and reify land, I opted for this solution, so that at
21:13 dalek rakudo/nom: least .perl roundtrips for typed arrays.
21:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b716e8d3c
21:16 pmichaud I think I want to see a few code examples using 'slip' first.
21:16 masak I have no idea how we ended up discussing the inclusion of `slip` into Perl 6 this seriously :/
21:17 TimToady what, we were serious?!?
21:17 masak that was not really ever my intent. at least I don't remember it being so :)
21:17 pmichaud well, it got added to S04, which instantly impacts my GLR thinking.  :-/
21:17 masak pmichaud: I'm sorry it got added to S04.
21:17 masak pmichaud: I'll be happy to remove it, if that makes your life easier.
21:18 TimToady well, apparently it's marked conjectural
21:18 pmichaud it only makes my life easier if someone doesn't come back and add it back later :)
21:18 masak I remember at many times wishing I could *add* `slip` through sufficiently flexible Perl 6 extension mechanisms.
21:18 * masak goes ahead and removes `slip` from S04
21:18 masak I don't want to impact pmichaud's thinking.
21:19 pmichaud at the moment it feels to me like one of those things that feels nice at first blush but really needs real code examples to figure out what it should do and how it should work
21:19 masak *nod*
21:22 dalek specs: 3be145c | masak++ | S04-control.pod:
21:22 dalek specs: Revert addition of 'slip' to S04
21:22 dalek specs:
21:22 dalek specs: 'slip' may (or may not) be a nice+useful feature, but we're not ready to
21:22 dalek specs: add it to core just now. In GLR we have more pressing concerns.
21:22 dalek specs:
21:22 dalek specs: This reverts commit 24850d6b665913be797067a5c80e8d3fdfc03c1b.
21:22 dalek specs: This reverts commit e4c5b10b3bed23d270f50208b9e4c621c18dacba.
21:22 dalek specs: review: https://github.com/perl6/specs/commit/3be145ca3e
21:24 masak phew.
21:25 TimToady but it's still in the history, so we're Not Safe
21:25 TimToady :)
21:25 PerlJam cry havoc and let slip ... be reverted
21:25 colomon more pressing concerns++
21:26 raydiak .oO( slippery slope )
21:26 woolfy1 joined #perl6
21:26 pmichaud r:  say (1,2,3,Nil,4).flat.perl
21:26 camelia rakudo-{parrot,moar} 315ec6: OUTPUT«(1, 2, 3, 4).list␤»
21:27 pmichaud am I correct in believing that in the current spec Nil should not be removed from that list?
21:27 TimToady that's what current spec says, but nobody's been able to fix it
21:27 lizmat_ joined #perl6
21:27 pmichaud okay, I think I'm going to attempt that first.
21:27 pmichaud (next week)
21:28 pmichaud it feels like a useful ledge, plus we need to figure out how much will break as a result.
21:28 TimToady maybe we need $Nil and @Nil :)
21:28 pmichaud s/ledge/plateau/   # or some other thing that means "intermediate step"
21:29 pmichaud it seems to me that fixing Nil ought to be something that can be done w/o full GLR
21:29 TimToady yeah, it seemed that way to several of us before...
21:29 pmichaud and if it can't, then it's vitally important to know why
21:29 TimToady yup
21:31 TimToady at one point I tried putting in an Empty that meant (), and then started changing Nil to Empty where it wanted () semantics, but that broke pretty quick, don't remember where
21:31 TimToady might even have been in niecza
21:31 pmichaud adding an Empty is probably the wrong way to go
21:31 TimToady I just wanted to detangle the concepts, wasn't intending to make Empty visible to the user
21:32 TimToady but a lot of places treat Nil as nominal
21:32 TimToady and () ain't too nomianl
21:32 TimToady *inal
21:32 TimToady again, may be remember niecza here...
21:32 pmichaud well, Nil has had a number of meanings added to it since its original () days
21:34 TimToady and at least in niecza, there were lots of places where the parser relied heavily on Nil meaning ()
21:35 TimToady afair, to be fair
21:36 erkan joined #perl6
21:40 TimToady but to be sure, I also tried to fix it in rakudo, and was terribly successful :)
21:41 TimToady but mostly due to lack of familiarity with internals, which doesn't apply in the current situation :)
21:41 pmichaud indeed.  :)
21:41 pmichaud anyway, that'll be my Sunday or Monday activity, I think.
21:42 gamo joined #perl6
21:43 pmichaud gotta make sure my name keeps showing up in the release announcement credits.  :)
21:43 gamo Can a sub be passed as a parameter to another sub in perl6?
21:43 TimToady absolutely
21:43 pmichaud gamo: yes.
21:44 TimToady we love higher-order programming
21:44 gamo as a reference?
21:44 pmichaud r: my xyz($x) { say $x; };   (1,5,10).map(&xyz)
21:44 camelia rakudo-{parrot,moar} 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Type 'xyz' is not declaredâ�¤at /tmp/tmpfile:1â�¤------> [32mmy xyz[33mâ��[31m($x) { say $x; };   (1,5,10).map(&xyz)[0mâ�¤Malformed myâ�¤at /tmp/tmpfile:1â�¤------> [32mmy [33mâ��[31mxyz($x) { say $x; };   (…»
21:44 TimToady everything is a reference, to the first approximation
21:44 pmichaud errr
21:44 pmichaud r: sub xyz($x) { say $x; };   (1,5,10).map(&xyz)
21:44 camelia rakudo-{parrot,moar} 315ec6: OUTPUT«1␤5␤10␤»
21:45 pmichaud or, if you prefer something more perl 5-ish:
21:45 pmichaud r: sub xyz($x) { say $x; };   map  &xyz, 1, 5, 10;
21:45 camelia rakudo-{parrot,moar} 315ec6: OUTPUT«1␤5␤10␤»
21:45 FROGGS m: sub foo($a, $b) {}; say &foo; say &foo.arity
21:45 camelia rakudo-moar 315ec6: OUTPUT«sub foo (Any $a, Any $b) { #`(Sub|67371904) ... }␤2␤»
21:45 gamo It's ok, very good.
21:46 TimToady m: my $xyz = { .say }; (1, 5, 10).map($xyz)
21:46 camelia rakudo-moar 315ec6: OUTPUT«1␤5␤10␤»
21:46 TimToady m: my $xyz = *.say; (1, 5, 10).map($xyz)
21:46 camelia rakudo-moar 315ec6: OUTPUT«1␤5␤10␤»
21:46 FROGGS gamo: every operator in Perl 6 is a subroutine
21:46 TimToady m: say 1, 1, &infix:<+> ... *
21:46 camelia rakudo-moar 315ec6: OUTPUT«1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 70140873…»
21:46 FROGGS (most a multi subs btw)
21:48 FROGGS are*
21:50 gamo ok, and what VM is better: parrot or moar in terms of speed?
21:50 TimToady these days, moar wins
21:51 gamo by a little or...?
21:51 TimToady r: my $start = now; for 1..1000000 {}; say now - $start
21:51 camelia rakudo-parrot 315ec6: OUTPUT«3.03667792␤»
21:51 camelia ..rakudo-moar 315ec6: OUTPUT«0.39324787␤»
21:52 TimToady well, not quite an order of magnitude in that case
21:52 TimToady of course, it depends on what you are doing
21:53 gamo a lot of rand use
21:53 TimToady r: my $start = now; for 1..1000000 { rand }; say now - $start
21:53 camelia rakudo-parrot 315ec6: OUTPUT«3.41162567␤»
21:53 camelia ..rakudo-moar 315ec6: OUTPUT«0.5773421␤»
21:54 gamo ok, I need to recompile, then
21:54 virtualsue joined #perl6
21:54 immortal joined #perl6
21:54 immortal joined #perl6
21:54 gamo thank you!
21:55 TimToady don't mention it :)
21:58 * raydiak is mildly surprised that an empty loop iterating over a constant list of constants gets executed at all
22:01 TimToady well, obviously the *intent* is a timing loop, so maybe it's out-smarted you :)
22:03 raydiak heh, indeed, it does do that more than never :)
22:03 pierrot joined #perl6
22:03 * avuserow .oO( All C++ does is improve C's reputation )
22:05 raiph joined #perl6
22:24 sftp_ joined #perl6
22:28 FROGGS sooo, now panda can create test reports ala https://gist.github.com/FR​OGGS/5b25776e1ce3f297cb05
22:28 FROGGS who fancies writing a service that receives such reports and displays it nicely?
22:29 tadzik a builtin emmentaler? Nice!
22:29 tadzik I can write a server that gathers these :)
22:29 tadzik but for the displaying part a frontend wizard is necessary
22:30 dylanwh What sort of frontend would be required? How fancy we talkin' here? :)
22:31 FROGGS just something bootstrappy and it will be awesome :o)
22:31 tadzik I've no idea, but my frontend is now going to sleep :)
22:31 FROGGS *g*
22:31 FROGGS gnight tadzik
22:32 dylanwh I could do something bootsrappy.
22:35 FROGGS would be interesting to see a matrix like in here: http://static.cpantesters.org/distro/S/SDL.html
22:35 FROGGS though, we also have three backends, and I don't know what is more important, operating system or vm
22:35 FROGGS (or both or nothing or a mix or...)
22:35 dylanwh perhaps two different cuts?
22:36 FROGGS probably, yeah
22:36 dylanwh "by VM" and "by OS", whichever one you're on has tabs/etc to the others
22:36 dylanwh that is, on the by VM view, you can switch OS
22:36 FROGGS yeah
22:37 FROGGS "Perl version" might be "rakudo compiler release version" for now
22:38 FROGGS I push my stuff to branches now, perhaps somebody likes to try
22:38 FROGGS though, it only works on moar atm... parrot and jvm need a new op called nqp::closefhi
22:38 erkan joined #perl6
22:38 dylanwh I'll see if I can through together a fun prototype over the weekend. Sounds like fun. :)
22:39 FROGGS bootstrap is fun.. at least for me :o)
22:39 dylanwh (and something I can actually contribute to perl6 :-D)
22:39 FROGGS *g*
22:39 FROGGS dylanwh++
22:40 raydiak might also work to have VM & OS lumped together in one series like 'linux/moar', 'win/moar', 'linux/jvm', etc
22:40 dylanwh that may look nicer, a *3 multiplier isn't horrible
22:41 raydiak and well-volunteered, dylanwh++ :)
22:42 raydiak and tadzik++
22:43 japhb joined #perl6
22:43 avuserow joined #perl6
22:43 sqirrel_ joined #perl6
22:44 [particle] joined #perl6
22:45 gtodd joined #perl6
22:45 erkan joined #perl6
22:47 dalek nqp/closefhi: 9f2b16d | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
22:47 dalek nqp/closefhi: map nqp::closefhi on moar (parrot and jvm are TODO)
22:47 dalek nqp/closefhi: review: https://github.com/perl6/nqp/commit/9f2b16dc61
22:48 dalek rakudo/closefhi: 3999da8 | (Tobias Leich)++ | src/core/IO/Handle.pm:
22:48 dalek rakudo/closefhi: implement IO::Handle.close-pipe, which returns the exit code
22:48 dalek rakudo/closefhi: review: https://github.com/rakudo/rakudo/commit/3999da8602
22:48 ggoebel111111110 joined #perl6
22:53 dalek panda/reporter: 98ea6ec | (Tobias Leich)++ | / (7 files):
22:53 dalek panda/reporter: implement Panda::Reporter, which saves reports to disk for now
22:53 dalek panda/reporter:
22:53 dalek panda/reporter: This is WIP. It will create a test report file once a dist installation is attempted.
22:53 dalek panda/reporter: See this example of a FAIL: https://gist.github.com/FR​OGGS/5b25776e1ce3f297cb05
22:53 dalek panda/reporter: Next step is to submit these reports for review to a web service.
22:53 dalek panda/reporter: We also need to ask the user for permission to generate and send these reports.
22:53 dalek panda/reporter: review: https://github.com/tadzik/panda/commit/98ea6ec2da
22:58 FROGGS .tell leont Would it be of any interest for you TAP::Harness that you can now read from a pipe and also get the exit code?
22:58 yoleaux FROGGS: I'll pass your message to leont.
23:00 FROGGS gnight #perl6
23:01 raydiak good night FROGGS
23:02 rjt_pl joined #perl6
23:09 rjt_pl joined #perl6
23:36 BenGoldberg joined #perl6
23:36 grettis joined #perl6
23:46 j4jackj joined #perl6
23:52 timotimo FROGGS: cpantesters.org is cool, but ... all of the data on a single page
23:53 Tekk_ timotimo: that's nice imo
23:53 Tekk_ lets you use ctrl+f
23:54 Tekk_ all on one page with bookmarks to div is the best way to do it
23:55 timotimo hmm.
23:55 timotimo it's good that the json button and the rss and yaml buttons are right at the top there
23:56 timotimo actually i'd find it interesting to have a little angular app like our profiler pages
23:56 timotimo because you can't just crunch that data in your browser
23:58 timotimo i'd also suggest using actual text instead of little images to have 90 degrees rotated headings for tables :P

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

Perl 6 | Reference Documentation | Rakudo