»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:04 bjz left 00:05 jakesyl joined
jakesyl when will this be finished? 00:05
14 yers? 00:09
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
leont That is a difficult question 00:12
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
leont Regardless of that I believe it's worth learning, because it's a rather fascinating and expressive language.
jakesyl I already know perl5 by the way, and it's fun
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
00:15 aborazmeh joined
jakesyl I love the TMTOWTDI philosiphy, but why can't you get a corporate sponsor to speed up development 00:16
leont Corporations are invested in their existing stack 00:17
00:17 fhelmberger left
jakesyl Why isn't perl6 considered an evolutionof perl5 00:17
leont By whom? 00:18
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.
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
uys would take off like crazy
leont Perl 6 will not win the world by being a clone of something else, that much is sure 00:21
jakesyl So what is it, now? 00:22
timotimo and the problem really isn't sigils :)
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.
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
timotimo constants don't have sigils in perl6 :P 00:23
but the sigils are saner in perl6 than they were in perl5
leont It's concurrency model is actually usable, unlike pretty python/perl5/ruby/etc􏿽x85 that's actually quite a killer feature
jakesyl adaptable how? The only reason I bothered to learn perl was TMTOWTDI andruby has that now
timotimo we have "sigil invariance" now, which means the sigils behave more like separate namespaces
leont Grammars are also really awesome
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
leont Ruby's DSL are really just cute API's with comma's in random places unless you actually know ruby.
jakesyl oh, that makes better sense timo
leont Perl 6 will allow you to define real DSLs, without losing your sanity
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.
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
you're right leont does perl6 have anything like that?
leont No, that's what I meant with we need more ecosystem 00:26
00:26 ajr_ left
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
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 gfldex left
timotimo jakesyl: pythons grammars? 00:27
jakesyl: as in pyparsing?
oh, wait 00:28
you weren't refering to the grammars only
leont I think a good asynchronous web programming framework could be that killer framework, but ETOOEARLY
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:29
timotimo b2gills: and also &infix:<+> should be in that list 00:30
though &infix:<+> has the added benefit of being able to add 1 or 0 values together, too
jakesyl yes timotimo
timotimo jakesyl: i am convinced that the way we attack concurrency and asynchrony is quite neat
jakesyl compared to python 00:31
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)
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)
jakesyl So what's the learning curve from perl5 to perl6
timotimo did that get cut off somewhere?
i can't answer that, as i've come from python instead
_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
tony-o jakesyl: it's fairly small until you start exploring some of the new features
jakesyl ton-o like what?
tony-o *
tony-o IO is more intuitive in p6, sigils make more sense
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?
tony-o grammars and regex are different but easily backwards compatible, regex being a major leap forward (in my experience)
timotimo almost all special variables have been thrown out (or replaced with attributes on specific objects or at least given long explanative names)
"use strict" is the default, "no strict" has only just been implemented last week
there is no longer "wantarray", thank god
tony-o jakesyl: what kind of networking?
_slade_ is no strict the default for -e?
timotimo we have had sub signatures for a *long* time, as well as multiple dispatch 00:36
_slade_: that is correct
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
but for text-only data, our TCP stuff is good already
nobody bothered to implement UDP on MoarVM yet, i believe
not sure if we have UDP on parrot or JVM
which i agree is not that cool. 00:37
tony-o there is no confirmation of udp
jakesyl haha I hated wantarry, I haven't really gone in depth with perl5 (in terms of collaboration) how does TMTOWTDI effect collaboration/readability
timotimo jakesyl: did you ever touch XS at all?
jakesyl ya they're like c/c++ "wrappers" right? 00:38
timotimo much worse
you needed to write XS code in order to interface with c/cpp libraries
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
timotimo but essentially you're allowed (or even encouraged) to fiddle with perl5's internal data structures 00:39
00:39 aborazmeh left
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
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)
b2gills timotimo: there recently was a grant proposal to make Inline::C usable as a replacement for XS
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
timotimo (though i'm not sure what exact features it has)
b2gills It would essentially create all of the XS for you, so it would be faster than Inline::C 00:41
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:43
that may be a bit too much 00:44
but the overhead will be pretty small
b2gills I really think that once there are more widespread languages ported to NQP things are going to get real interesting real fast
timotimo i'm not 100% sure about that 00:45
nqp is a really cool language to write a compiler in
but will people actually consider that?
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
awwaiid many competitors these days. LLVM, javascript, jvm 00:46
00:46 daxim_ joined
b2gills jakesyl: I would recommend reading through the synopsis ( perlcabal.org/syn/ ) 00:47
jakesyl your considering javascript a perl competitor?
oh nevermind
Anyone here actually know Haskell 00:49
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.
timotimo there's others that know lots of haskell
er, not necessarily lots
but surely more than me
our first actually working compiler was written in haskell
b2gills Image if Reticulated Python was ported directly to NQP, then type declarations would speed up the program rather than slow it down
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
jakesyl: no, it's been practically abandoned a long time ago and kept on life support for a bit 00:52
00:52 BenGoldberg joined
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
timotimo feel free to have a look at it, it's called Pugs
in perl6
00:53 araujo left
jakesyl Wait your perl6 compiler is written in perl6? 00:53
b2gills Yes, yes it is
jakesyl but how...
00:53 araujo joined
b2gills Or rather a limited form of it called NQP 00:53
jakesyl Elaborate please 00:54
timotimo to be fair, a subset
00:54 raiph joined
japhb Bootstrapping. It's what's for dinner^W^W^Whow great compilers are made. 00:54
timotimo well, not a clean subset
b2gills Originally NQP was written in PIR for Parrot
jakesyl Parrot Virtual Machine, Okay I get it know
timotimo parrot is on the way out nowadays
b2gills Then NQP got some cross compiling support to get it onto Java, and later MoarVM 00:55
jakesyl I've heard
timotimo parrot got us really far
but moarvm is going to carry us to the finish line
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
I don't think any language can get to where Perl5 was in the 90s
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
jakesyl PHP documentation is the worst in the world, have you guys seen it it's all user example
s
But php's not used for scripting anymore, it's become a web framework
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 )
jakesyl Python replaced(ish) perl in terms of scripting and I think ruby will replace python and hopefully perl6 will replace urby
leont No, nothing will be what perl 6 was in the 90s
perl 5
jakesyl Ya, so theres no way people migrated from php to perl
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
the goal is to get a solid slice of that, not to obliterate the others. That is not realistic.
jakesyl currently you can't compare perl5 to python
b2gills I was programming in VBA in the 90s, so I don't know
( as a teenager ) 01:00
jakesyl I started programming visual basics in 2008 to mod flash games
look at perl on here: githut.info/ 01:01
also perl was 12 in 2013 adambard.com/blog/top-github-langua...13-so-far/ 01:02
leont That says little, really 01:05
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
leont github has always been rubyland 01:07
It came out of the rails scene, it just happened to get users from other scenes by coincidence
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
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
leont None? Cause we don't have that web framework yet
tony-o perl has mojo which is p great
jakesyl didn't perl5 though?
oh ya
leont Perl 5 has plenty of them
jakesyl also perl5 is still considered the most badass language, people just don't use it
leont Catalyst, Mojo, Dancer, Web::Simple
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
jakesyl Even general public considers perl to be a badass language, and that's all because of this clip: www.youtube.com/watch?v=VSKoVsHs_Ko
let's be honest django sucks too 01:11
timotimo i don't think django sucks 01:12
then again, i haven't done terribly much with it either
i started a tiny project with pyramid, that seemed pretty nifty
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:13
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
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
it takes "what you want how you want it" to extremes (for better or for worse)
tony-o i think the learning curve for p6 is probably easier than p5
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
leont See eev.ee/blog/2012/04/09/php-a-fracta...ad-design/ for a better explanation than I could possibly give
jakesyl tony-o who was that too? 01:18
tony-o raydiak: 01:19
jakesyl if php was intended for perl users why isn't it more TMTOWTDI in it's philosiphy
grondilu panda$ ./rebootstrap.pl 01:20
==> Bootstrapping Panda
===SORRY!===
Missing or wrong version of dependency 'src/gen/m-BOOTSTRAP.nqp'
^what did I do wrong?
leont jakesyl: php didn't have design ;-) 01:21
That's the problem with it
jakesyl but why not
leont It was organically grown
jakesyl if it was designed by perl programmers it should have
01:21 Mso150 joined
jakesyl Oh there was no real plan behind it 01:21
japhb Something broke Panda today (at least on r-p):
==> Bootstrapping Panda 01:22
==> Fetching File::Find
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
jakesyl quick side question, does this channel have an irc bot?
japhb jakesyl: Several
grondilu m: say "Hi, jakesyl"
camelia rakudo-moar 024272: OUTPUT«Hi, jakesyl␤»
japhb .seen grondilu
yoleaux I saw grondilu 01:22Z in #perl6: <grondilu> m: say "Hi, jakesyl"
japhb And there's one that keep irclogs 01:23
*keeps
01:24 kurahaupo_ left
jakesyl oh cool 01:24
timotimo irclog.perlgeek.de 01:27
jakesyl Ya i;ve been looking at that 01:28
raiph jakesyl: do you use irc much? 01:30
jakesyl Ya, my custom made client blows though 01:31
I think I'm going to switch back to irssi
raiph what is the client written in? 01:32
jakesyl Ruby, which I am terrible at
raiph You're better than me. :) 01:36
Did you base your client on an existing project?
jakesyl No, did it from scratch, which is why it is very buggy 01:37
raiph Time to write another in P6. :)
01:37 leont left
jakesyl I'll be working on it :D 01:38
raiph :)
tony-o p6 eval bot in p6? :-)
japhb There is existing IRC bot code in Perl 6
tony-o oh is it already written in 6? 01:39
jakesyl what's it called?
japhb github.com/TiMBuS/Net--IRC/
raiph jakesyl: gotta run. hope to see you on channel another day. 'nite #perl6
01:40 raiph left
jakesyl 'nite raiph 01:40
01:45 jakesyl left 01:52 FROGGS_ joined 01:55 FROGGS left 01:56 avuserow joined 02:00 Mso150 left 02:04 noganex_ joined 02:07 noganex left 02:10 Hor|zon joined 02:14 Hor|zon left
grondilu fails in caching the MandelBrot function: 02:35
m: sub MBrot($z) { +(0, * **2 + $z ... *.abs > 2)[^20] % 20 }; say MBrot(rand + rand*i) xx 10;
camelia rakudo-moar 024272: OUTPUT«3 5 0 4 5 11 0 4 0 0␤»
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␤»
timotimo did you know "is cached" has an implementation nowadays?
grondilu I thought it wasn't quite reliable
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␤»
grondilu on the other hand I will have to cache in a way that preserves the symmetry
so I'll use something like (state %){$z.re ~ '|' ~ $z.im.abs} 02:38
so in any case I'd like to know what I did wrong. 02:39
raydiak are there differences between rules and tokens besides sigspace? 02:40
grondilu it has to be written somewhere in S02 or S05 but it's not very easy to find. 02:49
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␤»
timotimo i believe that's the only difference
grondilu those differences should be clarified in S99 imho 02:51
raydiak I'm having a problem that goes away when I change rules to tokens: gist.github.com/raydiak/70f73bc4f65f35f20553 anyone have any ideas? 02:52
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
raydiak what does that mean? 02:54
timotimo i dunno 02:55
i think it's just super slow
raydiak no, I mean left-recursing, don't think I know that term
grondilu raydiak: that won't solve your issue, but you can write token operator { < + - * / > }
raydiak grondilu: oh that makes sense...thanks 02:56
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:57
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.
raydiak colomon: right, but why does it work when I use tokens instead? 02:59
colomon I'm not sure. Have you tried using the grammar tracer on it? 03:00
timotimo eats whitespace?
er ...
raydiak there's not even any whitespace in "1" :)
timotimo oh, duh
raydiak dunno about the grammar tracer, haven't tried a grammar before today
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
timotimo the regular debugger also lets you single-step through grammar matching
raydiak colomon: I thought so, but that doesn't explain the behavior I'm seeing
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
colomon has doewnloaded the program and is installing Grammar::Debugger
woah, that explodes quickly. 03:03
raydiak colomon: quite possible
colomon raydiak: oh, actually NoProblem.parse("1") goes into an infinite loop too. 03:04
for me.
raydiak huh
colomon comment out the Problem.parse line and see what happens for you? 03:05
btw, if you change it to rule expression { <value> | <operation> }, it works fine for the string "1"
raydiak just prints out a match and exits normally
colomon weird 03:06
rakudo version?
raydiak like earlier today
This is perl6 version 2014.09-81-g89abcf2 built on MoarVM version 2014.09-12-gb9e24ee
colomon hmmm, yours is more recent than mine. 03:07
raydiak either way, I should not expect loops like that to work, correct? 03:08
colomon is rakudobrewing
raydiak: that's my thought, yes.
it's okay (I think) for them to be mutally exclusion, but you need to prioritize the branch that breaks out.
colomon suspects someone else out there has a better way of explaing and/or doing this. 03:09
raydiak I do see what you mean though 03:11
colomon Grammar::Debugger actually worked really well for this one.
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:12
I guess I should go try this grammar::debugger, sounds like it might answer my questions 03:13
colomon …. probably?
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
*put an expression
including inside an expression
colomon is looking at Rakudo's grammar 03:19
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
*looking
that makes all the ASCII preview thing a bit pointless 03:21
raydiak indeed, it should have that feature and many others 03:22
though the ascii preview will always be there, I do a lot of work over ssh and such 03:23
(be there as an option I mean)
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
colomon is unable to build panda on the latest rakudo?
afk # bedtime
raydiak I saw other reports of panda build failures today too 03:26
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:33
*projects 03:34
Grammar::Debugger sure is slick 03:48
grondilu++ I see now why you mentioned the preview...thanks, fixed now 03:54
03:56 cbk1090 joined 03:57 kaare_ joined 03:59 chipotle left 04:11 Hor|zon joined
dalek rl6-roast-data: 53eda60 | coke++ | / (4 files):
today (automated commit)
04:12
04:15 Hor|zon left 04:48 BenGoldberg left 04:53 kaare_ left 05:09 ClarusCogitatio left 05:11 ClarusCogitatio joined 05:15 notfix is now known as xfix 05:20 ecocode joined 05:22 kaare_ joined
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:23
my Geom Alg *module* I mean 05:24
what is clear is that this is currently so slow that it's a nice way to test Perl6 speed. 05:25
05:31 SamuraiJack_ joined 05:40 vendethiel left 05:41 Alina-malina left 05:42 Alina-malina joined
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: gist.github.com/grondilu/a5d200996b2d6f09dbaa It works nicely. 05:49
05:56 rindolf joined 06:09 DarthGandalf left 06:12 Hor|zon joined 06:13 fhelmberger joined 06:17 Hor|zon left, fhelmberger left 06:20 xfix is now known as notfix 06:21 DarthGandalf joined
moritz we should have a much simpler API for doing non-blocking IO 06:29
06:31 gtodd1 joined
japhb grondilu: The problem with using a channel for that is that you force task switches on every iteration 06:31
06:31 gtodd left
japhb (IIRC that was one of the primary motivators for the Supply design -- not forcing a task switch unless the user requested it.) 06:32
06:33 wk joined
moritz (or you could just put the whole stuff into an array and write it at the end :-) 06:36
06:37 esaym153 joined 06:44 FROGGS_ is now known as FROGGS
FROGGS [Coke]: the jvm spectest time is back to normal? 06:45
[Coke]: ohh, just seen that rakudo-jvm was not included in the last run :/ 06:46
nine timotimo: I estimaye it'd take about one or two rainy weekends to port Inline::Python tp Perl 6... 06:47
typing on a phone sucks...
06:54 jack_rabbit left, anaeem1 joined 06:58 slavik left 06:59 zakharyas joined 07:03 virtualsue joined
masak morning, #perl6. 07:03
07:06 Mso150 joined 07:10 slavik joined
nwc10 good *, masak 07:11
masak I used to like that greeting, but it feels oddly empty after * and ** became singletons :P 07:13
like it's all the same somehow
nwc10 good +0200, masak 07:15
(I shall try to get that right this time)
masak :) 07:16
for another 23 days or so...
07:17 gfldex joined
lizmat good all(*), #perl6 :-) 07:19
07:19 ghostlines joined
dalek kudo/nom: 854ba8d | (Elizabeth Mattijsen)++ | src/core/IO/Spec/Unix.pm:
Fix missing .curupdir breakage
07:24
lizmat this implies there are no tests for .dir :-( 07:25
07:28 kjs_ joined
dalek kudo/nom: e0d5ddc | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Introduce $*SPEC.slash

because $*SPEC.rootdir may not cut it. b2gills++ for spotting
07:34
07:38 Alula left 07:42 kjs_ left 07:43 Alula joined
lizmat hmmm... it appears I don't have a panda commit bit 07:44
07:44 Ven joined
lizmat could someone apply gist.github.com/lizmat/99c2c85c9c8fb63870c6 or give me a panda commit bit ?? 07:45
07:46 vukcrni left 07:47 vukcrni joined 07:48 kjs_ joined 07:49 pecastro left 07:50 kjs_ left
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.
Ven .tell pmurias or it abuses method_missing and operator overload to produce cute DSLs like Squeel I talked about earlier
yoleaux Ven: I'll pass your message to pmurias.
07:51 JimmyZ joined
JimmyZ grondilu: gist.github.com/grondilu/a5d200996...nt-1311532 07:51
Ven .tell pmurias but the most interesting of those will probably be "wrong": github.com/sconover/wrong :-) 07:52
yoleaux Ven: I'll pass your message to pmurias.
Ven alright, back to writing production perl6 code now :) 07:53
tadzik lizmat: you should now have a commit bit :) 07:55
lizmat tadzik++ :)
tadzik lizmat++ :)
dalek nda: 29e0bcb | (Elizabeth Mattijsen)++ | lib/Panda/Fetcher.pm:
Fix Panda breakage caused by S16|S32/IO refactor
lizmat generally, the meme ".IO.path" should be replaced by ".IO"
07:56 darutoko joined
lizmat since .IO returns an IO::Path already nowadays 07:56
actually, that piece of code showed the madness of the pre-refactor quite nicely
first, .IO made an IO::Handle object (which you would normally just use for reading/writing) 07:57
and then it would turn that into an IO::Path object (for checking existence and doing 'dir' and .e
dalek nda: 7398d28 | (Elizabeth Mattijsen)++ | / (3 files):
Use $*CWD instead of cwd()
08:03
nda: aa0acc1 | (Elizabeth Mattijsen)++ | lib/Panda/Fetcher.pm:
Use .dirname instead of deprecated .directory
08:05
08:05 Hor|zon joined
lizmat tadzik: bootstrap still failing because of test errors in Shell::Command 08:08
:-(
tadzik oh 08:09
lizmat where can I find the test file to know what the reason for the error is? 08:10
08:17 _slade_ left 08:19 Hor|zon left 08:20 anaeem1 left
jnthn lizmat: Presumably github.com/tadzik/Shell-Command/tree/master/t 08:24
lizmat: Which are checked out under ext in Panda, iirc
lizmat found it
08:26 denis_boyun_ joined
Ven he, heather really does a lot of stuff 08:26
lizmat yup, it's purple and smells nice :-) 08:29
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
though, the "real" heather also is great (I just learned the meaning!)
Ven prefers the smell of lavander, which is kinda purple as well 08:32
08:32 labster left
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
masak yes, I know you are. and I know who she is, roughly. 08:36
I follow her on Twitter.
Ven alright, will use "she" from now on.
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 :)
masak lizmat: if you permit me to bikeshed ever so slightly -- "slash" seems a Unix-y view of the path separator. github.com/rakudo/rakudo/commit/e0d5ddc2be
lizmat dirsep ?
masak lizmat: in Japan, for example, the Windows path separator is the yen symbol.
lizmat: pathsep, p'haps?
jnthn
.oO( slash gordan, savior of the file system... )
08:38
lizmat no, pathsep is for what you use to separate ENV<PATH>
Ven masak: (and she does a lot of idris/haskell/f# and other stuff, and she "follows"? me on twitter)
err, on github* not twiter
keyboard-- 08:39
lizmat masak: first I need to fix panda / Shell::Command
jnthn but yeah, slashes are used for various things, so it's probably better to name it after the use case.
lizmat dir-sep then 08:41
Ven masak: is it really the yen symbol? Kinda funny 08:42
.oO( I$m¢Stuck€Here )
08:43
jnthn lizmat: Or dirsep if we're using names like curdir elsewhere, maybe... :)
But yeah, that's much better. 08:44
lizmat we already have path-sep in Distro
jnthn What's the difference? :)
lizmat it's for separating what is in ENV<PATH> 08:45
jnthn Oh, *that* kind of path. :)
lizmat it's ':' in unixes, and ';' on Win32
jnthn Right
08:46 Mso150 left
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
and reapply after the next release, ok ?
08:50 FROGGS[mobile] joined, kjs_ joined
jnthn Can also git branch 2014.09-updates aa0acc1 08:50
Before reverting
And push the branch
So that then it's there waiting for us :)
uh, 2014.10 :) 08:51
dalek kudo/nom: d69a874 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Rename .slash to .dir-sep

