»ö« 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/etcx85 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 HAI012OH HAI012» | ||
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 HAI0 00 10 2OH HAI1 01 11 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/YXaZTV21E7Missing blockat /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/FlFFlTQOxrMissing blockat /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«foobar» | ||
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«12345» | ||
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«12345» | ||
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«bcNil» | ||
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«cowhorsedog but cat coming up nextcat» | ||
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«cowhorsedog 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«cowhorsedog but cat coming up nextcat» | ||
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«asdf» | ||
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/YYBM7x696LUnsupported 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/A449IpNHW4Unsupported use of brackets around replacement; in Perl 6 please use assignment syntaxat /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/GxEe4cJWFUInvalid 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«123» | ||
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«123» | ||
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«123» | ||
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
|