Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-03

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:05 jakesyl joined #perl6
00:05 jakesyl when will this be finished?
00:09 jakesyl 14 yers?
00:11 leont I heard perl 5 isn't finished yet either, after 27 years
00:11 jakesyl Still updating, but production ready, I just want to know if perl 6 is worth learning, or if it will ever make a comeback
00:12 fhelmberger joined #perl6
00:12 leont That is a difficult question
00:14 leont Production ready is not particularly well defined. I'd say I expect it to be production ready in 1-2 years by my definition of production ready, but wiser men don't make predictions.
00:14 jakesyl True, let me put it more simply, what's stopping perl 6 from being "Ready" right now
00:14 leont Regardless of that I believe it's worth learning, because it's a rather fascinating and expressive language.
00:14 jakesyl I already know perl5 by the way, and it's fun
00:15 leont Feature-wise it's pretty much there already, but the implementation needs to be optimized in a number of places, and the ecosystem needs to grow too. And various bugs need to be fixed.
00:15 aborazmeh joined #perl6
00:16 jakesyl I love the TMTOWTDI philosiphy, but why can't you get a corporate sponsor to speed up development
00:17 leont Corporations are invested in their existing stack
00:17 jakesyl Why isn't perl6 considered an evolutionof perl5
00:18 leont By whom?
00:18 leont The two have kind of split track, but perl 6 is certainly an evolution of perl 5, perl 5 just hasn't stopped evolving itself.
00:20 jakesyl I think for perl6 to reach the level of use it had before it'd have to be easy to use, because right now python does basically whatever perl does, and doesn't require $ signs in front of variables, perl 6 in order to continue being used and developed has to gain new, highschool/college age users all you need is one big company using perl6 and you g
00:20 jakesyl uys would take off like crazy
00:21 leont Perl 6 will not win the world by being a clone of something else, that much is sure
00:22 jakesyl So what is it, now?
00:22 timotimo and the problem really isn't sigils :)
00:22 leont It has plenty of other things to speak for it though. It's a more adaptable language than anything else I've ever seen, that alone should make it remarkably versatile and future-proof.
00:22 jakesyl timotimo, they're annoying like semicolons in java it's just a pet peeve of mine, like why couldn't constants have $ and variables be normal
00:23 timotimo constants don't have sigils in perl6 :P
00:23 timotimo but the sigils are saner in perl6 than they were in perl5
00:23 leont It's concurrency model is actually usable, unlike pretty python/perl5/ruby/etc… that's actually quite a killer feature
00:23 jakesyl adaptable how? The only reason I bothered to learn perl was TMTOWTDI andruby has that now
00:23 timotimo we have "sigil invariance" now, which means the sigils behave more like separate namespaces
00:23 leont Grammars are also really awesome
00:24 jakesyl very true, it's quite useful for nlp, mostly because it was developed by a linguist
00:24 _slade_ Ruby also broke backwards compatibility a million times, which soured it for me a lot
00:24 leont Ruby's DSL are really just cute API's with comma's in random places unless you actually know ruby.
00:24 jakesyl oh, that makes better sense timo
00:24 leont Perl 6 will allow you to define real DSLs, without losing your sanity
00:25 jakesyl ya, but as soon as rails came out ruby became big it sucked before rails ( in terms of usage)
00:25 leont True. Every language needs a killer framework it seems. Node did something similar for server-side javascript.
00:25 jakesyl Okay let me ask this, let's say it's ready in... a eek how are you going to 'launch' who's going to add this to their stack
00:25 jakesyl you're right leont does perl6 have anything like that?
00:26 leont No, that's what I meant with we need more ecosystem
00:26 timotimo i don't agree grammars are "useful for nlp", they are useful for all kinds of data (though our handling of binary data is currently a bit lacking)
00:26 jakesyl Oh okay, well wouldn't it make more sense to launch it first, get a codeacademy tutorial up (I can gurantee you this will get you a ton of users) and let users build the ecosystem
00:27 jakesyl timotimo so is pythons
00:27 leont It can be done, coming up with ideas isn't all that hard, but it hasn't been done yet.
00:27 timotimo jakesyl: pythons grammars?
00:27 timotimo jakesyl: as in pyparsing?
00:28 timotimo oh, wait
00:28 timotimo you weren't refering to the grammars only
00:28 leont I think a good asynchronous web programming framework could be that killer framework, but ETOOEARLY
00:29 b2gills If you like TMTOWTDI these all are anonymous code that adds two values: ( * + * ), ( -> $a, $b { $a + $b } ), ( sub ($a,$b){ $a + $b } ), ( {$^a + $^b} )
00:30 timotimo b2gills: and also &infix:<+> should be in that list
00:30 timotimo though &infix:<+> has the added benefit of being able to add 1 or 0 values together, too
00:30 jakesyl yes timotimo
00:30 timotimo jakesyl: i am convinced that the way we attack concurrency and asynchrony is quite neat
00:31 jakesyl compared to python
00:32 jakesyl and leont if i had time I would so develop that, so could I actually talk to someone about getting a perl6 tutorial on codeacademy, I think that would really get you a big userbase
00:32 timotimo and i'm confident that Grammars in perl6 can reach a vastly higher level of power, expressivity and at the same time retain clarity as compared to any regex or grammar thing i've encountered so far (which i have to admit is ... not that many)
00:33 jakesyl I agree, for data analyzing perl is the way to go
00:33 timotimo jakesyl: there's still things that are itching us before we want to call rakudo ready to release upon the world; the jvm implementation lacks a few of the newest asynchronous I/O features we've prototyped on MoarVM, iterating over lazy lists is needlessly slow (which is at the top of our most brilliant mind's todo lists)
00:33 jakesyl So what's the learning curve from perl5 to perl6
00:33 timotimo did that get cut off somewhere?
00:33 timotimo i can't answer that, as i've come from python instead
00:34 _slade_ jakesyl: It's not too rough (speaking as someone coming from P5 learning P6 now)
00:34 jakesyl So who's the perl6 project leader
00:34 tony-o jakesyl: it's fairly small until you start exploring some of the new features
00:34 jakesyl ton-o like what?
00:34 jakesyl tony-o *
00:34 tony-o IO is more intuitive in p6, sigils make more sense
00:35 timotimo i think it'll be liberating to get rid of some of the crazy things
00:35 jakesyl is perl6 still good for networking?
00:35 tony-o grammars and regex are different but easily backwards compatible, regex being a major leap forward (in my experience)
00:35 timotimo almost all special variables have been thrown out (or replaced with attributes on specific objects or at least given long explanative names)
00:35 timotimo "use strict" is the default, "no strict" has only just been implemented last week
00:35 timotimo there is no longer "wantarray", thank god
00:35 tony-o jakesyl: what kind of networking?
00:35 _slade_ is no strict the default for -e?
00:36 timotimo we have had sub signatures for a *long* time, as well as multiple dispatch
00:36 timotimo _slade_: that is correct
00:36 timotimo jakesyl: we're currently missing read-write buffers (or was that blobs?) which makes networking a bit more of a hassle than it needs to if you want to handle binary data a lot
00:36 timotimo but for text-only data, our TCP stuff is good already
00:36 timotimo nobody bothered to implement UDP on MoarVM yet, i believe
00:36 timotimo not sure if we have UDP on parrot or JVM
00:37 timotimo which i agree is not that cool.
00:37 tony-o there is no confirmation of udp
00:37 jakesyl haha I hated wantarry, I haven't really gone in depth with perl5  (in terms of collaboration) how does TMTOWTDI effect collaboration/readability
00:37 timotimo jakesyl: did you ever touch XS at all?
00:38 jakesyl ya they're like c/c++ "wrappers" right?
00:38 timotimo much worse
00:38 timotimo you needed to write XS code in order to interface with c/cpp libraries
00:38 b2gills If you only know P5 at its most basest level, then it doesn't take long to get the same level of knowledge in P6
00:39 timotimo but essentially you're allowed (or even encouraged) to fiddle with perl5's internal data structures
00:39 timotimo on Perl 6 however, we have a super nice NativeCall library that makes interfacing with C level stuff super convenient
00:39 * timotimo back to playing teh vidya game
00:39 jakesyl sounds very fun, so in terms of more advanced functions, how similiar is perl to php (I'm aware that php was originally a perl mod pack)
00:39 b2gills timotimo: there recently was a grant proposal to make Inline::C usable as a replacement for XS
00:40 timotimo b2gills: that's too slow, we've already had Inline::C for at least 2 years :P
00:40 b2gills PHP isn't even as advanced as Perl5, let alone Perl6
00:40 timotimo (though i'm not sure what exact features it has)
00:41 b2gills It would essentially create all of the XS for you, so it would be faster than Inline::C
00:43 timotimo b2gills: once MoarVM is able to jit NativeCall calls, you should hold on to your handlebars really tight, because that'll be crazy fast
00:44 timotimo that may be a bit too much
00:44 timotimo but the overhead will be pretty small
00:44 b2gills I really think that once there are more widespread languages ported to NQP things are going to get real interesting real fast
00:45 timotimo i'm not 100% sure about that
00:45 timotimo nqp is a really cool language to write a compiler in
00:45 timotimo but will people actually consider that?
00:45 timotimo nine may continue his Inline::Perl5 work by creating Inline::Python for perl6, which would be pretty cool, but other than that, i have *no* clue what level of interest to expect
00:46 awwaiid many competitors these days. LLVM, javascript, jvm
00:46 daxim_ joined #perl6
00:47 b2gills jakesyl: I would recommend reading through the synopsis ( http://perlcabal.org/syn/ )
00:47 jakesyl your considering javascript a perl competitor?
00:47 jakesyl oh nevermind
00:49 jakesyl Anyone here actually know Haskell
00:50 timotimo a bit, yeah
00:50 leont Given Javascript's ubiquitiy, a js-on-nqp may be interesting actually. Other than that, I'm not sure.
00:50 timotimo there's others that know lots of haskell
00:50 timotimo er, not necessarily lots
00:50 timotimo but surely more than me
00:50 timotimo our first actually working compiler was written in haskell
00:50 b2gills Image if Reticulated Python was ported directly to NQP, then type declarations would speed up the program rather than slow it down
00:51 jakesyl I know enough haskell to write a javascript compiler, is that compiler still under development?
00:51 timotimo type annotations don't actually do that much for performance in our case
00:52 timotimo jakesyl: no, it's been practically abandoned a long time ago and kept on life support for a bit
00:52 BenGoldberg joined #perl6
00:52 timotimo two months ago or so we stopped running it against our specification test suite
00:52 jakesyl Shit, any way I could help, what's your current compiler written in
00:52 timotimo feel free to have a look at it, it's called Pugs
00:52 timotimo in perl6
00:53 jakesyl Wait your perl6 compiler is written in perl6?
00:53 b2gills Yes, yes it is
00:53 jakesyl but how...
00:53 araujo joined #perl6
00:53 b2gills Or rather a limited form of it called NQP
00:54 jakesyl Elaborate please
00:54 timotimo to be fair, a subset
00:54 raiph joined #perl6
00:54 japhb Bootstrapping.  It's what's for dinner^W^W^Whow great compilers are made.
00:54 timotimo well, not a clean subset
00:54 b2gills Originally NQP was written in PIR for Parrot
00:54 jakesyl Parrot Virtual Machine, Okay I get it know
00:54 timotimo parrot is on the way out nowadays
00:55 b2gills Then NQP got some cross compiling support to get it onto Java, and later MoarVM
00:55 jakesyl I've heard
00:55 timotimo parrot got us really far
00:55 timotimo but moarvm is going to carry us to the finish line
00:56 jakesyl So you guys think perl can become a frequently used, mainstream language again?
00:56 b2gills Really I think Rakudo should maintain at least 3 backends
00:56 b2gills I don't think any language can get to where Perl5 was in the 90s
00:57 timotimo jakesyl: i've heard someone say that a huge portion of people who were writing terrible code in perl before went towards php and continued writing terrible code there ;)
00:57 b2gills Good riddence
00:57 jakesyl PHP documentation is the worst in the world, have you guys seen it it's all user example
00:57 jakesyl s
00:57 jakesyl But php's not used for scripting anymore, it's become a web framework
00:58 leont php was never used for scripting
00:58 b2gills PHP always was a web framework ( it used to be called Perl Home Page tools )
00:58 jakesyl Python replaced(ish) perl in terms of scripting and I think ruby will replace python and hopefully perl6 will replace urby
00:58 leont No, nothing will be what perl 6 was in the 90s
00:58 leont perl 5
00:58 jakesyl Ya, so theres no way people migrated from php to perl
00:59 jakesyl also I was 1 year old when the 90s ended, what was it like
00:59 leont It will be python, ruby, perl5 and perl 6 and other living side by side as a scripting language
00:59 leont the goal is to get a solid slice of that, not to obliterate the others. That is not realistic.
00:59 jakesyl currently you can't compare perl5 to python
00:59 b2gills I was programming in VBA in the 90s, so I don't know
01:00 b2gills ( as a teenager )
01:00 jakesyl I started programming visual basics in 2008 to mod flash games
01:01 jakesyl look at perl on here: http://githut.info/
01:02 jakesyl also perl was 12 in 2013 http://adambard.com/blog/top-gi​thub-languages-for-2013-so-far/
01:05 leont That says little, really
01:06 jakesyl true, but in general perl is less known than python and ruby
01:06 tony-o i think it's just less talked about
01:07 leont github has always been rubyland
01:07 leont It came out of the rails scene, it just happened to get users from other scenes by coincidence
01:08 b2gills It's even written in Ruby
01:08 jakesyl haha true, but that just shows perl needs a good web framework behind it to be popular
01:09 leont It has a bias towards cool stuff, and perl 5 hasn't been hip since the dot com crash
01:09 jakesyl What websites that you know of are written in perl6
01:09 leont None? Cause we don't have that web framework yet
01:09 tony-o perl has mojo which is p great
01:09 jakesyl didn't perl5 though?
01:09 jakesyl oh ya
01:09 leont Perl 5 has plenty of them
01:09 jakesyl also perl5 is still considered the most badass language, people just don't use it
01:09 leont Catalyst, Mojo, Dancer, Web::Simple
01:10 tony-o catalyst was the other one i was trying to think of :-)
01:10 leont Rumours of its death aren't helpful, that is for sure
01:10 jakesyl Even general public considers perl to be a badass language, and that's all because of this clip: https://www.youtube.com/watch?v=VSKoVsHs_Ko
01:11 jakesyl let's be honest django sucks too
01:12 timotimo i don't think django sucks
01:12 timotimo then again, i haven't done terribly much with it either
01:12 timotimo i started a tiny project with pyramid, that seemed pretty nifty
01:13 jakesyl Compared to rails, It's terrible I still love php the best, perhaps it's because I've been contributing to wordpress for 7 years now
01:14 jakesyl one of my earliest memories is sitting on the computer with emacs open fixing a simple wordpress core bug
01:14 leont php is easy to start hacking, but a horrible mess of a language to actually build stuff in
01:15 tony-o the only thing i've found in php that i liked was redbean
01:15 raydiak (reading backlog) imho the defining quality of p6 is that it allows all of the strengths we've mentioned and a ton more to be utilized comfortably and cohesively in a huge range of styles and levels of simplicity-vs-control
01:15 raydiak it takes "what you want how you want it" to extremes (for better or for worse)
01:15 tony-o i think the learning curve for p6 is probably easier than p5
01:16 jakesyl I've seen things built in wordpress, that are more complicated than stuff written in C it's ridiculous it's just supposed to be a blogging software
01:16 tony-o i don't know if that is what you were getting at
01:16 leont See http://eev.ee/blog/2012/04/09/php-a-fra​ctal-of-bad-design/http://eev.ee/blog/2​012/04/09/php-a-fractal-of-bad-design/ for a better explanation than I could possibly give
01:18 jakesyl tony-o who was that too?
01:19 tony-o raydiak:
01:19 jakesyl if php was intended for perl users why isn't it more TMTOWTDI in it's philosiphy
01:20 grondilu panda$ ./rebootstrap.pl
01:20 grondilu ==> Bootstrapping Panda
01:20 grondilu ===SORRY!===
01:20 grondilu Missing or wrong version of dependency 'src/gen/m-BOOTSTRAP.nqp'
01:20 grondilu ^what did I do wrong?
01:21 leont jakesyl: php didn't have design ;-)
01:21 leont That's the problem with it
01:21 jakesyl but why not
01:21 leont It was organically grown
01:21 jakesyl if it was designed by perl programmers it should have
01:21 Mso150 joined #perl6
01:21 jakesyl Oh there was no real plan behind it
01:21 japhb Something broke Panda today (at least on r-p):
01:22 japhb ==> Bootstrapping Panda
01:22 japhb ==> Fetching File::Find
01:22 japhb No such method 'cleanup' for invocant of type 'Str' in block  at bin/panda:21 in sub MAIN at bin/panda:19 in sub MAIN at bin/panda:21 in block <unit> at bin/panda:46
01:22 jakesyl quick side question, does this channel have an irc bot?
01:22 japhb jakesyl: Several
01:22 grondilu m: say "Hi, jakesyl"
01:22 camelia rakudo-moar 024272: OUTPUT«Hi, jakesyl␤»
01:22 japhb .seen grondilu
01:22 yoleaux I saw grondilu 01:22Z in #perl6: <grondilu> m: say "Hi, jakesyl"
01:23 japhb And there's one that keep irclogs
01:23 japhb *keeps
01:24 jakesyl oh cool
01:27 timotimo irclog.perlgeek.de
01:28 jakesyl Ya i;ve been looking at that
01:30 raiph jakesyl: do you use irc much?
01:31 jakesyl Ya, my custom made client blows though
01:31 jakesyl I think I'm going to switch back to irssi
01:32 raiph what is the client written in?
01:32 jakesyl Ruby, which I am terrible at
01:36 raiph You're better than me. :)
01:36 raiph Did you base your client on an existing project?
01:37 jakesyl No, did it from scratch, which is why it is very buggy
01:37 raiph Time to write another in P6. :)
01:38 jakesyl I'll be working on it :D
01:38 raiph :)
01:38 tony-o p6 eval bot in p6? :-)
01:38 japhb There is existing IRC bot code in Perl 6
01:39 tony-o oh is it already written in 6?
01:39 jakesyl what's it called?
01:39 japhb https://github.com/TiMBuS/Net--IRC/
01:39 raiph jakesyl: gotta run. hope to see you on channel another day. 'nite #perl6
01:40 jakesyl 'nite raiph
01:45 jakesyl left #perl6
01:52 FROGGS_ joined #perl6
01:55 avuserow joined #perl6
02:04 noganex_ joined #perl6
02:09 Hor|zon joined #perl6
02:35 * grondilu fails in caching the MandelBrot function:
02:35 grondilu m: sub MBrot($z) { +(0, * **2 + $z ... *.abs > 2)[^20] % 20 }; say MBrot(rand + rand*i) xx 10;
02:35 camelia rakudo-moar 024272: OUTPUT«3 5 0 4 5 11 0 4 0 0␤»
02:36 grondilu m: sub MBrot($z) { (state %){$z} //= +(0, * **2 + $z ... *.abs > 2)[^20] % 20 }; say MBrot(rand + rand*i) xx 10;
02:36 camelia rakudo-moar 024272: OUTPUT«5 5 5 5 5 5 5 5 5 5␤»
02:36 timotimo did you know "is cached" has an implementation nowadays?
02:36 grondilu I thought it wasn't quite reliable
02:37 grondilu m: sub MBrot($z) is cached { +(0, * **2 + $z ... *.abs > 2)[^20] % 20 }; say MBrot(rand + rand*i) xx 10;
02:37 camelia rakudo-moar 024272: OUTPUT«0 10 4 8 0 4 5 4 4 5␤»
02:37 grondilu on the other hand I will have to cache in a way that preserves the symmetry
02:38 grondilu so I'll use something like (state %){$z.re ~ '|' ~ $z.im.abs}
02:39 grondilu so in any case I'd like to know what I did wrong.
02:40 raydiak are there differences between rules and tokens besides sigspace?
02:49 grondilu it has to be written somewhere in S02 or S05 but it's not very easy to find.
02:50 grondilu m: sub MBrot($z) { (state %){$z} //= do { +(0, * **2 + $z ... *.abs > 2)[^20] } }; say MBrot(rand + rand*i) xx 10;  # If I had a do {...}, it works.
02:50 camelia rakudo-moar 024272: OUTPUT«4 20 3 3 4 6 5 3 4 7␤»
02:50 timotimo i believe that's the only difference
02:51 grondilu those differences should be clarified in S99 imho
02:52 raydiak I'm having a problem that goes away when I change rules to tokens: https://gist.github.com/ra​ydiak/70f73bc4f65f35f20553 anyone have any ideas?
02:53 raydiak though tbh I don't really know grammars at all, and don't know if I'm even supposed to do what I'm doing...can you have loops in your rule structures?
02:53 timotimo grammars are bad at left-recursing btw
02:54 raydiak what does that mean?
02:55 timotimo i dunno
02:55 timotimo i think it's just super slow
02:55 raydiak no, I mean left-recursing, don't think I know that term
02:55 grondilu raydiak: that won't solve your issue, but you can write token operator { < + - * / > }
02:56 raydiak grondilu: oh that makes sense...thanks
02:57 raydiak this is just an example of course, idk if I can even write it like this, don't know how precedence would be handled for one
02:58 raydiak but even if I do it different in the end, I would like to know what I'm doing wrong (or report the bug)
02:58 colomon raydiak: does it seem like it's stuck?  Because it seems like, as is, expression will call operation which will call expression which will call operation, recursing forever.
02:59 raydiak colomon: right, but why does it work when I use tokens instead?
03:00 colomon I'm not sure.  Have you tried using the grammar tracer on it?
03:00 timotimo eats whitespace?
03:00 timotimo er ...
03:00 raydiak there's not even any whitespace in "1" :)
03:00 timotimo oh, duh
03:00 raydiak dunno about the grammar tracer, haven't tried a grammar before today
03:01 colomon whitespace has to be, though, doesnt it?  Isn't the only difference between token and rule that rule has :sigspace on?
03:01 raydiak good point, how to people debug these things, that is a better question
03:01 timotimo the regular debugger also lets you single-step through grammar matching
03:01 raydiak colomon: I thought so, but that doesn't explain the behavior I'm seeing
03:02 colomon raydiak: I'll bet you it does, we just don't understand how yet.
03:02 raydiak timotimo: heh, I haven't tried the regular debugger either...maybe I should
03:02 * colomon has doewnloaded the program and is installing Grammar::Debugger
03:03 colomon woah, that explodes quickly.
03:03 raydiak colomon: quite possible
03:04 colomon raydiak: oh, actually NoProblem.parse("1") goes into an infinite loop too.
03:04 colomon for me.
03:04 raydiak huh
03:05 colomon comment out the Problem.parse line and see what happens for you?
03:05 colomon btw, if you change it to rule expression { <value> | <operation> }, it works fine for the string "1"
03:05 raydiak just prints out a match and exits normally
03:06 colomon weird
03:06 colomon rakudo version?
03:06 raydiak like earlier today
03:06 raydiak This is perl6 version 2014.09-81-g89abcf2 built on MoarVM version 2014.09-12-gb9e24ee
03:07 colomon hmmm, yours is more recent than mine.
03:08 raydiak either way, I should not expect loops like that to work, correct?
03:08 * colomon is rakudobrewing
03:08 colomon raydiak: that's my thought, yes.
03:08 colomon it's okay (I think) for them to be mutally exclusion, but you need to prioritize the branch that breaks out.
03:09 * colomon suspects someone else out there has a better way of explaing and/or doing this.
03:11 raydiak I do see what you mean though
03:11 colomon Grammar::Debugger actually worked really well for this one.
03:12 raydiak if I put value first, will it ratchet at the first value in like "1+1", and never try to match the operation?
03:13 raydiak I guess I should go try this grammar::debugger, sounds like it might answer my questions
03:13 colomon …. probably?
03:14 raydiak wonder how rakudo does it...you can pretty much put and expression anywhere you can put a value, like what I'm trying to accomplish
03:14 raydiak *put an expression
03:14 raydiak including inside an expression
03:19 * colomon is looking at Rakudo's grammar
03:20 grondilu raydiak: I was look at Pray the other day.  You know, it's actually quite easy to look at the image file while it's being rendered.  With imagemagick for instance, you can just do display -update 1, and the view will update every seconds
03:20 grondilu *looking
03:21 grondilu that makes all the ASCII preview thing a bit pointless
03:22 raydiak indeed, it should have that feature and many others
03:23 raydiak though the ascii preview will always be there, I do a lot of work over ssh and such
03:23 raydiak (be there as an option I mean)
03:25 grondilu what would be nice also would be to render the pixels in a random order, so that we don't have to wait until the focus goes into interesting parts.
03:25 raydiak there is hilbert order rendering in the (broken) concurrency branch
03:25 * colomon is unable to build panda on the latest rakudo?
03:25 colomon afk # bedtime
03:26 raydiak I saw other reports of panda build failures today too
03:33 raydiak grondilu: if you have any interest, feel free to hack on pray...there is a lot of LHF both performance-wise and feature-wise, Rl has just been keeping me from personal project for a while now
03:34 raydiak *projects
03:48 raydiak Grammar::Debugger sure is slick
03:54 raydiak grondilu++ I see now why you mentioned the preview...thanks, fixed now
03:56 cbk1090 joined #perl6
03:57 kaare_ joined #perl6
04:11 Hor|zon joined #perl6
04:12 dalek perl6-roast-data: 53eda60 | coke++ | / (4 files):
04:12 dalek perl6-roast-data: today (automated commit)
04:12 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/53eda60f08
05:11 ClarusCogitatio joined #perl6
05:20 ecocode joined #perl6
05:22 kaare_ joined #perl6
05:23 grondilu raydiak: I'm considering using Pray as a use case example for my Geometric Algebra if I ever manage to master these stuff.
05:24 grondilu my Geom Alg *module* I mean
05:25 grondilu what is clear is that this is currently so slow that it's a nice way to test Perl6 speed.
05:31 SamuraiJack_ joined #perl6
05:42 Alina-malina joined #perl6
05:49 grondilu one thing that could be done would be to separate IO from computations.  You don't want your IO to block your computations.  I've just tested the idea on mandelbrot:  https://gist.github.com/gro​ndilu/a5d200996b2d6f09dbaa   It works nicely.
05:56 rindolf joined #perl6
06:12 Hor|zon joined #perl6
06:13 fhelmberger joined #perl6
06:21 DarthGandalf joined #perl6
06:29 moritz we should have a much simpler API for doing non-blocking IO
06:31 gtodd1 joined #perl6
06:31 japhb grondilu: The problem with using a channel for that is that you force task switches on every iteration
06:32 japhb (IIRC that was one of the primary motivators for the Supply design -- not forcing a task switch unless the user requested it.)
06:33 wk joined #perl6
06:36 moritz (or you could just put the whole stuff into an array and write it at the end :-)
06:37 esaym153 joined #perl6
06:45 FROGGS [Coke]: the jvm spectest time is back to normal?
06:46 FROGGS [Coke]: ohh, just seen that rakudo-jvm was not included in the last run :/
06:47 nine timotimo: I estimaye it'd take about one or two rainy weekends to port Inline::Python tp Perl 6...
06:47 nine typing on a phone sucks...
06:54 anaeem1 joined #perl6
06:59 zakharyas joined #perl6
07:03 virtualsue joined #perl6
07:03 masak morning, #perl6.
07:06 Mso150 joined #perl6
07:10 slavik joined #perl6
07:11 nwc10 good *, masak
07:13 masak I used to like that greeting, but it feels oddly empty after * and ** became singletons :P
07:13 masak like it's all the same somehow
07:15 nwc10 good +0200, masak
07:15 nwc10 (I shall try to get that right this time)
07:16 masak :)
07:16 masak for another 23 days or so...
07:17 gfldex joined #perl6
07:19 lizmat good all(*), #perl6  :-)
07:19 ghostlines joined #perl6
07:24 dalek rakudo/nom: 854ba8d | (Elizabeth Mattijsen)++ | src/core/IO/Spec/Unix.pm:
07:24 dalek rakudo/nom: Fix missing .curupdir breakage
07:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/854ba8d2a1
07:25 lizmat this implies there are no tests for .dir  :-(
07:28 kjs_ joined #perl6
07:34 dalek rakudo/nom: e0d5ddc | (Elizabeth Mattijsen)++ | src/core/ (3 files):
07:34 dalek rakudo/nom: Introduce $*SPEC.slash
07:34 dalek rakudo/nom:
07:34 dalek rakudo/nom: because $*SPEC.rootdir may not cut it.  b2gills++ for spotting
07:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e0d5ddc2be
07:43 Alula joined #perl6
07:44 lizmat hmmm... it appears I don't have a panda commit bit
07:44 Ven joined #perl6
07:45 lizmat could someone apply https://gist.github.com/li​zmat/99c2c85c9c8fb63870c6  or give me a panda commit bit ??
07:47 vukcrni joined #perl6
07:48 kjs_ joined #perl6
07:51 Ven .tell pmurias it does through stuff like that: `expect(actual).to be >  expected`
07:51 yoleaux Ven: I'll pass your message to pmurias.
07:51 Ven .tell pmurias or it abuses method_missing and operator overload to produce cute DSLs like Squeel I talked about earlier
07:51 yoleaux Ven: I'll pass your message to pmurias.
07:51 JimmyZ joined #perl6
07:51 JimmyZ grondilu: https://gist.github.com/grondilu/a5​d200996b2d6f09dbaa#comment-1311532
07:52 Ven .tell pmurias but the most interesting of those will probably be "wrong": https://github.com/sconover/wrong :-)
07:52 yoleaux Ven: I'll pass your message to pmurias.
07:53 Ven alright, back to writing production perl6 code now :)
07:55 tadzik lizmat: you should now have a commit bit :)
07:55 lizmat tadzik++  :)
07:55 tadzik lizmat++ :)
07:55 dalek panda: 29e0bcb | (Elizabeth Mattijsen)++ | lib/Panda/Fetcher.pm:
07:55 dalek panda: Fix Panda breakage caused by S16|S32/IO refactor
07:55 dalek panda: review: https://github.com/tadzik/panda/commit/29e0bcb02b
07:55 lizmat generally, the meme ".IO.path" should be replaced by ".IO"
07:56 darutoko joined #perl6
07:56 lizmat since .IO returns an IO::Path already nowadays
07:56 lizmat actually, that piece of code showed the madness of the pre-refactor quite nicely
07:57 lizmat first, .IO made an IO::Handle object (which you would normally just use for reading/writing)
07:57 lizmat and then it would turn that into an IO::Path object (for checking existence and doing 'dir' and .e
08:03 dalek panda: 7398d28 | (Elizabeth Mattijsen)++ | / (3 files):
08:03 dalek panda: Use $*CWD instead of cwd()
08:03 dalek panda: review: https://github.com/tadzik/panda/commit/7398d2806f
08:05 dalek panda: aa0acc1 | (Elizabeth Mattijsen)++ | lib/Panda/Fetcher.pm:
08:05 dalek panda: Use .dirname instead of deprecated .directory
08:05 dalek panda: review: https://github.com/tadzik/panda/commit/aa0acc1f71
08:05 Hor|zon joined #perl6
08:08 lizmat tadzik: bootstrap still failing because of test errors in Shell::Command
08:08 lizmat :-(
08:09 tadzik oh
08:10 lizmat where can I find the test file to know what the reason for the error is?
08:24 jnthn lizmat: Presumably https://github.com/tadzik/S​hell-Command/tree/master/t
08:24 jnthn lizmat: Which are checked out under ext in Panda, iirc
08:24 lizmat found it
08:26 denis_boyun_ joined #perl6
08:26 Ven he, heather really does a lot of stuff
08:29 lizmat yup, it's purple and smells nice  :-)
08:31 Ven err, I was talking about the contributor "heather". I'm kinda lunatic, so I just say it here, and oftentimes people misunderstand what I say because I make no sense
08:31 Ven though, the "real" heather also is great (I just learned the meaning!)
08:32 * Ven prefers the smell of lavander, which is kinda purple as well
08:35 masak Ven: what's the "a lot of stuff" that heather does? I've missed it, it seems.
08:35 Ven masak: as I've said, I'm talking about the contributor named "heather" on github
08:36 masak yes, I know you are. and I know who she is, roughly.
08:36 masak I follow her on Twitter.
08:36 Ven alright, will use "she" from now on.
08:37 Ven yeah, I watch her twitter as well
08:37 jnthn masak: Turns out she'd contributed to the file I linked a few mometns ago :)
08:37 masak lizmat: if you permit me to bikeshed ever so slightly -- "slash" seems a Unix-y view of the path separator. https://github.com/rakudo/rakudo/commit/e0d5ddc2be
08:37 lizmat dirsep ?
08:37 masak lizmat: in Japan, for example, the Windows path separator is the yen symbol.
08:37 masak lizmat: pathsep, p'haps?
08:38 jnthn .oO( slash gordan, savior of the file system... )
08:38 lizmat no, pathsep is for what you use to separate ENV<PATH>
08:38 Ven masak: (and she does a lot of idris/haskell/f# and other stuff, and she "follows"? me on twitter)
08:38 Ven err, on github* not twiter
08:39 Ven keyboard--
08:39 lizmat masak: first I need to fix panda / Shell::Command
08:39 jnthn but yeah, slashes are used for various things, so it's probably better to name it after the use case.
08:41 lizmat dir-sep then
08:42 Ven masak: is it really the yen symbol? Kinda funny
08:43 Ven .oO( I$m¢Stuck€Here )
08:43 jnthn lizmat: Or dirsep if we're using names like curdir elsewhere, maybe... :)
08:44 jnthn But yeah, that's much better.
08:44 lizmat we already have path-sep in Distro
08:44 jnthn What's the difference? :)
08:45 lizmat it's for separating what is in ENV<PATH>
08:45 jnthn Oh, *that* kind of path. :)
08:45 lizmat it's ':' in unixes, and ';' on Win32
08:45 jnthn Right
08:49 FROGGS lizmat: about aa0acc1, please don't follow deprecations in panda that quickly so that panda HEAD still keeps working on the latest compiler/star releases
08:49 lizmat ah, good point, I'll revert
08:49 lizmat and reapply after the next release, ok ?
08:50 FROGGS[mobile] joined #perl6
08:50 kjs_ joined #perl6
08:50 jnthn Can also git branch 2014.09-updates aa0acc1
08:50 jnthn Before reverting
08:50 jnthn And push the branch
08:50 jnthn So that then it's there waiting for us :)
08:51 jnthn uh, 2014.10 :)
08:51 dalek rakudo/nom: d69a874 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
08:51 dalek rakudo/nom: Rename .slash to .dir-sep
08:51 dalek rakudo/nom:
08:51 dalek rakudo/nom: Slash is too culturally specific, masak++
08:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d69a8745cb
08:54 dalek panda: 921f7e8 | (Elizabeth Mattijsen)++ | lib/Panda/Fetcher.pm:
08:54 dalek panda: Don't de-deprecate until next release
08:54 dalek panda:
08:54 dalek panda: This reverts commit aa0acc1f71dcb033e7c8cea0be4bfa411f1f5e71.
08:54 dalek panda: review: https://github.com/tadzik/panda/commit/921f7e8bf6
08:55 Hor|zon joined #perl6
09:01 kjs_ joined #perl6
09:01 anaeem1_ joined #perl6
09:01 lizmat actually, I think the above problem is deeper:
09:01 anaeem1_ joined #perl6
09:02 lizmat I guess I shouldn't deprecate IO stuff until *after* the next release
09:07 lizmat jnthn: rmdir is currently implemented as: @filenames.grep( *.IO(:$SPEC,:$CWD).rmdir )
09:08 lizmat the Shell::Command.rm_rf test stops failiing if I put a "1;" after the rmdir() command
09:09 lizmat or if I put an .eager in sub rmdir  :-(
09:09 jnthn lizmat: Then...the grep is now wrongly returhning an empty list?
09:10 lizmat lemme check that
09:10 jnthn Uh, yes, do put an eager in there
09:10 jnthn People do *not* expect rmdir to work lazily :)
09:10 Ven lizmat: does `eager lines` works like `lines(:eager0`
09:10 Ven )`*? :)
09:10 kjs_ joined #perl6
09:10 lizmat Ven: I wish, maybe in the future
09:11 lizmat part of te GLR
09:11 Ven that's how it's specced, at least :P
09:11 lizmat *the
09:11 lizmat yup
09:11 jnthn yeah, :eager is kinda a hack that should go away post-GLR.
09:11 * Ven re-read s01/02/03 and now knows what andthen/orelse should do :P
09:11 leont joined #perl6
09:11 lizmat jnthn: indeed, empty
09:11 jnthn In favor of...well...non-sucking performance without it.
09:11 Ven I keep learning things when readng those, though now I learn less :P
09:12 jnthn lizmat: Putting the .eager on there fixes the tests though? 'cus I think it's needed anyway... :)
09:12 lizmat yes, doing that now
09:14 ibo2perl6 joined #perl6
09:14 Hor|zon joined #perl6
09:16 lizmat jnthn: although I'm not convinced being lazy is necessarily a problem  :-)
09:17 dalek rakudo/nom: 07d6050 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
09:17 dalek rakudo/nom: Eagerness is better than laziness
09:17 dalek rakudo/nom:
09:17 dalek rakudo/nom: for mkdir, unlink, rmdir and chmod  :-)
09:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/07d6050084
09:18 virtualsue joined #perl6
09:20 lizmat this unbreaks panda a bit, now at not being able to write bytecode  :-(
09:21 FROGGS[mobile] hmmm
09:21 pecastro joined #perl6
09:22 dalek roast: e5c5288 | jnthn++ | integration/advent2012-day06.t:
09:22 dalek roast: Make test not depend on make install; Win32 fix.
09:22 dalek roast:
09:22 dalek roast: Since we often run "make spectest" before "make install", relying on
09:22 dalek roast: "lib" being installed somewhere already is wrong. Also, the usual
09:22 dalek roast: line-ending tweak for making the test happy on Windows.
09:22 dalek roast: review: https://github.com/perl6/roast/commit/e5c528816d
09:22 jnthn lizmat: I'm quite convinced it's a problem; folks expect rmdir will be imperative and actually do the deletion :)
09:22 FROGGS[mobile] would be quite handy to smoke panda on HEAD an the last two releases me thinks
09:23 dalek rakudo/nom: 041c89a | (Elizabeth Mattijsen)++ | src/core/IO/ (2 files):
09:23 dalek rakudo/nom: Undeprecate some things until 2014.10
09:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/041c89a2c9
09:23 Ven what's the difference between .eager and .gimme(*) ?
09:23 Ven why not use .sink() here?
09:24 lizmat jnthn: ===SORRY!===
09:24 lizmat No object at index 377
09:24 lizmat build stage failed for panda: Failed building lib/Panda/Builder.pm
09:24 FROGGS[mobile] lizmat: the deprecation message itself causes trouble?
09:24 lizmat does that ring a bell ?
09:25 lizmat FROGGS[mobile]: not sure, the error message changed after removing the deprecation message
09:25 lizmat so that would indicate some influence,  :-(
09:26 FROGGS[mobile] sounds like your rakudo build is broken
09:26 jnthn That tends to mean outdated pre-comp files or mis-ordered pre-comping.
09:26 FROGGS[mobile] I'd just rebuild nqp+rakudp before digging deeper
09:26 FROGGS[mobile] lizmat: you do rebootstrap.pl. right?
09:27 fhelmberger joined #perl6
09:27 jnthn Ugh, S22-package-format/local.t depends on "make install" having been run too, by the looks of it, and it's much less obvious (to me) how to fix that one...
09:27 * lizmat just nuked install and rebuilds from scratch
09:27 lizmat jnthn: will look at that one as well
09:27 jnthn lizmat: Ah, cool
09:28 jnthn lizmat: We've gradually built up quite a collection of test failures on Windows
09:28 jnthn lizmat: I've been working to reduce them. :)
09:28 lizmat jnthn++
09:28 lizmat those are not really visible to me  :-(
09:29 lizmat I bet all the clang warnings in MoarVM are not visible to you  :-)
09:29 jnthn Aye :)
09:29 jnthn Well, for a while there were few enough that I could keep a baseline in my head
09:29 FROGGS[mobile] jnthn++
09:29 lizmat src/strings/unicode.c:42257:115: warning: passing 'unsigned char *' to parameter
09:29 lizmat of type 'const char *' converts between pointers to integer types with
09:29 lizmat different sign [-Wpointer-sign]
09:29 jnthn But over the last months it got to the point I really couldn't
09:30 jnthn If I exclude S17 things that are likely flappy, I'm now down to 4 issues.
09:30 jnthn Will be 3 after local.t fixes :)
09:31 jnthn 2 are because utf-8 gets mangled somewhere along the way when we shell out.
09:31 FROGGS[mobile] dash_e.t or so, aye
09:31 jnthn And S02-literals/quoting.t
09:32 jnthn The other one that is proving a real pain to find is S26-documentation/07-tables.t
09:32 jnthn If I convert the file to have \n instead of \r\n it passes just fine.
09:32 FROGGS[mobile] dang it, we really need cpandatesters...
09:34 lizmat jnthn: without a make install, I get a completely clean spectest, also for the S22 tests ??
09:35 FROGGS[mobile] btw, I toyed around with a bootstrapish marketplace.perl6.org as a frontend for our dists on cpan
09:36 FROGGS[mobile] and I think we should set up our own service that recieves test results...
09:36 lizmat jnthn: alas, same problem after a complete rebuild  :-(
09:37 jnthn lizmat: OK, then we must have something platform-specific going on...
09:37 jnthn lizmat: In which case, I guess I keep that task :)
09:37 lizmat jnthn++
09:38 lizmat FROGGS[mobile]: also after a rebootstrap  :(
09:39 FROGGS[mobile] request: someone please write Panda::Reporter...
09:39 FROGGS[mobile] lizmat: :/
09:39 lizmat Ah, there seems to be specific for Panda::Builder to build itself
09:41 masak Ven: "The history of the path separator in Japanese and Korean Windows" -- http://blogs.msdn.com/b/oldnewthi​ng/archive/2005/10/14/481044.aspx
09:42 masak <lizmat> I guess I shouldn't deprecate IO stuff until *after* the next release
09:42 masak lizmat: things like that -- would it make sense to document those in some kind of "rakudo star release cycle guidelines" thing?
09:43 masak even if they're not set in stone, just having them reified somewhere seems like good use of community artifacts.
09:43 lizmat I think they would have to be in module developer guidelines
09:44 FROGGS[mobile] also btw, now that we can install stuff from cpan, we need to work on NativeCall and Compress::Zlib portability issues, as well es better fallback from nativecall subs to pure perl6 subs
09:44 lizmat or at least panda / core developer guidelines
09:44 lizmat it's not really a release thing, it's a developer thing, really
09:45 lizmat FROGGS[mobile]++
09:45 FROGGS[mobile] jnthn: what do you think about running the body of a nativecall sub when the C lib is not available?
09:45 masak lizmat: I see. but they are community expectations on... module developers?
09:46 lizmat perhaps, definitely on core / panda developers  :-)
09:46 masak right, ok.
09:46 jnthn FROGGS[mobile]: Not sure that's the right way to go...
09:46 masak the thing jnthn mentioned, having a branch and a naming scheme, sounds very sane too.
09:47 masak even if it ends up not always being needed.
09:47 masak or something like a TODO-after-2014.10-star-release.md document somewhere.
09:47 jnthn FROGGS[mobile]: I can see we'd want some kind of fallback mechanism...
09:47 jnthn FROGGS[mobile]: But it feels more like you want to do it for the whole set of subs...
09:48 FROGGS[mobile] hmmm
09:49 FROGGS[mobile] then we need to improve that 'try require' mechanism, in case there are still issues
09:50 FROGGS[mobile] though 'try require' already sounds like being forced to be slooow
09:51 xfix joined #perl6
09:52 FROGGS[mobile] jnthn: or, we provide namespace(s) that provide fallback subs
09:55 timotimo o/
09:55 jnthn m: say "a\n" ~~ /^^\s*$$/
09:55 camelia rakudo-moar d69a87: OUTPUT«Nil␤»
09:55 jnthn m: say "a\r\n" ~~ /^^\s*$$/
09:55 camelia rakudo-moar d69a87: OUTPUT«「」␤␤»
09:55 jnthn That's why Pod tables are bust on Windows.
09:56 dalek modules.perl6.org: 4e93ffc | asb-cpan++ | web/index.tmpl:
09:56 dalek modules.perl6.org: tweaked module list and filter
09:56 dalek modules.perl6.org:
09:56 dalek modules.perl6.org: replaced list by table, apply sorting to module name and description,,
09:56 dalek modules.perl6.org: make search field bigger and centered. To make diffing a lot more
09:56 dalek modules.perl6.org: complicated, I also removed one level of indent for head and body
09:56 dalek modules.perl6.org: section (sorry).
09:56 dalek modules.perl6.org: review: https://github.com/perl6/modul​es.perl6.org/commit/4e93ffc1e4
10:00 pmurias joined #perl6
10:00 lizmat joined #perl6
10:02 masak jnthn: that looks clearly wrong to me.
10:02 masak \r\n are whitespace.
10:03 jnthn masak: That's not the problem
10:03 jnthn masak: The problem is that it doesn't match, so then goes right one char
10:03 jnthn masak: Then ^^ says "oh, I'm after a \r, that'll do", and $$ says "oh, I'm before a \n, that'll do"
10:03 masak oh!
10:03 masak ...wow.
10:03 jnthn Yeah... o.O
10:04 masak that's quite deep.
10:04 jnthn And given \r actually *is* a valid line sep on...older mac...or something...
10:04 masak I will need to think about that one.
10:04 jnthn I don't immediately know what to do about it.
10:04 masak jnthn: right.
10:04 jnthn For now, it's easy to patch the Pod code, since it's already dealing with full lines always
10:04 lizmat this is a similar problem with .lines
10:04 jnthn So its use of ^^ and $$ is kinda overkill; if you already know you have a line, ^ and $ are good enough
10:04 jnthn But yeah, there is a deeper issue here
10:04 masak yes, \r was the newline marker on Mac OS 9.
10:05 FROGGS[mobile] I'd think that ^^ would "gobble" \r\n already
10:05 jnthn FROGGS[mobile]: ^^ and $$ don't swallow
10:05 jnthn They're zero-width assertions
10:05 masak jnthn: I think a reasonable expectation is that if you *have* a single line, ^ and $ should act as ^^ and $$.
10:05 kjs_ joined #perl6
10:05 masak jnthn: respectively.
10:06 jnthn masak: Yes, sounds sane. Question is how we get there ;)
10:06 masak question is whether that expectation runs up against something insurmountable, like another more important expectation, or some consistency.
10:06 jnthn Anyway, I'm going to do the wrokaround in Pod.pm so that we don't have Pod-parsing bugs on Windows.
10:07 jnthn And the ^^$$ issue probably deserves an RT.
10:07 * masak submits one
10:08 jnthn lizmat: In my latest spectest run after pulling today, t\spec\S32-io\io-path-unix.rakudo.moar fails 20-21 on Windows, and t\spec\S32-io\io-spec-cygwin.t fails 95.
10:09 masak does it make sense to ask "how does Perl 5 regexes handle this one?"
10:09 masak ?
10:10 dalek rakudo/nom: da3aae7 | jnthn++ | src/Perl6/Pod.nqp:
10:10 dalek rakudo/nom: Unbust Pod table handling with Windows newlines.
10:10 dalek rakudo/nom:
10:10 dalek rakudo/nom: /^^\s*$$/ can end up matching in the middle of \r\n. While this does
10:10 dalek rakudo/nom: want looking into, in this case we already have lines so it's easy to
10:10 dalek rakudo/nom: work around.
10:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/da3aae7b8f
10:10 jnthn masak: Maybe... :)
10:11 jnthn lizmat: I was some commits behind, so just updating now...
10:11 dalek roast: 1f3a867 | (Elizabeth Mattijsen)++ | S32-io/io-path-unix.t:
10:11 dalek roast: Fix tests on Win
10:11 dalek roast: review: https://github.com/perl6/roast/commit/1f3a86760c
10:13 lizmat jnthn: I have no idea what the failure on the cygwin test is...
10:14 lizmat could you tell me what the "got" is ?
10:14 jnthn lizmat: Even with that fix, I still get a failure
10:14 jnthn not ok 20 - relative inverts absolute
10:14 jnthn # Failed test 'relative inverts absolute'
10:14 jnthn # at t\spec\S32-io\io-path-unix.rakudo.moar line 41
10:14 jnthn # expected: 'foo/bar'
10:14 jnthn #      got: 'C:\consulting\rakudo/foo/bar'
10:14 jnthn That's in io-path-unix.t
10:15 jnthn And there is cygwin one:
10:15 jnthn not ok 95 - rel2abs: $("/t1", "/t1/t2/t3") -> '/t1'
10:15 jnthn # Failed test 'rel2abs: $("/t1", "/t1/t2/t3") -> '/t1''
10:15 jnthn # at src/gen/m-CORE.setting line 16355
10:15 jnthn # expected: '/t1'
10:15 jnthn #      got: 'C:/t1'
10:17 xinming_ joined #perl6
10:17 lizmat in the latter test, you could argue that the expectation is wrong ?
10:18 lizmat jnthn: what $*CWD on your system ?
10:19 lizmat *'s
10:19 jnthn > say $*CWD.perl
10:19 jnthn q|C:\\consulting\\rakudo|.​IO(:SPEC(IO::Spec::Win32))
10:23 lizmat I guess I need to make $*CWD a controllable entity as well
10:23 lizmat inside the test
10:29 bjz joined #perl6
10:29 Akagi201 joined #perl6
10:38 Hor|zon joined #perl6
10:38 dalek roast: d13c1a2 | (Elizabeth Mattijsen)++ | S32-io/io-path- (3 files):
10:38 dalek roast: Make IO::Path's test environment controlled
10:38 dalek roast: review: https://github.com/perl6/roast/commit/d13c1a2e85
10:38 lizmat jnthn: how does ^^ work for you ?
10:40 leont Seems on upgrade panda doesn't install anymore :-/
10:41 bjz_ joined #perl6
10:41 kurahaupo joined #perl6
10:43 jnthn lizmat: After that, cygwin.t still fails, the others seem happy
10:43 jnthn not ok 95 - rel2abs: $("/t1", "/t1/t2/t3") -> '/t1'
10:43 jnthn # Failed test 'rel2abs: $("/t1", "/t1/t2/t3") -> '/t1''
10:43 jnthn # at src/gen/m-CORE.setting line 16355
10:43 jnthn # expected: '/t1'
10:43 jnthn #      got: 'C:/t1'
10:44 dalek roast: fc926f7 | (Elizabeth Mattijsen)++ | S32-io/io-path-cygwin.t:
10:44 dalek roast: another fix for cygwin
10:44 dalek roast: review: https://github.com/perl6/roast/commit/fc926f7206
10:44 lizmat and now ?
10:44 lizmat grrr  nvm
10:45 chipotle joined #perl6
10:45 jnthn Nope
10:46 dalek roast: 38b0a3c | (Elizabeth Mattijsen)++ | S32-io/io-path-cygwin.t:
10:46 dalek roast: real fix for Cygwin test failure (hopefully)
10:46 dalek roast: review: https://github.com/perl6/roast/commit/38b0a3cf1b
10:46 lizmat and  now?
10:46 jnthn Nope :(
10:47 jnthn Same failure output too as before, it seems...
10:47 dalek roast: 9a78867 | (Elizabeth Mattijsen)++ | S32-io/io-path-cygwin.t:
10:47 dalek roast: Oops, forgot an .IO
10:47 dalek roast: review: https://github.com/perl6/roast/commit/9a788670aa
10:48 lizmat if this doesn't fix it, I'm out of ideas atm
10:48 colomon smoke test broke hard overnight.  :\
10:48 lizmat colomon: something I did ?
10:48 colomon I don't know.
10:49 colomon I also had trouble with panda on my OS X build just before I went to bed.  I've just gotten up, assessing things now.
10:49 jnthn lizmat: 'friad it doesn't...
10:50 lizmat colomon: there still is (at least) one panda issue
10:50 lizmat when Panda::Builder is trying to build itself
10:50 chipotle joined #perl6
10:50 colomon lizmat: I seem to have rebuilt moar successfully now on the smoker, but broken panda still stops the smoking.
10:51 lizmat colomon: I'm not sure how to fix the Panda::Builder issua atm
10:51 colomon and tadzik isn't around?
10:52 lizmat jnthn: going to focus on panda again
10:52 * masak often finds he would like a NON_FIRST loop phaser
10:52 colomon masak: +1
10:53 lizmat masak probably wants an 'once-not thunk' as well  :-)
10:53 Akagi201_ joined #perl6
10:53 jnthn SUBSEQUENT
10:54 jnthn But something shorter :)
10:54 masak LATER
10:54 masak pity NEXT is taken :)
10:54 colomon REST ?
10:54 masak THEN
10:54 masak I think I like REST, it has a nice ring to it
10:55 masak the use case is anything delimiter-related, by the way
10:55 masak "put in the commas, but only after the first one"
10:55 lizmat why not keep it simple?
10:55 lizmat !FIRST thunk
10:55 masak ooh
10:55 lizmat !once thunk
10:55 masak lizmat: I have no idea what semantics you envision for !once
10:56 masak oh wait, now I do, I think.
10:56 lizmat execute all but the first time
10:56 masak right.
10:56 masak then I don't think !once is a good name for it.
10:56 masak "not once" makes it sounds like "zero times"
10:56 masak though I really dig !FIRST
10:56 jnthn Nah, it's...ugly and confusing :)
10:56 colomon ===SORRY!===
10:56 colomon No object at index 377
10:57 masak and there's something naughty about a phaser starting with a non-alphabetic :)
10:57 jnthn Right
10:57 * masak goes to S04 to see if this would apply to more phasers
10:57 jnthn And given FIRST is an r-value by spec, iirc, then !FIRST is a totally useful thing to write... ;)
10:58 masak oh, troo
10:58 lizmat colomon: yes, that's the problem I'm seeing also
10:58 colomon FIRST … ELSE ?
10:59 masak ugh
10:59 lizmat colomon / FROGGS[mobile]: am I correct in assuming it uses the downloaded version of Panda::Builder to build itself ?
10:59 masak also, FIRST doesn't really run "on first iteration", it runs "on first iteration, befor any ENTER"
10:59 colomon masak: hmmm, I didn't know that
11:00 colomon lizmat: I think so
11:01 prevost joined #perl6
11:02 lizmat so it almost feels I need to commit something first for testing what the problem is...  :-(
11:02 masak colomon: if that semantic feels unexpected, then maybe what you really wanted was `once`
11:03 masak m: sub foo { for ^3 { once say "OH HAI"; .say } }; foo; foo
11:03 camelia rakudo-moar 041c89: OUTPUT«OH HAI␤0␤1␤2␤OH HAI␤0␤1␤2␤»
11:03 masak seems `once` is per function invocation.
11:03 colomon masak: I never user ENTER… is there any other difference between FIRST and ONCE?  (never heard of ONCE that I can recall).
11:04 lizmat masak: once is internally implemented with a state variable
11:04 masak m: for ^2 -> $x { for ^3 -> $y { once say "OH HAI"; say "$x $y" } }
11:04 camelia rakudo-moar 041c89: OUTPUT«OH HAI␤0 0␤0 1␤0 2␤OH HAI␤1 0␤1 1␤1 2␤»
11:04 lizmat colomon: once is what START used to be
11:04 masak lizmat: ah; makes sense.
11:04 masak colomon: note, lowecase `once` (because it's not really a phaser)
11:04 colomon ah
11:04 masak lowercase*
11:05 * colomon doesn't understand why the once block in the example above is executed twice....
11:06 jnthn colomon: 'cus for is really map, and once has state var semantics, so it rusn once per closure clone
11:06 woolfy joined #perl6
11:07 * jnthn is gonna go say hi to folks dans l'office
11:07 jnthn bbl
11:10 laben joined #perl6
11:10 laben hi #perl6
11:12 laben new build today brought down panda, is it known?
11:12 leont laben: I have the same issue
11:13 lizmat we're looking at it...
11:13 laben was it caused by the IO changes?
11:13 lizmat looks like it
11:13 lizmat the problem atm is that Panda::Builder cannot build itself  :-(
11:14 laben mmh, strange, i build it manually and it works fine
11:14 virtualsue joined #perl6
11:14 laben but at the same time fails several tests
11:15 laben indeed, i get this
11:15 lizmat laben: how do you build manually ?
11:15 laben t/builder.t fails 2-4, 6
11:15 laben t/installer.t fails 2-6
11:16 * colomon is trying to bisect in between getting $child ready for school
11:16 moritz office? oh right, it's a work day outside of .de
11:16 lizmat it's not Reunification Day everywhere  :-)
11:16 laben "manually" is not totally true, i use ufo -> make -> make test
11:16 lizmat could you gist the failures for me?
11:17 laben sorry, not an expert, what do you mean?
11:17 lizmat paste the failure on e.g. gist.github.com ?
11:18 laben just a moment
11:19 lizmat colomon: pretty sure it's 5870906
11:21 laben http://pastebin.com/QmYPpG8B
11:21 * colomon builds 9814e864a968356e20f67292ab653cfd3c2f771d to test lizmat++'s theory
11:22 * colomon is turning his machine over to watching Teenage Mutant Ninja Turtles...
11:25 laben i need to get out now, break time is ending
11:25 lizmat laben++
11:25 laben if you need more info, just post it, i'll read the backlog
11:25 laben bb and good work :)
11:26 lizmat hmmm... seems like build is not finding anything
11:33 lizmat lunch&
11:40 salv0 joined #perl6
11:42 pmurias timotimo: nqp is a good language to write a parser in, it's not particulary awesome for writing the rest of the compiler
11:42 yoleaux 07:51Z <Ven> pmurias: it does through stuff like that: `expect(actual).to be >  expected`
11:42 yoleaux 07:51Z <Ven> pmurias: or it abuses method_missing and operator overload to produce cute DSLs like Squeel I talked about earlier
11:42 yoleaux 07:52Z <Ven> pmurias: but the most interesting of those will probably be "wrong": https://github.com/sconover/wrong :-)
11:47 pmurias timotimo: to be fair nqp is completely awesome when compared to pir ;)
11:48 anaeem1 joined #perl6
11:52 pepl joined #perl6
11:53 moritz IMHO NQP isn't bad for writing the action methods either
11:58 pepl joined #perl6
11:59 colomon lizmat: yup, 9814e864a968356e20f67292ab653cfd3c2f771d (the one before 58709063feee03755a21f530842a02f7af43f3d4) works
12:01 lizmat colomon:  told you  :-)  now on to why that causes the breakage of panda :-(
12:01 colomon lizmat: actually, I was just working on verifying that it definitely is 58709063feee03755a21f530842a02f7af43f3d4
12:01 colomon but I'm also looking at 58709063feee03755a21f530842a02f7af43f3d4 to see if anything jumps out at me
12:02 lizmat there's a lot to look at
12:02 colomon was just discovering that.
12:02 lizmat I'm trying to run the panda tests manually
12:02 lizmat would this be a good way?
12:02 lizmat $ perl6 -Ilib -I../Shell-Command/lib -I../File-Find/lib t/builder.t
12:03 lizmat or do I need to be in a specific directory for that to work?
12:04 lizmat yes, looks like...
12:04 lizmat ok, then I got something to work with  :-)
12:04 [Coke] FROGGS[mobile]: no, jvm spectest time is still wonky.
12:04 colomon okay, I can verify that moar-58709063feee03755a21f530842a02f7af43f3d4 can't build panda.
12:05 colomon looks like rm_{f,rf} tests are failing in shell-command.
12:05 lizmat *that* I have fixed, afaik
12:05 moritz [Coke]: fwiw I found IO on host08 to be unbearable slow at times (an 'apt-cache search gtkpod' takes 8..16s when the caches are cold, and less than 2s on a normal VM)
12:05 lizmat File::Find tests are clean
12:06 moritz [Coke]: no idea if that's part of the problem
12:06 bjz joined #perl6
12:06 lizmat Shell::Command tests also clean
12:09 laben joined #perl6
12:09 laben welp, i'm back since i got some free time
12:10 laben mh, can i help somewhat to fix panda?
12:11 laben s/somewhat/somehow/g, dammit need a coke
12:11 lizmat :-)
12:12 laben oh, this irclog thingy is quite useful
12:13 laben btw, is there a quick way to dump some $var a la Data::Dumper?
12:13 moritz laben: say $var.perl
12:14 laben builtin, fantastic, but it doesn't output in a test :/
12:14 Ven joined #perl6
12:14 colomon masak++ # just finished reading yesterday's macro post
12:15 moritz laben: how do you run the test?
12:15 Ven masak: thanks :)
12:15 moritz (you want to use 'note' or 'diag' instead of 'say')
12:15 laben env PERL6LIB=... prove -e 'perl6' t/builder.t
12:15 moritz env PERL6LIB=... perl6 t/builder.t # and you'll see it
12:16 laben moritz: cool
12:17 laben well, it seems i found something
12:17 Ven m: my ($a, @b, $c) = ^10; say $c; # this always makes me sad :(
12:18 camelia rakudo-moar da3aae: OUTPUT«(Any)␤»
12:18 laben lines 69-70 of Builder.pm, it doesnt output anything for the test, but it should
12:18 laben basically, it doesnt find files inside the lib directory
12:18 Ven m: for ^10{ say FIRST 1; }
12:18 camelia rakudo-moar da3aae: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/YXaZTV21E7â�¤Missing blockâ�¤at /tmp/YXaZTV21E7:1â�¤------> [32mfor ^10{ say FIRST 1; }[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        statement m…»
12:18 Ven m: for ^10{ say FIRST { 1 }; }
12:18 camelia rakudo-moar da3aae: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/FlFFlTQOxrâ�¤Missing blockâ�¤at /tmp/FlFFlTQOxr:1â�¤------> [32mfor ^10{ say FIRST { 1 }; }[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        stateme…»
12:19 lizmat laben: yeah, looking at that...
12:19 lizmat but the find itself seems fine, looking at "indir" now
12:20 laben find is fine? then the grep is at fault
12:20 laben @files is empty there
12:20 lizmat it could be looking in the wrong dir
12:21 laben find is not fine, doesnt fine anything. how do i check which dir it's looking into?
12:21 lizmat good question :-)
12:23 Ven I'm looking for the doc of prefix<\\>, it doesn't seem to be in s03?
12:23 lizmat yeah,. looking in the wrong dir
12:24 Ven wrong syn?
12:24 Ven oh sorry
12:24 laben is it because of indir not working?
12:25 Ven nothing seems to explain what \ means in \eqv
12:25 lizmat some interaction with indir, indeed
12:26 pepl joined #perl6
12:27 laben lizmat: found a probable issue, seems easy to fix -> temp $*CWD = $where.path.absolute; is not right
12:28 lizmat yes, that should be .IO.absolute
12:28 laben $*CWD is a q|...|.IO before, a string after
12:28 Ven m: sub bar (|args = \(1,2,3)) {...}
12:28 camelia rakudo-moar da3aae: OUTPUT«===SORRY!===␤At Frame 2, Instruction 4, op 'param_sp' has invalid number (3) of operands; needs 2.␤»
12:28 lizmat but that doesn't fix it :-(
12:28 Ven oh what?
12:28 Ven r: sub bar (|args = \(1,2,3)) {...}
12:28 camelia rakudo-jvm da3aae: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
12:28 camelia ..rakudo-parrot da3aae: ( no output )
12:28 camelia ..rakudo-moar da3aae: OUTPUT«===SORRY!===␤At Frame 2, Instruction 4, op 'param_sp' has invalid number (3) of operands; needs 2.␤»
12:28 Ven is that a moarbug?
12:28 lizmat laben: think I found it
12:30 Ven lizmat: ^ do that look like a moarbug to you?
12:30 Ven m: sub bar (|args = \(1,2,3, 5, 6)) {...}
12:30 camelia rakudo-moar da3aae: OUTPUT«===SORRY!===␤At Frame 2, Instruction 4, op 'param_sp' has invalid number (3) of operands; needs 2.␤»
12:30 lizmat Ven: yes
12:31 Ven alright
12:32 lizmat laben: it's a problem in IO::Path.dir
12:32 Ven created an issue on the moarvm repo
12:33 laben lizmat: got a patch?
12:33 lizmat am testing one now
12:34 lizmat spectesting now
12:34 lizmat not sure if final solution yet
12:34 grondilu 08:36 < moritz> (or you could just put the whole stuff into an array and write it at the end :-)
12:35 laben lizmat: need to change panda too?
12:35 grondilu ^the point was to be able to preview the picture while it is being drawn (e.g. with feh -R 1 <file>)
12:36 pmichaud for RT #122891, I'll argue that ^^ and $$ need to be more aware of the logical newline sequences
12:36 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122891
12:36 lizmat laben: seems to have a similar issue with copy()
12:36 pmichaud ^^ shouldn't match after \r if there's a \n immediately following
12:36 laben lizmat: the issue being?
12:36 lizmat copy not finding the file to copy
12:37 pmichaud $$ shouldn't match between a \r and a \n
12:37 laben cpy from IO or copy from panda?
12:37 lizmat hmmm... dir() is supposed to return strings rather than IO::Paths
12:37 pmichaud I'm afk for a while
12:40 lizmat laben: copy from IO
12:45 guru joined #perl6
12:52 Ven I'll be honest: I really like Rubys' catch/throw.
12:53 Ven (These are *not* the same as Ruby's exception mechanism keywords, raise/rescue/ensure (throw catch finally in java-like languages))
12:53 Ven I guess we can do stuff similar with goto :P.
12:57 Ven m: sub foo { 5 }; say foo + 1
12:57 camelia rakudo-moar da3aae: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub foo at /tmp/tqAY2Trdtk:1␤  in block <unit> at /tmp/tqAY2Trdtk:1␤␤»
12:57 Ven m: sub foo { sub { 5 } }; say foo() + 1
12:57 camelia rakudo-moar da3aae: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤  in sub infix:<+> at src/gen/m-CORE.setting:4480␤  in block <unit> at /tmp/CcGzs76L2g:1␤␤»
12:58 Ven that's a bit inconsistent, though it's probably the best solution
12:58 lizmat it seems that the assumption that dir() returns IO::Path is pretty well embedded everywhere  :-(
12:58 Hor|zon joined #perl6
13:00 lizmat so reverting to that: maybe the spec will need to be adapted as well...  :-(
13:01 lizmat or else we need to add some temporary methods to .Str to catch this deprecation
13:01 laben lizmat: seems to me that it boils down to 'find' which doesnt receive or follow $*CWD
13:02 lizmat yeah, but that's an underlying pb with dir()
13:02 laben should dir() return an absolute path?
13:02 lizmat the next problem I ran into is that dir() returning Str instead of IO::Path, breaks a lot
13:03 lizmat yes
13:03 laben it doesnt
13:03 lizmat it doesn't ?
13:04 lizmat what OS / backend ?
13:04 laben or better, it returns a :CWD part plus a q|...|IO
13:04 laben shouldn't it return simply an absolute path
13:04 laben ?
13:04 lizmat the new spec says: return a list of relative path names
13:05 laben so, it's right
13:05 lizmat maybe the default should be absolute...
13:05 TuxCM joined #perl6
13:06 TuxCM tadzik, how's my slang doing?
13:06 laben nah, just append a .absolute to those uses
13:06 laben i'll try that
13:07 TuxCM perl6: class Foo { has $.x is rw = "x"; method p { my Str $y = $!x }}; Foo.p.say;
13:07 camelia rakudo-jvm da3aae: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
13:07 camelia ..niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
13:07 camelia ..rakudo-{parrot,moar} da3aae: OUTPUT«Cannot look up attributes in a type object␤  in method p at /tmp/tmpfile:1␤  in block <unit> at /tmp/tmpfile:1␤␤»
13:07 moritz TuxCM: needs Foo.new
13:08 grondilu japhb: attempt of a version with a Supply:  https://gist.github.com/gro​ndilu/a5d200996b2d6f09dbaa
13:08 grondilu seems to be drawing the picture but I get:
13:08 grondilu ===SORRY!===
13:08 grondilu Too few positionals passed; expected 2 arguments but got 1
13:08 grondilu at the end
13:09 moritz m: class Foo { has $.x is rw = "x"; method p { my Str $y = $!x }}; Foo.new.p.say
13:09 camelia rakudo-moar da3aae: OUTPUT«x␤»
13:12 dalek evalbot: 85970ab | moritz++ | evalbot.pl:
13:12 dalek evalbot: remove niecza and r-j from p6: and r: targets
13:12 dalek evalbot:
13:12 dalek evalbot: they do not work right now, and there is no use in spamming the channel
13:12 dalek evalbot: review: https://github.com/perl6/evalbot/commit/85970aba7e
13:12 dalek evalbot: 945019a | moritz++ | evalbot.pl:
13:12 dalek evalbot: track nick change
13:12 dalek evalbot: review: https://github.com/perl6/evalbot/commit/945019a9bc
13:12 Ven masak: in your macro blog post, you talk about "AngularJS", not sure what that means?
13:13 moritz Ven: google it?
13:13 Ven moritz: what?
13:13 Ven "AngularJS macros"?
13:13 moritz Ven: angularjs
13:13 Ven I know what angularjs is. No idea how it's related to macros, however.
13:14 moritz Ven: angular includes using HTML as a templating system, and macros are very much like template systems for programming languages
13:14 moritz Ven: I can see why it might serve as an inspiration
13:14 Ven Err... So why "angularjs" instead of "template systems"?
13:15 camelia joined #perl6
13:16 moritz that I don't know
13:16 pmurias angularjs has support for defining new html elements
13:17 Ven pmurias: sure, just like you might have functions and other  in other template languages
13:17 moritz masak: t5?
13:18 Ven t%?
13:19 Ven meh qwerty
13:19 pmurias Ven: they are more like marcos than functions
13:19 Ven pmurias: no, I disagree, these functions generate HTML elements anyway
13:20 moritz Ven: t5 is unrelated to your discussion (and instead related to the last p6 coding contest)
13:20 Ven moritz: oh, nice :-)
13:20 TuxCM http://pastebin.com/PpDKvrd9 <= I do not understand
13:21 pmurias Ven: Perl 6 macros generate and manipulate Perl 6, angular-js directives generate and manipulate HTML
13:21 Ven pmurias: I mean, the only thing that resembles macro is that it's.. "cleaner" than just interpolation HTML strings
13:22 pmurias what's the difference?
13:22 Ven pmurias: right -- I agree with that! I was just wondering why angular of all the template systems
13:22 moritz TuxCM: seems to be a scoping bug of sorts
13:22 TuxCM wtf :) this is my *first* perl6 attempt, and I find a bug?
13:23 moritz TuxCM: bad luck
13:23 laben lizmat: changing indir with s/$where.path.absolute/$where.path.absolute.path/ and build with s/dir => 'lib'/dir => 'lib'.path.absolute/ makes find work, but then it returns absolute paths and the rest of build function is confused
13:23 laben lizmat: what do you think shoudl find return?
13:23 laben should*
13:24 lizmat the underlying problem is really with dir()
13:25 pmurias Ven: have you used angular?
13:25 Ven pmurias: yeah, I have a prod app using it
13:25 Ven and several small toys
13:25 laben lizmat: i don't think it's a problem if dir() returns relative paths, one just needs to use .absolute to convert them
13:26 lizmat yeah, but dir("relative path") is currently borked
13:27 pepl joined #perl6
13:28 laben lizmat: in what way?
13:28 lizmat it doesn't add the "relative path" to the paths
13:31 pmurias Ven: masak in his blog post mentions that he just wants to look at how macros (directives) are defined in angular and look for inspiration
13:32 Ven pmurias: I get that. I'm just surprised AngularJS gets such a piece of the cake
13:32 Ven Anyways...
13:32 pmurias OTOH the angular folk want to change that in the next version so it doesn't seem to be something we should model ourself on ;)
13:33 Ven pmurias: ha, you seem to be more up-to-date about upcoming Angular2.0 stuff than I am then!
13:33 Ven .tell masak In the list of "interesting stuff to look at", elixir is homoiconic has macros and an unified representation (for their AST and other stuff, basically {:+, {1, 2}} for 1+2, where {} is like "tuple")
13:33 yoleaux Ven: I'll pass your message to masak.
13:34 dalek rakudo/nom: faf7805 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
13:34 dalek rakudo/nom: Fix copy() breakage when specifying relative paths
13:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/faf7805f8b
13:34 lizmat that at least is now fixed
13:35 pmurias Ven: I haven't looked at that very closely, just a bit curious what the stuff I'm using is evolving towards
13:35 Ven pmurias: well, we're trying to move angular *out* of our codebase anyway
13:36 masak m: my $sep = "|"; class C { method foo { .say for "foo|bar".split(/$sep/).map(~*) } }; C.new.foo
13:36 yoleaux 13:33Z <Ven> masak: In the list of "interesting stuff to look at", elixir is homoiconic has macros and an unified representation (for their AST and other stuff, basically {:+, {1, 2}} for 1+2, where {} is like "tuple")
13:36 camelia rakudo-moar da3aae: OUTPUT«foo␤bar␤»
13:36 pmurias Ven: why?
13:36 masak m: class C { has $.sep = "|"; method foo { .say for "foo|bar".split(/$!sep/).map(~*) } }; C.new.foo
13:36 camelia rakudo-moar da3aae: OUTPUT«foo|bar␤»
13:36 masak TuxCM: interesting.
13:36 * masak submits rakudobug
13:36 Ven pmurias: it was a failed experiment. Really, really terrible one
13:37 Ven .tell masak also, dylan is pretty interesting. It's a ... scheme/lisp in algol syntax
13:37 yoleaux Ven: I'll pass your message to masak.
13:37 Ven well, dylan started with a lisp-like syntax though...
13:38 PerlJam good * #perl6!
13:38 Ven oh, masak is here actually...
13:38 pmurias Ven: what I'm interested is why it failed, as I'm quite happy using angular
13:39 Ven pmurias: not much of angular's fault, to be honest. It's just that it didn't work out that well with rails...
13:39 TuxCM what is "a\x{00}b" in p6?
13:39 Ven pmurias: also, the guy who started this out basically only had one controller, and basically sent a really big JSON with like 5 nested relations, and sent back the same blob.
13:40 Ven The big problem is that the ecosystem is really rotten
13:40 TuxCM "3\x{00}3" cannot be written as "3\03"
13:42 Ven pmurias: overall, it's the big interaction of things that didn't pan out correctly.
13:43 Ven For example, reloading a ng-repeat, so every plugin needed to rebind, so content was "flashing" before the plugin applied to the new one
13:47 masak Ven, pmurias: I'm not following the conversation that closely, but AngularJS does have scopes, and isolated scopes basically guarantee some measure of hygiene. it's not just messing around with strings; it's on the DOM level with scopes tied in.
13:47 yoleaux 13:37Z <Ven> masak: also, dylan is pretty interesting. It's a ... scheme/lisp in algol syntax
13:47 masak Ven: oki
13:47 Ven masak: sorry, didn't notice you were there :P
13:48 Ven masak: we were only wondering why you put "angularjs" in particular when there are a lot of template engines with lexical scope and others
13:48 masak because that's the one I have experience with.
13:48 Ven I mean, double-way binding was done quite a while ago by other frameworks (GUI ones, IIRC.)
13:48 masak and that's the one I know I have things to be inspired by.
13:48 Ven masak: fair enough :)
13:49 dalek rakudo-star-daily: 6d189a0 | coke++ | log/MoarVM-version.log:
13:49 dalek rakudo-star-daily: today (automated commit)
13:49 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/6d189a0603
13:49 pmurias bbl&
13:51 raiph joined #perl6
13:52 Hor|zon joined #perl6
13:55 lizmat jnthn: am I correct in assuming that nqp::opendir gives relative file names relative towards what *it* thinks is the current dir?
13:56 [Coke] moritz: given that all the jvm stuff is happening via the eval server, that's possible.
13:56 [Coke] moritz: could it be the way I created the swap? Seemed to work ok for a while...
13:57 raiph m: say "a\c0b" # TuxCM ?
13:57 camelia rakudo-moar da3aae: OUTPUT«a␀b␤»
13:58 TuxCM ok, I'll buy that
14:02 b2gills masak: you could fake a NON_FIRST loop phaser
14:02 b2gills m: for ^6 {if (state Bool $)++ { .say }}
14:02 camelia rakudo-moar da3aae: OUTPUT«1␤2␤3␤4␤5␤»
14:05 isBEKaml joined #perl6
14:05 masak b2gills: yes, I ended up using a workaround like that.
14:08 Ven masak: I usually do `for ^6 { if * ^ff * {} }` :{
14:08 Ven :P
14:08 b2gills I'm quite surprised at how quickly I came up with that, I only really started playing around with Perl6 in the last month or so
14:09 pmichaud m: class C { has $.rx = 'bc';  method foo { say 'abcd' ~~ /$!rx/; } };  C.new.foo
14:09 camelia rakudo-moar da3aae: OUTPUT«Nil␤»
14:09 Ven m: for ^6 { if * ^ff * { .say } }
14:09 camelia rakudo-moar da3aae: OUTPUT«1␤2␤3␤4␤5␤»
14:09 Ven Well, whatever that was :P
14:09 Ven oh, alright, it was pmichaud++'s m:
14:10 pmichaud I'm guessing that regexes don't know how to interpolate $!vars
14:10 b2gills Ven: I never used flipflops in Perl5 so that isn't something I would normally have thought of
14:10 pmichaud m: class C { has $.rx = 'bc';  method foo { say $!rx; say 'abcd' ~~ /$!rx/; } };  C.new.foo
14:10 camelia rakudo-moar da3aae: OUTPUT«bc␤Nil␤»
14:11 Ven b2gills: I never used them in ruby (I don't use perl5, but I do a fair share of ruby) either :P. I was just re-reading the advent calendar and it was a good fit
14:11 moritz or maybe the attribute lookup gets the cursor object as invocant?
14:11 pmichaud m: my $rx = 'bc';  say 'abcd' ~~ /$rx/;  # just checking
14:11 camelia rakudo-moar da3aae: OUTPUT«「bc」␤␤»
14:12 dalek rakudo/nom: baa8269 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
14:12 dalek rakudo/nom: Make dir() a bit saner
14:12 dalek rakudo/nom:
14:12 dalek rakudo/nom: Alas, it doesn't fix panda just yet
14:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/baa826975b
14:12 * pmichaud adds details to RT #122892
14:12 * synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122892
14:16 b2gills lizmat: Should .dir really hard-code '.' and '..'? I think it should get them from $*SPEC
14:17 lizmat b2gills: I have no idea why that is there...  it's on my list of things to look at
14:18 lizmat actually, I do
14:18 lizmat nqp::opendir doesn't return . and ..
14:18 lizmat if the test allows for them, they need to be added
14:19 TuxCM in something like «my @list = Q…; for @list -> Str $foo { … }» inside the for loop, can I look ahead what would be the next item in case $foo equals "bar" ?
14:21 treehug88 joined #perl6
14:21 kaare_ joined #perl6
14:23 Ven TuxCM: not without @list.kv and increment the key by hand
14:23 TuxCM thnx
14:24 b2gills lizmat: On VMS the values for updir, curdir, devnull, rootdir etc depend on a system mode https://metacpan.org/source/File::Spec::VMS
14:24 Ven for @list.kv -> $i, $_ { when "bar" { say @list[$i + 1] // fail "Oops" } }
14:24 lizmat b2gills: we don't plan VMS support just yet
14:24 Ven m: my @list = <foo bar baz bar>; for @list.kv -> $i, $_ { when "bar" { say @list[$i + 1] // fail "Oops" } }
14:24 camelia rakudo-moar da3aae: OUTPUT«(timeout)»
14:24 TuxCM nice
14:25 b2gills It would be nice if the only change required is to add IO::Spec::VMS though
14:25 leont b2gills: you're a funny man
14:26 leont Writing an IO::Spec::VMS isn't nearly the hard part
14:26 b2gills True, I meant for .dir to work correctly
14:30 [Coke] I would not go out of our way to add any support for VMS at this point.
14:31 [Coke] In fact, I'd go out of my way to not add any support.
14:34 leont Having experience with portability requirements that included VMS, I would encourage you not to start caring
14:35 Hor|zon joined #perl6
14:36 FROGGS[mobile] joined #perl6
14:40 * lizmat is still struggling with *CWD / cwd / nqp:: strangenes
14:40 lizmat s
14:50 BenGoldberg joined #perl6
14:54 lizmat tadzik: could I also get a commit bit for File::Find and Shell::Command ?
14:56 dalek rakudo/nom: 16232fc | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
14:56 dalek rakudo/nom: Fix various relative/absolute path confusion
14:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/16232fcb3e
14:58 guru joined #perl6
15:05 masak TuxCM:
15:06 masak m: my @things = <cow horse dog cat>; for @things Z @things.rotate -> $current, $next { say "$current", ~(" but cat coming up next" if $next eq "cat") }
15:06 camelia rakudo-moar faf780: OUTPUT«cow␤horse␤dog but cat coming up next␤cat␤»
15:07 moritz and if you don't want the circularity
15:07 masak (.rotate being what it is, you may or may not want to introduce a stop token by the end of the array to prevent what moritz said)
15:07 moritz m: my @things = <cow horse dog cat>; for @things Z @things[1..*] -> $current, $next { say "$current", ~(" but cat coming up next" if $next eq "cat") }
15:07 camelia rakudo-moar faf780: OUTPUT«cow␤horse␤dog but cat coming up next␤»
15:08 masak that works, but has the problem that you're stopping at dog.
15:08 masak i.e. you're not iterating cat any more.
15:08 masak if you want to iterate all elements, use .rotate and the stopper token.
15:09 masak or this:
15:09 masak m: my @things = <cow horse dog cat STOP>; for @things Z @things.rotate -> $current, $next { next if $current eq "STOP"; say "$current", ~(" but cat coming up next" if $next eq "cat") }
15:09 camelia rakudo-moar faf780: OUTPUT«cow␤horse␤dog but cat coming up next␤cat␤»
15:10 masak fsvo "STOP" that doesn't occur naturally in @things
15:10 masak moritz' way works with the above solution, too :)
15:10 dalek panda: 209540b | (Elizabeth Mattijsen)++ | lib/Panda/ (3 files):
15:10 dalek panda: Changes to make local build of other modules work
15:10 dalek panda:
15:10 dalek panda: Committing so that a fetch from Github will get this version, so that
15:10 dalek panda: Panda::Builder can build itself.
15:10 dalek panda: review: https://github.com/tadzik/panda/commit/209540b0c5
15:11 lizmat alas...  :-(
15:12 tadzik lizmat: done and done :)
15:12 tadzik lizmat++ # thanks a lot :)
15:12 lizmat thank you
15:12 lizmat well, we're not there yet  :-(
15:13 lizmat panda is still broken, well at least for me  :-(
15:13 tadzik but we're getting there at least
15:13 tadzik I don't even know what happeend and broke everything :o
15:13 lizmat S16|S32/IO refactor is what happened
15:14 lizmat as far as I can see, all of Panda's tests pass
15:14 lizmat except tester.t, but I got the impression that's intended to fail, right ?
15:15 tadzik well, overally is should pass
15:15 tadzik inside there is a test suite that should fail :)
15:15 tadzik the output is always confusing
15:20 erkan joined #perl6
15:20 erkan joined #perl6
15:22 dalek panda: 85b744b | (Elizabeth Mattijsen)++ | lib/Panda/Builder.pm:
15:22 dalek panda: Another fix that may need to be on github first
15:22 dalek panda: review: https://github.com/tadzik/panda/commit/85b744b6de
15:22 TuxCM jeez, "$buff.split(rx{long expression}, :all)\n.map(~*);" is not allowed :(
15:23 lizmat ah, the newline between ) and . ?
15:23 TuxCM yes
15:23 lizmat what can I say :-(
15:24 lizmat I miss that every now and then as well
15:24 * TuxCM needz a slang!
15:24 TuxCM srsly, I did not expect to run into that many "problems"
15:26 retupmoca m: "a s d f".split(/\s/)\  .map({ say $_ }); # TuxCM: just add a '\'
15:26 camelia rakudo-moar faf780: OUTPUT«a␤s␤d␤f␤»
15:26 TuxCM UGLY!
15:28 ajr joined #perl6
15:29 dalek panda: 8a07955 | (Elizabeth Mattijsen)++ | lib/Panda/Builder.pm:
15:29 dalek panda: Remove special casing for Build
15:29 dalek panda: review: https://github.com/tadzik/panda/commit/8a07955dba
15:29 [Coke] do we want people submitting rakudo moar bugs to moar? do we not care, we'll work on both queues?
15:31 dalek panda: a587aed | (Elizabeth Mattijsen)++ | lib/Panda/Builder.pm:
15:31 dalek panda: That's not it either
15:31 dalek panda:
15:31 dalek panda: This reverts commit 8a07955dba8dc7b02aa6f95f3dca274102729ac5.
15:31 dalek panda: review: https://github.com/tadzik/panda/commit/a587aed266
15:34 Hor|zon joined #perl6
15:36 lizmat I'm am going to get some fresh air and look at the broken panda when I'm back
15:36 lizmat suggestions welcome
15:36 lizmat if all fails, I guess I'll have to revert later tonight :-(
15:38 TuxCM still fails for me on rakudobrew with ! ~/.rakudobrew
15:41 TuxCM http://pastebin.com/6fn8s0VU
15:47 laben joined #perl6
15:48 laben lizmat: are you online?
15:49 masak TuxCM: you and I have discussed the white-space-before-method-dot thing at least twice. (once at YAPC::EU 2008, and once at some NLPW or other).
15:49 laben lizmat: just wanted to report that panda here works fine with latest pull :) good work lizmat++
15:49 masak TuxCM: both times it ended up with me proposing unspace as a solution, and you saying that was ugly. :)
15:49 masak TuxCM: at least you're consistent in your strong, unalterable opinions.
15:49 TuxCM masak, yes, and tadzik proposed a slang for me
15:49 masak I'll believe that's a good solution when I see it ;)
15:50 masak the real answer is that Perl 6 values self-clocking and abhors TTIAR a fair bit more than other languages.
15:50 masak any slang you made would have to bear the consequences of deviating from Perl 6's consistency in that regard.
15:51 leont TTAIR?
15:52 ssutch joined #perl6
15:52 masak I could definitely see a parser make an exception and allow `$obj .method` to mean `$obj.method`... but I can't claim I see "all the way" in terms of the bad side effects that'd introduce.
15:52 masak probably something like "this set of helpful error messages now simply won't happen, oh, and also some clearly faulty programs are now legal"
15:53 masak leont: "Two Terms In A Row". very fundamental Perl 6 parsing concept.
15:53 TuxCM slangs would make that lexically possible
15:53 masak sure they would. as would Cool Macros.
15:53 leont Ah, yes, of course
15:54 masak it's not that it's impossible in any sense. after all, we allow TTIAR in a bunch of special forms, like `if`.
15:54 TuxCM instead of bashing me with my space preference, you could also cheer in joy that I am actually trying to make some perl6 code working :/
15:54 masak didn't mean to come across as bashing. you're far from alone in this opinion.
15:54 TuxCM I love perl6' error messages
15:55 masak I was mostly trying to explain where Perl 6 itself is coming from on this subject.
15:55 TuxCM but I am stunned about twice a minute by the weird whitespace issues I run into
15:55 masak it's not arbitrary, nor to annoy you.
15:55 masak it's a certain type of consistency.
15:56 masak TuxCM: well, for what it's worth, I'm stunned by the way you place your closing braces in code :P
15:56 TuxCM yes, causing me to currently to choose between ugly and very ugly
15:56 masak I was all "is it that tux...?" -- seeing the closing braces -- "...yup." :)
15:56 TuxCM $x =~ s{x}{y}; does not really produce a usable error
15:57 masak m: my $x; $x =~ s{x}{y}
15:57 camelia rakudo-moar 16232f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/YYBM7x696L�Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~�at /tmp/YYBM7x696L:1�------> [32mmy $x; $x =~[33m�[31m s{x}{y}[0m�»
15:57 masak I beg to differ. quite usable.
15:59 TuxCM m: my$x="x";$x~~s{x}{y};$x.say
15:59 camelia rakudo-moar 16232f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/A449IpNHW4â�¤Unsupported use of brackets around replacement; in Perl 6 please use assignment syntaxâ�¤at /tmp/A449IpNHW4:1â�¤------> [32mmy$x="x";$x~~s{x}[33mâ��[31m{y};$x.say[0mâ�¤    expecting…»
15:59 TuxCM following the suggestion. and that helps me no further
16:00 masak quite clear to me.
16:00 TuxCM :)
16:00 masak maybe the error message can be changed to be clear to you, too?
16:00 TuxCM =~ suggest ~~
16:01 TuxCM that is clear
16:01 masak m: my $x = "fox"; $x ~~ s{x} = "y"; say $x
16:01 camelia rakudo-moar 16232f: OUTPUT«foy␤»
16:01 masak that's the "assignment syntax".
16:01 TuxCM ~~ suggests the "assignment" version, but I have no idea what that would be
16:01 masak see ^
16:01 TuxCM ouch, that really differs.
16:01 masak you can still do s{x}{y}
16:02 masak but not together with ~~
16:02 masak I never quite found out why exactly.
16:02 masak I bet TimToady can elucidate.
16:02 * masak tries to find out using the STD log
16:03 masak TuxCM: it really differs, but `s{x} = rhs` is kinda great, too. it completely eliminates the need for the `/e` modifier, for starters.
16:04 dalek perl6-roast-data: 4388ce7 | coke++ | / (4 files):
16:04 dalek perl6-roast-data: today (automated commit)
16:04 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/4388ce7a04
16:13 masak heh.
16:14 masak I traced the decision back to the original definition of sibble in STD.pm
16:14 masak still no sign of an actual decision.
16:14 masak I guess I should have looked in the spec logs instead
16:14 * masak tries that
16:17 moritz (totally OT) for about a year we've tried get our older daughter to tidy up her toys. Not much luck.
16:17 moritz now our younger daughter (6 months) is becoming more mobile, and reaching for all the toys all around
16:18 moritz (and chewing on paper cards and books and all that)
16:18 moritz suddenly, tidying up works much better than before :-)
16:18 masak :D
16:18 masak some unintended consequences can be quite helpful :)
16:19 Hor|zon joined #perl6
16:19 masak in the spec, the decision to allow `s[X] = Y` but disallow `s[X][Y]` is lost in the mists of time. that is, the git trail goes cold.
16:20 masak which means the decision is older than November 2008.
16:20 masak TuxCM: seems I was wrong. `s{X}{Y}` (or any brace characters) are flat-out disallowed in Perl 6. not just after `~~`
16:21 masak I still don't quite see what would be bad about allowing that form. maybe someone else can enlighten us.
16:26 TuxCM m: my@x=("1ab");for @x { s{^(\d+)} = sprintf "%3d:", $1; }; @x.say
16:26 camelia rakudo-moar 16232f: OUTPUT«No such method 'item' for invocant of type 'NQPMu'␤  in method message at src/gen/m-CORE.setting:13332␤␤»
16:26 moritz masak: maybe it's fear of allowing TTIAR? {Y} looks quite term-y
16:27 guru joined #perl6
16:28 masak moritz: I was thinking along those lines too.
16:29 grondilu .seen TimToady
16:29 yoleaux I saw TimToady 2 Oct 2014 04:30Z in #perl6: * TimToady now in Mountain View, CA :)
16:29 BenGoldberg p56: print 'xyz' =~ s/y/b/r;
16:29 camelia p5-to-p6 : OUTPUT«print('xyz' ~~ s:P5:r!y!b!)␤»
16:29 masak moritz: can't quite make that fit, though. I mean, by the time we've seen `s{X}` we might as well say "OK, now we can expect either `= Y` or `{Y}`, both are fine"
16:29 masak moritz: ...and I don't see the problem with that.
16:30 BenGoldberg m: print('xyz' ~~ s:P5:r!y!b!);
16:30 camelia rakudo-moar 16232f: OUTPUT«Cannot modify an immutable Str␤  in sub infix:<=> at src/gen/m-CORE.setting:18284␤  in block <unit> at /tmp/MbzvpmJO2g:1␤␤»
16:30 * TuxCM goes home
16:30 masak moritz: saying that `s{X}` followed by `{Y}` is TTIAR but that `s` followed by `{X}` isn't seems weird.
16:30 TuxCM might be amazed more later this weekend
16:30 masak TuxCM: \o
16:31 FROGGS joined #perl6
16:31 BenGoldberg Can substitution take a :r operator, similar to perl5's /r modifier?
16:31 masak BenGoldberg: I remember #perl6 discussing it. don't remember any conclusion/consensus.
16:31 masak BenGoldberg: one problem is :r is taken for ratcheting semantics.
16:32 BenGoldberg I don't mind if it has a different name.
16:32 FROGGS o/
16:34 BenGoldberg m: my $x = 'xyz'; $x ~~ s:P5!y!b!; $x.say; # can this be golfed to a single expression?
16:34 camelia rakudo-moar 16232f: OUTPUT«xbz␤»
16:36 masak m: say 'xyz'.subst(/y/, 'b')
16:36 camelia rakudo-moar 16232f: OUTPUT«xbz␤»
16:36 BenGoldberg Thans :)
16:36 BenGoldberg Err, thanks :)  (Stpd fngers)
16:37 masak m: sub infix:<r~~>($src, [$rx, $rpl]) { $src.subst($rx, $rpl) }; say "xyz" r~~ [/y/, "b"]
16:37 camelia rakudo-moar 16232f: OUTPUT«xbz␤»
16:57 Hor|zon joined #perl6
16:58 guru joined #perl6
17:02 SamuraiJack_ joined #perl6
17:14 Mso150 joined #perl6
17:18 ajr_ joined #perl6
17:18 moritz BenGoldberg: iirc the feature hinged on finding a good name
17:20 moritz :nomodified/:n or :unmodified/:u might work
17:23 * PerlJam still thinks people should just use the method form if they aren't interested in modifying the string.
17:25 timotimo off topic: ROFL @ Leistungsschutzrecht m)
17:29 masak timotimo: could you provide some context for that?
17:29 Hor|zon joined #perl6
17:30 timotimo OK, so in germany, publishers of print media were upset that google was putting up snippets and sometimes thumbnails for their news stories and such
17:30 timotimo so they lobbied for a law that would protect the hard work of those publishers
17:31 timotimo the law is in effect "if you want to use snippets or thumbnails, you'll have to ask first"
17:31 masak Germany seems to be especially good at this kind of law.
17:31 timotimo however, this one particular group of publishers (Axel Springer Verlage) interprets that like "if you want to use it, you'll have to pay us"
17:31 masak ...of course they would. *sigh*
17:32 timotimo so the obvious step for google was to only lists the headline as a link to the publisher's websites without a snippet and with no thumbnails
17:32 timotimo now that publisher is crying foul: they are being blackmailed by google
17:32 masak those are the yellow books with the horse, no?
17:32 timotimo no, that's a different one
17:32 masak ah.
17:32 timotimo at least i hope so
17:33 timotimo https://en.wikipedia.org/wiki/Axel_Springer_AG vs https://en.wikipedia.org/wiki/Sp​ringer_Science%2BBusiness_Media
17:33 timotimo so their interpretation of the law is not "if you want to use it, you'll have to ask first", it is "you have to use it and you have to pay us"
17:34 BenGoldberg So, I'm guessing that the publisher is now complaining that google isn't showcasing them as well as it does the other news sources?
17:35 PerlJam timotimo: that they are being blackmailed by google is an interesting interpretation.
17:36 go|dfish joined #perl6
17:36 BenGoldberg Blackmail is surely the wrong word, unless we're talking about the publisher's demand for money to use snippets&thumbnails.
17:36 BenGoldberg Extortion, on the other hand... maybe.
17:36 timotimo PerlJam: i'm going to be following this story as it unfolds. the Springer AG is *very* influential and rich
17:36 timotimo BenGoldberg: extortion and blackmail is the same word in german :\
17:37 BenGoldberg In enligsh, blackmail means demanding money, extortion means demanding some sort of action.
17:37 timotimo BenGoldberg: but yeah, that's what they say. google is making their links less appealing, because they don't have images and snippets while the other websites get that
17:37 timotimo ah, in that case it's extortion, yeah
17:38 timotimo i'm pretty sure the Springer AG has their fair share of corrupt politicians sprinkled all over our government
17:39 timotimo their most influential newspaper is the "Bild" (comparable to The Sun that you can get in Britain apparently) - https://en.wikipedia.org/wiki/Bild
17:40 PerlJam If Springer "wins", Google still has the option of saying, we won't show *anything* in this area.
17:40 timotimo i don't think so, PerlJam
17:40 timotimo there may or may not be a right to be listed in search machine's indices
17:41 timotimo anyway; there has been a blog named "Bild Blog" for a long time that's dedicated to pointing out errors, flaws, irresponsible behavior and other such terrible things in the Bild - it has branched out into covering other newspapers as well, though
17:41 timotimo the thought that a huge amount of the "regular people" are reading that newspaper makes me a bit sick
17:44 kurahaupo joined #perl6
17:46 carlin just a small change: https://github.com/perl6/nqp/pull/189
17:48 timotimo gotta run
17:48 PerlJam timotimo: I just looked at bildblog.de and got a laugh.
17:53 [TuxCM] joined #perl6
17:54 dwarring joined #perl6
18:01 carlin tony-o: https://github.com/tony-o/perl6-csv-parser/pull/2
18:14 bartolin joined #perl6
18:29 immortal joined #perl6
18:30 pepl joined #perl6
18:31 * lizmat is back
18:31 lizmat colomon: can you confirm that panda is working for you again?
18:31 colomon lizmat: building moar now
18:31 colomon lizmat: were the patches to rakudo or to panda?
18:32 lizmat both
18:32 colomon k
18:33 colomon lizmat: can confirm the answer is no
18:33 colomon :(
18:34 FROGGS lizmat: it is still broken on my box, and I am already hunting the bug
18:34 colomon I'm getting the exact same No object at index 377 as before
18:34 lizmat :-(
18:34 lizmat FROGGS++
18:34 * colomon decides to rebuild rakudo from scratch, just in case
18:34 lizmat won't make a difference
18:35 lizmat colomon: you're on OS X, right ?
18:35 lizmat I wonder what system laben is on
18:38 pmichaud good afternoon, #perl6
18:39 colomon lizmat: yes
18:39 lizmat pmichaud o/
18:39 colomon lizmat: well, I routinely run on Linux as well, but I checked on OS X
18:39 FROGGS pmichaud: o/
18:39 * lizmat is trying to fix dir() on jvm, which is broken atm
18:42 colomon lizmat: can confirm that panda still fails with a completely fresh Rakudo build on OS X
18:43 lizmat :-(   thanks for trying  :-)
18:44 dalek roast: 02c1d3c | usev6++ | S02-magicals/progname.t:
18:44 dalek roast: Fix referenced ticket number
18:44 dalek roast: review: https://github.com/perl6/roast/commit/02c1d3c15e
18:45 guru joined #perl6
18:45 spider-mario joined #perl6
18:48 spider-mario joined #perl6
18:52 colomon lizmat: thankfully rakudobrew makes it really easy to try.  :)
19:04 Mso150 joined #perl6
19:04 pmichaud next week (at APW) I'm planning to focus on S07 and whatever needs doing for Rakudo's list implementation (more)
19:05 pmichaud it would help a lot to have a comprehensive review of outstanding issues that are still in play for that
19:05 pmichaud I'm thinking of creating a meta-ticket where we can collect the outstanding issues, bug reports, unresolved design issues, etc... does that sound like a useful approach?
19:06 moritz pmichaud: not comprehensive at all, but "performance" is a major thing for me. Profiles show that many applications (even those doing IO) spend 50% and more in the various list reification/iteration methods
19:06 moritz pmichaud: and yes, sounds like a good approach
19:07 pmichaud performance is absolutely something to be included.  examples would help.
19:07 pmichaud I'll create a ticket
19:10 dalek roast: 49d5d2c | (David Warring david.warring@gmail.com)++ | S10-packages/precompilation.t:
19:10 dalek roast: precompilation tests for diamond releationship for RT #122773 hoelzro++.
19:10 dalek roast:
19:10 dalek roast: Implemented using this hint from lizmat++ http://irclog.perlgeek.de/​perl6/2014-09-23#i_9400516
19:10 dalek roast: review: https://github.com/perl6/roast/commit/49d5d2ced7
19:10 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122773
19:10 hoelzro yaaaay
19:10 hoelzro dwarring++ lizmat++
19:12 hoelzro dwarring: I've had that on my personal TODO for a few weeks now, thank you!
19:13 dwarring hoelzro: thanks for the test case
19:13 dwarring I think I've been bitten by that bug a couple of times
19:13 hoelzro I just stumbled upon it =)
19:14 FROGGS lizmat: this rather huge diff unbreaks panda on my box: https://gist.github.com/FR​OGGS/9a327698fccb244ac44b
19:14 FROGGS lizmat: though, I need to golf it down further to be in a position to think about a patch
19:15 lizmat feels like you're basically reverting
19:15 Mso150_a joined #perl6
19:15 FROGGS lizmat: yes, I reverted back to the first good commit, and now I try to isolate something bad :o)
19:16 FROGGS I could already exclude 10 modified source files... but the diff is still huge
19:17 fhelmberger joined #perl6
19:20 Mso150 joined #perl6
19:20 dalek rakudo/nom: f948d73 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
19:20 dalek rakudo/nom: Fix dir() on jvm
19:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f948d73390
19:23 FROGGS though, it is hard to bisect my diff further... looks like I need to take a closer look at what breaks inside panda
19:25 lizmat dwarring: all the S10-packages/precompilation.t tests are failing for me ?
19:25 lizmat wonder if that has something to do with the panda failure
19:27 pmichaud https://github.com/perl6/specs/issues/70   # meta-ticket for list issues
19:27 dwarring lizmat: I built rakudo a couple of hours ago  16232fcb3eb65981ee090528b231aaa39a5bb420
19:28 dwarring I'll pull and rebuild
19:29 lizmat dwarring: what OS are you on?
19:29 lizmat dwarring: don't bother, the next commit is really jvm only
19:29 dwarring 2.6.32-5-amd64 #1 SMP Mon Sep 23 22:14:43 UTC 2013 x86_64 GNU/Linux
19:30 dwarring k
19:30 Hor|zon joined #perl6
19:34 pmichaud Is anyone actively working on RT #122879?  That one seems kinda important.
19:34 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122879
19:34 pmichaud It seems to be the same issue cited in Francis Smit's latest post to p6c, too.
19:35 pmichaud I can confirm the bug did not exist in 2014.08, fwiw.
19:35 FROGGS pmichaud: I probably know how to fix it
19:36 lizmat pmichaud: focused on fixing panda atm
19:36 FROGGS so, I'll fix it this weekend
19:36 FROGGS lizmat: I know one issue about panda at least
19:36 pmichaud okay.  Since it's blocking use of the REPL for anyone trying out rakudo... it's kinda a bad start.
19:36 treehug8_ joined #perl6
19:36 pmichaud (well, anyone trying out rakudo on Parrot... which includes most distro versions IIRC)
19:36 FROGGS lizmat: in rebootstrap it tries to rm_rf the destdir (site in my case), and that seems to do nothing
19:39 lizmat FROGGS: hmmm... that's strange,
19:39 lizmat does it clean the dirs ?  or does it not remove the files ?
19:39 FROGGS lizmat: it does not remove anything
19:40 lizmat hmmm...
19:42 pmichaud afk, lunch
19:43 FROGGS ewww
19:43 FROGGS the content of a directory is mangled
19:44 dwarring lizmat: oops I forget to commit roast changes to t/spec/packages. One moment...
19:44 FROGGS in the directory "/home/froggs/dev/nqp/install​/languages/perl6/site/panda" I get files like "stall/languages/perl6/site/panda/state.bak"
19:44 lizmat that's yuck
19:45 FROGGS m: say "/home/froggs/dev/nqp/install/language​s/perl6/site/panda/state.bak".substr( "/home/froggs/dev/panda".chars )
19:45 camelia rakudo-moar 16232f: OUTPUT«nstall/languages/pe​rl6/site/panda/state.bak␤»
19:45 FROGGS that is sort of what happens, probably in .contents or what the method is called
19:45 Psyche^ joined #perl6
19:46 FROGGS it is trying to make a relative path of the content of a dir but it is subtracting the cwd when the queried directory is not cwd
19:47 lizmat .dir
19:47 lizmat yes, I have been messing a lot with that...
19:48 raydiak m: (my @ = 'a', <b c>)[1].perl.say; (constant @ = 'a', <b c>)[1].perl.say;
19:48 camelia rakudo-moar 16232f: OUTPUT«"b"␤("b", "c")␤»
19:48 raydiak that has to be a bug, right? (I mean, not a spec problem)
19:48 raydiak chaning my to constant changes how things flatten?
19:49 raydiak *changing
19:49 * lizmat ponders what the use of an anonymous constant is
19:49 lizmat that should probably complain
19:49 raydiak heh, true
19:50 raydiak just for demo purposes, of course...the real code isn't anon
19:50 dalek roast: 0981bd2 | (David Warring david.warring@gmail.com)++ | packages/Example/ (3 files):
19:50 dalek roast: add missing packages for last commit
19:50 dalek roast: review: https://github.com/perl6/roast/commit/0981bd292d
19:50 dalek roast: b30ed8a | (David Warring david.warring@gmail.com)++ | S10-packages/precompilation.t:
19:50 dalek roast: Merge branch 'master' of https://github.com/perl6/roast
19:50 dalek roast: review: https://github.com/perl6/roast/commit/b30ed8af34
19:53 masak raydiak: my first assessment is "not necessarily a bug". but I agree it's surprising.
19:54 dwarring lizmat: precompilatiion.t hopefully works better now
19:54 lizmat ok, will test in a mo
19:54 leont joined #perl6
19:54 raydiak masak: why not a bug?
19:57 bartolin m: $/ = "foo"   ## shouldn't that die according to S05 (https://github.com/perl6/specs/commit/33​d795b82909ebf68676906de44d7320732601b1)
19:57 camelia rakudo-moar 16232f: ( no output )
19:58 lizmat bartolin: feels like a NYI to me
19:59 Hor|zon joined #perl6
20:00 jakesyl joined #perl6
20:02 zeropool joined #perl6
20:02 bartolin Ah, ok. So I could add a fudged test for that?
20:02 lizmat yup, sure  :-)
20:03 dalek rakudo/nom: 8d3f759 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
20:03 dalek rakudo/nom: Forget about grep, just do a for loop
20:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d3f759de5
20:03 huf joined #perl6
20:04 lizmat dwarring++  it's ok now
20:09 treehug88 joined #perl6
20:13 rmgk_ joined #perl6
20:13 lizmat FROGGS: when building, it first copies the source file first to the blib directory
20:14 lizmat but then it appears to still use the original source file for precomping ??
20:17 grondilu jobs
20:17 _slade_ joined #perl6
20:17 grondilu (sorry wrong terminal)
20:18 lizmat cook
20:19 masak raydiak: because 'my' forces item/list context, but 'constant' doesn't?
20:19 masak raydiak: though I should add that I'm not sure this is the case, nor that it should be like that.
20:19 masak 'night, #perl6
20:19 lizmat gnight, masak
20:19 raydiak g'night masak
20:20 dalek roast: 82e8a20 | usev6++ | S02-names-vars/varnames.t:
20:20 dalek roast: Add fudged test regarding direct assignment to $/
20:20 dalek roast: (now disallowed by S05 but NYI)
20:20 dalek roast: review: https://github.com/perl6/roast/commit/82e8a206d8
20:28 grondilu can I rely on the cached trait?
20:29 grondilu for a function of two integers for instance
20:30 moritz I hope so :-)
20:42 lizmat m: sub a($a) is cached { say $a }; a(1); a(1); a(1); a(42)
20:42 camelia rakudo-moar 8d3f75: OUTPUT«(timeout)»
20:42 lizmat $ 6 'sub a($a) is cached { say $a }; a(1); a(1); a(1); a(42)'
20:42 lizmat 1
20:42 lizmat 42
20:44 lizmat $ 6 'sub a($a,$b) is cached { say "$a $b" }; a(1,1); a(1,1); a(1,2); a(42,1)'
20:44 lizmat 1 1
20:44 lizmat 1 2
20:44 lizmat 42 1
20:46 prevost joined #perl6
20:51 grondilu and is it coing to use an array or a hash internally?  I'm writing a function that could take some fairly large integers as argument.  Using an array would waste lots of memory, I suppose.
20:51 dalek rakudo/nom: f79cf92 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
20:51 dalek rakudo/nom: Make IO.Path.gist a bit more human readable
20:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f79cf92172
20:52 lizmat grondilu: it's using the gist of the capture as the key
20:53 grondilu ok
20:53 lizmat the hash is just an ordinary hash
20:53 lizmat src/core/Routine, line 150
20:54 [Coke] TGMIF!
20:55 FROGGS okay, IO::Path.dir's $absolute param does the wrong thing nowadays
20:56 FROGGS the old code subtracted $cwd in case the queried path was a relative path
20:57 FROGGS but now it seems to be a confusion of requestion absolute paths as results and the fact that the queried path was absolute or not
20:58 grondilu I suspect the cache traits itemizes the output.
20:59 grondilu I have a function that takes an integer as argument and returns a list.  Putting the cached trait on it broke my tests.
21:00 grondilu I can actually show you the function:
21:00 grondilu sub sb (UInt $n) is cached { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }
21:00 grondilu it's supposed to return the list of significant bits positions
21:01 grondilu m: sub sb (UInt $n) { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb 7
21:01 camelia rakudo-moar 8d3f75: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/GxEe4cJWFU�Invalid typename 'UInt' in parameter declaration. Did you mean 'Int'?�at /tmp/GxEe4cJWFU:1�------> [32msub sb (UInt[33m�[31m $n) { !$n ?? () !! do for 0 .. $n.msb {[0m�»
21:01 grondilu m: sub sb (Int $n) { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb 7
21:01 camelia rakudo-moar 8d3f75: OUTPUT«0 1 2␤»
21:01 grondilu m: sub sb (Int $n) { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb(7).perl
21:01 camelia rakudo-moar 8d3f75: OUTPUT«(0, 1, 2).list␤»
21:01 FROGGS lizmat: that's it... now I can install panda
21:01 grondilu m: sub sb (Int $n) is cached { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb(7).perl
21:01 camelia rakudo-moar 8d3f75: OUTPUT«(0, 1, 2).list.item␤»
21:02 lizmat FROGGS:  ??
21:02 grondilu so yeah, it does itemize
21:02 FROGGS m: say dir('/tmp')
21:02 camelia rakudo-moar 8d3f75: OUTPUT«q|/home/p6eval/jP|.IO q|/home/p6eval/4q|.IO q|/home/p6eval/qt|.IO q|/home/p6eval/lR|.IO q|/home/p6eval/WB|.IO q|/home/p6eval/im|.IO q|/home/p6eval/fS|.IO q|/home/p6eval/FT|.IO q|/home/p6eval/Qa|.IO q|/home/p6eval/dZ|.IO q|/home/p6eval/Iy|.IO q|/home/p6eval…»
21:03 FROGGS lizmat: see? the output of /tmp is mangled
21:04 FROGGS m: say dir('.')
21:04 camelia rakudo-moar 8d3f75: OUTPUT«q|/home/p6eval/jvm-rakudo|.IO q|/home/p6eval/star-2014.08|.IO q|/home/p6eval/.viminfo|.IO q|/home/p6eval/rakudo-inst-2|.IO q|/home/p6eval/.pugs_history|.IO q|/home/p6eval/.selected_editor|.IO q|/home/p6eval/star|.IO q|/home/p6eval/rakudo1|.IO q|/home/p6eva…»
21:04 FROGGS and that works...
21:05 FROGGS lizmat: IO::Path line 310 is wrong
21:06 lizmat ah, I see
21:06 FROGGS and probably the line before too
21:06 FROGGS because $absolute has a different meaning then the self.is-relative that was there before
21:07 lizmat testing a fix
21:07 FROGGS that works here for me:
21:07 FROGGS -                    $elem = nqp::substr($elem, $cwd_chars + 1) if !$absolute;
21:07 FROGGS +                    $elem = nqp::substr($elem, $cwd_chars + 1) if self.is-relative;
21:07 FROGGS though, I just tested panda, and not the spectests
21:08 FROGGS m: say dir('t')
21:08 camelia rakudo-moar 8d3f75: OUTPUT«Failed to get the directory contents of '/home/p6eval/t': chdir failed: Unknown system error␤  in method gist at src/gen/m-CORE.setting:13650␤  in sub say at src/gen/m-CORE.setting:15652␤  in block <unit> at /tmp/Xf61NiEMHp:1␤␤»
21:08 lizmat FROGGS: that will break again if you specify :absolute
21:08 FROGGS lizmat: probably, yes
21:09 lizmat testing a fix
21:09 lizmat argh... why doesn't roast catch this  :-(
21:09 FROGGS :o/
21:10 FROGGS btw, the original code was tricky too, we needed several attempts before we got it right on all backends
21:10 lizmat FROGGS++ FROGGS ++ FROGGS++
21:10 * lizmat can sleep again tonight
21:10 FROGGS :o)
21:10 FROGGS m: say dir('..')
21:10 camelia rakudo-moar 8d3f75: OUTPUT«q|/home/p6eval/../p6eval_eval|.IO q|/home/p6eval/../p6eval|.IO q|/home/p6eval/../leont|.IO q|/home/p6eval/../moritz|.IO q|/home/p6eval/../jnthn|.IO q|/home/p6eval/../larry|.IO q|/home/p6eval/../rob|.IO q|/home/p6eval/../coke|.IO q|/home/p6eval/../mwilson|.…»
21:11 FROGGS m: say dir('..', :absolute)
21:11 camelia rakudo-moar 8d3f75: OUTPUT«q|/home/p6eval/../p6eval_eval|.IO q|/home/p6eval/../p6eval|.IO q|/home/p6eval/../leont|.IO q|/home/p6eval/../moritz|.IO q|/home/p6eval/../jnthn|.IO q|/home/p6eval/../larry|.IO q|/home/p6eval/../rob|.IO q|/home/p6eval/../coke|.IO q|/home/p6eval/../mwilson|.…»
21:11 FROGGS I would expect to not get the same output btw
21:12 dalek rakudo/nom: 414d911 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
21:12 dalek rakudo/nom: Unbreak panda
21:12 dalek rakudo/nom:
21:12 dalek rakudo/nom: FROGGS++ for finding this one!!!
21:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/414d911635
21:13 dalek rakudo/nom: a4309ee | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
21:13 dalek rakudo/nom: Unbreak panda on jvm also
21:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a4309eecf6
21:15 FROGGS ==> Successfully installed panda
21:15 FROGGS (perl6-m)
21:16 colomon panda build!  \o/ FROGGS++ lizmat++
21:17 colomon launching smoker run
21:17 FROGGS nice
21:19 pmichaud to avoid the itemizing of "is cached" results, src/core/Routine.pm:154 should probably be a bind instead of an assignment
21:19 pmichaud since assigning to an aggregate element always itemizes
21:19 * lizmat tries that
21:24 pmurias joined #perl6
21:27 lizmat looks like it works, doublechecking
21:27 pmurias masak: should we start creating of list of things we want to implement with macros somewhere?
21:29 dalek rakudo/nom: b3331e4 | (Elizabeth Mattijsen)++ | src/core/Routine.pm:
21:29 dalek rakudo/nom: Preserve itemization when caching
21:29 dalek rakudo/nom:
21:29 dalek rakudo/nom: suggested by pmichaud++
21:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b3331e475f
21:29 lizmat grondilu: ^^^
21:30 grondilu lizmat++
21:31 lizmat pmichaud++ really
21:31 grondilu pmichaud++ then :)
21:31 pmichaud "is cached" is really clever... there ought to be a blogpost or video about it somewhere :)
21:32 pmichaud as in, explaining what it does, not necessarily how it works :)
21:32 lizmat pmichaud: there has been quite some discussion about what is being used as a key
21:33 pmichaud Oh, I bet.  .gist seems like a reasonable first approximation, though
21:33 pmichaud is there a way to invalidate the cache?
21:34 lizmat not at the moment
21:34 pmichaud is one planned?  otherwise it should be "is memoized" or something like that :)
21:34 lizmat well, the cache is a lexical in the trait mod
21:35 pmichaud maybe unwrapping would invalidate the cache somehow
21:35 pmichaud anyway, "cached" implies to me a temporary storing of the results, as opposed to a permanent one.
21:35 lizmat but you can only know if you got the handle, right?
21:36 lizmat s/know/do that/
21:36 FROGGS okay, I can reproduce the repl bug(s)... will fix 'em tomorrow
21:36 pmichaud yes, unwrapping might require the handle
21:36 lizmat FROGGS: something I did in S16|S32/IO ?
21:37 BenGoldberg How about if the cache gets thrown away when GC happens?
21:37 FROGGS lizmat: no, that one is my fault in nqp::eoffh :o)
21:37 pmichaud BenGoldberg: well, that would likely happen more often than desired
21:37 lizmat BenGoldberg: as long as the routine exists, there is a something referring to it
21:37 lizmat so I don't think it will ever be thrown out
21:37 BenGoldberg Well, nothing prevents the routine from recomputing it's results.
21:38 pmichaud BenGoldberg: except that the caching prevents the routine from being called again
21:38 pmichaud s/prevents/circumvents
21:38 pmichaud (with the same arguments, that is)
21:38 BenGoldberg TIMTODWI... maybe the user should be able to ask that the cache be kept forever, or only for a little while.
21:39 pmichaud or, maybe it's not a cache.  :)
21:39 pmichaud I suppose one could argue it's cached only for the duration of the current process... but that feels weirdish
21:40 pmichaud I only brought this up because whenever I see the word "cache" I ask (myself) the "when does it invalidate?" question.
21:40 pmichaud and that made me wonder if "cached" might be the wrong word to use here.
21:40 BenGoldberg Let's suppose I write a routine, and call it a thousand times near the beginning of my program, and then don't call it again for many hours... I'd like it to be cached or memoized while I'm using it, and then eventually let the memory go.
21:41 lizmat S06:2087 : interesting read...  basically, if you don't like how "is cached" works, make one of your own  :-)
21:41 synopsebot Link: http://perlcabal.org/syn/S06.html#line_2087
21:41 pmichaud I think I'd prefer to use "is cached" (inviting the future possibility of cache invalidation) than something that implies we'll never have that option :)
21:42 pmichaud now would could be *really* interesting is the option of caching individual calls, rather than asking that all calls be cached :)
21:43 pmichaud "is cacheable"
21:43 BenGoldberg pmichaid++ "is cacheable"++
21:43 pmichaud or, an option to say "ignore/replace any caching for this particular call"
21:44 pmichaud but at that point it's perhaps S06:2087 --- "just do your own caching, it's not that hard"
21:44 synopsebot Link: http://perlcabal.org/syn/S06.html#line_2087
21:45 lizmat technically, it would be trivial to give access to the cache of a Routine by doing something like: &bar.cache
21:45 lizmat and then do &bar.cache = () to reset
21:46 pmichaud anyway, I guess I like S06's current formulation.  "We provide the really simple case... more flexibility you can do yourself."
21:53 pmichaud I'm afk, robotics meeting
21:53 colomon Still some fallout overnight -- Clifford, Template::Mustache, and Text::Fortune all started failing tests.
21:55 lizmat colomon: looking at it
21:57 lizmat not seeing any failures with Clifford
21:57 Mso150 joined #perl6
21:58 PZt joined #perl6
22:00 lizmat Mustache 91 and 92 fail with wrong version dependency on the settings ?
22:01 colomon dunno, smoke isn't good at getting you the actual errors.  I'm trying to rebuild rakudo on my standard linux box so I can test them.
22:02 Hor|zon joined #perl6
22:02 lizmat that problem was caused by a wrong JSON::Tiny
22:02 lizmat it seems to be a problem with chdir
22:03 lizmat I'm too tired now to look at that...
22:03 lizmat will look at it tomorrow (was on my list anyway)
22:03 lizmat I'll have a nice test case now
22:04 lizmat and I guess I will have to write a bunch of tests catching all the problems that were uncaught today  :-(
22:06 lizmat good night, #perl6!
22:14 jercos r: for [1,2,3] {.say}
22:14 camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1 2 3␤»
22:16 jercos r: sub foo(Iterable $in) {for $in {.say}};foo([1, 2, 3])
22:16 camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1 2 3␤»
22:16 jercos seems like potentially confusing behavior
22:16 pmichaud jercos: how so?
22:17 pmichaud (I don't disagree... I'm just wondering which part is confusing)
22:17 jercos despite only accepting Iterable, that for loop loops once, and $_ gets the whole Array, an Iterable of one.
22:18 pmichaud because it's in a scalar
22:18 pmichaud scalar items don't flatten
22:18 pmichaud that's pretty consistent across Perl 6
22:18 pmichaud r: sub foo(Iterable $in) { for $in.list {.say} };   foo([1,2,3]);
22:18 camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1␤2␤3␤»
22:19 jercos Right. Which leads to behavior that's expected in perl 5, [] acts like an array reference would. I guess the only real confusion there is Scalars being Iterable
22:19 pmichaud it's a scalar variable holding an Iterable object
22:20 pmichaud and anything in a scalar variable doesn't auto-flatten, you have to tell it to do so explicitly
22:20 jercos Yup.
22:21 pmichaud however, note that:
22:21 pmichaud r: sub foo(Iterable $in) { $in.map({.say}); };  foo([1,2,3]);
22:21 camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1␤2␤3␤»
22:22 pmichaud since .map is handled by the Iterable object, not by the $in container
22:23 pmichaud also:
22:23 pmichaud r: sub foo(Iterable $in) { for @$in {.say} };  foo([1,2,3]);
22:23 camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1␤2␤3␤»
22:24 pmichaud which explicitly evaluates $in as a list
22:26 jercos which would also flatten it, yes?
22:27 pmichaud yes
22:32 pmichaud afk again, robotics
22:37 grondilu my Clifford module passes tests but when I try to install it with panda I get a Cannot invoke null object error.  It seems like the compiled version does not behave as the interpreted one or somehting.
22:38 grondilu that's tough to debug since I can't reproduce it
22:38 colomon lizmat: I get this:
22:38 colomon t/92-specs-file.t .. Failed to get the directory contents of '/home/colomon/HarmonyWare/SOLIDS2_1_9/.pand​a-work/1412375495_1/../mustache-spec/specs': chdir failed: Unknown system error
22:46 raydiak grondilu: you can compile w/out installing by running panda-build in your module's dir, then reproduce by running your tests w/'panda-test'
22:47 raydiak grondilu: I had a similar problem, and had to do that a bunch of times to golf it down and report it
22:48 * grondilu tries that
22:49 raydiak (mine was RT #121319 just in case you're running in to the same thing)
22:49 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=121319
23:09 virtualsue joined #perl6
23:10 raydiak uh oh
23:11 raydiak grondilu: looks like is cached is causing your problem...removed it from Clifford.pm6, and all appears to be well
23:14 grondilu raydiak: indeed, just figured it out myself.
23:15 grondilu I'm not too surprised.  I was having problems with hand-baked caching.  That was the reason I asked about the cached trait.  I thought delegating caching to the core would help, but apparently not.
23:16 raydiak helps find bugs :)
23:21 bjz joined #perl6
23:33 jack_rabbit joined #perl6

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

Perl 6 | Reference Documentation | Rakudo