Slash is too culturally specific, masak++
nda: 921f7e8 | (Elizabeth Mattijsen)++ | lib/Panda/Fetcher.pm:
Don't de-deprecate until next release

This reverts commit aa0acc1f71dcb033e7c8cea0be4bfa411f1f5e71.
08:54
08:54 notfix is now known as xfix 08:55 Hor|zon joined 08:57 kjs_ left 09:00 ibo2perl6 left 09:01 kjs_ joined, anaeem1_ joined, anaeem1_ left, SamuraiJack_ left
lizmat actually, I think the above problem is deeper: 09:01
09:02 anaeem1_ joined
lizmat I guess I shouldn't deprecate IO stuff until *after* the next release 09:02
jnthn: rmdir is currently implemented as: @filenames.grep( *.IO(:$SPEC,:$CWD).rmdir ) 09:07
09:08 Hor|zon left
lizmat the Shell::Command.rm_rf test stops failiing if I put a "1;" after the rmdir() command 09:08
09:08 kjs_ left
lizmat or if I put an .eager in sub rmdir :-( 09:09
jnthn lizmat: Then...the grep is now wrongly returhning an empty list?
lizmat lemme check that 09:10
jnthn Uh, yes, do put an eager in there
People do *not* expect rmdir to work lazily :)
Ven lizmat: does `eager lines` works like `lines(:eager0`
)`*? :)
09:10 kjs_ joined
lizmat Ven: I wish, maybe in the future 09:11
part of te GLR
Ven that's how it's specced, at least :P
lizmat *the
yup
jnthn yeah, :eager is kinda a hack that should go away post-GLR.
Ven re-read s01/02/03 and now knows what andthen/orelse should do :P
09:11 leont joined
lizmat jnthn: indeed, empty 09:11
jnthn In favor of...well...non-sucking performance without it.
Ven I keep learning things when readng those, though now I learn less :P
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:13 virtualsue left 09:14 ibo2perl6 joined, Hor|zon joined
lizmat jnthn: although I'm not convinced being lazy is necessarily a problem :-) 09:16
dalek kudo/nom: 07d6050 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
Eagerness is better than laziness

for mkdir, unlink, rmdir and chmod :-)
09:17
09:18 virtualsue joined 09:20 virtualsue left
lizmat this unbreaks panda a bit, now at not being able to write bytecode :-( 09:20
FROGGS[mobile] hmmm 09:21
09:21 pecastro joined
dalek ast: e5c5288 | jnthn++ | integration/advent2012-day06.t:
Make test not depend on make install; Win32 fix.

Since we often run "make spectest" before "make install", relying on
  "lib" being installed somewhere already is wrong. Also, the usual
line-ending tweak for making the test happy on Windows.
09:22
jnthn lizmat: I'm quite convinced it's a problem; folks expect rmdir will be imperative and actually do the deletion :)
FROGGS[mobile] would be quite handy to smoke panda on HEAD an the last two releases me thinks
dalek kudo/nom: 041c89a | (Elizabeth Mattijsen)++ | src/core/IO/ (2 files):
Undeprecate some things until 2014.10
09:23
Ven what's the difference between .eager and .gimme(*) ?
why not use .sink() here?
lizmat jnthn: ===SORRY!=== 09:24
No object at index 377
build stage failed for panda: Failed building lib/Panda/Builder.pm
FROGGS[mobile] lizmat: the deprecation message itself causes trouble?
lizmat does that ring a bell ?
FROGGS[mobile]: not sure, the error message changed after removing the deprecation message 09:25
so that would indicate some influence, :-(
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.
FROGGS[mobile] I'd just rebuild nqp+rakudp before digging deeper
lizmat: you do rebootstrap.pl. right? 09:27
09:27 fhelmberger joined
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
jnthn: will look at that one as well
jnthn lizmat: Ah, cool
lizmat: We've gradually built up quite a collection of test failures on Windows 09:28
lizmat: I've been working to reduce them. :)
lizmat jnthn++
those are not really visible to me :-(
I bet all the clang warnings in MoarVM are not visible to you :-) 09:29
jnthn Aye :)
Well, for a while there were few enough that I could keep a baseline in my head
FROGGS[mobile] jnthn++
lizmat src/strings/unicode.c:42257:115: warning: passing 'unsigned char *' to parameter
of type 'const char *' converts between pointers to integer types with
different sign [-Wpointer-sign]
jnthn But over the last months it got to the point I really couldn't
If I exclude S17 things that are likely flappy, I'm now down to 4 issues. 09:30
Will be 3 after local.t fixes :)
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
jnthn And S02-literals/quoting.t
The other one that is proving a real pain to find is S26-documentation/07-tables.t 09:32
If I convert the file to have \n instead of \r\n it passes just fine.
FROGGS[mobile] dang it, we really need cpandatesters...
lizmat jnthn: without a make install, I get a completely clean spectest, also for the S22 tests ?? 09:34
FROGGS[mobile] btw, I toyed around with a bootstrapish marketplace.perl6.org as a frontend for our dists on cpan 09:35
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 :-(
jnthn lizmat: OK, then we must have something platform-specific going on... 09:37
lizmat: In which case, I guess I keep that task :)
lizmat jnthn++
FROGGS[mobile]: also after a rebootstrap :( 09:38
FROGGS[mobile] request: someone please write Panda::Reporter... 09:39
lizmat: :/
lizmat Ah, there seems to be specific for Panda::Builder to build itself
09:41 Ven left
masak Ven: "The history of the path separator in Japanese and Korean Windows" -- blogs.msdn.com/b/oldnewthing/archiv...81044.aspx 09:41
<lizmat> I guess I shouldn't deprecate IO stuff until *after* the next release 09:42
09:42 Hor|zon left
masak lizmat: things like that -- would it make sense to document those in some kind of "rakudo star release cycle guidelines" thing? 09:43
even if they're not set in stone, just having them reified somewhere seems like good use of community artifacts.
lizmat I think they would have to be in module developer guidelines
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
it's not really a release thing, it's a developer thing, really
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?
masak lizmat: I see. but they are community expectations on... module developers?
lizmat perhaps, definitely on core / panda developers :-) 09:46
masak right, ok.
jnthn FROGGS[mobile]: Not sure that's the right way to go...
masak the thing jnthn mentioned, having a branch and a naming scheme, sounds very sane too.
even if it ends up not always being needed. 09:47
or something like a TODO-after-2014.10-star-release.md document somewhere.
jnthn FROGGS[mobile]: I can see we'd want some kind of fallback mechanism...
FROGGS[mobile]: But it feels more like you want to do it for the whole set of subs...
FROGGS[mobile] hmmm 09:48
then we need to improve that 'try require' mechanism, in case there are still issues 09:49
09:50 xfix left
FROGGS[mobile] though 'try require' already sounds like being forced to be slooow 09:50
09:51 xfix joined
FROGGS[mobile] jnthn: or, we provide namespace(s) that provide fallback subs 09:52
timotimo o/ 09:55
jnthn m: say "a\n" ~~ /^^\s*$$/
camelia rakudo-moar d69a87: OUTPUT«Nil␤»
jnthn m: say "a\r\n" ~~ /^^\s*$$/
camelia rakudo-moar d69a87: OUTPUT«「」␤␤»
jnthn That's why Pod tables are bust on Windows.
dalek href="https://modules.perl6.org:">modules.perl6.org: 4e93ffc | asb-cpan++ | web/index.tmpl:
tweaked module list and filter

replaced list by table, apply sorting to module name and description,, make search field bigger and centered. To make diffing a lot more complicated, I also removed one level of indent for head and body section (sorry).
09:56
10:00 pmurias joined, lizmat left, lizmat joined 10:02 kjs_ left
masak jnthn: that looks clearly wrong to me. 10:02
\r\n are whitespace.
jnthn masak: That's not the problem 10:03
masak: The problem is that it doesn't match, so then goes right one char
masak: Then ^^ says "oh, I'm after a \r, that'll do", and $$ says "oh, I'm before a \n, that'll do"
masak oh!
...wow.
jnthn Yeah... o.O
masak that's quite deep. 10:04
jnthn And given \r actually *is* a valid line sep on...older mac...or something...
masak I will need to think about that one.
jnthn I don't immediately know what to do about it.
masak jnthn: right.
jnthn For now, it's easy to patch the Pod code, since it's already dealing with full lines always
lizmat this is a similar problem with .lines
jnthn So its use of ^^ and $$ is kinda overkill; if you already know you have a line, ^ and $ are good enough
But yeah, there is a deeper issue here
masak yes, \r was the newline marker on Mac OS 9.
FROGGS[mobile] I'd think that ^^ would "gobble" \r\n already 10:05
jnthn FROGGS[mobile]: ^^ and $$ don't swallow
They're zero-width assertions
masak jnthn: I think a reasonable expectation is that if you *have* a single line, ^ and $ should act as ^^ and $$.
10:05 kjs_ joined
masak jnthn: respectively. 10:05
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.
jnthn Anyway, I'm going to do the wrokaround in Pod.pm so that we don't have Pod-parsing bugs on Windows.
And the ^^$$ issue probably deserves an RT. 10:07
masak submits one
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:08
masak does it make sense to ask "how does Perl 5 regexes handle this one?" 10:09
?
dalek kudo/nom: da3aae7 | jnthn++ | src/Perl6/Pod.nqp:
Unbust Pod table handling with Windows newlines.

  /^^\s*$$/ can end up matching in the middle of \r\n. While this does
want looking into, in this case we already have lines so it's easy to work around.
10:10
jnthn masak: Maybe... :)
lizmat: I was some commits behind, so just updating now... 10:11
dalek ast: 1f3a867 | (Elizabeth Mattijsen)++ | S32-io/io-path-unix.t:
Fix tests on Win
lizmat jnthn: I have no idea what the failure on the cygwin test is... 10:13
could you tell me what the "got" is ? 10:14
jnthn lizmat: Even with that fix, I still get a failure
not ok 20 - relative inverts absolute
# Failed test 'relative inverts absolute'
# at t\spec\S32-io\io-path-unix.rakudo.moar line 41
# expected: 'foo/bar'
# got: 'C:\consulting\rakudo/foo/bar'
That's in io-path-unix.t
And there is cygwin one: 10:15
not ok 95 - rel2abs: $("/t1", "/t1/t2/t3") -> '/t1'
# Failed test 'rel2abs: $("/t1", "/t1/t2/t3") -> '/t1''
# at src/gen/m-CORE.setting line 16355
# expected: '/t1'
# got: 'C:/t1'
10:17 xinming_ joined
lizmat in the latter test, you could argue that the expectation is wrong ? 10:18
jnthn: what $*CWD on your system ?
*'s 10:19
jnthn > say $*CWD.perl
q|C:\\consulting\\rakudo|.IO(:SPEC(IO::Spec::Win32))
10:20 xinming left
lizmat I guess I need to make $*CWD a controllable entity as well 10:23
inside the test
10:29 bjz joined, Akagi201 left, Akagi201 joined 10:38 Hor|zon joined
dalek ast: d13c1a2 | (Elizabeth Mattijsen)++ | S32-io/io-path- (3 files):
Make IO::Path's test environment controlled
10:38
lizmat jnthn: how does ^^ work for you ?
leont Seems on upgrade panda doesn't install anymore :-/ 10:40
10:41 bjz left, bjz_ joined, kurahaupo joined 10:42 JimmyZ left
jnthn lizmat: After that, cygwin.t still fails, the others seem happy 10:43
not ok 95 - rel2abs: $("/t1", "/t1/t2/t3") -> '/t1'
# Failed test 'rel2abs: $("/t1", "/t1/t2/t3") -> '/t1''
# at src/gen/m-CORE.setting line 16355
# expected: '/t1'
# got: 'C:/t1'
dalek ast: fc926f7 | (Elizabeth Mattijsen)++ | S32-io/io-path-cygwin.t:
another fix for cygwin
10:44
lizmat and now ?
grrr nvm
10:45 chipotle joined
jnthn Nope 10:45
dalek ast: 38b0a3c | (Elizabeth Mattijsen)++ | S32-io/io-path-cygwin.t:
real fix for Cygwin test failure (hopefully)
10:46
lizmat and now?
jnthn Nope :(
Same failure output too as before, it seems... 10:47
dalek ast: 9a78867 | (Elizabeth Mattijsen)++ | S32-io/io-path-cygwin.t:
Oops, forgot an .IO
lizmat if this doesn't fix it, I'm out of ideas atm 10:48
colomon smoke test broke hard overnight. :\
lizmat colomon: something I did ?
colomon I don't know.
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
10:49 chipotle left
jnthn lizmat: 'friad it doesn't... 10:49
lizmat colomon: there still is (at least) one panda issue 10:50
when Panda::Builder is trying to build itself
10:50 chipotle joined
colomon lizmat: I seem to have rebuilt moar successfully now on the smoker, but broken panda still stops the smoking. 10:50
10:51 FROGGS left
lizmat colomon: I'm not sure how to fix the Panda::Builder issua atm 10:51
colomon and tadzik isn't around?
lizmat jnthn: going to focus on panda again 10:52
masak often finds he would like a NON_FIRST loop phaser
colomon masak: +1
lizmat masak probably wants an 'once-not thunk' as well :-) 10:53
10:53 Akagi201_ joined
jnthn SUBSEQUENT 10:53
But something shorter :) 10:54
masak LATER
pity NEXT is taken :)
colomon REST ?
masak THEN
I think I like REST, it has a nice ring to it
the use case is anything delimiter-related, by the way 10:55
"put in the commas, but only after the first one"
lizmat why not keep it simple?
!FIRST thunk
masak ooh
lizmat !once thunk
masak lizmat: I have no idea what semantics you envision for !once
oh wait, now I do, I think. 10:56
lizmat execute all but the first time
masak right.
then I don't think !once is a good name for it.
"not once" makes it sounds like "zero times"
though I really dig !FIRST
jnthn Nah, it's...ugly and confusing :)
colomon ===SORRY!===
10:56 Akagi201 left
colomon No object at index 377 10:56
masak and there's something naughty about a phaser starting with a non-alphabetic :) 10:57
jnthn Right
masak goes to S04 to see if this would apply to more phasers
jnthn And given FIRST is an r-value by spec, iirc, then !FIRST is a totally useful thing to write... ;)
10:57 chipotle left
masak oh, troo 10:58
lizmat colomon: yes, that's the problem I'm seeing also
colomon FIRST … ELSE ?
masak ugh 10:59
lizmat colomon / FROGGS[mobile]: am I correct in assuming it uses the downloaded version of Panda::Builder to build itself ?
masak also, FIRST doesn't really run "on first iteration", it runs "on first iteration, befor any ENTER"
colomon masak: hmmm, I didn't know that
lizmat: I think so 11:00
11:01 prevost joined
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`
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␤»
masak seems `once` is per function invocation.
colomon masak: I never user ENTER… is there any other difference between FIRST and ONCE? (never heard of ONCE that I can recall).
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" } }
camelia rakudo-moar 041c89: OUTPUT«OH HAI␤0 0␤0 1␤0 2␤OH HAI␤1 0␤1 1␤1 2␤»
lizmat colomon: once is what START used to be
masak lizmat: ah; makes sense.
colomon: note, lowecase `once` (because it's not really a phaser)
colomon ah
masak lowercase*
colomon doesn't understand why the once block in the example above is executed twice.... 11:05
jnthn colomon: 'cus for is really map, and once has state var semantics, so it rusn once per closure clone 11:06
11:06 woolfy joined
jnthn is gonna go say hi to folks dans l'office 11:07
bbl
11:10 laben joined
laben hi #perl6 11:10
new build today brought down panda, is it known? 11:12
leont laben: I have the same issue
lizmat we're looking at it... 11:13
laben was it caused by the IO changes?
lizmat looks like it
the problem atm is that Panda::Builder cannot build itself :-(
laben mmh, strange, i build it manually and it works fine 11:14
11:14 virtualsue joined
laben but at the same time fails several tests 11:14
indeed, i get this 11:15
lizmat laben: how do you build manually ?
laben t/builder.t fails 2-4, 6
t/installer.t fails 2-6
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
lizmat it's not Reunification Day everywhere :-)
laben "manually" is not totally true, i use ufo -> make -> make test
lizmat could you gist the failures for me?
laben sorry, not an expert, what do you mean? 11:17
lizmat paste the failure on e.g. gist.github.com ?
laben just a moment 11:18
lizmat colomon: pretty sure it's 5870906 11:19
laben pastebin.com/QmYPpG8B 11:21
colomon builds 9814e864a968356e20f67292ab653cfd3c2f771d to test lizmat++'s theory
colomon is turning his machine over to watching Teenage Mutant Ninja Turtles... 11:22
11:22 salv0 left
laben i need to get out now, break time is ending 11:25
lizmat laben++
laben if you need more info, just post it, i'll read the backlog
bb and good work :)
11:26 laben left
lizmat hmmm... seems like build is not finding anything 11:26
11:32 pepl left
lizmat lunch& 11:33
11:40 salv0 joined 11:41 Hor|zon left
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`
07:51Z <Ven> pmurias: or it abuses method_missing and operator overload to produce cute DSLs like Squeel I talked about earlier
07:52Z <Ven> pmurias: but the most interesting of those will probably be "wrong": github.com/sconover/wrong :-)
11:47 anaeem1_ left
pmurias timotimo: to be fair nqp is completely awesome when compared to pir ;) 11:47
11:48 anaeem1 joined 11:52 pepl joined
moritz IMHO NQP isn't bad for writing the action methods either 11:53
11:57 pepl left 11:58 pepl joined
colomon lizmat: yup, 9814e864a968356e20f67292ab653cfd3c2f771d (the one before 58709063feee03755a21f530842a02f7af43f3d4) works 11:59
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
but I'm also looking at 58709063feee03755a21f530842a02f7af43f3d4 to see if anything jumps out at me
lizmat there's a lot to look at 12:02
colomon was just discovering that.
lizmat I'm trying to run the panda tests manually
would this be a good way?
$ perl6 -Ilib -I../Shell-Command/lib -I../File-Find/lib t/builder.t
or do I need to be in a specific directory for that to work? 12:03
yes, looks like... 12:04
ok, then I got something to work with :-)
[Coke] FROGGS[mobile]: no, jvm spectest time is still wonky.
colomon okay, I can verify that moar-58709063feee03755a21f530842a02f7af43f3d4 can't build panda.
looks like rm_{f,rf} tests are failing in shell-command. 12:05
lizmat *that* I have fixed, afaik
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)
lizmat File::Find tests are clean 12:06
moritz [Coke]: no idea if that's part of the problem
12:06 bjz_ left, bjz joined
lizmat Shell::Command tests also clean 12:06
12:09 laben joined
laben welp, i'm back since i got some free time 12:09
12:09 pepl left
laben mh, can i help somewhat to fix panda? 12:10
s/somewhat/somehow/g, dammit need a coke 12:11
lizmat :-)
laben oh, this irclog thingy is quite useful 12:12
btw, is there a quick way to dump some $var a la Data::Dumper? 12:13
moritz laben: say $var.perl
laben builtin, fantastic, but it doesn't output in a test :/ 12:14
12:14 Ven joined
colomon masak++ # just finished reading yesterday's macro post 12:14
moritz laben: how do you run the test? 12:15
Ven masak: thanks :)
moritz (you want to use 'note' or 'diag' instead of 'say')
laben env PERL6LIB=... prove -e 'perl6' t/builder.t
moritz env PERL6LIB=... perl6 t/builder.t # and you'll see it
laben moritz: cool 12:16
well, it seems i found something 12:17
Ven m: my ($a, @b, $c) = ^10; say $c; # this always makes me sad :(
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
basically, it doesnt find files inside the lib directory
Ven m: for ^10{ say FIRST 1; }
camelia rakudo-moar da3aae: OUTPUT«===SORRY!=== Error while compiling /tmp/YXaZTV21E7␤Missing block␤at /tmp/YXaZTV21E7:1␤------> for ^10{ say FIRST 1; }⏏<EOL>␤ expecting any of:␤ postfix␤ statement end␤ statement m…»
Ven m: for ^10{ say FIRST { 1 }; }
camelia rakudo-moar da3aae: OUTPUT«===SORRY!=== Error while compiling /tmp/FlFFlTQOxr␤Missing block␤at /tmp/FlFFlTQOxr:1␤------> for ^10{ say FIRST { 1 }; }⏏<EOL>␤ expecting any of:␤ postfix␤ statement end␤ stateme…»
lizmat laben: yeah, looking at that... 12:19
but the find itself seems fine, looking at "indir" now
laben find is fine? then the grep is at fault 12:20
@files is empty there
lizmat it could be looking in the wrong dir
laben find is not fine, doesnt fine anything. how do i check which dir it's looking into? 12:21
lizmat good question :-)
Ven I'm looking for the doc of prefix<\\>, it doesn't seem to be in s03? 12:23
12:23 kurahaupo left
lizmat yeah,. looking in the wrong dir 12:23
Ven wrong syn? 12:24
oh sorry
laben is it because of indir not working?
Ven nothing seems to explain what \ means in \eqv 12:25
lizmat some interaction with indir, indeed
12:26 pepl joined
laben lizmat: found a probable issue, seems easy to fix -> temp $*CWD = $where.path.absolute; is not right 12:27
lizmat yes, that should be .IO.absolute 12:28
laben $*CWD is a q|...|.IO before, a string after
Ven m: sub bar (|args = \(1,2,3)) {...}
camelia rakudo-moar da3aae: OUTPUT«===SORRY!===␤At Frame 2, Instruction 4, op 'param_sp' has invalid number (3) of operands; needs 2.␤»
lizmat but that doesn't fix it :-(
Ven oh what?
r: sub bar (|args = \(1,2,3)) {...}
camelia rakudo-jvm da3aae: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
( no output )
..rakudo-moar da3aae: OUTPUT«===SORRY!===␤At Frame 2, Instruction 4, op 'param_sp' has invalid number (3) of operands; needs 2.␤»
Ven is that a moarbug?
lizmat laben: think I found it
Ven lizmat: ^ do that look like a moarbug to you? 12:30
m: sub bar (|args = \(1,2,3, 5, 6)) {...}
camelia rakudo-moar da3aae: OUTPUT«===SORRY!===␤At Frame 2, Instruction 4, op 'param_sp' has invalid number (3) of operands; needs 2.␤»
lizmat Ven: yes
Ven alright 12:31
lizmat laben: it's a problem in IO::Path.dir 12:32
Ven created an issue on the moarvm repo
laben lizmat: got a patch? 12:33
lizmat am testing one now
spectesting now 12:34
not sure if final solution yet
grondilu 08:36 < moritz> (or you could just put the whole stuff into an array and write it at the end :-)
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>)
pmichaud for RT #122891, I'll argue that ^^ and $$ need to be more aware of the logical newline sequences 12:36
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122891
lizmat laben: seems to have a similar issue with copy()
pmichaud ^^ shouldn't match after \r if there's a \n immediately following
laben lizmat: the issue being?
lizmat copy not finding the file to copy
pmichaud $$ shouldn't match between a \r and a \n 12:37
laben cpy from IO or copy from panda?
lizmat hmmm... dir() is supposed to return strings rather than IO::Paths
pmichaud I'm afk for a while
lizmat laben: copy from IO 12:40
12:45 guru joined 12:46 guru is now known as Guest76131, Guest76131 is now known as ajr_
Ven I'll be honest: I really like Rubys' catch/throw. 12:52
(These are *not* the same as Ruby's exception mechanism keywords, raise/rescue/ensure (throw catch finally in java-like languages)) 12:53
I guess we can do stuff similar with goto :P.
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␤␤»
Ven m: sub foo { sub { 5 } }; say foo() + 1
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␤␤»
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 12:59 kaare_ left
lizmat so reverting to that: maybe the spec will need to be adapted as well... :-( 13:00
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
lizmat yeah, but that's an underlying pb with dir() 13:02
laben should dir() return an absolute path?
lizmat the next problem I ran into is that dir() returning Str instead of IO::Path, breaks a lot
yes 13:03
laben it doesnt
lizmat it doesn't ?
what OS / backend ? 13:04
laben or better, it returns a :CWD part plus a q|...|IO
shouldn't it return simply an absolute path
?
lizmat the new spec says: return a list of relative path names
laben so, it's right 13:05
lizmat maybe the default should be absolute...
13:05 TuxCM joined
TuxCM tadzik, how's my slang doing? 13:06
laben nah, just append a .absolute to those uses
i'll try that
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.␤»
..niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
..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␤␤»
moritz TuxCM: needs Foo.new
grondilu japhb: attempt of a version with a Supply: gist.github.com/grondilu/a5d200996b2d6f09dbaa 13:08
seems to be drawing the picture but I get:
===SORRY!===
Too few positionals passed; expected 2 arguments but got 1
at the end
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␤»
dalek albot: 85970ab | moritz++ | evalbot.pl:
remove niecza and r-j from p6: and r: targets

they do not work right now, and there is no use in spamming the channel
13:12
albot: 945019a | moritz++ | evalbot.pl:
track nick change
Ven masak: in your macro blog post, you talk about "AngularJS", not sure what that means?
moritz Ven: google it? 13:13
Ven moritz: what?
"AngularJS macros"?
moritz Ven: angularjs
Ven I know what angularjs is. No idea how it's related to macros, however.
13:13 pepl left
moritz Ven: angular includes using HTML as a templating system, and macros are very much like template systems for programming languages 13:14
Ven: I can see why it might serve as an inspiration
Ven Err... So why "angularjs" instead of "template systems"?
13:15 camelia left, camelia joined
moritz that I don't know 13:16
pmurias angularjs has support for defining new html elements
13:16 fhelmberger left 13:17 ChanServ sets mode: +v camelia
Ven pmurias: sure, just like you might have functions and other in other template languages 13:17
moritz masak: t5?
Ven t%? 13:18
meh qwerty 13:19
pmurias Ven: they are more like marcos than functions
Ven pmurias: no, I disagree, these functions generate HTML elements anyway
moritz Ven: t5 is unrelated to your discussion (and instead related to the last p6 coding contest) 13:20
Ven moritz: oh, nice :-)
TuxCM pastebin.com/PpDKvrd9 <= I do not understand
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
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
moritz TuxCM: seems to be a scoping bug of sorts
TuxCM wtf :) this is my *first* perl6 attempt, and I find a bug? 13:23
moritz TuxCM: bad luck
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
lizmat: what do you think shoudl find return?
should*
lizmat the underlying problem is really with dir() 13:24
pmurias Ven: have you used angular? 13:25
Ven pmurias: yeah, I have a prod app using it
and several small toys
laben lizmat: i don't think it's a problem if dir() returns relative paths, one just needs to use .absolute to convert them
lizmat yeah, but dir("relative path") is currently borked 13:26
13:27 pepl joined
laben lizmat: in what way? 13:28
lizmat it doesn't add the "relative path" to the paths
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:31
Ven pmurias: I get that. I'm just surprised AngularJS gets such a piece of the cake 13:32
Anyways...
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 ;)
Ven pmurias: ha, you seem to be more up-to-date about upcoming Angular2.0 stuff than I am then! 13:33
.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")
yoleaux Ven: I'll pass your message to masak.
dalek kudo/nom: faf7805 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
Fix copy() breakage when specifying relative paths
13:34
lizmat that at least is now fixed
13:35 Hor|zon left
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
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")
camelia rakudo-moar da3aae: OUTPUT«foo␤bar␤»
pmurias Ven: why?
masak m: class C { has $.sep = "|"; method foo { .say for "foo|bar".split(/$!sep/).map(~*) } }; C.new.foo
camelia rakudo-moar da3aae: OUTPUT«foo|bar␤»
masak TuxCM: interesting.
masak submits rakudobug
Ven pmurias: it was a failed experiment. Really, really terrible one
.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.
Ven well, dylan started with a lisp-like syntax though...
oh, masak is here actually... 13:38
PerlJam good * #perl6!
pmurias Ven: what I'm interested is why it failed, as I'm quite happy using angular
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?
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.
The big problem is that the ecosystem is really rotten 13:40
TuxCM "3\x{00}3" cannot be written as "3\03"
Ven pmurias: overall, it's the big interaction of things that didn't pan out correctly. 13:42
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:43
13:44 laben left
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
masak Ven: oki
Ven masak: sorry, didn't notice you were there :P
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.
Ven I mean, double-way binding was done quite a while ago by other frameworks (GUI ones, IIRC.)
masak and that's the one I know I have things to be inspired by.
Ven masak: fair enough :)
dalek kudo-star-daily: 6d189a0 | coke++ | log/MoarVM-version.log:
today (automated commit)
13:49
pmurias bbl&
13:49 pmurias left 13:51 raiph joined 13:52 Hor|zon joined
lizmat jnthn: am I correct in assuming that nqp::opendir gives relative file names relative towards what *it* thinks is the current dir? 13:55
[Coke] moritz: given that all the jvm stuff is happening via the eval server, that's possible. 13:56
moritz: could it be the way I created the swap? Seemed to work ok for a while...
raiph m: say "a\c0b" # TuxCM ? 13:57
camelia rakudo-moar da3aae: OUTPUT«a␀b␤»
TuxCM ok, I'll buy that 13:58
b2gills masak: you could fake a NON_FIRST loop phaser 14:02
m: for ^6 {if (state Bool $)++ { .say }}
camelia rakudo-moar da3aae: OUTPUT«1␤2␤3␤4␤5␤»
14:05 isBEKaml joined
masak b2gills: yes, I ended up using a workaround like that. 14:05
Ven masak: I usually do `for ^6 { if * ^ff * {} }` :{ 14:08
:P
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
pmichaud m: class C { has $.rx = 'bc'; method foo { say 'abcd' ~~ /$!rx/; } }; C.new.foo 14:09
camelia rakudo-moar da3aae: OUTPUT«Nil␤»
Ven m: for ^6 { if * ^ff * { .say } }
camelia rakudo-moar da3aae: OUTPUT«1␤2␤3␤4␤5␤»
Ven Well, whatever that was :P
oh, alright, it was pmichaud++'s m:
14:09 raiph left
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
pmichaud m: class C { has $.rx = 'bc'; method foo { say $!rx; say 'abcd' ~~ /$!rx/; } }; C.new.foo
camelia rakudo-moar da3aae: OUTPUT«bc␤Nil␤»
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?
pmichaud m: my $rx = 'bc'; say 'abcd' ~~ /$rx/; # just checking
camelia rakudo-moar da3aae: OUTPUT«「bc」␤␤»
dalek kudo/nom: baa8269 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Make dir() a bit saner

Alas, it doesn't fix panda just yet
14:12
pmichaud adds details to RT #122892
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122892
b2gills lizmat: Should .dir really hard-code '.' and '..'? I think it should get them from $*SPEC 14:16
lizmat b2gills: I have no idea why that is there... it's on my list of things to look at 14:17
actually, I do 14:18
nqp::opendir doesn't return . and ..
if the test allows for them, they need to be added
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:19
14:20 isBEKaml left 14:21 treehug88 joined, kaare_ joined
Ven TuxCM: not without @list.kv and increment the key by hand 14:23
TuxCM thnx
b2gills lizmat: On VMS the values for updir, curdir, devnull, rootdir etc depend on a system mode metacpan.org/source/File::Spec::VMS 14:24
Ven for @list.kv -> $i, $_ { when "bar" { say @list[$i + 1] // fail "Oops" } }
lizmat b2gills: we don't plan VMS support just yet
Ven m: my @list = <foo bar baz bar>; for @list.kv -> $i, $_ { when "bar" { say @list[$i + 1] // fail "Oops" } }
camelia rakudo-moar da3aae: OUTPUT«(timeout)»
TuxCM nice 14:25
b2gills It would be nice if the only change required is to add IO::Spec::VMS though
leont b2gills: you're a funny man
Writing an IO::Spec::VMS isn't nearly the hard part 14:26
b2gills True, I meant for .dir to work correctly
14:29 Hor|zon left
[Coke] I would not go out of our way to add any support for VMS at this point. 14:31
In fact, I'd go out of my way to not add any support.
14:33 FROGGS[mobile] left
leont Having experience with portability requirements that included VMS, I would encourage you not to start caring 14:34
14:35 Hor|zon joined 14:36 FROGGS[mobile] joined
lizmat is still struggling with *CWD / cwd / nqp:: strangenes 14:40
s
14:47 ecocode left 14:50 ajr_ left, BenGoldberg joined
lizmat tadzik: could I also get a commit bit for File::Find and Shell::Command ? 14:54
dalek kudo/nom: 16232fc | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
Fix various relative/absolute path confusion
14:56
14:56 pepl left 14:59 guru joined, guru is now known as Guest14788 15:00 PZt left 15:01 Guest14788 is now known as ajr_
masak TuxCM: 15:05
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␤»
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)
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") }
camelia rakudo-moar faf780: OUTPUT«cow␤horse␤dog but cat coming up next␤»
masak that works, but has the problem that you're stopping at dog. 15:08
i.e. you're not iterating cat any more.
if you want to iterate all elements, use .rotate and the stopper token.
15:09 ssutch left
masak or this: 15:09
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") }
camelia rakudo-moar faf780: OUTPUT«cow␤horse␤dog but cat coming up next␤cat␤»
masak fsvo "STOP" that doesn't occur naturally in @things 15:10
moritz' way works with the above solution, too :)
dalek nda: 209540b | (Elizabeth Mattijsen)++ | lib/Panda/ (3 files):
Changes to make local build of other modules work

Committing so that a fetch from Github will get this version, so that Panda::Builder can build itself.
lizmat alas... :-( 15:11
tadzik lizmat: done and done :) 15:12
lizmat++ # thanks a lot :)
lizmat thank you
well, we're not there yet :-(
panda is still broken, well at least for me :-( 15:13
tadzik but we're getting there at least
I don't even know what happeend and broke everything :o
lizmat S16|S32/IO refactor is what happened
as far as I can see, all of Panda's tests pass 15:14
except tester.t, but I got the impression that's intended to fail, right ?
tadzik well, overally is should pass 15:15
inside there is a test suite that should fail :)
the output is always confusing
15:20 erkan joined, erkan left, erkan joined
dalek nda: 85b744b | (Elizabeth Mattijsen)++ | lib/Panda/Builder.pm:
Another fix that may need to be on github first
15:22
TuxCM jeez, "$buff.split(rx{long expression}, :all)\n.map(~*);" is not allowed :(
lizmat ah, the newline between ) and . ? 15:23
15:23 Hor|zon left
TuxCM yes 15:23
lizmat what can I say :-( 15:24
I miss that every now and then as well
TuxCM needz a slang!
srsly, I did not expect to run into that many "problems"
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␤»
TuxCM UGLY!
15:27 ajr_ left 15:28 ajr joined, ajr is now known as Guest83610 15:29 Guest83610 is now known as ajr_
dalek nda: 8a07955 | (Elizabeth Mattijsen)++ | lib/Panda/Builder.pm:
Remove special casing for Build
15:29
[Coke] do we want people submitting rakudo moar bugs to moar? do we not care, we'll work on both queues?
dalek nda: a587aed | (Elizabeth Mattijsen)++ | lib/Panda/Builder.pm:
That's not it either

This reverts commit 8a07955dba8dc7b02aa6f95f3dca274102729ac5.
15:31
15:34 Hor|zon joined
lizmat I'm am going to get some fresh air and look at the broken panda when I'm back 15:36
suggestions welcome
if all fails, I guess I'll have to revert later tonight :-(
TuxCM still fails for me on rakudobrew with ! ~/.rakudobrew 15:39
pastebin.com/6fn8s0VU 15:41
15:44 zakharyas left 15:47 laben joined
laben lizmat: are you online? 15:48
15:49 denis_boyun_ left
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++
masak TuxCM: both times it ended up with me proposing unspace as a solution, and you saying that was ugly. :)
TuxCM: at least you're consistent in your strong, unalterable opinions.
TuxCM masak, yes, and tadzik proposed a slang for me
masak I'll believe that's a good solution when I see it ;) 15:50
the real answer is that Perl 6 values self-clocking and abhors TTIAR a fair bit more than other languages.
any slang you made would have to bear the consequences of deviating from Perl 6's consistency in that regard.
leont TTAIR? 15:51
15:52 ssutch joined
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
probably something like "this set of helpful error messages now simply won't happen, oh, and also some clearly faulty programs are now legal"
leont: "Two Terms In A Row". very fundamental Perl 6 parsing concept. 15:53
TuxCM slangs would make that lexically possible
masak sure they would. as would Cool Macros.
leont Ah, yes, of course
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 :/
masak didn't mean to come across as bashing. you're far from alone in this opinion.
TuxCM I love perl6' error messages
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
masak it's not arbitrary, nor to annoy you.
it's a certain type of consistency.
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
masak I was all "is it that tux...?" -- seeing the closing braces -- "...yup." :)
TuxCM $x =~ s{x}{y}; does not really produce a usable error
masak m: my $x; $x =~ s{x}{y} 15:57
camelia rakudo-moar 16232f: OUTPUT«===SORRY!=== Error while compiling /tmp/YYBM7x696L␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~␤at /tmp/YYBM7x696L:1␤------> my $x; $x =~⏏ s{x}{y}␤»
masak I beg to differ. quite usable.
TuxCM m: my$x="x";$x~~s{x}{y};$x.say 15:59
camelia rakudo-moar 16232f: OUTPUT«===SORRY!=== Error while compiling /tmp/A449IpNHW4␤Unsupported use of brackets around replacement; in Perl 6 please use assignment syntax␤at /tmp/A449IpNHW4:1␤------> my$x="x";$x~~s{x}⏏{y};$x.say␤ expecting…»
TuxCM following the suggestion. and that helps me no further
masak quite clear to me. 16:00
TuxCM :)
masak maybe the error message can be changed to be clear to you, too?
TuxCM =~ suggest ~~ 16:01
that is clear
masak m: my $x = "fox"; $x ~~ s{x} = "y"; say $x
camelia rakudo-moar 16232f: OUTPUT«foy␤»
masak that's the "assignment syntax".
TuxCM ~~ suggests the "assignment" version, but I have no idea what that would be
masak see ^
TuxCM ouch, that really differs.
masak you can still do s{x}{y}
but not together with ~~ 16:02
I never quite found out why exactly.
I bet TimToady can elucidate.
masak tries to find out using the STD log
TuxCM: it really differs, but `s{x} = rhs` is kinda great, too. it completely eliminates the need for the `/e` modifier, for starters. 16:03
dalek rl6-roast-data: 4388ce7 | coke++ | / (4 files):
today (automated commit)
16:04
16:05 Hor|zon left, ghostlines left 16:10 odc left
masak heh. 16:13
I traced the decision back to the original definition of sibble in STD.pm 16:14
still no sign of an actual decision.
I guess I should have looked in the spec logs instead
masak tries that
moritz (totally OT) for about a year we've tried get our older daughter to tidy up her toys. Not much luck. 16:17
now our younger daughter (6 months) is becoming more mobile, and reaching for all the toys all around
(and chewing on paper cards and books and all that) 16:18
suddenly, tidying up works much better than before :-)
masak :D
some unintended consequences can be quite helpful :)
16:19 Hor|zon joined
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:19
which means the decision is older than November 2008. 16:20
TuxCM: seems I was wrong. `s{X}{Y}` (or any brace characters) are flat-out disallowed in Perl 6. not just after `~~`
I still don't quite see what would be bad about allowing that form. maybe someone else can enlighten us. 16:21
16:24 virtualsue left
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 ajr_ left
moritz masak: maybe it's fear of allowing TTIAR? {Y} looks quite term-y 16:26
16:27 guru joined, guru is now known as ajr_
masak moritz: I was thinking along those lines too. 16:28
grondilu .seen TimToady 16:29
yoleaux I saw TimToady 2 Oct 2014 04:30Z in #perl6: * TimToady now in Mountain View, CA :)
BenGoldberg p56: print 'xyz' =~ s/y/b/r;
camelia p5-to-p6 : OUTPUT«print('xyz' ~~ s:P5:r!y!b!)␤»
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"
moritz: ...and I don't see the problem with that. 16:30
BenGoldberg m: print('xyz' ~~ s:P5:r!y!b!);
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␤␤»
TuxCM goes home
masak moritz: saying that `s{X}` followed by `{Y}` is TTIAR but that `s` followed by `{X}` isn't seems weird.
TuxCM might be amazed more later this weekend
masak TuxCM: \o
16:31 FROGGS joined
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.
BenGoldberg: one problem is :r is taken for ratcheting semantics.
BenGoldberg I don't mind if it has a different name. 16:32
FROGGS o/
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:35 leont left
masak m: say 'xyz'.subst(/y/, 'b') 16:36
camelia rakudo-moar 16232f: OUTPUT«xbz␤»
BenGoldberg Thans :)
Err, thanks :) (Stpd fngers)
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:40 pecastro left 16:44 laben left 16:56 Hor|zon left 16:57 Hor|zon joined, ajr_ left 16:58 guru joined 16:59 guru is now known as Guest85002, Guest85002 is now known as ajr_ 17:02 SamuraiJack_ joined 17:03 Hor|zon left 17:10 kaare_ left 17:14 Mso150 joined 17:16 ajr_ left 17:18 ajr_ joined
moritz BenGoldberg: iirc the feature hinged on finding a good name 17:18
:nomodified/:n or :unmodified/:u might work 17:20
17:20 ajr_ left
PerlJam still thinks people should just use the method form if they aren't interested in modifying the string. 17:23
timotimo off topic: ROFL @ Leistungsschutzrecht m) 17:25
masak timotimo: could you provide some context for that? 17:29
17:29 Hor|zon joined
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
so they lobbied for a law that would protect the hard work of those publishers
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.
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"
masak ...of course they would. *sigh*
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
17:32 kjs_ left
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?
timotimo no, that's a different one
masak ah.
timotimo at least i hope so
en.wikipedia.org/wiki/Axel_Springer_AG vs en.wikipedia.org/wiki/Springer_Sci...ness_Media 17:33
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"
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:34
17:34 Hor|zon left
PerlJam timotimo: that they are being blackmailed by google is an interesting interpretation. 17:35
17:36 go|dfish joined
BenGoldberg Blackmail is surely the wrong word, unless we're talking about the publisher's demand for money to use snippets&thumbnails. 17:36
Extortion, on the other hand... maybe.
timotimo PerlJam: i'm going to be following this story as it unfolds. the Springer AG is *very* influential and rich
BenGoldberg: extortion and blackmail is the same word in german :\
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
ah, in that case it's extortion, yeah
i'm pretty sure the Springer AG has their fair share of corrupt politicians sprinkled all over our government 17:38
their most influential newspaper is the "Bild" (comparable to The Sun that you can get in Britain apparently) - en.wikipedia.org/wiki/Bild 17:39
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
there may or may not be a right to be listed in search machine's indices
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
the thought that a huge amount of the "regular people" are reading that newspaper makes me a bit sick
17:44 kurahaupo joined
carlin just a small change: github.com/perl6/nqp/pull/189 17:46
timotimo gotta run 17:48
PerlJam timotimo: I just looked at bildblog.de and got a laugh.
17:53 [TuxCM] joined 17:54 dwarring joined
carlin tony-o: github.com/tony-o/perl6-csv-parser/pull/2 18:01
18:14 bartolin joined 18:29 immortal joined 18:30 pepl joined
lizmat is back 18:31
colomon: can you confirm that panda is working for you again?
18:31 erkan left
colomon lizmat: building moar now 18:31
lizmat: were the patches to rakudo or to panda?
lizmat both 18:32
colomon k
lizmat: can confirm the answer is no 18:33
:(
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
lizmat :-(
FROGGS++
colomon decides to rebuild rakudo from scratch, just in case
lizmat won't make a difference
colomon: you're on OS X, right ? 18:35
I wonder what system laben is on
pmichaud good afternoon, #perl6 18:38
colomon lizmat: yes 18:39
lizmat pmichaud o/
colomon lizmat: well, I routinely run on Linux as well, but I checked on OS X
FROGGS pmichaud: o/
lizmat is trying to fix dir() on jvm, which is broken atm
colomon lizmat: can confirm that panda still fails with a completely fresh Rakudo build on OS X 18:42
lizmat :-( thanks for trying :-) 18:43
dalek ast: 02c1d3c | usev6++ | S02-magicals/progname.t:
Fix referenced ticket number
18:44
18:45 guru joined, spider-mario joined, guru is now known as Guest66798, spider-mario left, Guest66798 is now known as ajr_ 18:48 spider-mario joined
colomon lizmat: thankfully rakudobrew makes it really easy to try. :) 18:52
19:01 darutoko left 19:04 Mso150 left, Mso150 joined
pmichaud next week (at APW) I'm planning to focus on S07 and whatever needs doing for Rakudo's list implementation (more) 19:04
it would help a lot to have a comprehensive review of outstanding issues that are still in play for that 19:05
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?
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
pmichaud: and yes, sounds like a good approach
pmichaud performance is absolutely something to be included. examples would help. 19:07
I'll create a ticket
dalek ast: 49d5d2c | (David Warring [email@hidden.address] | S10-packages/precompilation.t:
precompilation tests for diamond releationship for RT #122773 hoelzro++.

Implemented using this hint from lizmat++ irclog.perlgeek.de/perl6/2014-09-23#i_9400516
19:10
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122773
hoelzro yaaaay
dwarring++ lizmat++
dwarring: I've had that on my personal TODO for a few weeks now, thank you! 19:12
dwarring hoelzro: thanks for the test case 19:13
I think I've been bitten by that bug a couple of times
hoelzro I just stumbled upon it =)
19:13 SamuraiJack_ left
FROGGS lizmat: this rather huge diff unbreaks panda on my box: gist.github.com/FROGGS/9a327698fccb244ac44b 19:14
lizmat: though, I need to golf it down further to be in a position to think about a patch
lizmat feels like you're basically reverting 19:15
19:15 Mso150_a joined
FROGGS lizmat: yes, I reverted back to the first good commit, and now I try to isolate something bad :o) 19:15
19:16 Mso150 left
FROGGS I could already exclude 10 modified source files... but the diff is still huge 19:16
19:17 fhelmberger joined 19:20 Mso150 joined
dalek kudo/nom: f948d73 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
Fix dir() on jvm
19:20
19:20 Mso150_a left 19:22 fhelmberger left
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:23
lizmat dwarring: all the S10-packages/precompilation.t tests are failing for me ? 19:25
wonder if that has something to do with the panda failure
pmichaud github.com/perl6/specs/issues/70 # meta-ticket for list issues 19:27
dwarring lizmat: I built rakudo a couple of hours ago 16232fcb3eb65981ee090528b231aaa39a5bb420
I'll pull and rebuild 19:28
lizmat dwarring: what OS are you on? 19:29
dwarring: don't bother, the next commit is really jvm only
dwarring 2.6.32-5-amd64 #1 SMP Mon Sep 23 22:14:43 UTC 2013 x86_64 GNU/Linux
k 19:30
19:30 Hor|zon joined
pmichaud Is anyone actively working on RT #122879? That one seems kinda important. 19:34
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122879
pmichaud It seems to be the same issue cited in Francis Smit's latest post to p6c, too.
I can confirm the bug did not exist in 2014.08, fwiw. 19:35
19:35 Hor|zon left
FROGGS pmichaud: I probably know how to fix it 19:35
lizmat pmichaud: focused on fixing panda atm 19:36
FROGGS so, I'll fix it this weekend
lizmat: I know one issue about panda at least
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
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
lizmat FROGGS: hmmm... that's strange, 19:39
does it clean the dirs ? or does it not remove the files ?
19:39 treehug88 left
FROGGS lizmat: it does not remove anything 19:39
lizmat hmmm... 19:40
pmichaud afk, lunch 19:42
19:42 kurahaupo left, anaeem1 left
FROGGS ewww 19:43
the content of a directory is mangled
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"
lizmat that's yuck
FROGGS m: say "/home/froggs/dev/nqp/install/languages/perl6/site/panda/state.bak".substr( "/home/froggs/dev/panda".chars ) 19:45
camelia rakudo-moar 16232f: OUTPUT«nstall/languages/perl6/site/panda/state.bak␤»
FROGGS that is sort of what happens, probably in .contents or what the method is called
19:45 Psyche^ joined
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:46
lizmat .dir 19:47
yes, I have been messing a lot with that...
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")␤»
raydiak that has to be a bug, right? (I mean, not a spec problem)
chaning my to constant changes how things flatten?
*changing 19:49
lizmat ponders what the use of an anonymous constant is
that should probably complain
raydiak heh, true
just for demo purposes, of course...the real code isn't anon 19:50
19:50 Psyche^_ left
dalek ast: 0981bd2 | (David Warring [email@hidden.address] | packages/Example/ (3 files):
add missing packages for last commit
19:50
ast: b30ed8a | (David Warring [email@hidden.address] | S10-packages/precompilation.t:
Merge branch 'master' of github.com/perl6/roast
masak raydiak: my first assessment is "not necessarily a bug". but I agree it's surprising. 19:53
dwarring lizmat: precompilatiion.t hopefully works better now 19:54
lizmat ok, will test in a mo
19:54 leont joined
raydiak masak: why not a bug? 19:54
bartolin m: $/ = "foo" ## shouldn't that die according to S05 (github.com/perl6/specs/commit/33d7...0732601b1) 19:57
camelia ( no output )
lizmat bartolin: feels like a NYI to me 19:58
19:59 Hor|zon joined 20:00 jakesyl joined 20:02 zeropool joined
bartolin Ah, ok. So I could add a fudged test for that? 20:02
lizmat yup, sure :-)
dalek kudo/nom: 8d3f759 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
Forget about grep, just do a for loop
20:03
20:03 huf joined
lizmat dwarring++ it's ok now 20:04
20:05 Hor|zon left 20:09 treehug88 joined 20:11 treehug8_ left 20:13 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
lizmat FROGGS: when building, it first copies the source file first to the blib directory 20:13
but then it appears to still use the original source file for precomping ?? 20:14
grondilu jobs 20:17
20:17 _slade_ joined
grondilu (sorry wrong terminal) 20:17
lizmat cook 20:18
masak raydiak: because 'my' forces item/list context, but 'constant' doesn't? 20:19
raydiak: though I should add that I'm not sure this is the case, nor that it should be like that.
'night, #perl6
lizmat gnight, masak
raydiak g'night masak
dalek ast: 82e8a20 | usev6++ | S02-names-vars/varnames.t:
Add fudged test regarding direct assignment to $/
20:20
20:21 bartolin left
grondilu can I rely on the cached trait? 20:28
for a function of two integers for instance 20:29
moritz I hope so :-) 20:30
20:32 xfix is now known as notfix
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)»
lizmat $ 6 'sub a($a) is cached { say $a }; a(1); a(1); a(1); a(42)'
1
42
$ 6 'sub a($a,$b) is cached { say "$a $b" }; a(1,1); a(1,1); a(1,2); a(42,1)' 20:44
1 1
1 2
42 1
20:44 prevost left 20:46 prevost joined 20:49 zeropool left
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 kudo/nom: f79cf92 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
Make IO.Path.gist a bit more human readable
lizmat grondilu: it's using the gist of the capture as the key 20:52
grondilu ok 20:53
lizmat the hash is just an ordinary hash
src/core/Routine, line 150
[Coke] TGMIF! 20:54
FROGGS okay, IO::Path.dir's $absolute param does the wrong thing nowadays 20:55
the old code subtracted $cwd in case the queried path was a relative path 20:56
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:57
grondilu I suspect the cache traits itemizes the output. 20:58
I have a function that takes an integer as argument and returns a list. Putting the cached trait on it broke my tests. 20:59
I can actually show you the function: 21:00
sub sb (UInt $n) is cached { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }
it's supposed to return the list of significant bits positions
m: sub sb (UInt $n) { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb 7 21:01
camelia rakudo-moar 8d3f75: OUTPUT«===SORRY!=== Error while compiling /tmp/GxEe4cJWFU␤Invalid typename 'UInt' in parameter declaration. Did you mean 'Int'?␤at /tmp/GxEe4cJWFU:1␤------> sub sb (UInt⏏ $n) { !$n ?? () !! do for 0 .. $n.msb {␤»
grondilu m: sub sb (Int $n) { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb 7
camelia rakudo-moar 8d3f75: OUTPUT«0 1 2␤»
grondilu m: sub sb (Int $n) { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb(7).perl
camelia rakudo-moar 8d3f75: OUTPUT«(0, 1, 2).list␤»
FROGGS lizmat: that's it... now I can install panda
grondilu m: sub sb (Int $n) is cached { !$n ?? () !! do for 0 .. $n.msb { $_ if $n +& (1 +< $_) } }; say sb(7).perl
camelia rakudo-moar 8d3f75: OUTPUT«(0, 1, 2).list.item␤»
lizmat FROGGS: ?? 21:02
grondilu so yeah, it does itemize
21:02 prevost left
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…»
FROGGS lizmat: see? the output of /tmp is mangled 21:03
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…»
FROGGS and that works...
lizmat: IO::Path line 310 is wrong 21:05
21:05 rindolf left
lizmat ah, I see 21:06
FROGGS and probably the line before too
because $absolute has a different meaning then the self.is-relative that was there before
lizmat testing a fix 21:07
FROGGS that works here for me:
- $elem = nqp::substr($elem, $cwd_chars + 1) if !$absolute;
+ $elem = nqp::substr($elem, $cwd_chars + 1) if self.is-relative;
though, I just tested panda, and not the spectests
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␤␤»
lizmat FROGGS: that will break again if you specify :absolute
FROGGS lizmat: probably, yes
lizmat testing a fix 21:09
argh... why doesn't roast catch this :-(
FROGGS :o/
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++
lizmat can sleep again tonight
FROGGS :o)
m: say dir('..')
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|.…»
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|.…»
FROGGS I would expect to not get the same output btw
dalek kudo/nom: 414d911 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
Unbreak panda

  FROGGS++ for finding this one!!!
21:12
kudo/nom: a4309ee | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm:
Unbreak panda on jvm also
21:13
FROGGS ==> Successfully installed panda 21:15
(perl6-m)
21:15 spider-mario left
colomon panda build! \o/ FROGGS++ lizmat++ 21:16
launching smoker run 21:17
FROGGS nice
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
since assigning to an aggregate element always itemizes
lizmat tries that
21:24 pmurias joined
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?
dalek kudo/nom: b3331e4 | (Elizabeth Mattijsen)++ | src/core/Routine.pm:
Preserve itemization when caching

suggested by pmichaud++
21:29
lizmat grondilu: ^^^
grondilu lizmat++ 21:30
lizmat pmichaud++ really 21:31
grondilu pmichaud++ then :)
pmichaud "is cached" is really clever... there ought to be a blogpost or video about it somewhere :)
as in, explaining what it does, not necessarily how it works :) 21:32
21:32 treehug88 left
lizmat pmichaud: there has been quite some discussion about what is being used as a key 21:32
pmichaud Oh, I bet. .gist seems like a reasonable first approximation, though 21:33
is there a way to invalidate the cache?
lizmat not at the moment 21:34
pmichaud is one planned? otherwise it should be "is memoized" or something like that :)
lizmat well, the cache is a lexical in the trait mod
pmichaud maybe unwrapping would invalidate the cache somehow 21:35
anyway, "cached" implies to me a temporary storing of the results, as opposed to a permanent one.
lizmat but you can only know if you got the handle, right?
s/know/do that/ 21:36
FROGGS okay, I can reproduce the repl bug(s)... will fix 'em tomorrow
pmichaud yes, unwrapping might require the handle
lizmat FROGGS: something I did in S16|S32/IO ?
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)
pmichaud BenGoldberg: well, that would likely happen more often than desired
lizmat BenGoldberg: as long as the routine exists, there is a something referring to it
so I don't think it will ever be thrown out
BenGoldberg Well, nothing prevents the routine from recomputing it's results.
pmichaud BenGoldberg: except that the caching prevents the routine from being called again 21:38
s/prevents/circumvents
(with the same arguments, that is)
BenGoldberg TIMTODWI... maybe the user should be able to ask that the cache be kept forever, or only for a little while.
pmichaud or, maybe it's not a cache. :) 21:39
21:39 pepl left
pmichaud I suppose one could argue it's cached only for the duration of the current process... but that feels weirdish 21:39
I only brought this up because whenever I see the word "cache" I ask (myself) the "when does it invalidate?" question. 21:40
and that made me wonder if "cached" might be the wrong word to use here.
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.
lizmat S06:2087 : interesting read... basically, if you don't like how "is cached" works, make one of your own :-) 21:41
synopsebot Link: perlcabal.org/syn/S06.html#line_2087
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 :)
now would could be *really* interesting is the option of caching individual calls, rather than asking that all calls be cached :) 21:42
"is cacheable" 21:43
BenGoldberg pmichaid++ "is cacheable"++
pmichaud or, an option to say "ignore/replace any caching for this particular call"
but at that point it's perhaps S06:2087 --- "just do your own caching, it's not that hard" 21:44
synopsebot Link: perlcabal.org/syn/S06.html#line_2087
lizmat technically, it would be trivial to give access to the cache of a Routine by doing something like: &bar.cache 21:45
and then do &bar.cache = () to reset
pmichaud anyway, I guess I like S06's current formulation. "We provide the really simple case... more flexibility you can do yourself." 21:46
I'm afk, robotics meeting 21:53
colomon Still some fallout overnight -- Clifford, Template::Mustache, and Text::Fortune all started failing tests.
lizmat colomon: looking at it 21:55
21:56 Mso150 left
lizmat not seeing any failures with Clifford 21:57
21:57 Mso150 joined 21:58 PZt joined
lizmat Mustache 91 and 92 fail with wrong version dependency on the settings ? 22:00
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:01
22:02 Hor|zon joined
lizmat that problem was caused by a wrong JSON::Tiny 22:02
it seems to be a problem with chdir
I'm too tired now to look at that... 22:03
will look at it tomorrow (was on my list anyway)
22:03 ssutch left
lizmat I'll have a nice test case now 22:03
and I guess I will have to write a bunch of tests catching all the problems that were uncaught today :-( 22:04
good night, #perl6! 22:06
22:07 Hor|zon left
jercos r: for [1,2,3] {.say} 22:14
camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1 2 3␤»
jercos r: sub foo(Iterable $in) {for $in {.say}};foo([1, 2, 3]) 22:16
camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1 2 3␤»
jercos seems like potentially confusing behavior
pmichaud jercos: how so?
(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.
pmichaud because it's in a scalar 22:18
scalar items don't flatten
that's pretty consistent across Perl 6
r: sub foo(Iterable $in) { for $in.list {.say} }; foo([1,2,3]);
camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1␤2␤3␤»
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
and anything in a scalar variable doesn't auto-flatten, you have to tell it to do so explicitly 22:20
jercos Yup.
pmichaud however, note that: 22:21
r: sub foo(Iterable $in) { $in.map({.say}); }; foo([1,2,3]);
camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1␤2␤3␤»
pmichaud since .map is handled by the Iterable object, not by the $in container 22:22
also: 22:23
r: sub foo(Iterable $in) { for @$in {.say} }; foo([1,2,3]);
camelia rakudo-{parrot,moar} f79cf9: OUTPUT«1␤2␤3␤»
pmichaud which explicitly evaluates $in as a list 22:24
jercos which would also flatten it, yes? 22:26
pmichaud yes 22:27
afk again, robotics 22:32
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:37
that's tough to debug since I can't reproduce it 22:38
colomon lizmat: I get this:
t/92-specs-file.t .. Failed to get the directory contents of '/home/colomon/HarmonyWare/SOLIDS2_1_9/.panda-work/1412375495_1/../mustache-spec/specs': chdir failed: Unknown system error
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:46
grondilu: I had a similar problem, and had to do that a bunch of times to golf it down and report it 22:47
grondilu tries that 22:48
raydiak (mine was RT #121319 just in case you're running in to the same thing) 22:49
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121319
23:09 virtualsue joined
raydiak uh oh 23:10
grondilu: looks like is cached is causing your problem...removed it from Clifford.pm6, and all appears to be well 23:11
grondilu raydiak: indeed, just figured it out myself. 23:14
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:15
23:16 virtualsue left
raydiak helps find bugs :) 23:16
23:20 bjz left 23:21 bjz joined 23:33 jack_rabbit joined