Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-08-16

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 Psyche^ joined #perl6
00:00 dalek rakudo: 73a7674 | masak++ | :
00:00 dalek rakudo:       <pre>m src/core/Buf.pm
00:00 dalek rakudo: </pre>
00:00 dalek rakudo:       <pre style='white-space:pre-wrap;width:81ex'>[Buf] added prefix/infix ~^, infix ~& and infix ~|</pre>
00:00 dalek rakudo:
00:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​3a76745a0de01b7361a75ac8347c516532f92aa
00:01 masak eh? that's not how my commit message looks here... :/
00:01 sorear masak: Why are you committing HTML to svn:log
00:01 masak :(
00:01 masak I did nothing out of the ordinary...
00:02 masak it looks fine locally and on github.
00:02 jnthn Hate That Markup Language in the commit message!
00:03 jnthn masak: Not your fault.
00:03 masak oki
00:03 jnthn It happened to somebody else too on the Parrot channel.
00:03 jnthn On a completely unrelated project.
00:03 jnthn dalekbug maybe...or githubchange, or something.
00:05 masak yeah, probably.
00:06 dalek rakudo: bef86ee | masak++ | :
00:06 dalek rakudo:       <pre>m t/spectest.data
00:06 dalek rakudo: </pre>
00:06 dalek rakudo:       <pre style='white-space:pre-wrap;w​idth:81ex'>[t/spectest.data] added S03-operators/buf.t</pre>
00:06 dalek rakudo:
00:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​ef86ee3a3253a8840c077e5d1a089579949a58a
00:07 pugssvn r32006 | masak++ | [t/spec] added missing 'plan' and footer to recent files
00:22 masak phenny: tell moritz_ that both S03-operators/bit.t and integration/real-strings.t seem to do ~& et al on Str, not Buf. S03:2734 outlaws this. should I simply remove those tests? or should I try to save them by making them convert to Buf?
00:22 phenny masak: I'll pass that on when moritz_ is around.
00:27 ingy is there a p6rules sugar for: <b>* <a> [ <a> | <b> ]*
00:27 ingy that's something I see over and over
00:29 ingy where say, a -> statement and b -> comment
00:29 ingy so at least one statement, with comments anywhere
00:33 arnsholt ingy: I bleev you can do something along the lines of <a>**<b>
00:34 arnsholt Check S05 to be sure
00:34 jnthn zzz o/
00:42 risou joined #perl6
00:42 risou joined #perl6
00:46 gbacon joined #perl6
00:57 redicaps joined #perl6
01:01 Tene I wonder how important the order of the results of X are, or if it could be redefined to work usefully with infinite lists.
01:02 TimToady Already defined, see S03:1786.
01:04 Tene I wasn't asking if the order was defined, I was asking about the reasons for that specific order.
01:05 TimToady I fail to see a better way to do it than the current way, but maybe that's just failure of imagination.
01:06 mmmpork joined #perl6
01:06 Tene 'k
01:06 cottoo joined #perl6
01:06 Tene Thanks. :)
01:07 TimToady I suppose a 3-d space can be progressively sliced by any plane moving in a normal direction
01:08 Tene s/3/N/
01:09 TimToady so you exhaust every finite dimension at every step through the N-space of infinite dimensions, but it still mostly seems like a good way to waste a lot of computing power
01:10 TimToady well, hey, at least it's guaranteed polynomial time
01:12 TimToady course, ∞ to the N is still pretty large...
01:13 justatheory joined #perl6
01:16 Tene Heh, we could walk them in the order of a hilbert curve. ;)
01:20 ingy arnsholt: thx! looking...
01:23 ingy arnsholt: ** is great, but not quite what I was looking for
01:28 Tene You could always do something approximately like this: http://gist.github.com/526218
01:28 Tene module dealing with varying sizes, and extending it to N
01:28 Tene although, similarly, if I want that, I can just write it like I just did.
01:31 ingy TimToady: you can probably better answer my query from 17:27.
01:34 sorear ingy: <a>+ will do what you want if you use it in a rule and <ws> is defined to include comments
01:34 sorear this is what STD and the Rakudo parser do, anyway
01:35 alester joined #perl6
01:37 Tene That algorithm looks to me like it could properly extend to handle N lists, at the cost of keeping one index counter per list.
01:39 ingy <<b>* <a> <b>*>+
01:40 ingy sorear: <ws> is maybe too magical
01:40 Tene ingy: how is that different from [<b>*]**<a> ?
01:40 ingy [<b>* <a> <b>*]+
01:40 ingy Tene: thinking...
01:41 ingy Tene: don't think it guarantees a
01:41 Tene Right, there could just be one <b>
01:41 ingy keep trying!
01:43 ingy <b>* <a> ** <b>*
01:43 Tene Yeah, that would work.
01:44 sorear ingy: in general?
01:44 ingy well it beats my original
01:44 pwang017 joined #perl6
01:44 Tene I've been a little frustrated before by ** being able to only specify one of length or delimiter, but no way to specify both length and delimiter.
01:45 ingy Tene: join #pegex !
01:45 pwang017 left #perl6
01:46 Tene joined!
01:49 sorear I mean, do you hate <ws> in general, or only for this one case
02:00 ingy sorear: I think <ws> feels too tied to p6rules
02:01 ingy but I may be wrong
02:01 ingy I was told it was kinda magical
02:01 ingy anyway, yeah, in this case I wanted something generic
02:01 ingy I was just giving an example
02:05 tylercurtis joined #perl6
02:19 sorear hello tcurtis
02:20 mj41_ joined #perl6
02:21 agentzh joined #perl6
02:21 proller joined #perl6
02:22 tylercurtis Hello, sorear.
02:44 alester proof an announcement for me...
02:45 alester http://gist.github.com/526305
02:47 Tene 'k
02:47 alester Please & thank you
02:47 Tene ew no line breaks. :P
02:47 alester yeah, well
02:47 alester sorry
02:48 Tene s'fine
02:50 alester any comments?
02:51 Tene Yes.  Reading through it now.
02:51 Tene s/vim/Vim/g
02:51 Tene erm, except for the path.
02:52 Tene less-confusing is "For example, <i>syntax/perl.vim</i> had not previously been updated since 2006."
02:52 alester huh, you're right about the capitalization
02:52 Tene I had to check vim.org; I wasn't sure.
02:53 alester I did too. :-)
02:54 Tene are you really saying that *every* support file has been updated, or are you just saying that every *perl-related* support file has been updated?
02:54 Tene By my reading, you're saying the former.
02:55 Tene ah, also probably don't capitalize Vim in urls. :)
02:55 Tene global s/// was too much. :)
02:56 Tene Ask me if you want me to recommend different language for support file updates.
02:56 Tene Otherwise, that's everything that jumps out at me.
02:57 sorear alester: what is that going to be?
02:57 alester Perlbuzz post
03:00 alester http://perlbuzz.com/2010/08/​vim-73-supports-perl-6.html published
03:00 alester thanks
03:00 Tene np :)
03:02 tylercurtis sorear: at some point after GSoC when I've read and thought about traits and the object model some more, I'd like to chat with you about them if you don't mind.
03:04 achromic joined #perl6
03:09 sorear tylercurtis: sure
03:11 redicaps left #perl6
03:16 * sorear is now trying to add some optimizations to niecza, but running into what seems to be a critical misfactoring of the data structures
03:22 * sorear checks out PCT for inspiration
03:34 karb joined #perl6
03:46 sorear I think my problem is that I need smaller steps
03:54 ruoso joined #perl6
04:03 molaf joined #perl6
04:11 redicaps joined #perl6
04:11 redicaps left #perl6
04:17 PenThrive joined #perl6
04:39 molaf joined #perl6
04:45 cjk101010 joined #perl6
04:51 rcfox rakudo: my regext test { <.isa(Num)> } my @a = 1,2,3; say @a ~~ /<test>/;
04:51 p6eval rakudo bef86e: OUTPUT«===SORRY!===␤Malformed my at line 22, near "regext tes"␤»
04:51 rcfox rakudo: my regex test { <.isa(Num)> } my @a = 1,2,3; say @a ~~ /<test>/;
04:51 p6eval rakudo bef86e: OUTPUT«===SORRY!===␤Confused at line 22, near "my regex t"␤»
04:51 rcfox rakudo: my regex test { <.isa(Num)> }; my @a = 1,2,3; say @a ~~ /<test>/;
04:51 p6eval rakudo bef86e: OUTPUT«Method 'test' not found for invocant of class 'Cursor'␤  in <anon> at line 22:/tmp/MK8VTujbkg␤  in 'Cool::match' at line 2394:CORE.setting␤  in 'Regex::ACCEPTS' at line 1␤  in main program body at line 22:/tmp/MK8VTujbkg␤»
04:52 sorear you need to use <&test> to disambiguate (known bug)
04:52 rcfox rakudo: my regex test { <.isa(Num)> }; my @a = 1,2,3; say @a ~~ /<&test>/;
04:52 p6eval rakudo bef86e: OUTPUT«any(Match.new(␤ from => 1,␤ orig => "1",␤ to   => -3,␤), Match.new(␤ from => 1,␤ orig => "2",␤ to   => -3,␤), Match.new(␤ from => 1,␤ orig => "3",␤ to   => -3,␤))␤»
04:52 sorear plain <test> is always parsed as a method currently
04:52 rcfox Ah, thanks.
04:55 tylercurtis What does that do?
04:56 tylercurtis "that" being the <.isa(Num)> bit. Won't that call .isa(Num) on the cursor?
04:56 risou joined #perl6
04:56 sorear yes
04:56 rcfox http://perlcabal.org/syn/S05.ht​ml#Matching_against_non-strings
04:57 sorear bear in mind that that entire section is completely unimplemented
04:58 diakopter sorear: re KenGuru trying niecza on windows... I'm almost certain nobody has gotten std to run in strawberry perl (and I think I'm the only one who's gotten it to run in cygwin, but that was year(s) ago)
04:58 * tylercurtis wonders why one would even want to be able to do /<.isa(Dog)>/.
04:59 tylercurtis Why not just *.isa(Dog).
04:59 sorear tylercurtis: it's very useful for [ \d || <.panic("No digits allowed here")> ]?
05:00 rcfox I was actually planning to use it as a rule to test the properties of my token.
05:00 diakopter sorear: (let alone activeperl or microsoftperl ;)
05:00 sorear tylercurtis: also, it's possible that entire section will be scrapped in favor of the replacement you did for GSoC
05:01 sorear or, the ideas from it ported into a p6 frame anyway
05:01 sorear microsoft perl?
05:01 _jaldhar joined #perl6
05:02 sorear pmichaud: ping
05:02 simcop2387 joined #perl6
05:03 tylercurtis sorear: I understand the usefulness of calling methods on the Cursor/Grammar in regexes. But I don't see how <.panic> relates to doing $obj ~~ /<.isa(Dog)>/. I suppose object array matching could be useful with <,> and <elem>, possibly.
05:04 astinus joined #perl6
05:05 diakopter sorear: yes microsoft distributes a build of perl. but my winking comment is beside my point, which is that niecza won't run on windows until std is bootstrapped in mono
05:11 kaare joined #perl6
05:12 rcfox Hm.
05:28 Mowah joined #perl6
06:05 uniejo joined #perl6
06:30 Su-Shee joined #perl6
06:40 Axius joined #perl6
06:48 moritz_ good morning
06:48 phenny moritz_: 00:22Z <masak> tell moritz_ that both S03-operators/bit.t and integration/real-strings.t seem to do ~& et al on Str, not Buf. S03:2734 outlaws this. should I simply remove those tests? or should I try to save them by making them convert to Buf?
06:48 moritz_ phenny: tell masak converting to Buf would be preferable
06:48 phenny moritz_: I'll pass that on when masak is around.
06:54 wtw joined #perl6
07:09 NiiHiiL joined #perl6
07:13 xoor joined #perl6
07:13 xoor rakudo: say 'Hello world';
07:14 p6eval rakudo bef86e: OUTPUT«Hello world␤»
07:26 pmurias joined #perl6
07:26 pmurias ruoso: hi
07:30 tadzik rakudo: DateTime.new
07:30 p6eval rakudo bef86e:  ( no output )
07:30 tadzik rakudo: DateTime.new; say 'alive'
07:31 p6eval rakudo bef86e: OUTPUT«alive␤»
07:31 tadzik hrm
07:31 tadzik http://wklej.org/id/377420/ why a difference?
07:31 timbunce joined #perl6
07:38 tadzik .succ and .pred are NYI for DateTime?
07:38 tadzik looks so
07:39 ajs left #perl6
07:40 foodoo joined #perl6
07:41 pmurias tadzik: how much do the increment DateTime by?
07:41 tadzik pmurias: specs says it goes per days
07:42 tadzik see http://perlcabal.org/syn/S3​2/Temporal.html#Arithmetics
07:46 pugssvn r32007 | moritz++ | [t/spec] remove invalid rx:g tests
07:49 pugssvn r32008 | moritz++ | [t/spec] rakudo unfudges
07:49 sorear diakopter: STD needs to be changed to stop making assumptions about filesystem layout *anyway*
07:53 Tene rakudo: say ('{aaa' ~~ /'{' ~ '}' 'a'*/).perl
07:53 p6eval rakudo bef86e: OUTPUT«Unable to parse _block119, couldn't find final '}' at line 1␤  in <anon> at line 22:/tmp/9HumU8Tyke␤  in 'Cool::match' at line 2394:CORE.setting␤  in 'Regex::ACCEPTS' at line 5791:CORE.setting␤  in main program body at line 22:/tmp/9HumU8Tyke␤»
07:53 ingy Tene: got it
07:53 Tene ingy: see how it explains what the goal was?
07:53 Tene ~ is called 'goal matching' oslt, iirc.
07:54 ingy still, I think its sugar built of other primitives
07:55 ingy which is only to say that I can bootstrap without it
07:55 ingy I definitely like it
07:55 sorear #pegex?
07:55 sorear (is this from)
07:55 ingy sorear: aye
07:56 Tene ingy: Yes, that's right.
07:56 * ingy ducks back into #pegex
07:56 sorear STD currently handles it in a way which can't quite be desugared
07:57 sorear except with a subrule
07:57 sorear regex as_in_brackets { :my $*GOAL = '}'; '{' a* [ '}' || <.panic: "Unable to parse $?DBA, couldn't find final '}'"> ] }
08:01 mac| joined #perl6
08:01 pmurias sorear: what sorts of assumptions does STD make?
08:01 mac| Hello
08:01 tadzik o/
08:05 agentzh joined #perl6
08:10 dakkar joined #perl6
08:10 sorear pmurias: ./syml can be written to, module names can be turned into filenames like Foo/Bar.pm.syml, : separates paths
08:17 dalek niecza: 044e4a9 | sorear++ | :
08:17 dalek niecza:       <pre>m Niecza/Actions.pm
08:17 dalek niecza: m Niecza/Grammar.pm6
08:17 dalek niecza: m Op.pm
08:17 dalek niecza: </pre>
08:17 dalek niecza:       <pre style='white-space:pre-wrap;width:81ex'>Allow Op::CgOp to have Op children</pre>
08:17 dalek niecza:
08:17 dalek niecza: review: http://github.com/sorear/niecza/commit/0​44e4a9784292dcc177ae2744d3962845aeac6ab
08:17 dalek niecza: ec30fe4 | sorear++ | :
08:17 dalek niecza:       <pre>m Op.pm
08:17 dalek niecza: + Optimizer/Beta.pm
08:17 dalek niecza: </pre>
08:17 dalek niecza:       <pre style='white-space:pre-wrap;width:81ex'>Commit some sketches of the beta-optimizer
08:17 dalek niecza: I don't think this can be made to work properly with our current ASTs.  What
08:17 dalek niecza: I need is an AST high enough level to express closures but low enough to
08:17 dalek niecza: desugar signature binding; the PAST to our POST and AST.</pre>
08:17 dalek niecza:
08:17 dalek niecza: review: http://github.com/sorear/niecza/commit/e​c30fe40826b211582f87ccd5a2cd3908cd4af75
08:17 timbunce joined #perl6
08:18 drbean joined #perl6
08:22 moritz_ looks like dalek's RSS parser failed (or the format changed, or so)
08:23 redicaps1 joined #perl6
08:24 pmurias why are there html tags in commit messages?
08:24 moritz_ 10:22 < moritz_> looks like dalek's RSS parser failed (or the format changed, or so)
08:31 Su-Shee joined #perl6
08:32 awwaiid joined #perl6
08:33 cono joined #perl6
08:35 jnthn morning
08:36 mac| hello jnthn
08:36 Helios joined #perl6
08:36 moritz_ o/
08:38 redicaps1 他会给你解释哪个没通过的
08:38 redicaps1 lol, sent to the wrong channel....
08:39 * moritz_ didn't understand it anyway :-)
08:39 mathw Ah, speaking in the wrong language
08:39 mathw I do that
08:40 moritz_ \o mathw
08:40 moritz_ mathw: small reminder: you're in docs/release_guide.pod as volunteer for the Thursday compiler release
08:40 mathw o/ moritz_
08:40 mathw oh am I
08:40 Trashlord joined #perl6
08:40 mathw yes I am aren't
08:41 sftp joined #perl6
08:41 redicaps1 I think masak  can understand ... but looks like he is not here right now.
08:41 mathw we've got a few people who might be able to understand that
08:42 moritz_ JimmyZ, au|irc, probably more
08:42 mathw I just think it looks pretty
08:42 mathw At least I've got the fonts for it
08:44 moritz_ nine: your bench tools (rightly) complain that rakudo's docs/test_summary.times isn't valid JSON... how did you solve that problem on your machine?
08:46 redicaps joined #perl6
08:47 simcop2387 joined #perl6
09:07 azert0x joined #perl6
09:07 azert0x joined #perl6
09:07 azert0x joined #perl6
09:07 azert0x joined #perl6
09:08 M_o_C joined #perl6
09:13 meppl joined #perl6
09:40 thebird joined #perl6
09:43 gbacon joined #perl6
09:45 * ingy just wrote a pegex grammar to parse pegex grammars...
09:45 ingy it compiles but no idea if it works
09:45 moritz_ self-hosting ftw
09:45 cxreg does it parse itself?
09:45 ingy and too tired to start testing...
09:46 daxim joined #perl6
09:46 ingy it will, after I debug it :)
09:46 cxreg heh
09:46 moritz_ and does it reject invalid input? :-)
09:46 ingy moritz_: it probably rejects valid input at this point ;)
09:46 sorear meanwhile in niecza-land... β-reduction is *close*
09:47 pmurias in the optimizer?
09:47 sorear yes
09:47 ingy I compiled it with my bootstrapping pegex parser...
09:48 nadim_ joined #perl6
09:48 ingy the grammar is here: http://bit.ly/brJPSC and the compiled grammar is here: http://bit.ly/d0FFCJ
09:48 masak joined #perl6
09:48 masak good mo... good midday, #perl6!
09:48 phenny masak: 06:48Z <moritz_> tell masak converting to Buf would be preferable
09:48 sorear midday?  it's 3am
09:48 ingy and the ingy is here => o_____
09:48 moritz_ it's always midday somewhere
09:48 jnthn masak: Slept well? :-)
09:49 ingy night... zzzzzzzzzz
09:49 masak jnthn: seems so. :)
09:49 jnthn :-)
09:49 masak good thing there are no meetings or such in the morning.
09:49 moritz_ <=================O  # at least the pencil is down :-)
09:49 nadim_ morning, a quick question, are refinement types taken into account when doing multiple dispatch?
09:50 moritz_ what do you mean be "refinement types"?
09:50 moritz_ subset?
09:50 nadim_ subsets
09:50 jnthn nadim_: Yes, they act as tie-breakers.
09:50 moritz_ subsets are dealt like constraints, ie tie... jnthn was faster
09:50 jnthn That is, something with a refinement is narrower than something without, given they both have the same nominal type.
09:51 moritz_ so  subset Odd of Int where * %% 2; multi f(Odd $x)   is just the same as   multi f(Int $x where * %% 2)
09:51 moritz_ well, s:g/Odd/Even/, but you get the picture
09:51 jnthn (Folks here tend to refer to them as "constraints" or "subset types" rather than refinement types, though that was the name that a paper on the topic gave to them.)
09:52 moritz_ to me, inheritance is also a refinement.
09:52 masak moritz_: the pencil officially goes down at 19:00 UTC, but I thought I'd let it rest till then, unless someone discovers something really urgent.
09:52 nadim_ so the multiple dispatch is not optimized at run time but when the subs are called
09:52 nadim_ s/run/comple/ sorry
09:53 moritz_ they are ordered by narrowness of nominal type at compile-time
09:53 jnthn masak: It's a Norweigan Blue pencil? Just resting? :-)
09:53 masak jnthn: it's pining for 19:00 UTC :)
09:53 moritz_ (or at least at first dispatch, not sure)
09:53 jnthn nadim_: We can determine the ordering at compile time.
09:53 jnthn nadim_: Though at the moment we compute it on the first dispatch. That will change in the coming months.
09:53 jnthn But we don't quite have some other infrastructure in place to deal with it all at compile time yet.
09:54 masak when I put together my contributions into a .zip file, I'll need to compile them from three places: Rakudo, Mu/t/spec, and Mu/docs/Perl6/Spec
09:54 * moritz_ likes it that masak refers to it as the Mu repository :-)
09:54 jnthn nadim_: In absence of refinement types, we can also - in cases where we have sufficient type information - also do the dispatch at compile time.
09:55 nadim_ jnthn: programmersheaven FAQ++
09:55 * sorear can't wait to be the first to implement Wadler-type dispatch optimization
09:55 sorear unfortunately, I'll need to actually process class statements at compile time first, I think
09:56 mmmpork joined #perl6
09:56 jnthn sorear: Yes. :-)
09:56 pmurias sorear: Wadler-type dispatch optimisation? paper?
09:57 jnthn sorear: That's going to be one of the things that'll change in Rakudo too.
09:57 nadim_ pmurias: maybe http://www.cs.washington.edu/homes/​mernst/pubs/dispatching-ecoop98.ps
09:58 masak My first impression of Rakudo Star ... http://www.perlmonks.org/?node_id=852336
09:58 moritz_ jnthn: btw if you get 'require Foo::Bar <import list>;' to parse (maybe in a branch), I'll try to implement it
09:58 * moritz_ is a parse failure
09:58 moritz_ erm, I mean I fail at getting things parse :-)
10:00 jnthn std: moritz_
10:00 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤      'moritz_' used at line 1␤Check failed␤FAILED 00:01 111m␤»
10:00 jnthn Actually you are a parse failure. :P
10:00 moritz_ I know :-)
10:00 Italian_Plumber joined #perl6
10:00 sorear pmurias: "Compiling Pattern Matching", Augustsson 85
10:01 sorear at one point I had a nice description of the algorithm, but now all google wants to give me is a portal.acm.org link
10:01 redicaps left #perl6
10:02 sorear fortunately, even if I mixed up the names, the procedure itself is simple enough that one can implement it from memory...
10:02 moritz_ http://www.springerlink.com/conte​nt/y647423656557505/fulltext.pdf # I don't know if that link works from outside my network
10:02 masak *lol* -- though I don't know what that latter thing is: http://twitter.com/unixbigot/status/21280475312
10:03 sorear moritz_: nope
10:03 masak apparently, he writes Lovecraftian horror, among other things. heh.
10:04 moritz_ who maintains dalek these days? diakopter?
10:05 sorear http://research.microsoft.com/en-us/um/people/si​monpj/papers/slpj-book-1987/slpj-book-1987.djvu physical pg. 91 looks like my original source
10:07 sorear (bonus: the chapter is credited to one Philip Wadler.  Not entirely wrong!)
10:09 sorear (yes, this reference is older than Perl itself and uses examples in a language which is beyond dead...)
10:09 wamba joined #perl6
10:10 JimmyZ joined #perl6
10:10 JimmyZ Hello
10:10 sorear Hello
10:11 masak Hello
10:17 walfisch joined #perl6
10:23 tadzik joined #perl6
10:24 tadzik oh hai
10:25 mac| o/ tadzik
10:49 envi^home joined #perl6
10:52 Axius joined #perl6
11:04 pmurias joined #perl6
11:05 Mowah joined #perl6
11:20 achromic joined #perl6
11:25 sftp joined #perl6
11:41 mac| I have to go. Bye bye :)
11:41 bbkr joined #perl6
11:43 bbkr when next Rakudo release is expected? has monthly release cycle changed after * ?
11:43 moritz_ the compiler releases haven't changed
11:44 moritz_ R* will have monthly releases for now, later quaterly releases
11:44 lichtkind joined #perl6
11:44 lichtkind jnthn: hai
11:45 jnthn oh hai, lichtkind
11:45 bbkr moritz_: thanks. then I'll wait for new compiler few days before rechecking RT queue.
11:56 gfldex joined #perl6
11:56 ruoso joined #perl6
11:56 gfldex rakudo is eating up lots of ram again while compiling core
11:59 moritz_ yes
12:00 jnthn omnomnomram
12:00 jnthn I think Parrot folks have been tuning allocation stuff recently.
12:00 jnthn Sounds like a knob got twisted a little to far in the "moar ram" direction.
12:03 mathw ah
12:16 takadonet joined #perl6
12:16 takadonet morning all
12:29 masak takadonet: \o
12:29 lichtkind takadonet, masak o/
12:35 rgrau joined #perl6
12:36 masak here's someone who translate-quotes me from long ago, and who thinks that Perl 6 grammars are akin to Lisp macros.
12:36 masak http://solom.livejournal.com/289965.html
12:36 bbkr std: @1
12:36 p6eval std 31912: OUTPUT«ok 00:01 112m␤»
12:36 bbkr hmm, is it some kind of special array?
12:37 masak bbkr: as far as I know, @1 has no special meaning in Perl 6.
12:37 masak if anything, it should mean @/[1] :)
12:37 masak but it doesn't.
12:37 timbunce joined #perl6
12:37 moritz_ it's parsed as @( 1 ) I suppose
12:37 jnthn I suspect...what moritz_ said
12:38 jnthn :-)
12:38 bbkr thanks. I'm running mutation tests, hope to have few interesting cases soon.
12:39 masak mutation tests? tell us more.
12:39 moritz_ rakudo: my $v = "test"; $v.=subst(/(\w)/, -> $/ { say $/; 'X' }; say $v
12:39 p6eval rakudo bef86e: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
12:40 moritz_ rakudo: my $v = "test"; $v.=subst(/(\w)/, -> $/ { say $/; 'X' }); say $v
12:40 p6eval rakudo bef86e: OUTPUT«t␤Xest␤»
12:40 masak \o/
12:40 moritz_ rakudo: my $v = "test"; $v.=subst(/(\w)/, -> $/ { say $0; 'X' }); say $v
12:40 masak never seen that workaround before.
12:40 p6eval rakudo bef86e: OUTPUT«t␤Xest␤»
12:41 masak moritz_++
12:42 moritz_ http://www.perlmonks.org/?node_id=855251
12:44 drbean joined #perl6
12:45 bbkr masak: nothing fancy yet. just passing "(all_characters).pick(random_length, :replace)" to eval_lives_ok and STD compatibility checking. and I'm thinking now how to classify results.
12:46 masak can you goto into a BEGIN/INIT/CHECK/END block? what about FIRST/LAST blocks? do all of these then pretend to be located where they actually are located textually?
12:47 masak bbkr: sounds like a cool exercise.
12:47 moritz_ masak: I'm pretty sure you can't goto into a BEGIN block
12:48 moritz_ from where would you enter it?
12:48 jnthn masak: No to all of BEGIN/CHECK/INIT
12:48 moritz_ from above: OH NOEZ, it's not parsed yet
12:48 jnthn I'd probably guess no to all phasers.
12:48 moritz_ from below: it's already executed, and notionally replaced by its return value
12:49 jnthn Right
12:49 jnthn The BEGIN block in a code sense maybe shouldn't actually make it into the compiled output in an ideal Perl 6 implementation.
12:50 masak moritz_: as I read it, you can goto things that haven't been parsed you, just like you can call subs that haven't been parsed yet.
12:50 masak s:2nd/you/yet/
12:50 bbkr masak: i expect to put generated snippets into following groups of results (rakudo / STD): "pass / pass", "pass / fail" (should go to RT), "fail / fail", "segfault / *", fail / pass". and the last group should be divided into smaller ones, like "nyi", "null PMC", "rakudo_works_fine_but_code_is_stupid", and so on...
12:53 masak bbkr: 'this code indeed parses fine but produces a runtime error (as expected)'
12:53 bbkr masak: exactly :)
12:54 moritz_ rakudo: $_ = q[you can goto things that haven't been parsed you, just like you can call subs that haven't been parsed yet.]; s:2nd/you/yet/; .print
12:54 p6eval rakudo bef86e: OUTPUT«you can goto things that haven't been parsed yet, just like you can call subs that haven't been parsed yet.»
12:54 moritz_ masak++ # writing working p6 code
12:55 masak :P
12:55 bbkr std: 804 - ;8
12:55 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus term at /tmp/fVjB7Q6BX_ line 1:␤------> [32m804 - [33m⏏[31m;8[0m␤Parse failed␤FAILED 00:01 113m␤»
12:55 masak moritz_: implementing :2nd
12:55 bbkr rakudo: 804 - ;8
12:55 masak moritz_++
12:55 p6eval rakudo bef86e: OUTPUT«===SORRY!===␤Confused at line 22, near "804 - ;8"␤»
12:59 araujo joined #perl6
13:07 zag joined #perl6
13:08 M_o_C joined #perl6
13:08 orafu joined #perl6
13:19 gbacon joined #perl6
13:21 moritz_ rakudo: my $s = 'a=1;b=2;c=3;a=4'; %h.push: $s.split(';')>>.split('='); say %h.perl
13:21 p6eval rakudo bef86e: OUTPUT«===SORRY!===␤Symbol '%h' not predeclared in <anonymous> (/tmp/neqUK7Xr6w:22)␤»
13:21 moritz_ rakudo: my $s = 'a=1;b=2;c=3;a=4'; my %h; %h.push: $s.split(';')>>.split('='); say %h.perl
13:21 p6eval rakudo bef86e: OUTPUT«{"a" => ["1", "4"], "b" => "2", "c" => "3"}␤»
13:22 masak moritz_: t/spec/S10-packages/basic.rakudo used to fail under my reverted enums patch. now it runs to completion. anything else with modules I could try?
13:23 moritz_ masak: pls used to segfault
13:23 masak oki, trying pls.
13:23 cls_bsd joined #perl6
13:23 bbkr std: :b
13:23 p6eval std 31912: OUTPUT«ok 00:01 111m␤»
13:24 moritz_ rakudo: :b
13:24 p6eval rakudo bef86e:  ( no output )
13:24 bbkr std: 9;:_ # curious
13:24 p6eval std 31912: OUTPUT«ok 00:01 112m␤»
13:24 TimToady I note that std is now 96 revs out of date
13:25 TimToady anyone know why it's not recompiling?
13:25 * moritz_ takes a look
13:27 bbkr std: ?5*
13:27 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus term at /tmp/GDcpOso_sk line 1 (EOF):␤------> [32m?5*[33m⏏[31m<EOL>[0m␤Parse failed␤FAILED 00:01 113m␤»
13:27 bbkr rakudo: ?5*
13:27 p6eval rakudo bef86e: OUTPUT«===SORRY!===␤Confused at line 22, near "?5*"␤»
13:28 moritz_ STAGE=0 ./viv -o stage1/Cursor.store --freeze Cursor.pm6
13:28 moritz_ syml/CORE.lex.store not found; CORE setting has not yet been compiled.
13:28 moritz_ This file must be generated using './std CORE.setting' or 'make' before STD.pm6
13:28 moritz_ can be used.
13:29 colomon ingy: ping
13:29 masak moritz_: pls still segfaults :(
13:29 bbkr std: -Bb~*#B"
13:29 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared name:␤ 'Bb' used at line 1␤Check failed␤FAILED 00:01 114m␤»
13:29 bbkr rakudo: -Bb~*#B"
13:29 p6eval rakudo bef86e:  ( no output )
13:30 moritz_ cleaning out src/perl6/ and trying again...
13:31 masak bbkr: if you're going to keep doing that, you'll risk single-handedly reinstating the "Perl is line noise" myth :P
13:31 bbkr std: _~*.A
13:31 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared name:␤ '_' used at line 1␤Check failed␤FAILED 00:01 114m␤»
13:31 moritz_ you can also /msg std: _~*.A
13:31 bbkr rakudo: _~*.A
13:31 p6eval rakudo bef86e:  ( no output )
13:31 masak well, /msg p6eval std:
13:31 moritz_ ah right
13:32 bbkr ok, I will reduce eval noise.
13:32 masak thank you :)
13:32 bbkr should example above be reported?
13:32 masak if you can explain to us what it does. :)
13:33 moritz_ it calls a routine
13:33 moritz_ called _
13:33 masak rakudo: _~*.A; say "alive"
13:33 p6eval rakudo bef86e: OUTPUT«alive␤»
13:33 moritz_ with an argument that is a curried, stringied method call
13:33 moritz_ you know *.A
13:33 masak why is &_ defined?
13:33 moritz_ it shouldn't be
13:33 bbkr exactly, why?
13:33 moritz_ rakudo: _; say "alive"
13:33 masak bbkr: there's your bug.
13:33 p6eval rakudo bef86e: OUTPUT«Could not find sub &_␤  in main program body at line 22:/tmp/4p240eNSrS␤»
13:34 bbkr hmm
13:34 bbkr rakudo: _~1; say "alive"
13:34 p6eval rakudo bef86e: OUTPUT«Could not find sub &_␤  in main program body at line 22:/tmp/9xgRgdcVYm␤»
13:34 masak ooh! the whole thing is curried, and thus never run!
13:34 masak of course!
13:34 moritz_ but how is it parsed?
13:34 moritz_ as _() ~ *.A?
13:34 masak moritz_: rakudo doesn't check for undeclared sub names.
13:35 masak moritz_: aye.
13:35 moritz_ but it shouldn't
13:35 moritz_ should be  _(~*.A), afaict
13:35 masak oh.
13:35 masak then that's the bug. :)
13:35 moritz_ because unknown identifiers should be treated as listops
13:35 moritz_ no?
13:35 moritz_ bbkr: have fun composing that ticket :-)
13:36 masak just copy all we say into it :)
13:36 masak moritz_: as far as I know, you're right.
13:36 masak about the listops thing.
13:37 moritz_ next error from STD.pm buil:
13:37 moritz_ cp -r Actions.pm CORE.setting CursorBase.pmc DEBUG.pmc LazyMap.pm NAME.pmc NULL.lex RE_ast.pmc Stash.pmc mangle.pl std uniprops viv stage2/STD.pmc stage2/Cursor.pmc stage2/syml stage2/STD_P5.pmc lib tryfile teststd snap.new
13:37 moritz_ cp: cannot stat `stage2/STD_P5.pmc': No such file or directory
13:37 moritz_ make: *** [snap] Error 1
13:37 moritz_ I don't know how to fix that
13:37 TimToady huh...
13:38 moritz_ stage2 contains
13:38 moritz_ Cursor.pmc  Cursor.store  STD.pmc  STD.store  syml
13:38 thebird joined #perl6
13:38 TimToady mine contains: CORE.syml  CursorBase.pm6.syml  Cursor.pm6.syml  DEBUG.pm6.syml  NAME.pm6.syml  NULL.lex.store  Stash.pm6.syml  STD.pm6.syml
13:38 TimToady but I note _P5 isn't one of those
13:39 tadzik joined #perl6
13:39 TimToady oh, not the syml
13:39 TimToady ENOCAFFEIN
13:39 moritz_ TimToady: does 'make snap' work for you?
13:40 TimToady ah, no it fails, so reproducable \o/
13:40 Holy_Cow joined #perl6
13:40 TimToady I'm too used to looking for green and red for failure :)
13:41 TimToady thanks, I can probably figger it out now
13:45 bbkr std: >0 # got another one :)
13:45 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix > instead at /tmp/0mayWeFrqi line 1:␤------> [32m<BOL>[33m⏏[31m>0 # got another one :)[0m␤Parse failed␤FAILED 00:01 112m␤»
13:45 bbkr rakudo: >0 # got another one :)
13:45 p6eval rakudo bef86e: OUTPUT«===SORRY!===␤Confused at line 22, near ">0 # got a"␤»
13:45 bbkr maybe no :(
13:46 TimToady heh, r31913 sez: [STDeco] Rework Makefile to make stages more similar to each other, also reduces 3 stages to 2.  ** LIKELY BREAKS SNAPTEST AND STD-DIST **
13:46 TimToady sorear: it appears to have broken make snap as well...
13:47 tadzik rakudo: (1 - i).cis
13:47 p6eval rakudo bef86e: OUTPUT«cis is only defined for Reals, you have a Complex()␤»
13:47 tadzik ...then why is it on the methods list?
13:47 moritz_ for giving a better error message?
13:48 colomon tadzik: Complex.cis gives you exactly that error message.
13:49 colomon though it does seem a bit odd, now that I think about it.  :\
13:49 tadzik that's a bit misleading imho. Creating a method just to say that the method is not available
13:49 colomon ah, yes, all the Real-only methods are defined in Numeric with stubs to give an error.
13:50 colomon I have to admit that I never expected people would call .methods as a form of documentation.
13:50 tadzik well, couldn't they be defined in Real if they're Real-only?
13:50 colomon they are defined in Real.
13:51 tadzik ah, and Complex is also Real, right
13:51 colomon they are defined in Numeric strictly to give you a decent error message.
13:51 colomon Complex is not Real!
13:51 masak rakudo: my $answer = 42 but role { method to_life_the_universe_and_everything { "The answer is ", self } }; say $answer.to_life_the_universe_and_everything
13:51 p6eval rakudo bef86e: OUTPUT«The answer is 42␤»
13:51 tadzik Real is a subset of Complex
13:51 colomon tadzik: not in Perl 6
13:51 tadzik um, what?
13:52 moritz_ we don't define our numeric types as subset types
13:52 colomon Real is the role that represents real numbers
13:52 moritz_ wouldn't be efficient
13:52 moritz_ and would screw up multi dispatch in many ways
13:52 colomon Complex is a class which does Numeric but does not do Real
13:52 jnthn But p6l would admire you greatly for thinking that way. ;-)
13:52 tadzik I see
13:53 moritz_ jnthn: but p6c would shout at you :-)
13:53 masak studying &
13:53 jnthn And rightly so. :-)
13:53 colomon oh.
13:54 tadzik I'm studying too, I was just curious if Perl 6 can tell me the argument of a Complex number :]
13:54 moritz_ I'm pretty sure it can
13:54 colomon there's a very good reason .cis (and others) are defined on Numeric.
13:54 colomon it's because there's a Cool.cis.
13:55 colomon If there weren't a corresponding Numeric.cis, then when you  called .cis on a Complex number, you'd cause an infinite recursion
13:55 moritz_ rakudo: say (2 + 2i).polar.perl
13:55 p6eval rakudo bef86e: OUTPUT«(2.82842712474619, 0.785398163397448)␤»
13:55 moritz_ the second number is the argument
13:56 tadzik hm
13:56 colomon star: say (2 + 2i).abs
13:56 p6eval star 2010.07: OUTPUT«2.82842712474619␤»
13:56 moritz_ I'm nearly sure there's a more direct way
13:56 tadzik moritz_: btw, is .succ and .pred on DateTime waiting to be implemented?
13:57 moritz_ but switching between Mathematica, Matlab and Perl 6 has totallys screwed my knowledge of function/method naming
13:57 moritz_ tadzik: no idea
13:57 colomon moritz_: nope, no more direct way
13:57 tadzik moritz_: they're in the specs but not in Rakudo, can give it some love this evening
13:57 moritz_ tadzik: should be pretty easy to do
13:57 tadzik that's exactly what I thought
13:58 pmichaud good morning, #perl6
13:58 tadzik good afternoon pmichaud
13:58 jnthn morning, pmichaud
13:58 moritz_ \o pmichaud
13:59 pmichaud this morning, we undefine Nil.
13:59 colomon o/
13:59 moritz_ is that spec again?
14:00 colomon pmichaud: I think you should have prefaced that with "Gentlemen."
14:00 pmichaud moritz_: it's at least speculated.
14:00 moritz_ .oO( nice pun )
14:00 jnthn pmichaud: oh lol
14:01 jnthn pmichaud: That's how I put in in ages back. :-)
14:01 jnthn <chuckle>
14:01 TimToady moritz_: working on the spec right now
14:01 moritz_ ++TimToady
14:02 pmichaud afk for a bit
14:03 * moritz_ kinda loathes the idea to switch the test suite back to the previous state of Nil definedness
14:03 moritz_ ah well
14:03 moritz_ maybe we can just reduce it to one or two tests
14:03 TimToady masak complained, so he should fix 'em   :)
14:04 moritz_ less redundancy, so that the next 5 back-and-forth changes go more smoothly *SCNR* :-)
14:04 perlygatekeeper joined #perl6
14:04 moritz_ I kinda agreed with masak++
14:07 huf joined #perl6
14:09 bbkr about 1% of randomly generated strings is valid P6 code. that's probably highest ratio of all languages :) some of cool examples (I have no idea what they do): "|*/\A", "^!:_", "~| [~0]", "*%?_".... :P
14:10 tadzik bbkr: what's the statistic from?
14:10 tadzik or where
14:10 moritz_ ^!:_ is easy to explain
14:10 moritz_ colonpair plus two prefixes
14:11 bbkr tadzik: random chars passed to eval
14:12 bbkr tadzik: I'm trying to hunt down segfaults and differences between rakudo and STD
14:12 tadzik cool
14:13 pugssvn r32009 | lwall++ | [S02] revert Nil to undefined singleton value for masak++ et al.++
14:13 pugssvn r32009 | (Note, despite being a kind of "bottom", it is not a type as it was before.)
14:13 gfldex bbkr: did you try genetical stuff already too?
14:14 bbkr gfldex: no, I'm just brute-forcing compiler :)
14:15 gfldex while you are on it, take a random string that works and try to extend it with random stuff to let it grow
14:15 TimToady bbkr: at what length?  surely as the length goes to Inf the percentage should approach 0, I'd think
14:17 bbkr TimToady: length 4..8
14:17 TimToady and what character set?
14:18 * TimToady thinks APL would be much higher if you include APL chars
14:19 bbkr TimToady: ('a' .. 'b', 'A' .. 'B', 0 .. 2,  '~', '!', '@', '$', '%', '^', '&', '*', '(', ')', '-', '_', '+', '=', '{', '[', '}', ']', '\\', '|', ':', ';', '\'', '"', '<', ',', '>', '.', '?', '/', ' ').pick((4..8).pick, :replace)
14:20 TimToady And I'm quite certain that TECO would be higher yet  :)
14:20 bbkr TECO?
14:20 TimToady Text Editor and COrrector
14:21 TimToady people used to type in their names to see what it would do
14:21 barika joined #perl6
14:21 pugssvn r32010 | qiuhw++ | [S02] typo fix.
14:21 arnsholt bbkr: That's character set is a bit skewed though
14:22 bbkr arnsholt: why?
14:24 TimToady for one, it leaves out the control characters, which TECO accepts :)
14:24 bbkr std: !2*2!,-1 # this passes on Rakudo. who can track bug reason?
14:24 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't negate , because comma operators are not iffy enough at /tmp/JjBk81ERvd line 1:␤------> [32m!2*2!,[33m⏏[31m-1 # this passes on Rakudo. who can trac[0m␤Parse failed␤FAILED 00:01 113m␤»
14:24 bbkr rakudo: !2*2!,-1 # this passes on Rakudo. who can track bug reason?
14:24 p6eval rakudo bef86e:  ( no output )
14:25 TimToady rakudo doesn't do the 'iffy' test, afaik
14:25 moritz_ bbkr: that's known; rakudo doesn't check meta operator composition
14:25 bbkr moritz_: thanks
14:26 pugssvn r32011 | moritz++ | [t/spec] update some Nil tests to reflect last spec change
14:27 TimToady an interesting unanswered question is whether interpolating Nil as () in a list should give a warning
14:27 TimToady to make people distinguish between "I'm not returning a value" and "I'm returning 0 values"
14:28 moritz_ as a syntactic warning?
14:28 TimToady I suspect it would have to be runtime
14:28 TimToady at least in some cases
14:28 moritz_ iiuc, { }.().defined would be False, right?
14:28 arnsholt Well, it's a bit limited in the region of non-punctuation. But for testing pathological places in the parser, it's probably quite useful I imagine
14:28 TimToady yes
14:28 moritz_ because empty statement lists return Nil, not ()
14:28 moritz_ ok
14:28 bbkr rakudo: ^^0 # this one fails on STD.
14:28 p6eval rakudo bef86e:  ( no output )
14:29 TimToady intentionally so
14:29 dalek rakudo: 2f18a49 | pmichaud++ | :
14:29 dalek rakudo:       <pre>m src/Perl6/Grammar.pm
14:29 dalek rakudo: </pre>
14:29 dalek rakudo:       <pre style='white-space:pre-wrap;width:81ex'>Fix precedence of numeric bitshift operators; fixes RT #77232 (masak++).</pre>
14:29 dalek rakudo:
14:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​f18a49ac82d19bb7e4de323134473f2456a0426
14:29 jnthn std: ^^0
14:29 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Expecting a term, but found either infix ^^ or redundant prefix ^␤  (to suppress this message, please use space between ^ ^) at /tmp/jn4DOYyPaK line 1:␤------> [32m^^[33m⏏[31m0[0m␤Parse failed␤FAILED 00:01 111m␤»
14:29 moritz_ that's another long known issue
14:30 moritz_ it's the same for  foo ~~ bar
14:30 moritz_ which people often want to mean foo() ~~ bar
14:30 TimToady std: foo ~~ bar
14:30 pugssvn r32012 | pmichaud++ | [t/spec]: Add tests for RT #77232.
14:30 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Expecting a term, but found either infix ~~ or redundant prefix ~␤  (to suppress this message, please use space between ~ ~) at /tmp/63Cn7BsE67 line 1:␤------> [32mfoo ~~[33m⏏[31m bar[0m␤Parse failed␤FAILED 00:01 114m␤»
14:31 TimToady yes, STD assumes that nobody in their right mind would apply certain prefix operators twice
14:31 TimToady since it helps catch some thinkos
14:32 * moritz_ likes that attitude
14:32 TimToady it's the inside-out of "two terms in a row", though it's not as reliable
14:32 moritz_ but much more informative
14:33 * bbkr will make a list of all "rakudo=pass, std=fail" cases found to avoid mess on the channel
14:33 TimToady well, two terms is also informative, if you count all the messages that start out as two terms and mutate into a different message based on context
14:34 TimToady well, actually, they start out "Confused", and usually mention "Two terms" along with more info
14:36 TimToady "Unexpected block" is also a two-terms variant
14:38 Alias joined #perl6
14:40 _jaldhar joined #perl6
14:41 bbkr (;~*)    # who can explain how this awesome emoticon is parsed? semicolon inside bracket looks wrong, but STD says it's correct code
14:43 moritz_ it is; afaict it's a slice literal, which is NYI in rakudo
14:43 moritz_ and ~* is just a curried prefix:~
14:43 TimToady bbkr: you can get the answer to such questions using viv -e
14:45 alester joined #perl6
14:45 bbkr TimToady: viv? what is it?
14:46 TimToady it runs STD and prints out the AST in (relatively) readable form
14:47 TimToady it's also used to bootstrap STD by emitting perl 5 code
14:48 bbkr TimToady: thanks, that will do :)
14:49 bbkr rakudo: *>2<~1 # known one (STD fails)?
14:49 p6eval rakudo bef86e:  ( no output )
14:50 moritz_ std: *>2<~1
14:50 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse quote-words subscript; couldn't find right angle quote at /tmp/esxgq7oNYH line 1:␤------> [32m*>2<[33m⏏[31m~1[0m␤    expecting escape␤Parse failed␤FAILED 00:01 113m␤»
14:50 pyrimidine joined #perl6
14:52 alester In case you missed it, vim users now get Perl 6 support out of the box. http://perlbuzz.com/2010/08/​vim-73-supports-perl-6.html
14:53 achromic joined #perl6
14:53 alester Might be nice to have a pointer to that for the newbies.
14:53 alester If we have some kind of canonical "Hi, welcome to Perl 6" document.
14:53 mathw nice
14:58 REPLeffect joined #perl6
14:59 TimToady hmm, if arrays and hashes can usefully be undefined now, then we should probably make //= look for a list instead of an item like normal = does
14:59 * TimToady wonders if all op= should follow the = rule for $ on the left
15:00 lichtkind_ joined #perl6
15:00 fod joined #perl6
15:01 * moritz_ is in favor of killing item assignment
15:02 TimToady and even now, @foo ||= 1,2,3 doesn't dwim
15:02 TimToady at least, in STD
15:02 alester TimToady: If arrays can be "usefully unassigned", what would be the diff between my @foo; and my @foo = (); ?
15:02 TimToady rakudo: my @foo ||= 1,2,3; say @foo
15:02 p6eval rakudo 2f18a4: OUTPUT«1␤»
15:03 TimToady alester: whether @foo.defined returned False or True
15:04 alester But a shift @foo would still return the same undef.
15:04 TimToady with the recent Nil change, you can undefine @foo by saying @foo = Nil;
15:04 alester I just smell potential Surprise, but I can't think of an example.
15:05 TimToady well, shifting something that isn't there is likely to return a Failure
15:06 alester "isn't there" meaning the case of @foo = Nil?
15:06 TimToady but the error inside the Failure might differ depending on whether @foo is defined or not
15:06 alester Maybe I don't know of this Failure.
15:06 TimToady well, in that case, the array "isn't there", and in the other case, .[0] isn't there
15:07 TimToady so in the first case you might get "Can't use .shift on an undefined array"
15:08 TimToady rather than "Can't shift an empty array" or whatever it returns now
15:08 TimToady rakudo: say ~shift(my @x);
15:08 p6eval rakudo 2f18a4: OUTPUT«Undefined value shifted from empty list␤  in main program body at line 1␤»
15:12 TimToady rakudo: say shift(my @x);
15:12 p6eval rakudo 2f18a4:  ( no output )
15:15 moritz_ TimToady: S05 mentions that :samespace works on :s-induced <.ws> matches. How are those identified after the regex has been compiled?
15:15 moritz_ or is that a fossile?
15:18 pmichaud rakudo:  my @x;  say @x.shift ~~ Failure
15:18 p6eval rakudo 2f18a4: OUTPUT«1␤»
15:18 pmichaud currently shifting an empty array does return Failure -- p6eval just doesn't show the failure messages for some reason.
15:19 pmichaud pmichaud@plum:~/rakudo$ ./perl6
15:19 pmichaud > my @x; say @x.shift;
15:19 pmichaud ===SORRY!===
15:19 pmichaud Undefined value shifted from empty list
15:19 moritz_ p6eval doesn't use the REPL
15:19 moritz_ does it make a difference if you use a file?
15:19 pmichaud hmmmm
15:19 pmichaud apparently it does
15:19 pmichaud that's a bug.
15:20 pmichaud looks like stringification of the Failure via 'say' doesn't throw the exception :-|
15:21 TimToady shouldn't, probably
15:21 pmurias TimToady: did you figure out what construct result in control graph edges?
15:21 TimToady should format the Failure though
15:21 moritz_ is it a .Str vs. get_string vtable distinction
15:21 moritz_ ?
15:21 TimToady pmurias: I made some remarks
15:21 pmichaud moritz_: likely.  I've started to redo get_string and Stringy several times but keep running into ickiness
15:21 moritz_ surprise, surprise
15:22 TimToady but basically, everything is a lambda, and if you don't know you're current language, you don't know what is interpreting the lambdas
15:22 TimToady *your
15:22 molaf joined #perl6
15:23 TimToady Stringy is for use later in the program as a string, so throws an exception on a Failure
15:23 TimToady Str is low-level, make it a string any way you can for printing it out
15:23 pmichaud right
15:23 TimToady hence Stringy autothreads, but Str doesn't
15:24 pmichaud I'm not sure what Parrot's get_string vtable should default to.
15:24 TimToady rakudo: say any(1,2)
15:24 p6eval rakudo 2f18a4: OUTPUT«any(1, 2)␤»
15:24 TimToady rakudo: say ~any(1,2)
15:24 p6eval rakudo 2f18a4: OUTPUT«any(1, 2)␤»
15:24 TimToady hmm, I guess that doesn't show the difference
15:24 pmichaud that second should've been   any("1","2")
15:24 pmichaud oh, maybe not
15:25 pmichaud rakudo:  say any(1,2).perl
15:25 p6eval rakudo 2f18a4: OUTPUT«any(1, 2)␤»
15:25 pmichaud rakudo:  say (~any(1,2)).perl
15:25 p6eval rakudo 2f18a4: OUTPUT«"any(1, 2)"␤»
15:25 pmichaud heh
15:25 TimToady er
15:25 pmichaud that second one should've been  any("1", "2"),  per spec
15:25 pmichaud (I agree that Rakudo gets it wrong currently)
15:27 TimToady pmurias: as for which constructs might throw control exceptions, that's difficult to know without explicit trait declarations
15:28 TimToady and any construct might throw an error exception, but I think you can ignore those for basic blocks, unless you're moving code outside the scope of a CATCH
15:28 ovle joined #perl6
15:31 pmurias TimToady: any other ways to control flow other than (error/control) exceptions and loops and contionals?
15:32 pmurias exit, and shortcircuting stuff &&,|| comes to my mind
15:32 ovle given a set of integers, does some nonempty subset of them sum to 0?
15:32 moritz_ yes
15:33 moritz_ rakudo: say [+] 0;
15:33 p6eval rakudo 2f18a4: OUTPUT«0␤»
15:33 moritz_ rakudo: say [+] -1, 1;
15:33 p6eval rakudo 2f18a4: OUTPUT«0␤»
15:34 moritz_ ovle: now that I've answered your homework questions, will you fix a bug in Rakudo?
15:35 thebird joined #perl6
15:35 ovle not a homework per se but http://www.getacoder.com/projects​/solve%20p%20vs%20np_132036.html
15:35 ovle that:D
15:36 moritz_ oh, of a particular subset of integers
15:36 ovle yes
15:36 moritz_ ah well
15:36 pmurias TimToady: {my $x=3;this_throws_an_exception;CATCH {}};if ($x != 3) {} #we can't optimize this out}
15:36 ovle the usual linear machine solver solves it as long as the problem is small
15:37 ovle not that it should solve it in P though
15:37 pmurias TimToady: but just having a edge from each call to the CATCH should be enough
15:37 rbuels joined #perl6
15:41 bbkr rakudo: */\*2 # fails on STD
15:41 p6eval rakudo 2f18a4: OUTPUT«===SORRY!===␤Confused at line 22, near "*/\\*2 # fa"␤»
15:41 bbkr hmm
15:41 bbkr nvm
15:47 bbkr rakudo: <a>.WHAT.say; <a b>.WHAT.say; # looks like a bug. type should be independent of values amount, right?
15:47 p6eval rakudo 2f18a4: OUTPUT«Str()␤Parcel()␤»
15:48 kst joined #perl6
15:48 moritz_ no, rakudo is right here
15:48 moritz_ it's spec.
15:49 bbkr moritz++
15:50 tylercurtis joined #perl6
15:55 TimToady rakudo: <1/2>.WHAT.say
15:55 p6eval rakudo 2f18a4: OUTPUT«Str()␤»
15:55 TimToady but it's wrong there :)
15:55 TimToady rakudo: <1>.WHAT.say
15:55 p6eval rakudo 2f18a4: OUTPUT«Str()␤»
15:56 TimToady and there
15:56 moritz_ rakudo isn't smart about those yet, true
15:59 TimToady moritz_: re <.ws>, perhaps there should be some flag that tells it to use <ws> instead.  or maybe :ss should have that effect internally
16:00 TimToady or :ss just rewrites the regex somehow
16:00 moritz_ capturing <ws> seems doable
16:00 moritz_ rewriting the regex... NNOOOOO
16:01 moritz_ recompilation is evil, no?
16:01 TimToady we have to capture the words too
16:02 TimToady maybe .chunks does something smart
16:03 TimToady or something like .chunks
16:03 moritz_ which words?
16:03 TimToady the words between the spaces
16:04 TimToady though it's not clear how this interacts with bracketing
16:04 moritz_ we know the original string, the match object, and if we also know what the automagic <.ws> matched, we're done
16:05 TimToady in STD, that info is available from @*MEMOS, but rakudo doesn't have that
16:06 TimToady perhaps the easiest thing would be to say that .chunks pays attention to :s
16:06 TimToady and sends matched whitespace through as separate chunks
16:07 TimToady though it would be suboptimal to have to rescan chunks to see if they're whitespace
16:07 TimToady espec since some of them might not have been matched by <.ws>
16:08 moritz_ what about dumbing down :samespace to just apply filtering to any matched whitespace?
16:08 TimToady so I think there's probably a missing method
16:08 TimToady well, that's a possibility that has the same effect till you want to get fancy
16:09 TimToady and probably covers most of the use cases
16:09 moritz_ there's also a module for "fancy" stuff
16:09 moritz_ s/also/always/
16:09 moritz_ at least if somebody writes one :-)
16:09 TimToady so just split(/(\s+)/) and assume
16:09 moritz_ wfm
16:10 TimToady probably okay for now, and we can think about extending it elsewise
16:10 TimToady just seems silly to rescan
16:11 moritz_ otoh it seems silly to store that much information on all Match objects, if most will never use it
16:11 bbkr rakudo: %()==B # does this code segfault locally for you ?
16:12 p6eval rakudo 2f18a4:  ( no output )
16:12 moritz_ bbkr: there's a segfault for things related to %() in RT
16:12 moritz_ so no surprise here
16:15 bbkr moritz_: I cannot find it, but I'm glad it's reported. thanks again.
16:16 moritz_ lol I blogged: http://perlgeek.de/blog-en/perl-​6/state-of-regex-modifiers.html
16:17 ruoso joined #perl6
16:17 risou joined #perl6
16:18 moritz_ bbkr: http://rt.perl.org/rt3/Tic​ket/Display.html?id=75502 but it's probably not what I had in mind
16:21 justatheory joined #perl6
16:23 bbkr rakudo: &2<+*+a # another one from "STD does not parse it" series
16:23 p6eval rakudo 2f18a4:  ( no output )
16:23 TimToady you already had an unmatched < postfix before
16:23 moritz_ same as the previous one involving < without a space before it
16:24 kst joined #perl6
16:24 isBEKaml joined #perl6
16:26 masak swimming &
16:32 bbkr rakudo: $?:: # known?
16:32 p6eval rakudo 2f18a4:  ( no output )
16:33 TimToady std: $?::
16:33 p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus statement at /tmp/wRPEja655t line 1:␤------> [32m<BOL>[33m⏏[31m$?::[0m␤Parse failed␤FAILED 00:01 114m␤»
16:34 moritz_ no idea.
16:35 timbunce joined #perl6
16:42 macroron joined #perl6
16:44 Axius joined #perl6
16:46 bbkr rakudo: say |3 # what does prefix:<|> do?
16:46 p6eval rakudo 2f18a4: OUTPUT«3␤»
16:47 moritz_ interpolate data structures into captures
16:47 TimToady in this case it's a no-op
16:47 moritz_ rakudo: sub f($x, $y) { say "$x|$y" }; my @a = 1, 2; f(@a)
16:47 moritz_ rakudo: sub f($x, $y) { say "$x|$y" }; my @a = 1, 2; f(|@a)
16:47 p6eval rakudo 2f18a4: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in 'f' at line 22:/tmp/xPgnND0R3T␤  in main program body at line 22:/tmp/xPgnND0R3T␤»
16:47 p6eval rakudo 2f18a4: OUTPUT«1|2␤»
16:48 * bbkr gets it, thanks
16:48 TimToady since we changed coercions from .as(Foo) to just .Foo, I suppose .as is again available to mean .fmt
16:49 moritz_ (mostly off-topic, sorry) http://news.ycombinator.com/item?id=1607995 is fascinating. Before I wrote my reply about trolls, that phython comment had a reputation of +3. It has -1 now
16:50 moritz_ people think it's funny, until they realize that it's just mindless trolling, and to be discouraged
16:54 drdanger joined #perl6
16:55 fod joined #perl6
16:55 * moritz_ -> afk
16:55 Guest23195 joined #perl6
16:59 lichtkind is it true that rakudo * releases will come now frewuently?
17:00 [particle] lichtkind: yes, monthly
17:01 lichtkind thnanks
17:02 lichtkind [particle]: good errortolerant read :)
17:02 [particle] :)
17:15 Su-Shee I thought rakudo comes monthly and rakudo * quarterly (or so)?
17:19 jnthn Su-Shee: I expect we'll drop to less frequent Rakudo * releases in the long run.
17:20 jnthn Su-Shee: But monthly lets us get improvements and bug fixes from the first R* into people's hands sooner.
17:20 jnthn And it's nice to look responsive. :-)
17:20 bbkr rakudo: .?foo # according to spec this should silently fail if $_ is Any()?
17:20 p6eval rakudo 2f18a4:  ( no output )
17:21 Su-Shee jnthn: or have quarterly stables and monthly bleeders :)
17:24 jnthn bbkr: You've already said it's OK for there not to be a method there, so it shoudln't fail noisily.
17:25 jnthn .?foo is like "call a foo on $_ if there is one. If not, who cares."
17:25 plobsing joined #perl6
17:25 tylercurtis rakudo: .?foo.WHAT.say
17:25 p6eval rakudo 2f18a4: OUTPUT«Parcel()␤»
17:25 pmichaud that's likely to become "Nil"
17:25 jnthn It's most useful when you have objects where a role mighta been mixed into them to provide some method.
17:26 jnthn pmichaud: +1
17:26 bbkr jnthn: but it's different situation if class exist but does not have method and situation where class doesn't exist at all. I wanted to be sure.
17:26 pmichaud (in the case of a .? call to a non-existent method)
17:26 jnthn ..."class exist"?
17:26 jnthn Any is decidedly an existing class. :-)
17:27 tylercurtis bbkr: $_ always exists. It just might be undefined.
17:27 bbkr jnthn: indeed! thanks. I'm still back in P5 thinking sometimes with "undef"s
17:28 jnthn :-)
17:29 TimToady I think we should also say that any method called on Nil is Nil
17:29 pmichaud wfm
17:30 jnthn TimToady: er
17:30 jnthn Nil.perl ?
17:30 jnthn Nil.ACCEPTS
17:30 jnthn Or you mena "methods that are not defined"?
17:33 dha joined #perl6
17:36 molaf joined #perl6
17:41 Su-Shee moritz_: you're on hackernews.
17:41 Su-Shee ah forget it you noticed. ;)
17:47 bbkr rakudo: +1.sin before die for any { :food but pi.e} # poetry :)))
17:47 p6eval rakudo 2f18a4: OUTPUT«Died␤␤  in main program body at line 22:/tmp/RVAK0oel3L␤»
17:50 pugssvn r32013 | lwall++ | [S02] spec which methods Nil responds to,
17:50 pugssvn r32013 | and that it propagates Nil on unrecognized methods
17:54 pugssvn r32014 | lwall++ | [S02,S03] allow Nil to smartmatch a Nil
17:56 dalek rakudo: b647188 | pmichaud++ | :
17:56 dalek rakudo:       <pre>m build/PARROT_REVISION
17:56 dalek rakudo: </pre>
17:56 dalek rakudo:       <pre style='white-space:pre-wrap;width:81ex'>Bump PARROT_REVISION in preparation for Parrot release.</pre>
17:56 dalek rakudo:
17:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​647188463cdac283024cc7f243200402a63e3ba
17:57 _jaldhar joined #perl6
17:58 gbacon joined #perl6
18:01 s1n joined #perl6
18:05 colomon oh my, is it release week?
18:05 colomon dang, it is.
18:10 ingy :D
18:11 colomon ingy: that script you were timing yesterday -- it is available / easy to use?
18:11 colomon I was thinking I might take a stab at trying to optimize it.
18:12 ingy colomon: sure...
18:12 ingy one sec
18:13 ingy git clone git://github.com/ingydotnet/testml-pm6.git && cd testml-pm6 && ufo && make test
18:13 ingy :P
18:14 colomon is make test what you were timing
18:14 ingy git clone git://github.com/ingydotnet/testml-pm6.git && cd testml-pm6 && ufo && time make test
18:14 ingy :)
18:15 ingy colomon: I had a couple ideas
18:15 ingy each test has to do a p6r parse
18:15 ingy I was wondering if || was faster than |
18:16 ingy because all my | are really ||
18:16 osfameron joined #perl6
18:16 ingy also I could turn <foo> into <.foo> a lot
18:16 cotto_work joined #perl6
18:16 ingy would that help you think?
18:17 osfameron jnthn: hi!  we don't seem to have an authorization form to publish video of "Perl 6 Signatures" from YAPC::EU 2010.  If you would like us to, could you email yapc-info@perl.it to let us know?
18:17 pmichaud currently in rakudo, || and | are equivalent.
18:17 pmichaud osfameron: +1
18:17 ingy guess that anwsers that :)
18:17 pmichaud osfameron: publishing that talk would be seriously awesome
18:17 pmichaud eventually | should probably end up being faster
18:18 colomon ingy: I've no idea.  I was thinking more of rakudo optimizations that would help your code... ;)
18:18 ingy I thought | was ltm and || was no ltm
18:18 pmichaud it is
18:18 pmichaud and for that reason, | may end up being a bit faster
18:18 pmichaud (eventually)
18:18 ingy faster than what?
18:18 pmichaud faster than ||
18:18 osfameron pmichaud: it certainly would ;-)  but we're trying to be "correct" and make sure we get full confirmation before publishing :-)
18:19 osfameron (the talk is transcoded, and sitting in a holding area at yapc.tv/presentingperl, ready to be put online once we get it)
18:19 pmichaud osfameron: right -- I'm just happy that talk is being actively worked on
18:19 ingy ltm is faster than short circuit alternation??
18:19 pmichaud ltm should avoid any false paths altogether
18:20 osfameron is masak here?
18:20 pmichaud osfameron: that one talk is the one I most desire to see available :-)
18:20 colomon ingy: okay, I seem to have a build.... errr... should make test have errors?
18:20 colomon afk
18:20 ingy colomon: gist it
18:20 osfameron seen masak
18:20 ingy make test should not have errors
18:20 ingy colomon: I was using rakudo*, fyi
18:20 osfameron meh.  I have a talk to chase up for him too (the Perl6, prince of Parsea one)
18:21 pmichaud masak is usually around
18:21 pmichaud I'll leave messages for them... one moment
18:21 pmichaud phenny: tell jnthn osfameron would like to get an authorization form to publish the video of your "Perl 6 Signatures" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal)
18:21 phenny pmichaud: I'll pass that on when jnthn is around.
18:22 pmichaud phenny: tell masak osfameron would like to get an authorization form to publish the video of your "Perl 6 -- Prince of Parsea" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal)
18:22 phenny pmichaud: I'll pass that on when masak is around.
18:22 pmichaud osfameron: there you go... should get emails very soon
18:22 osfameron fantastic, thanks!
18:24 ruoso joined #perl6
18:32 jnthn osfameron: You have my permission - would you like an email too?
18:32 phenny jnthn: 18:21Z <pmichaud> tell jnthn osfameron would like to get an authorization form to publish the video of your "Perl 6 Signatures" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal)
18:33 osfameron jnthn: yes please, if that's ok :-)
18:35 jnthn osfameron: Doing it. Want me to suggest a license?
18:36 jnthn osfameron: sent email
18:37 osfameron jnthn: I think the forms suggested a CC license, but if you've suggested a different one, then we'd try to accommodate
18:38 pmichaud hmmm, just found an nqp-rx misoptimization
18:38 jnthn osfameron: It's a CC one.
18:38 jnthn But htere's more than one type of CC :-)
18:38 osfameron this is true :-)
18:38 jnthn pmichaud: oh?
18:39 pmichaud jnthn: yes, I'm looking through the generated code from nqp-rx.... I've added a switch to use ord instead of 1-char substr for single-character-literal checks...
18:39 osfameron I think we only suggested one, as there isn't a great deal of infrastructure yet to record/pass on licenses between ACT->yapc.tv/presentingperl.org
18:39 pmichaud but I also notice it's putting in backtracking code for subrules inside of :ratchet
18:39 pmichaud which it shouldn't be doing, of course.
18:39 osfameron (i.e. ACT *now* has a flag for "yes, you can use my video", which will be useful for the *next* conference... and still doesn't specify license)
18:40 jnthn pmichaud: Oh, ouch.
18:45 dwierenga joined #perl6
18:49 pmichaud ah, I see what's happening.  Interesting
18:49 pmichaud so, here's a question
18:50 pmichaud is    token { <abc>* }  the same as  regex { [ <abc>* ]: }   or  regex { [ <abc>: ]*: }   ?
18:53 PenThrive joined #perl6
18:56 masak joined #perl6
18:57 tadzik joined #perl6
18:58 gfldex std: say &Any::can.signature;
18:58 p6eval std 31912: OUTPUT«ok 00:01 117m␤»
18:58 gfldex rakudo: say &Any::can.signature;
18:58 p6eval rakudo b64718: OUTPUT«Null PMC access in find_method('!signature')␤  in main program body at line 1␤»
18:58 gfldex oi!
18:58 gfldex is that planned?
18:58 masak gfldex: .can is probably not an 'our' method.
18:58 phenny masak: 18:22Z <pmichaud> tell masak osfameron would like to get an authorization form to publish the video of your "Perl 6 -- Prince of Parsea" talk at YAPC::EU 2010 -- please email yapc-info@perl.it with permission (or refusal)
18:58 masak so that's equivalent to it not finding anything.
18:58 jnthn Aye, and there's an RT for the NPMCA already.
18:58 masak rakudo: &Any::bllllrgh
18:58 p6eval rakudo b64718:  ( no output )
18:59 masak rakudo: &Any::bllllrgh.signature
18:59 pugssvn r32015 | pmichaud++ | [misc/pm.txt] Provide (non-)answers generated for Pm-21 and Pm-22.
18:59 p6eval rakudo b64718: OUTPUT«Null PMC access in find_method('!signature')␤  in main program body at line 1␤»
18:59 gfldex good good
18:59 pmichaud I know that package variable looks need to be whence-ified, planning to do that soon.
18:59 pugssvn r32016 | pmichaud++ | [pm.txt]:  Add Pm-23:
18:59 pugssvn r32016 |
18:59 pugssvn r32016 | Pm-23:  Should TOP (or any other grammar regex) be considered
18:59 pugssvn r32016 |     to have implied $-anchors when invoked from .parse?
18:59 pugssvn r32016 |     (See RT #77022.)
18:59 pugssvn r32017 | pmichaud++ | [misc/pm.txt]:  Add Pm-24 about ratcheting on quantified subrules.
18:59 pugssvn r32017 |
18:59 pugssvn r32017 | Pm-24:  Is               token { <abc>* }
18:59 pugssvn r32017 |         the same as      regex { [ <abc>* ]: }
18:59 pugssvn r32017 |         or               regex { [ <abc>: ]*: }  ?
19:00 gfldex is there any way to get hold of the signature of can then?
19:00 pmichaud rakudo:  say Any.can('can').signature  # perhaps?
19:00 p6eval rakudo b64718: OUTPUT«get_attr_str() not implemented in class 'Sub'␤  in main program body at line 1␤»
19:00 pmichaud closer :-)
19:00 pmichaud rakudo:  say Any.can('can').WHAT
19:00 p6eval rakudo b64718: OUTPUT«Code()␤»
19:01 jnthn can is still in PIR I guess
19:01 gfldex i doubt it would help to unPIR it
19:02 jnthn ?
19:02 gfldex class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::1 == $o.can('m1);
19:02 gfldex rakudo: class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::1 == $o.can('m1);
19:02 p6eval rakudo b64718: OUTPUT«===SORRY!===␤Confused at line 22, near "say 'yes' "␤»
19:03 colomon ingy: http://gist.github.com/527534
19:03 jnthn gfldex: No no, I meant the Any.can('can').signature not working
19:03 gfldex rakudo: class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::m1 == $o.can('m1);
19:03 p6eval rakudo b64718: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
19:03 gfldex rakudo: class A { method m1(){}; }; my $o = A.new(); say 'yes' if &A::m1 == $o.can('m1');
19:03 p6eval rakudo b64718: OUTPUT«No applicable candidates found to dispatch to for 'infix:<==>'. Available candidates are:␤:(Any $x?)␤:(Int $a, Int $b)␤:(Num $a, Num $b)␤:(Date $a, Date $b)␤:(Real $a, Real $b)␤:(Numeric $a, Numeric $b)␤:(Any $a, Any $b)␤␤  in main program body at line 22:/tmp/Eqa3oiYNxM␤»
19:04 ingy colomon: looking
19:04 dha left #perl6
19:04 gfldex what i mean is that *.can('somemeth') does not return the same thing then &*::somemeth
19:04 gfldex and you dont even have to break it intentinally with supersede :)
19:06 ingy colomon: sorry. git clone git://github.com/ingydotnet/testml-tml.git
19:06 ingy colomon: next to the testml-pm6 clone
19:06 ingy colomon: should be fine then...
19:06 colomon oh, I had the wrong repo altogether?!
19:06 jnthn gfldex: Right, but that is correct.
19:07 ingy colomon: no, you need both
19:07 colomon or do I need both for the one to work?
19:07 colomon gotcha.
19:07 colomon do I need to build it, or just have it sitting there?
19:07 jnthn gfldex: Methods are not our-scoped by default.
19:07 ovle ok pmichaud and i were discussing about a new logo for rakudo
19:07 ingy colomon: testml-tml has the common test suite for Perl6 Perl5 Python, etc
19:07 ovle pmichaud wants a theme to do with plants
19:07 ovle anyone else has ideas?
19:08 ingy colomon: looks like you got other failures though :\
19:08 pmichaud that's not exactly what I said.  :)
19:09 colomon ingy: testing now, will have an update in a moment.
19:09 ingy colomon: gist me the new results
19:09 ovle ok
19:09 colomon ingy: will as soon as I have them.
19:09 ovle so what do you want?
19:09 ovle do you want to keep the original logo and add another theme on top of it?
19:09 ovle using plants or something
19:09 pmichaud I said of the candidates you gave, I'd tend to want to go with the ones that have some sort of plant, in keeping with Rakudo's "paradise" theme
19:09 colomon ingy: the open messages have gone away, but there's still a lot of fail
19:10 ovle so you want to keep theoriginal rakudo paradise logo?
19:10 sorear good * #perl6
19:10 ovle and add something else?
19:10 tadzik hello
19:10 sorear pmichaud: I interpret /:r <foo>* / as / [ <foo>: ]*: /
19:10 colomon ingy: http://gist.github.com/527534  (again, it's updated)
19:10 pmichaud I don't have a strong opinion about what the logo should be.  I do have some opinions about what it should not be, however.
19:11 jnthn "hot pink" :-)
19:11 frettled is that a plant?
19:11 ovle so i can draw anything i want with a plant theme?
19:11 frettled (har har har)
19:12 ovle i was actually thinking of a more complicated desig
19:12 ovle something like tesselations
19:12 ovle of R
19:12 gfldex rakudo: class A { method m1(){};}; my $a = A.new; say $a.can('m1').WHAT;
19:12 masak TimToady++ # Nil propagates down method call chains
19:12 pmichaud I'd probably want a more zen-like image; something simple
19:12 p6eval rakudo b64718: OUTPUT«Method 'WHAT' not found for invocant of class 'P6Invocation'␤  in main program body at line 22:/tmp/xxGbmjzLSP␤»
19:12 ovle or R evolving into .. something
19:12 gfldex should P6Invocation have .WHAT?
19:12 pmichaud I tend to want elegance more than complexity
19:13 pmichaud (they aren't mutually exclusive, but elegance tends towards simplicity I think)
19:13 masak Nil is starting to sound like the ultimate narcissism object :)
19:13 masak "Nil.ACCEPTS matches only on Nil" :)
19:13 frettled pmichaud: perhaps something that says "KISS"?  :)
19:13 pmichaud I'm more convinced that Nil is more like a singleton type object :)
19:14 pmichaud anyway, I'm going to do the Nil conversion shortly and see what we get
19:14 ovle elegance exists in complexity too, escher prooved it
19:14 ovle but ok you want simple zenlike stuff
19:14 tadzik rakudo: $_ = 'ab12fg34'; s:g/\d/X/; say 'alive';
19:14 TimToady STD's CORE.setting has: constant Nil = Parcel;
19:14 p6eval rakudo b64718: OUTPUT«alive␤»
19:14 ovle im going to do this in pencil
19:15 tadzik hrm, doesn't work locally
19:15 ovle and like you said b&w
19:15 ovle just on paper
19:15 ovle ok?
19:15 pugssvn r32018 | lwall++ | [CORE.setting] constant Nil = Parcel;
19:15 TimToady well, now it does :)
19:15 sorear TimToady: oops.
19:15 pmichaud ovle: sure, I'm always willing to look at candidates.  I'm not willing to commit to anything until I see something I really feel strongly about :)
19:15 ovle ok
19:15 ovle i'll see what i can do in the next hr
19:15 TimToady sorear: I'll let you fix that.
19:16 pmichaud TimToady: I'm thinking   class Nil is Parcel {  method new(*@_) { self } }    or something like that
19:16 ovle brb
19:16 pmichaud that way   Nil.ACCEPTS does the right thing
19:16 pmichaud and attempting to create a Nil object always returns Nil :-)
19:17 pmichaud anyway, I'll start with that and see where the errors crop up :-)
19:17 colomon ingy:
19:17 colomon Wynne:testml-pm6 colomon$ env PERL6LIB=/Users/colomon/tools/testml-pm6/bl​ib/lib:/Users/colomon/tools/testml-pm6/lib: /Users/colomon/tools/rakudo/perl6 t/arguments.t
19:17 colomon 1..2
19:17 colomon # Looks like you planned 2 tests, but ran 0
19:18 TimToady well, if you do that, it's possible also that class Failure is Nil
19:18 TimToady but not sure that Failure ~~ Nil makes sense
19:19 ingy colomon: can you try rakudo *?
19:19 pmichaud I'm not sure I see the relationship between Failure and Nil
19:19 frettled ovle++ for the effort
19:19 pmichaud yes, ovle++
19:19 scott12358 joined #perl6
19:19 colomon ingy: not easily on this machine, but give me a minute...
19:19 pmichaud anyway, I'll try it and we'll see where the errors pop up :-)
19:19 dalek nqp-rx: e91bc31 | pmichaud++ | :
19:19 dalek nqp-rx:       <pre>m build/PARROT_REVISION
19:19 dalek nqp-rx: </pre>
19:19 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Bump PARROT_REVISION to be closer to 2.7.0 release.</pre>
19:19 dalek nqp-rx:
19:19 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​91bc31e089f480d8196ada7104d68151c449ffb
19:19 dalek nqp-rx: 90e0bcd | pmichaud++ | :
19:19 dalek nqp-rx:       <pre>m src/PAST/Compiler-Regex.pir
19:19 dalek nqp-rx: </pre>
19:19 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Refactor case-insensitive literals in preparation for other improvements.</pre>
19:19 dalek nqp-rx:
19:19 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/9​0e0bcd411e87574dba4a146cb30e7d1efdfab1f
19:19 dalek nqp-rx: 6ab1f66 | pmichaud++ | :
19:19 dalek nqp-rx:       <pre>m src/PAST/Compiler-Regex.pir
19:19 dalek nqp-rx: </pre>
19:19 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Optimize single-character constant literal tests to use 'ord' instead of 'substr'.</pre>
19:19 dalek nqp-rx:
19:19 TimToady Nil could be what confers undefinedness on Failure objects
19:19 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​ab1f6666329107e865ac0ef4a738a2d4a3d6642
19:19 dalek nqp-rx: 2a8a5a9 | pmichaud++ | :
19:19 dalek nqp-rx:       <pre>m src/stage0/HLL-s0.pir
19:19 dalek nqp-rx: m src/stage0/NQP-s0.pir
19:20 dalek nqp-rx: m src/stage0/P6Regex-s0.pir
19:20 dalek nqp-rx: m src/stage0/Regex-s0.pir
19:20 dalek nqp-rx: </pre>
19:20 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Update bootstrap.</pre>
19:20 dalek nqp-rx:
19:20 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​a8a5a914c416274e7c0b8e7addd7b857ac5bef5
19:20 cjfields joined #perl6
19:20 cjfields left #perl6
19:20 pmichaud so far Failure still feels more role-like to me than class-like.  But it's never fit cleanly in Rakudo yet.
19:21 pmichaud s/never/not/
19:21 pyrimidine joined #perl6
19:21 TimToady nodnod
19:22 TimToady maybe Nil is the only value that can be created from type NIL, or some such
19:22 pmichaud perhaps.  But Nil still feels like a type object.  In most ways it acts like a type object, although I'm sure I'm missing a few cases.
19:23 pmichaud I guess it's different in list context
19:23 TimToady well, I'm not sure we want people deriving from it, and we'd like to keep the check for it very efficient
19:23 pmichaud well, checking for a type object can be pretty efficient.
19:23 pmichaud and maybe "don't derive from it"  is "Doctor it hurts when I..."
19:24 pmichaud because they could just as easily derive from NIL  :-)
19:24 TimToady I'm of two minds whether it (and Parcel) should hang outside of Any
19:24 jnthn If the check for the type object is a low-level-y "does the repr consider this defined" then yes, it can be quite cheap. :-)
19:24 pmichaud I'm pretty sure that Parcel wants to be ~~ Any
19:25 pmichaud I think I can see the other side of that argument too, but so far it fits more naturally as Any.
19:25 TimToady I guess that gets you list coercions for free, maybe
19:25 pmichaud right, as well as the fact that Parcel also wants to be Iterable
19:25 TimToady but then you don't get warned
19:25 zachy joined #perl6
19:25 mberends joined #perl6
19:25 colomon ingy: well, bother.  I thought I had R* installed on my Windows box, and the directory is certainly there, but I can't find any sign of a perl6 executable.
19:26 pmichaud (although Iterable can be a role.... but in Rakudo it works out more cleanly as a class so far)
19:28 ingy colomon: windows?
19:28 colomon ingy: my main machine is os x
19:28 ingy colomon: I'm using os x too
19:28 pmichaud 19:10 <sorear> pmichaud: I interpret /:r <foo>* / as / [ <foo>: ]*: /
19:29 pmichaud sorear: good to know... if we get concurrence from TimToady++ then I'll gladly fix nqp-rx to match :-)
19:29 ingy colomon: are you running make test on win or mac?
19:29 * ingy confused
19:29 colomon ingy: on mac
19:29 ingy ok
19:29 colomon ingy: I've got a full rakudo development environment set up on the mac rather than rakudo star.
19:30 colomon ingy: I thought I had R* on the windows box, which is why I tried it.
19:30 colomon does TestML maybe depend on some other module I don't have installed?
19:31 ingy colomon: I don't think so
19:33 ingy colomon: should be easy to install r* then for a bit
19:35 TimToady pmichaud: re <foo>*, certainly that's how STD works currently
19:36 TimToady anything in the scope of a ratchet assumes it can throw away anything after the first Cursor
19:38 colomon ingy: sorry to leave you hanging, but I should probably be doing $work rather than trying install r* atm.  :(
19:38 ingy colomon: yeah, TestML doesn't dep on anything but Test.pm
19:39 nimiezko joined #perl6
19:39 ingy colomon: sorry to leave you hanging as well but I decided to not work on p6 for the week!
19:52 Mowah joined #perl6
19:57 sftp joined #perl6
20:01 mberends \o/ http://github.com/jnthn/6model ports to Mono and Linux with only very minor tweaking
20:05 ovle ok i have some done in black ink and pencil
20:05 ovle pmichaud there?
20:06 pmichaud ovle: yes, here :)
20:08 ovle i did about 6
20:08 frettled nice!
20:09 Su-Shee joined #perl6
20:10 tadzik where is DateTime in Rakudo source?
20:11 jnthn mberends: Oh?
20:11 jnthn Yay!
20:11 frettled tadzik: in lib/
20:11 ovle http://i33.tinypic.com/j9ltzr.jpg
20:12 frettled tadzik: if you're on a Unix-like system, try "find . -name 'DateTime*'" from the Rakudo source dir.
20:12 jnthn mberends: Feel free to push those tweaks.
20:13 tadzik frettled: the thing is, it gives me no results
20:14 ovle http://i33.tinypic.com/op7fvr.jpg
20:14 pmichaud of the ones I've seen, I like this one the best :-)
20:15 ovle the leaf over the R?
20:15 tadzik the leaves are the reference to the Paradise?
20:15 pmichaud the op7fvr.jpg
20:15 ovle ah
20:16 ovle the leaf just denotes earth
20:16 [particle] i don't like the marijuana leaf over the r
20:16 frettled tadzik: hmm, after a fresh git clone, I get the same result.
20:16 [particle] it looks too much like marijuana, anyway
20:16 ovle oh shit lol i didnt want it looking like that, think it was coincedental
20:16 jnthn We have high goals for Rakudo.
20:17 jnthn ;-)
20:17 ovle that logo if i replace it with another leafe
20:17 huf this looks like bay leaves. not marijuana
20:17 Tene [particle]: I thought so too at first, but then I asked google for marijuana leaves, and it doesn't look much the same.
20:17 frettled I thought it looked a bit like a maple leaf.
20:17 huf look it up guys...
20:17 ovle it should be interesting if you can make the leaf transparent in ps
20:17 Tene So really I'm just not familiar with marijuana.
20:17 Tene It seemed to suggest that to several people in the channel, though, so it's not just me.
20:17 ovle but the idea is to make the leaf transparent over the R
20:17 [particle] well, anyway i think rakudo logo should shy away with any symbols that bring the number 5 to mind
20:18 [particle] it doesn't necessarially have to be a symbol/logo that brings number 6 to mind, but shy away from 5.
20:18 ovle i didnt draw a 5
20:19 [particle] the leaf had five points
20:19 [particle] fingers?
20:19 [particle] whatever leaves have.
20:19 Su-Shee that's clearly bay/laurel. not marijuana or maple.
20:20 frettled ovle: beware of mines ;)
20:20 ovle so should i draw more centered around leaves
20:20 ovle or something else/
20:21 [particle] Su-Shee: yes, it doesn't look exactly like marijuana, just reminiscent.
20:21 frettled ovle: let your creativity flow
20:23 ovle i guess so, maybe tonight a few more
20:23 [particle] this is for rakudo, not rakudo star, correct?
20:23 hercynium joined #perl6
20:24 ovle just for rakudo
20:25 frettled ovle: the next statement from me is something I would like you to skip reading until you have come up with a few more ideas yourself.
20:25 [particle] i wonder if the various distribution logos will be based on rakudo compiler logo, like kubuntu et al on ubuntu
20:26 tadzik Rakuntu?
20:26 Su-Shee *hahaha* :)
20:26 tadzik oh, I see what you mean
20:26 tadzik alternative Perl 6 distros?
20:26 frettled ovle: http://nopaste.snit.ch/22834
20:26 Su-Shee tadzik: I want rakware then. ;)
20:26 pmichaud or even different distros within the Rakudo family
20:26 [particle] yes, why would there only be rakudo star as a distro?
20:26 [particle] right, that's what i mean
20:26 jnthn tadzik: lol! :-)
20:26 Su-Shee rabian, rak hat, ruse ;)
20:26 [particle] like vanilla, strawberry, chocolate perl
20:27 ovle whats the rakudo compiler logo
20:27 [particle] that's what you're designing now :)
20:27 tadzik [particle]: I now feel tempted to create mine :)
20:27 [particle] tadzik++ # coopetition is good!
20:27 ovle ah ok
20:27 Su-Shee well with "rakudo from scratch" everybody can has his/her own :)
20:28 tadzik [particle]: I like the work, coopetition
20:28 [particle] :)
20:28 tadzik Su-Shee: :)
20:28 tadzik alright, but duties first. Where is the DateTime source?
20:29 moritz_ src/core/Temporal.pm I think
20:29 tadzik there we go. moritz_++
20:29 frettled duh
20:29 * frettled forgot about the convenient rename.
20:32 tadzik oh, .succ are only for Date, not DateTime, and they are implemented
20:35 diakopter sorear: the STD-on-windows problems had nothing to do with filesystem.
20:35 ovle frettled: what was the link about
20:36 ovle the butterfly idea was already in place, i drew one before but pmichaud didnt quite like the idea
20:36 ovle maybe in color it would've come out better but it was the letters rakudo placed on grass with leaves and bugs around it, with a butterfly sitting on one of the letters
20:38 tadzik Rakudo with bugs around :)
20:38 ovle hah
20:38 frettled heh
20:38 frettled ovle: it was in case the obvious hadn't been mentioned, but I didn't want to distract you yet :=)
20:43 ovle i'll draw a few more tonight, im used to doing rough sketches usually and then have a graphics guy render them
20:43 ovle so trying to draw clean is something of a difficult task for artists who sketch usually:D
20:44 PZt joined #perl6
20:47 ovle ok later all
20:50 pmurias joined #perl6
20:50 pmurias ruoso: ping
20:53 PerlJam A rakudo-tree?  Paradise?  Forbidden fruit?  Hmm.
20:55 whiteknight joined #perl6
20:57 pugssvn r32019 | kyle++ | [Test::Util] Remove nonsense comment
20:58 erik_ joined #perl6
20:58 pnate joined #perl6
21:15 Guest23195 left #perl6
21:20 achromic joined #perl6
21:47 colomon joined #perl6
21:47 kensanata joined #perl6
21:56 avar joined #perl6
22:04 pugssvn r32020 | lwall++ | [STDeco] get snap working again
22:18 tylercurtis joined #perl6
22:22 IllvilJa joined #perl6
22:35 avar joined #perl6
22:35 isBEKaml Rakudo Paradiso! :)
22:37 Italian_Plumber joined #perl6
22:38 pmichaud ...avoiding some unneeded calls to !cursor_debug improves core.pir compilation by about 3.7% .
22:39 jnthn Wow. :-)
22:39 colomon \o/
22:39 ash_ joined #perl6
22:39 jnthn I'll take that.
22:39 jnthn pmichaud++
22:39 pmichaud I'm going to optimize out a few other method calls.
22:39 jnthn In NQP.NET land, basic signature support just landed. :-)
22:40 colomon woah.  NQP.NET is actually moving?
22:40 jnthn sekrit repository is not so sekrit: http://github.com/jnthn/6model/
22:40 jnthn :-)
22:41 colomon I thought you were just working on the new metamodel...
22:41 jnthn colomon: Yes...by implementing it. :-)
22:41 jnthn colomon: The prototype is coming along *very* nicely.
22:41 colomon but I thought you'd be implementing it in parrot.
22:41 jnthn colomon: Yes, I will be soon.
22:41 colomon "if you rely on anything in this repo for anything then you're nuts."  jnthn++
22:41 jnthn It's just easier to prototype not-in-C. :-)
22:42 TimToady std: /x ** {2,3}/
22:42 p6eval std 32020: OUTPUT«ok 00:01 116m␤»
22:42 jnthn Plus my brain is quite Parrot wired and I want a portable design, so implementing it somewhere else first will help ensure that. :-)
22:42 TimToady std: /x{2,3}/
22:42 p6eval std 32020: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of {2,3} as general quantifier; in Perl 6 please use X**2..3 at /tmp/zrkLdG3Qsk line 1:␤------> [32m/x{2,3}[33m⏏[31m/[0m␤Check failed␤FAILED 00:01 113m␤»
22:44 ash_ std:  sub g(:$1) { ... } # is interesting
22:44 p6eval std 32020: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature at /tmp/SSbs4RrpzJ line 1:␤------> [32msub g[33m⏏[31m(:$1) { ... } # is interesting[0m␤Couldn't find final ')'; gave up at /tmp/SSbs4RrpzJ line 1:␤------> [32msub g(:$[33m⏏[31m1) { ... } # is interesting[0m␤
22:44 p6eval ..expect…
22:45 diakopter std: /x{2..3}/
22:45 p6eval std 32020: OUTPUT«ok 00:01 115m␤»
22:49 TimToady Useless use of a range in sink context, eventually
22:55 tylercurtis jnthn: Once I've read and thought some more about traits/roles and the object model, I'd like to discuss them with you if you don't mind.
22:56 jnthn tylercurtis: Sure.
22:56 jnthn I know a few things about those. :-)
22:58 avar joined #perl6
23:10 jferrero joined #perl6
23:12 pugssvn r32021 | lwall++ | [STD] give useful info on illegal variable declarations as noticed by ash_++
23:16 ash_ std:  sub g(:$1) { ... }
23:16 p6eval std 32020: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature at /tmp/lLJEfi6DxW line 1:␤------> [32msub g[33m⏏[31m(:$1) { ... }[0m␤Couldn't find final ')'; gave up at /tmp/lLJEfi6DxW line 1:␤------> [32msub g(:$[33m⏏[31m1) { ... }[0m␤    expecting any of:␤ constraint␤
23:16 p6eval ..param_sep…
23:19 sorear TimToady, diakopter: Are either of you having communications difficulties to the shell?
23:20 sorear diakopter: nothing to do with the filesystem?
23:21 ruoso joined #perl6
23:31 TimToady sorear: um, could you unpack that a little?
23:33 sorear TimToady: once per 30-40 seconds, I start getting complete packet loss to host02.appflux.net for 5-10 seconds
23:34 sorear pmichaud: ping.  Do you have any resources on designing IRs for compilers?
23:34 TimToady not having any trouble right now, as far as I can tell
23:35 TimToady when I have such trouble it's usually someone running the microwave oven :)
23:36 * sorear solved that problem by upgrading to Ethernet
23:36 pmichaud sorear: no
23:36 sorear besides, it seems to be remote-host specific.
23:37 colomon joined #perl6
23:37 pmichaud sorear: at least, I never found any resources that I found to be helpful
23:37 pmichaud I modeled PAST loosely on Pugs' IR
23:49 diakopter sorear: yes, nothing to do with the filesystem.
23:50 diakopter sorear: (besides, that's hardly the only thing that cygwin works around vs. cmd.exe)
23:51 sorear diakopter: then what *is* the problem?
23:53 diakopter I tried several times over the past few years; I don't remember why I gave up the last time.  istr that yaml had something to do with it.
23:54 diakopter tonight I'll consider trying it again; maybe strawberry & std have courted each other secretly (and unbeknownst to each other) since then. :)
23:55 diakopter cygwin would likely be a lot easier in which to get std working, but getting it to work in strawberry/cmd.exe would be a lot better for making it worth with mono in the long run, imho.
23:56 diakopter (if it's feasible, I mean)
23:56 cognominal what is the file config.pmc?  perl6 is opening it (too)  many times
23:56 cognominal ... acording to dtrace
23:57 diakopter sorear: oh, yes, I'm getting disconnected from our host pretty frequently
23:57 cognominal I meant config.fpmc
23:57 diakopter sorry it took me a while to realize which shell you meant
23:57 cognominal is it specific to mac?
23:57 plobsing cognominal: that's parrot's build config

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

Perl 6 | Reference Documentation | Rakudo