Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-11-28

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 jnthn (repr_defined ain't a method, just an "operation" that tells us if the repr thinks the thing is undefined)
00:00 jnthn (which differentiates type objects from non-type objects)
00:01 lue rakudo: say ":a<b>" ~~ /<colonpair>/
00:01 p6eval rakudo : OUTPUT«Method 'colonpair' not found for invocant of class 'Cursor'␤  in <anon> at line 22:/tmp/614lJyGazv␤  in 'Cool::match' at line 2509:CORE.setting␤  in 'Regex::ACCEPTS' at line 6016:CORE.setting␤  in main program body at line 22:/tmp/614lJyGazv␤»
00:01 jnthn lue: In theory, /<Perl6::Grammar::colonpair>/. In practice, pmichaud++ didn't get around to implementing that yet.
00:02 lue curse you, NYI!
00:03 sorear ummm... I don't think so
00:03 sorear Perl6::Grammar::colonpair is going to be using a lot of other rules
00:03 sorear which a bare Cursor won't have
00:03 sorear it should be / [ :lang(Perl6::Grammar) <colonpair> ] /
00:05 lue rakudo: say ":a<b>" ~~ / [ :lang(Perl6::Grammar) <colonpair> ] /
00:06 p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "say \":a<b>"␤»
00:10 lue .oO(Every time I tackle grammar, all roads lead to the inability to use regexes from other grammars.)
00:12 oha left #perl6
00:15 lue rakudo: say ":a<b>" ~~ / { Perl6::Grammar.colonpair } /
00:15 p6eval rakudo : OUTPUT«␤»
00:16 sorear trying to mix and match regexes between grammars is a job for Dr. Frankenstein
00:19 takadonet joined #perl6
00:19 takadonet yo
00:29 orafu left #perl6
00:30 orafu joined #perl6
00:33 masak joined #perl6
00:33 masak just came back in to say this:
00:33 masak tadzik++! # http://ttjjss.wordpress.com/2010/11/27/gra​mmar-dispatching-%E2%80%93-a-step-further/
00:33 diakopter masak: wb!
00:33 masak tadzik: that is the coolest blog posts I've read in a long time.
00:34 masak s/posts/post/
00:34 * jnthn scurries off to read it now rather than saving it for later :)
00:34 masak tadzik: also, you rock.
00:35 jnthn Wow
00:35 jnthn tadzik++
00:35 masak tadzik: though you shouldn't return 200 on a 404 error :P
00:36 masak tadzik: also, if 'token e404 { }' works in Rakudo, then that's a bug.
00:36 masak rakudo: grammar G { token e404 { } }; say "alive"
00:36 p6eval rakudo : OUTPUT«alive␤»
00:36 * masak submits rakudobug
00:37 dalek niecza: f2ae111 | sorear++ | / (5 files):
00:37 dalek niecza: Do Hash.kv et al eagerly
00:37 dalek niecza: review: https://github.com/sorear/niecza/commit/f2ae1116ea
00:37 sorear disappointingly small speedup
00:37 sorear down to 58s
00:38 masak that's, hm about 1.5%?
00:39 sorear 59.7 to 58.2, so a bit more, but I don't think my measurements are reliable past the 1.
00:42 masak STD.mp6 is 195kB in size, so you're doing 3.4kB/s. that's pretty impressive.
00:42 gabiruh_ joined #perl6
00:42 kolibrie joined #perl6
00:42 BinGOs_ joined #perl6
00:43 `26 left #perl6
00:43 jnthn std: grammar G { token e404 { } }; say "alive"
00:43 baest left #perl6
00:43 diakopte1 joined #perl6
00:43 baest joined #perl6
00:43 Juerd_ joined #perl6
00:43 diakopte1 augh; lag/netsplit
00:43 pmichaud_ joined #perl6
00:43 cls_bsd_ joined #perl6
00:43 sorear back in June I set what I thought was a very modest goal
00:43 Maddingue joined #perl6
00:43 BinGOs left #perl6
00:43 sorear go 10 times faster than viv-STD
00:43 TiMBuS_ left #perl6
00:43 ch3ck left #perl6
00:44 sorear that works out to 15s on this hardware
00:44 TiMBuS joined #perl6
00:44 takadonet has anyone have experience using submethod BUILD?
00:44 jdv79 left #perl6
00:44 jdv79_ joined #perl6
00:44 sbp left #perl6
00:44 cls_bsd left #perl6
00:44 tobij left #perl6
00:44 Maddingu1 left #perl6
00:44 kfo left #perl6
00:44 gabiruh left #perl6
00:44 zibri left #perl6
00:44 pmichaud left #perl6
00:44 kolibrie_ left #perl6
00:44 Juerd left #perl6
00:44 phenny left #perl6
00:44 stepnem left #perl6
00:44 hugme left #perl6
00:44 p6eval std a194beb: OUTPUT«[31m===[0mSORRY![31m===[0m␤Null pattern not allowed at /tmp/IZ1JDGbhhc line 1:␤------> [32mgrammar G { token e404 { [33m⏏[31m} }; say "alive"[0m␤    expecting quantifier␤Parse failed␤FAILED 00:01 119m␤»
00:44 allbery_b left #perl6
00:44 tylerni7 left #perl6
00:44 masak how fast is viv-STD? 2kB/s?
00:44 ch3ck joined #perl6
00:44 Juerd_ is now known as Juerd
00:44 tylerni7 joined #perl6
00:44 tylerni7 left #perl6
00:44 tylerni7 joined #perl6
00:44 masak takadonet: yes.
00:44 sorear masak: 1.3 kb/s then
00:44 phenny joined #perl6
00:44 __rnddim__ joined #perl6
00:44 masak sorear: oh, ok. so you're already more than twice as fast.
00:44 kfo joined #perl6
00:45 diakopter left #perl6
00:45 __rnddim__ apparently I'm not the only one that got the boot.
00:45 masak sorear: just a 5x speedup left ;)
00:45 Trashlord left #perl6
00:45 lue left #perl6
00:45 __rnddim__ is now known as lue
00:45 y3llow left #perl6
00:45 masak __rnddim__: there seems to be some kind of net upheaval going on.
00:45 eviltwin_b joined #perl6
00:45 lue that's better :)
00:45 `26 joined #perl6
00:46 `26 left #perl6
00:46 `26 joined #perl6
00:46 y3llow joined #perl6
00:46 takadonet masak: Having trouble where attributes are not being set when I add a submethod BUILD which only has one say statement in it
00:46 lue .oO( I had to ghost my own nickname, things were so messed up :/ )
00:46 masak takadonet: known issue. want the RT ticket number?
00:46 takadonet masak: sure
00:46 * masak looks
00:47 masak takadonet: http://rt.perl.org/rt3/Tic​ket/Display.html?id=68498
00:48 masak takadonet: as you see, it's been reported thrice so far.
00:48 tobij joined #perl6
00:48 takadonet masak: ya!
00:48 takadonet well damn it
00:50 Chillance left #perl6
00:54 * lue iz blaggin'
00:57 dalek ecosystem: 11dc16f | takadonet++ | projects.list:
00:57 dalek ecosystem: Added new project
00:57 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/11dc16ffba
00:58 masak Tree::Simple?
00:58 * masak get curious
00:59 takadonet http://search.cpan.org/~stevan/​Tree-Simple/lib/Tree/Simple.pm
00:59 takadonet not done commenting out perl 5 code so not building yet
00:59 Trashlord joined #perl6
00:59 masak takadonet: I think you forgot to change the path in that copy-paste, though. it points to your Text-Tabs-Wrap project.
01:00 takadonet however got a good chuck of the test passing
01:00 takadonet ...
01:00 takadonet !!!
01:01 Trashlord left #perl6
01:01 dalek ecosystem: d066132 | takadonet++ | projects.list:
01:01 dalek ecosystem: wrong git link
01:01 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/d0661329ff
01:01 takadonet thanks masak
01:01 masak no prob
01:06 bartolin_ joined #perl6
01:06 takadonet rakudo: class E {has $.x; has $.y; method new($x) { self.bless(*,x=>$x);  self.y = self.WHERE } }; E.new(5)
01:06 p6eval rakudo : OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!y␤  in 'E::new' at line 22:/tmp/Mdjt2wElZt␤  in main program body at line 22:/tmp/Mdjt2wElZt␤»
01:07 * takadonet waits for the P6 gods to solve his problem
01:07 masak takadonet: you're mixing up levels, I fear.
01:07 masak takadonet: the 'self' in .new still points to the type object.
01:08 masak takadonet: you need to realize that a .new method isn't anything magical.
01:08 starcoder left #perl6
01:08 bartolin left #perl6
01:08 tylerni7 left #perl6
01:08 tylerni7 joined #perl6
01:08 tylerni7 left #perl6
01:08 tylerni7 joined #perl6
01:08 masak takadonet: if the .bless statement isn't last in the method, you need to save the result in a variable, and then modify the attributes on it before returning it.
01:08 lue blag toast! https://rdstar.wordpress.com/2010/11/28/all-gr​ammars-are-germophobes-in-%E6%A5%BD%E5%9C%9F/
01:08 masak takadonet: but I'm not saying that's particularly good style.
01:09 starcoder joined #perl6
01:09 takadonet masak: what would be a good style then?
01:09 masak starcoder: where were you... ah, I already made that joke.
01:09 masak takadonet: initializing the object in the BUILD submethod.
01:11 takadonet masak: which cannot get default values right now...
01:11 masak takadonet: so what? :) work around it. we all do.
01:11 lue rakudo: say ":a<b>" ~~ Perl6::Grammar.colonpair
01:11 p6eval rakudo : OUTPUT«Method 'ACCEPTS' not found for invocant of class 'Perl6;Grammar'␤  in main program body at line 22:/tmp/kRj2d5ODKh␤»
01:12 masak especially since the alternative (coming back in 2025 when Perl 6 is perfect) is so time-consuming.
01:12 takadonet masak: i know but just want to get it right the first time with less amount of hacks as possible
01:12 takadonet masak: there been lots of improving in the last few months
01:12 takadonet i'm really starting to enjoy porting modules over
01:12 masak takadonet: which is words, adding a comment and a workaround to something mostly correct, or using something known to be non-idiomatic Perl 6?
01:13 takadonet thinking of doing a 'hit list'
01:13 masak s/words/worse/
01:13 lue rakudo: say eval("a => b") ~~ Pair
01:13 p6eval rakudo : OUTPUT«0␤»
01:13 masak wow, I don't make eggcorns often.
01:13 masak lue: 'b' needs to be quoted.
01:14 lue yeah.
01:15 lue rakudo: say "a => 1" ~~ /{eval($_) ~~ Pair}/  # forgive me for I know it's wrong. I must be going insane.
01:15 p6eval rakudo : OUTPUT«␤»
01:15 jnthn Mmm...eggcorns sound potentially tasty
01:15 * jnthn figgers it's time for sleep
01:16 masak lue: you gain nothing from putting it in a regex like that.
01:16 masak jnthn: http://eggcorns.lascribe.net/
01:16 masak jnthn: good night.
01:17 masak wow. "youthanism".
01:17 lue rakudo: say ":a<b>" ~~ /{Pair}/ # please, rakudo, please work.
01:17 p6eval rakudo : OUTPUT«␤»
01:17 masak I have no trouble seeing how reading that page often enough could have a corrupting influence.
01:17 jnthn masak: oh, cool
01:18 masak lue: your misuse of features makes me want to rebuke you.
01:18 jnthn sleep &
01:18 masak lue: please realize why what you're writing not only doesn't work, but can't possibly.
01:18 takadonet can you have multi submethod BUILD?
01:18 masak takadonet: sure!
01:18 takadonet hmmm probably something dumb on my part
01:19 masak takadonet: it's just a normal submethod.
01:19 masak takadonet: recall that dispatch works differently on named parameters.
01:19 masak the details are in S06.
01:19 takadonet this would be positional based parameters
01:20 masak in BUILD?
01:20 masak er... why?
01:20 takadonet brb
01:22 lue sorry, I'm just trying to find ways to make matching to the colonpair rule work.
01:22 masak lue: experimenting in crazy ways should, of course, be encouraged. but it's painful to see you try things out in ways that obviously won't work.
01:23 masak programming is not the result of haphazardly mixing together language features. :)
01:23 Tene "Katahdin is a programming language where the syntax and semantics are mutable at runtime." -- http://www.chrisseaton.com/katahdin/
01:24 lue shows you how little I know. Everything above (until the moment it ran of course) seemed like it might possibly in some small way have a chance at working. :)
01:25 masak Tene: brought up by diakopter++ in June 2008, and by mncharity three months prior :)
01:25 masak lue: would you like me to explain why not?
01:25 Tene It's insufficiently interesting for me to look into in depth right now, but I thought it might be for someone else here.
01:26 takadonet left #perl6
01:26 justatheory left #perl6
01:27 lue I think I see why. Even typing them up, I realized they're a convoluted way of doing what I want. Of course I don't know the technical details.
01:27 masak the first was just a Useless Use of Regex.
01:27 Tene rakudo: say Perl6::Grammar.parse(':a<b>', :rule<colonpair>);
01:27 p6eval rakudo : OUTPUT«:a<b>␤»
01:27 masak the second was... belief in magic.
01:27 masak Tene++
01:28 masak lue: there you go, then.
01:28 lue (did you see my blag toast above? It might explain the method to my madness.)
01:29 masak lue: I started reading it, yes. I'll finish now.
01:29 lue I guess my grammar'll have to match to any text and sort it out later in the code. Blerg.
01:29 Tene lue: You *should* be able to use <Perl6::Grammar::colonpair>, but that's NYI
01:30 masak Tene: but sorear said in the backlog that that's not true.
01:30 * Tene reads  backlog.
01:30 lue I remember a bit back some people saying <A::B::C> was a Bad Idea™.
01:33 masak rakudo: grammar G { rule TOP { \=begin code (.*) <?{ Perl6::Grammar.parse($0, :rule<colonpair>) }> } }; say so G.parse(q[=begin code :allow<R> ])
01:33 p6eval rakudo : OUTPUT«Bool::True␤»
01:33 masak lue: that should be enough for your purposes.
01:33 masak lue: you need, of course, to be a bit careful with the (.*)
01:33 Tene 17:03 < sorear> it should be / [ :lang(Perl6::Grammar) <colonpair> ] / -- If that would be able to work, why couldn't <Perl6::Grammar::colonpair> compile to the same thing?
01:34 masak Tene: for one thing, because the <colonpair> rule isn't our-scoped.
01:34 lue So I should've used $0 instead of $_ in regexes.
01:34 masak Tene: using :: like that in grammars seems Wrong after the alpha->ng refactor.
01:34 masak lue: well, no, that's not all you should have done.
01:35 masak lue: but I use $0 here to talk about the (.*)
01:37 Tene re 'grammar dispatching - a step further', while grammars do work for that, that's exactly the place that you'd ideally use a declarative sublanguage.
01:38 Tene Foo { dispatch /^ '/api/' (\S*)/ { given $/[0].Str { ... } } }
01:38 masak Tene: please please back that up with pretty code in a blog post! <3
01:38 Tene or whatever
01:39 masak doesn't matter if it doesn't run in Rakudo today.
01:39 masak it'd be a nice goal to aspire towards.
01:39 Tene masak: I'm not really blogging these days... Lemme see what I can put together, though.
01:40 masak a gist works, too.
01:40 Tene And then some other enterprising person could blog about it.
01:40 Tene But where could we find someone that bloggy?
01:41 masak I'm sure there are people willing to pick up such a challenge.
01:41 lue would the line    regex config { (\H+) <?{ Perl6::Grammar.parse($0, :rule<colonpair) }> }    work as well?
01:42 masak lue: think so.
01:42 lue oh! pretend there's a >
01:42 masak lue: but \H matches vertical whitespace. better \S
01:43 Tene masak: whitespace can occur in a colonpair
01:43 Tene :foo< bar >
01:43 masak that's true too.
01:43 Tene :foo('foo bar baz')
01:43 Tene etc
01:43 masak it's basically a Text::Balanced problem, then.
01:44 lue that's probably why it's not working. [because I'm using it inside a regex as so:    regex extraconfig{ \= [\h+ <config>]+ }    ]
01:45 masak lue: how's the TDD bit going?
01:46 lue good, I think. The tests I've written are great so far, I'm stuck on the "making those tests pass" part of the cycle :)
01:47 masak which test in particular?
01:47 Tene rakudo: eval(":foo(\n'bar'\n)").WHAT
01:47 p6eval rakudo :  ( no output )
01:47 Tene rakudo: eval(":foo(\n'bar'\n)").WHAT.say
01:48 p6eval rakudo : OUTPUT«Pair()␤»
01:48 Tene So, even newlines can be there
01:48 masak Tene: though not in Pod.
01:48 masak (I think)
01:48 masak huh, maybe they can.
01:49 masak maybe that just falls out of the way the <colonpair> subrule works.
01:49 masak but I've seen no indication that they should in S26.
01:49 lue excuse me, I think I miswrote the test in question. .oO(TDD for TDD?)
01:51 masak that's normal too.
01:51 Tene masak: Well, there's always loldispatch-style, which I wrote ages ago
01:51 masak but it's more important to have a test than to get it right the first time.
01:51 Tene Doesn't quite fill exactly the same niche, but close
01:51 masak Tene: yeah.
01:52 colomon joined #perl6
01:52 lue <colonpair> doesn't give me the various pieces of the actual colonpair, does it? (i.e. doesn't give me the 'a' and 'b' in :a<b> seperately)
01:53 shachaf joined #perl6
01:54 Tene lue: It certainly does.
01:54 masak rakudo: Perl6::Grammar.parse(':a<b>', :rule<colonpair>); say $/.perl
01:54 p6eval rakudo : OUTPUT«Any␤»
01:54 masak :(
01:54 Tene rakudo: my $m = Perl6::Grammar.parse(':a<b>', :rule<colonpair>); say $m<key>; say $m<value>;
01:54 p6eval rakudo : OUTPUT«Null PMC access in invoke()␤  in main program body at line 1␤»
01:54 masak grr
01:54 Tene rakudo: my $m = Perl6::Grammar.parse(':a<b>', :rule<colonpair>); say $m<key>; say $m<value>;
01:54 p6eval rakudo : OUTPUT«Null PMC access in invoke()␤  in main program body at line 1␤»
01:54 masak surely submitted already.
01:54 Tene o.O
01:55 lue nooo! [actually, it's been forever since I've seen a null PMC]
01:55 Tene rakudo: say Perl6::Grammar.parse(':a<b>', :rule<colonpair>);
01:55 p6eval rakudo : OUTPUT«:a<b>␤»
01:55 Tene rakudo: say Perl6::Grammar.parse(':a<b>', :rule<colonpair>).WHAT;
01:55 p6eval rakudo : OUTPUT«Regex::Match()␤»
01:55 masak there you go.
01:55 Tene rakudo: my $m = Perl6::Grammar.parse(':a<b>', :rule<colonpair>); say $m.WHAT
01:55 p6eval rakudo : OUTPUT«Regex::Match()␤»
01:55 masak not a Perl 6 object.
01:55 masak it's from nqp-rx.
01:56 Tene Rakudo should not fail that badly with non-native objects.
01:56 masak full ACK
01:56 masak add it to my ever-growing list of "Rakudo should"s :P
01:57 Tene But, well, that just gets back into why I stopped contributing, so I'll shut up about it.
01:57 masak I've heard that bitching about open source is the second-best way to contribute. :P
01:58 gbacon left #perl6
01:58 Tene Oh, weird, the colonpair rule doesn't set match variables, but contextuals instead.
01:58 lue (for the record, mberends's parser matches config options manually)
01:58 masak lue++ # looking at prior code
01:59 lue I now must experiment with something new I've found...
01:59 lue perl6: say "<A>" ~~ / <.lt> <alpha> <.gt> /
01:59 Tene lue: By my reading of Grammar.pm, you'll have to eval it to get a pair object.
01:59 p6eval rakudo : OUTPUT«Method 'lt' not found for invocant of class 'Cursor'␤  in <anon> at line 22:/tmp/uwvczL4ddt␤  in 'Cool::match' at line 2509:CORE.setting␤  in 'Regex::ACCEPTS' at line 6016:CORE.setting␤  in main program body at line 22:/tmp/uwvczL4ddt␤»
01:59 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6​.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
02:00 lue .oO(curse you alpha-era code! .oO(I need to find the SHAKING FIST IN AIR unicode codepoint))
02:01 lue I would write it manually, I just would like to know: how many brackets can you use in pair notation?
02:01 masak lue: () <> «» {} []
02:02 masak lue: but I'd suggest supporting only the first two, as a start.
02:02 masak maybe even only <>
02:03 lue rakudo: say eval(":a「b」") ~~ Pair;
02:03 p6eval rakudo : OUTPUT«0␤»
02:03 Tene lue: arbitrary quotes aren't supported there.
02:05 lue I must be missing something, because matching a set of brackets in a regex when supporting multiple bracket sets is very annoying (to me at least).
02:05 lue (eg. making sure :a(hai> won't match)
02:06 masak lue: there are several examples already for how to do this with Perl 6 grammars.
02:06 masak lue: but do not try to overextend your grasp. start with <>.
02:09 gbacon joined #perl6
02:14 lue Alright. Something about having to do way more complicated things due to broken features irks me terribly though :) .
02:14 masak do like the rest of us do.
02:19 masak live with it. :)
02:19 masak or improve it.
02:21 lue .oO(should I brave nqp-rx again? Can't see why not.)
02:22 masak unless you prefer passing tests to yak shaving, of course.
02:25 ch3ck left #perl6
02:26 Tene grammar Foo { rule lol { ... }; rule bracketed { '<' ~ '>' <lol> | '(' ~ ')' <lol> | ... } }
02:27 Tene Is the standard way of handling it, approximately.
02:29 Tene alternately: my %index = ( '<' => '>', '(' => ')' ); grammar ... rule foo { (<[<(]>) ... (.) <?{ $2 eq %index{$1} }> } }
02:29 Tene approximately
02:29 Tene If you really want just a single alternative
02:29 Tene The advantage of the first one is that you can do different things based on the brackets
02:30 Tene An even nicer option is to use protoregexes, but I don't recommend them often, because I don't have a good understanding of the situations where people like them or not.
02:31 whiteknight joined #perl6
02:32 * masak sleeps
02:32 diakopte1 'nite
02:32 masak left #perl6
02:32 diakopte1 is now known as diakopter
02:34 lue is there a Patron Saint of Working Features I can pray to? Maybe next time I come here it'll magically work like I want.
02:34 lue afk
02:42 stepnem joined #perl6
03:25 whiteknight left #perl6
03:33 _twitch left #perl6
03:33 envi joined #perl6
03:44 dalek 6model: 61d214a | diakopter++ | dotnet/ (2 files):
03:44 dalek 6model: [dotnet] more progress on regex prologue/epilogue & backtracking trampoline
03:44 dalek 6model: (still porting from Compiler-Regex.pir)
03:44 dalek 6model: review: https://github.com/jnthn/6model/commit/61d214a6d2
03:46 diakopter ××× ×××
03:49 diakopter ^ drunk with triple vision
04:02 petdance joined #perl6
04:15 takadonet joined #perl6
04:15 takadonet hey all
04:38 eviltwin_b is now known as allbery_b
04:39 gbacon left #perl6
04:48 cotto joined #perl6
05:37 `26 left #perl6
05:46 plobsing left #perl6
05:48 plobsing joined #perl6
05:52 takadonet soo quiet
05:57 * TimToady is home
05:59 Chillance joined #perl6
06:01 takadonet is there a way to create an alias for a method ?
06:02 TimToady with .^add_method, perhaps
06:05 takadonet could work
06:15 sorear wb TimToady
06:33 petdance left #perl6
06:39 risou left #perl6
07:06 takadonet left #perl6
07:09 risou joined #perl6
07:14 redicaps joined #perl6
07:27 risou left #perl6
08:01 redicaps left #perl6
08:08 _kaare joined #perl6
08:24 BinGOs_ is now known as BinGOs
08:25 BinGOs left #perl6
08:25 BinGOs joined #perl6
08:25 risou joined #perl6
08:38 _kaare left #perl6
09:42 nonamime joined #perl6
09:42 nonamime left #perl6
09:51 risou left #perl6
09:56 _ilbot2 left #perl6
09:58 _ilbot2 joined #perl6
09:58 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
09:58 maluco joined #perl6
09:58 bartolin joined #perl6
09:58 huf_ joined #perl6
10:00 frodwith_ joined #perl6
10:01 betterworld joined #perl6
10:01 lamstyle left #perl6
10:01 Eevee left #perl6
10:01 tobij left #perl6
10:01 bartolin_ left #perl6
10:01 __rnddim__ joined #perl6
10:01 maluco_ left #perl6
10:01 huf left #perl6
10:01 frodwith left #perl6
10:01 mj41 left #perl6
10:02 mj41_ is now known as mj41
10:02 y3llow left #perl6
10:03 y3llow joined #perl6
10:05 lamstyle joined #perl6
10:05 wamba joined #perl6
10:06 cognominal__ joined #perl6
10:07 lue left #perl6
10:07 cognominal_ left #perl6
10:07 betterwo1ld left #perl6
10:08 tobij_ left #perl6
10:08 tobij joined #perl6
10:08 starcoder left #perl6
10:12 starcoder joined #perl6
10:18 MindosCheng Rakudo passes all the tests on my machine.
10:19 jhuni left #perl6
10:38 palik joined #perl6
10:40 nymacro joined #perl6
10:41 oha joined #perl6
10:45 Chillance left #perl6
10:47 sbp joined #perl6
10:55 nym joined #perl6
10:58 nymacro left #perl6
11:14 dalek niecza: e05e201 | sorear++ | / (2 files):
11:14 dalek niecza: More direct implementation of Array.LISTSTORE
11:14 dalek niecza: review: https://github.com/sorear/niecza/commit/e05e201f10
11:14 dalek niecza: f72990f | sorear++ | v6/tryfile:
11:14 dalek niecza: More direct implementation of Hash.LISTSTORE
11:14 dalek niecza: review: https://github.com/sorear/niecza/commit/f72990f725
11:14 sorear now 56.2s.  Making progress... VERY slow progress :/
11:14 * sorear -> sleep
11:40 MayDaniel joined #perl6
11:40 _kaare joined #perl6
12:07 palik left #perl6
12:09 Woodi left #perl6
12:15 oha left #perl6
12:16 oha joined #perl6
12:44 tobij is now known as churchill
12:58 MayDaniel left #perl6
13:06 whiteknight joined #perl6
13:07 iopluy joined #perl6
13:10 _twitch joined #perl6
13:28 alc joined #perl6
13:33 cosimo_ how can I refer to an object attribute through a variable?
13:34 tadzik what do you mean?
13:34 cosimo_ like this: method foo { my $attr = 'bar'; return $!$attr; }
13:34 cosimo_ which should return $!bar, but doesn't work
13:37 tadzik does it even parse?
13:38 tadzik $!$attr?
13:38 cosimo_ no exactly, it doesn't
13:38 tadzik can't you just return $!bar?
13:39 cosimo_ the example is a bit stupid
13:39 icwiener joined #perl6
13:39 tadzik What do you want to achieve?
13:41 Patterner left #perl6
13:41 tadzik bbl
13:52 Chillance joined #perl6
13:52 Psyche^ joined #perl6
13:52 Psyche^ is now known as Patterner
14:15 isBEKaml joined #perl6
14:17 cosimo_ what does this error mean?
14:17 cosimo_ "Type objects are abstract and have no attributes, but you tried to access $!debug"
14:19 arnsholt I think you tried to access an attribute in a type object
14:21 cosimo_ I'm trying to call a static method, Facter.debug()
14:21 cosimo_ and this method tries to access $!debug
14:21 nothingmuch left #perl6
14:21 nothingmuch_ joined #perl6
14:22 arnsholt $!debug is an instance member. I don't think you can access that from a static method
14:28 cosimo_ arnsholt: there is no way around this?
14:30 arnsholt If you need to access an instance member, the method has to be an instance method
14:32 Tene cosimo_: What would "around this" even mean?  What would you want "access a member of an instance without using an instance" to even mean?  If you mean for it to be an instance member, than access it on an instance.  If you mean for the function to be purely static, then don't access instance members in it.
14:33 icwiener left #perl6
14:35 cosimo_ Tene: i'm trying to port an application from ruby, where apparently this distinction doesn't exist (???)
14:35 Tene cosimo_: in ruby, you have four types of variables: global, lexical, instance, and class.
14:36 Tene If the ruby code used a class variable, then do the same in Perl: our $debug;
14:36 MayDaniel joined #perl6
14:37 cosimo_ Tene: I think this is where my ruby ignorance shines :)
14:38 cosimo_ Tene: so, '@@something' is a static variable then?
14:38 Tene cosimo_: Yes, iirc.
14:38 cosimo_ aha!
14:38 Tene and @something is instance
14:38 cosimo_ that clarifies everything
14:38 Tene iirc
14:40 cosimo_ i'll translate static variables to 'our $xxx' then
14:41 cosimo_ sorry, I realize I'm being lousy, but I'm learning a lot on the way :) Thanks
14:43 Tene Oh, no worries.
14:44 Tene I'm just emphasizing that you need to understand what you actually want before asking someone else for it. :)
14:46 cosimo_ agreed :)
14:49 isBEKaml rakudo: say qw<alpha beta gamma delta>; # say strips spaces out of qw?
14:49 p6eval rakudo : OUTPUT«alphabetagammadelta␤»
14:50 Tene isBEKaml: no...
14:50 isBEKaml rakudo: say q<alpha beta gamma delta>;
14:50 p6eval rakudo : OUTPUT«alpha beta gamma delta␤»
14:50 arnsholt isBEKaml: That's just the default stringification of a list, IIRC
14:50 Tene rakudo: my @a = <alpha beta gamma delta>; say @a[0]; say @a[1]; # I see no spaces here that &say could be stripping
14:50 arnsholt (Or whatever kind of object qw// constructs these days, I can't remember)
14:50 p6eval rakudo : OUTPUT«alpha␤beta␤»
14:51 Tene isBEKaml: qw<...> is the same as ('alpha', 'beta', 'gamma', 'delta')
14:51 isBEKaml rakudo: my @a = <alpha beta gamma delta>; @a.say;
14:51 p6eval rakudo : OUTPUT«alphabetagammadelta␤»
14:51 Tene rakudo: my @a = <alpha beta gamma delta>; say @a.perl;
14:51 isBEKaml Tene: Ah, I see now.
14:51 p6eval rakudo : OUTPUT«["alpha", "beta", "gamma", "delta"]␤»
14:52 Tene See?
14:53 isBEKaml as arnsholt said, that's just the default behaviour. okay.
14:56 risou joined #perl6
14:57 masak joined #perl6
14:57 masak oh hai, #perl6!
14:57 arnsholt Greetinks!
14:58 isBEKaml hi, masak!
14:58 masak I'm only staying on for about an hour. going to work a bit on the Web.pm tests.
14:59 isBEKaml masak: I tried to watch your YAPC::EU presentation (perl6 appetizers) on presentingperl.com. Unfortunately, it had no audio. :(
15:00 masak isBEKaml: yeah, I know. :/
15:00 Tene morning masak
15:00 masak ISTR it only showed me, too. not the slides.
15:00 jnthn o/ masak
15:01 isBEKaml masak: yeah, the cam focussed only on the presenters not the slides. Same with other talks too. :/
15:02 masak I'm not sure how well the talk would have worked that way anyway.
15:02 isBEKaml silent movie, anyone? :D
15:02 masak isBEKaml: if you want, I can put up the slides source.
15:02 isBEKaml masak: if that requires inkscape or something similar, I can't build them here. :(
15:03 isBEKaml can you just upload the pdf or something?
15:03 masak no, it's Pod6.
15:03 isBEKaml yeah, sure.
15:03 masak thing is, the PDF became very big due to a tactical mistake with repeated images.
15:03 masak but the slide source should be informative.
15:04 isBEKaml sure, I can take it, then. :)
15:04 masak isBEKaml: https://gist.github.com/718999
15:05 masak oh my, gist interpreted it as actual Pod.
15:05 masak I'd better massage it down to Pod5-ish, then.
15:06 isBEKaml masak: no worries, I cloned it.
15:06 isBEKaml masak++
15:06 masak almost done here.
15:07 masak there: https://gist.github.com/718999
15:08 dual left #perl6
15:09 isBEKaml thanks.
15:09 masak std: my $path; $path ~~ s[\.pm6?$][];
15:09 p6eval std a194beb: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing assignment operator at /tmp/S1pCJ8XubF line 1:␤------> [32mmy $path; $path ~~ s[\.pm6?$][33m⏏[31m[];[0m␤    expecting any of:␤   bracketed infix␤        infix or meta-infix␤    quantifier␤Parse failed␤FAILED 00:01 124m␤»
15:09 masak std: my $path; $path ~~ s[\.pm6?$] = "";
15:09 p6eval std a194beb: OUTPUT«ok 00:01 123m␤»
15:09 * masak changes that, too
15:10 masak moritz_++
15:10 isBEKaml btw, I just noticed it now. where's the version number rakudo's evalbot output?
15:10 isBEKaml rakudo: say 42;
15:10 p6eval rakudo : OUTPUT«42␤»
15:11 masak o.O
15:15 Tene jnthn: ping
15:17 Tene jnthn: trying to look into 6model, and running into problems building anything.  'make' and try.sh in dotnet/compiler/ both seem to want dotnet/runtime/bin/Debug/RakudoRuntime.dll, which doesn't seem to be checked in, and I don't see anything that would build that.
15:20 jnthn Tene: Ah...I thought the Makefile handled that now, but I guess the runtime still needs building independently.
15:20 jnthn Tene: Go to the runtime directory and do:
15:20 jnthn xbuild Rakudo.Net.sln
15:20 jnthn That should give you the dlls.
15:21 jnthn *dll
15:22 jnthn I told masak++ how to do this recently and then forgot to write it down somewhere...
15:26 Tene Hmm.  That helped.  Now it's trying to invoke csc, which I seem to not have.
15:27 jnthn Alias csc to gmcs
15:27 jnthn .oO( Need a build/config thingummy... )
15:27 Tene also msbuild->xbuild
15:27 jnthn *nod*
15:27 Tene Also had to adjust \ -> / on one rule.
15:30 nym left #perl6
15:31 Trashlord joined #perl6
15:33 dalek 6model: e3d0423 | tene++ | dotnet/compiler/Makefile:
15:33 dalek 6model: Fix slashes in dotnet makefile
15:33 dalek 6model: review: https://github.com/jnthn/6model/commit/e3d0423bd2
15:33 Tene Okay, first commit to 6model :)
15:35 Tene Yay, crash!
15:38 Tene It fails with some kind of wine problem... o.O
15:42 jnthn wtf.
15:42 jnthn wine?
15:42 jnthn We...don't even depend on anything graphical. :S
15:44 Tene it brings up gui crash reports for me, and something about not being able to find wineboot.exe
15:44 jnthn :S
15:44 Tene Lemme just remove all the wine packages and try again.
15:45 jnthn OK
15:45 jnthn phew, your makefile twiddle didn't break anything on Windows :)
15:46 Tene jnthn: I saw that the other makefile rules were similar
15:46 Tene jnthn: Ah, it has something to do with trying to directly execute the mono-generated win32 executable
15:46 Tene [sweeks@sweeks-laptop compiler]$ file RakudoOutput.exe
15:46 Tene RakudoOutput.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit Mono/.Net assembly
15:46 Tene try.sh runs that directly
15:47 Tene seems to pass tests if I replace that with 'mono ./RakudoOutput.exe'
15:48 jnthn oh, nice :)
15:48 jnthn OK, so...close :)
15:48 Tene I don't know enough about wine to know how or when that should or shouldn't work :)
15:49 jnthn I'm still confused how wine got invovled...
15:49 Tene jnthn: wine must have registered some sort of handler for all win32 executables
15:49 flussence kernel executable format interpreter thingy?
15:50 flussence you can tell the kernel to do that, same way it figures out the #! line when it sees it...
15:50 * flussence looks it up
15:50 jnthn Tene: Ah...and then it gets confused when it sees it's .Net bytecode file...
15:50 Tene jnthn: more likely, my wine install was screwed up.
15:51 Tene Or, maybe that too.
15:51 Tene I certainly didn't have the windows version of mono installed anywhere wine could have seen it.
15:51 flussence oh, here we go
15:52 flussence /proc/sys/fs/binfmt_misc does all the magic stuff of "open .exe files in wine without asking"
15:52 Tene jnthn: try.sh is for non-windows only, yes?  Should I refer to 'mono' there, or is there a more-agnostic way of saying that?
15:52 Tene flussence: http://www.mono-project.com/Guide:Ru​nning_Mono_Applications#Registering_.exe_as_non-native_binaries_.28Linux_only.29
15:54 jnthn Tene: Yes, I think try.sh is only used for non-Windows.
15:54 jnthn The try.bat is there for Windows folks.
15:55 dalek 6model: 35d6ffe | tene++ | dotnet/compiler/try.sh:
15:55 dalek 6model: Use mono directly in try.sh for dotnet
15:55 dalek 6model: review: https://github.com/jnthn/6model/commit/35d6ffea98
15:56 Tene All tests successful.
15:56 Tene Files=42, Tests=286, 548 wallclock secs ( 0.24 usr  0.06 sys + 536.67 cusr 15.34 csys = 552.31 CPU)
15:56 Tene Result: PASS
15:58 jnthn \o/
16:00 jnthn bbiab
16:01 Tene LHF.txt is disappointingly short.
16:02 colomon left #perl6
16:05 isBEKaml masak: I'm still looking at your slides. great stuff! (another win, helps me recall syntax. :D)
16:06 masak isBEKaml: glad to help.
16:07 masak isBEKaml: I wasn't overly pleased with the presentation, for various reasons. so I'm especially glad to know that the material is useful to someone now. :)
16:07 isBEKaml I got a question, though. In your section, "Multi methods as recipe for success", you use given-when to smartmatch against types/classes for branching into actions.
16:07 masak yes?
16:07 masak oh!
16:08 masak yes, it stops one step short, doesn't it?
16:08 masak might be because the previous section took that step.
16:08 masak Replace if statements with multis with more precise signatures.
16:08 isBEKaml is there a way to do something like say, method foo(Type sometype) and let that type handle the branching accordingly? I could define same methods in those classes, ofcourse. callsame?
16:08 masak you're looking for 'multi method'.
16:08 isBEKaml and, that too. :)
16:09 masak see the last example in the previous section.
16:09 isBEKaml No. a single method. branches to the specific class for the method implementation.
16:09 masak now I'm no longer sure what you mean.
16:09 jnthn Tene: It used to be longer but diakopter++ kept picking the fruit. :P
16:10 Tene heh
16:10 jnthn Tene: Let me put some new stuff in.
16:10 isBEKaml alright, this goes some way... :S
16:10 Tene I'm having trouble actually finding the implementation of NQPAttribute, although I see mentions of it in several places.
16:10 masak isBEKaml: feel free to fill in with concrete details, and I might catch on.
16:10 isBEKaml class A { method bar { ..} } class B { method bar { .. } } class C { method foo(Type T) { T.bar } ?
16:11 dual joined #perl6
16:11 masak right. that's runtime polymorphism.
16:11 jnthn Tene: Alas, that LHF is, it turns out, done...
16:11 isBEKaml the type T is very generic. the method implementation has to be looked up.
16:11 masak works out of the box.
16:11 masak as long as A ~~ T and B ~~ T.
16:11 jnthn Tene: But didn't get removed from the file when committed, it seems. :(
16:12 jnthn NQPAttribute is implemented internally, inside KnowHOWBootstrapper.cs.
16:12 Tene jnthn: despite not containing that string anywhere in that file?
16:12 masak rakudo: class T {}; class A is T { method bar { say "A" } }; class B is T { method bar { say "B" } }; sub foo(T $thing) { $thing.bar }; foo($_) for A.new, B.new
16:12 p6eval rakudo : OUTPUT«A␤B␤»
16:13 jnthn Tene: Oh, wait...I was thinking of KnowHOWAttribute
16:13 jnthn Tene: NQPAttribute's source is in common/NQP/NQPSetting.pm
16:13 Tene Ah.
16:13 isBEKaml masak: ah, you answered the question! (pychic masak!)
16:14 isBEKaml duh, psychic*
16:16 masak isBEKaml: I have the benefit of having tread most of these paths at least once, looking for bugs. :)
16:16 isBEKaml masak: now what would happen if I were to insert a role? Classes override roles, right?
16:16 isBEKaml or is it the other way?
16:16 masak isBEKaml: imagine that roles don't exist at runtime.
16:17 masak isBEKaml: that is, they "melt into" the classes they participate in.
16:17 masak isBEKaml: the only way you can tell they're still there is by smartmatching against them.
16:18 isBEKaml masak: smartmatching against them? the roles themselves?
16:18 masak yes.
16:18 masak isBEKaml: the Big Advantage of roles over multiple inheritance is that roles complain if you try to compose two roles with the same method longnames.
16:18 masak rakudo: role A { method foo {} }; role B { method foo {} }; class C does A does B {}
16:18 p6eval rakudo : OUTPUT«===SORRY!===␤Method 'foo' collides and a resolution must be provided by the class␤»
16:18 isBEKaml masak: that is, classes and roles cannot have the same method?
16:19 masak oh, sure they can.
16:19 masak rakudo: role A { method foo {} }; class C does A { method foo {} }
16:19 p6eval rakudo :  ( no output )
16:19 masak rakudo: role A { method foo {} }; class C does A { method foo {} }; say "alive"
16:19 p6eval rakudo : OUTPUT«alive␤»
16:19 masak isBEKaml: that's how the role-method conflict is resolved, in fact.
16:19 isBEKaml rakudo: role A { method foo { say "role" }; class B does A { method foo { say "class: " }; }; B.new.foo;
16:19 p6eval rakudo : OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
16:20 risou left #perl6
16:20 `26 joined #perl6
16:20 `26 left #perl6
16:20 `26 joined #perl6
16:20 masak isBEKaml: the rule there is: methods declared in the class take precedence over methods declared in the role.
16:20 isBEKaml rakudo: role A { method foo { say "role" }; };class B does A { method foo { say "class: " }; }; B.new.foo;
16:20 masak isBEKaml: it's an "I know what I'm doing" rule.
16:20 p6eval rakudo : OUTPUT«class: ␤»
16:20 risou joined #perl6
16:21 masak isBEKaml: the collision detection is only meant to prevent *unknowing* collisions.
16:22 colomon joined #perl6
16:22 isBEKaml rakudo: class T { method foo { say "T" }; }; role F { method foo { say "ROLE" }; }; class A is T does F { method foo { say "A" }; }; class B is T { method foo { say "B" }; }; sub bar(T $ff) {$ff.foo }; bar($_) for A.new,B.new;
16:22 masak afk &
16:22 p6eval rakudo : OUTPUT«A␤B␤»
16:22 masak left #perl6
16:23 isBEKaml rakudo: class T { method foo { say "T" }; }; role F { method foo { say "ROLE" }; }; class A is T does F {  }; class B is T { method foo { say "B" }; }; sub bar(T $ff) {$ff.foo }; bar($_) for A.new,B.new;
16:23 p6eval rakudo : OUTPUT«ROLE␤B␤»
16:23 isBEKaml masak++
16:27 ch3ck joined #perl6
16:27 PacoLinux left #perl6
16:27 icwiener joined #perl6
16:29 PacoLinux_ joined #perl6
16:29 PacoLinux_ is now known as PacoLinux
16:31 dalek 6model: 31726b5 | jonathan++ | dotnet/LHF.txt:
16:31 dalek 6model: [dotnet] Update LHF; remove done task, and add a few more ideas. (Got some more to write up soonish too...)
16:31 dalek 6model: review: https://github.com/jnthn/6model/commit/31726b54e4
16:32 colomon Advent!
16:37 alc left #perl6
16:44 dalek mu: 8419593 | (Solomon Foster)++ | misc/perl6advent-2010/schedule:
16:44 dalek mu: colomon chimes in.
16:44 dalek mu: review: https://github.com/perl6/mu/commit/84195934fe
16:44 ilogger2 left #perl6
16:48 ilogger2 joined #perl6
16:52 MayDaniel left #perl6
16:54 rokoteko_ is now known as rokoteko
17:10 MayDaniel joined #perl6
17:19 lidden joined #perl6
17:20 JodaZ joined #perl6
17:22 lidden With this month rakudo* I get "Could not load oplib `perl6_ops'" unless I run perl6 from within the rakudo dir. It used to work. Did I do someting wrong when I compiled it?
17:28 lidden Ignore me, I am stupid.
17:29 TypeNameHere____ left #perl6
17:34 JodaZ wtf are junctions
17:38 iopluy left #perl6
17:38 JodaZ its a set or list with a any,all or one flag set ?
17:38 lidden Things that have more than one value at a time "my $foo = any(1,2,3,4); say 'Yo' if $foo == 3;'" will print "Yo".
17:39 isBEKaml left #perl6
17:40 JodaZ seems useless
17:41 justatheory joined #perl6
17:41 JodaZ i hope conversion from set and list to junction is efficient >_>
17:42 lidden Not at all useless. If you want to know if an array has a value you can do "if any(@foo) == $x { # do stuff", and other useful constructs
17:42 JodaZ yeah, but if you want efficiency with those fries you want to have foo as a hash anyways
17:45 MayDaniel left #perl6
17:52 flussence Junctions autothread.
17:53 colomon or at least, junctions are allowed to autothread
17:54 JodaZ all(1,2,3) == all(2,1,3) ?
17:54 flussence rakudo: say all(1,2,3) == all(2,1,3)
17:54 colomon rakudo: say all(1,2,3) == all(2,1,3)
17:55 p6eval rakudo : OUTPUT«all(all(Bool::False, Bool::True), all(Bool::True, Bool::False), all(Bool::False, Bool::True))␤»
17:55 p6eval rakudo : OUTPUT«all(all(Bool::False, Bool::True), all(Bool::True, Bool::False), all(Bool::False, Bool::True))␤»
17:55 flussence hah :)
17:55 JodaZ say what
17:55 colomon you beat me to it.
17:55 flussence rakudo: say all(1,2,3) === all(2,1,3) #?
17:55 p6eval rakudo : OUTPUT«Bool::False␤»
17:55 JodaZ wtf
17:56 * flussence doesn't know if/what the correct op is OTTOMH
17:56 JodaZ it should be true, right ?
17:57 flussence for some specific comparison operator that tests junction equality, yes
17:57 colomon left #perl6
17:58 mavrc joined #perl6
17:59 hercynium_ left #perl6
18:00 JodaZ rakudo: any(1,2) == any(1,3)
18:00 p6eval rakudo :  ( no output )
18:00 JodaZ rakudo: say any(1,2) == any(1,3)
18:00 p6eval rakudo : OUTPUT«any(any(Bool::True, Bool::False), any(Bool::False))␤»
18:01 JodaZ rakudo: say (any(1,2) == any(1,3)) == Bool::True
18:01 p6eval rakudo : OUTPUT«any(any(Bool::True, Bool::False), any(Bool::False))␤»
18:01 JodaZ rakudo: if(any(1,2) == any(1,3)){say 1}
18:01 p6eval rakudo : OUTPUT«===SORRY!===␤Missing block at line 22, near ""␤»
18:01 JodaZ rakudo: if(any(1,2) == any(1,3)){say 1;}
18:01 p6eval rakudo : OUTPUT«===SORRY!===␤Missing block at line 22, near ""␤»
18:04 flussence rakudo: if any(1,2) == any(1,3) {say 1}
18:04 p6eval rakudo : OUTPUT«1␤»
18:05 JodaZ uh le why
18:05 JodaZ why does it not work with ()
18:06 JodaZ rakudo: if all(1,2) == all(2,1) {say 1}
18:06 p6eval rakudo :  ( no output )
18:06 flussence ()s are meaningless after an if, so they were removed.
18:07 JodaZ not optional but enforced ?
18:09 flussence that probably should've worked, actually
18:10 lidden There must be a space between the ) and the { to disambigue with a hash.
18:17 colomon joined #perl6
18:20 colomon Just to back-explain all(1,2,3) == all(2,1,3) (now that I'm home) --
18:20 colomon it's autothreading both sides.
18:21 colomon so you're getting something like all(1 == 2, 1 == 1, 1 == 3), all(2 == 2, 2 == 1, 2 == 3), etc
18:21 JodaZ why ordered ?
18:21 colomon it's not ordered in any meaningful sense
18:22 colomon (it might be ordered as a side-effect of the current implement of it in Rakudo, mind you.)
18:23 JodaZ sounds fun
18:23 JodaZ so how to do an actually autothreaded set comparison ?
18:24 colomon 1) Implement threading in Parrot.
18:24 colomon 2) Implement autothreading in Rakudo.
18:24 JodaZ in theoray
18:24 colomon do what we just did.
18:25 JodaZ we just did what
18:25 drake1 joined #perl6
18:25 colomon oh, you mean comparing the contents of two junctions?
18:26 JodaZ contents of two something
18:27 drake1 if you say: my $/ = \1; in perl6, will $/ be seen as a temporary / local / dynamic scope record size mode?
18:27 colomon JodaZ: unfortunately, I don't know.  let me research...
18:28 JodaZ the point is with autothreading
18:28 JodaZ well, with syntax allowing for autothreading
18:29 colomon JodaZ: As far as I know, anything you do with junctions is allowed to autothread.
18:29 colomon but I don't know how to compare two junctions to see if they are "equal".
18:30 JodaZ set(all()) == set(all()) would do it but that wouldn't be junctions then
18:30 colomon I have mostly avoided Junctions, other than the handy quick uses.
18:30 colomon rakudo: say Set.new(2, 1, 3) == Set.new(1, 2, 3)
18:30 p6eval rakudo : OUTPUT«Bool::True␤»
18:31 colomon rakudo: say Set.new(2, 1, 3) == Set.new(1, 2, 5)
18:31 p6eval rakudo : OUTPUT«Bool::True␤»
18:31 colomon yeah, that doesn't actually do it.
18:31 JodaZ say what
18:31 colomon In Rakudo, Set doesn't have a == operator
18:32 colomon so it's equivalent to saying +Set.new(2, 1, 3) == +Set.new(1, 2, 5)
18:32 colomon which is comparing the size of the sets (ie, both 3 here)
18:32 JodaZ wow, that sucks
18:33 colomon I don't know if Set is intended to have == or not.  The spec is very vague in this area.
18:33 colomon as, implemented, there is a Set.equal method that compares the contents of two sets.
18:34 jnthn I suspect == on sets checks number of items it contains, just like with arrays.
18:34 drake1 is it true that in Perl6 you can protype a function interface to make implicit references of given arguments like pointers in C?
18:34 JodaZ -_- if == does not mean equal, what
18:34 jnthn == means *numeric* equal.
18:34 jnthn Use eqv for snapshot equality semantics.
18:35 JodaZ rakudo: say Set.new(2,1,3) eqv Set.new(1,2,3)
18:35 p6eval rakudo : OUTPUT«Bool::False␤»
18:35 JodaZ sadpanda
18:35 colomon In Rakudo, sSet doesn't have operator eqv either.
18:35 JodaZ rakudo: say Set.new(2,1,3).equals(Set.new(1,2,3))
18:36 p6eval rakudo : OUTPUT«Method 'equals' not found for invocant of class 'Set'␤  in main program body at line 22:/tmp/v5DXGw8HNo␤»
18:36 jnthn colomon: Oh. I'm guessing that's 'cus nobody implemented it though?
18:36 JodaZ !
18:36 jnthn colomon: Rather than it not being meant to have one?
18:36 JodaZ rakudo: say Set.new(2,1,3).equal(Set.new(1,2,3))
18:36 p6eval rakudo : OUTPUT«Bool::True␤»
18:36 colomon jnthn: dunno, as far as I can see the spec doesn't tell you anything useful here.
18:36 jnthn heh :)
18:36 JodaZ someone add == as alias for equal ?
18:36 wolveria1 is now known as wolverian
18:37 colomon JodaZ: at a first approximation, that's not a good idea
18:37 JodaZ why
18:37 jnthn I told you why already.
18:37 colomon because .equal is not numeric equal, which is what == is
18:37 jnthn 19:47 < jnthn> == means *numeric* equal.
18:37 drake1 similar to cmp\nje
18:38 jnthn It numifies both sides, and numifying containers gives you the number of things in them.
18:38 colomon Set.equal uses === internally
18:38 colomon (as implemented)
18:38 jnthn Set eqv Set otoh probably could be implemented to call equal
18:38 JodaZ rakudo: say Set.new(2,1,3) === Set.new(1,2,3)
18:38 p6eval rakudo : OUTPUT«Bool::False␤»
18:38 JodaZ >_>
18:39 jnthn rakudo: say [1,2,3] === [1,2,3]; say [1,2,3] eqv [1,2,3]
18:39 p6eval rakudo : OUTPUT«Bool::False␤Bool::True␤»
18:40 jnthn Anyway, it seems that what is missing is Set eqv Set multi candidate.
18:40 JodaZ === checks if its the same object ?
18:40 jnthn JodaZ: Yes.
18:40 jnthn JodaZ: Through value types (e.g. numbers, strings) will come out true also.
18:40 JodaZ hmm, a operators implementation lies in the left hand value ?
18:40 JodaZ and there only ?
18:40 jnthn No
18:40 jnthn They're multi-dispatch
18:40 JodaZ X == Y does what
18:40 drake1 in Rakudo, can you do ($a,$b,$c) = @_; and only assign a, b and c with references into the array, or do you have to use index numbers in such a case?
18:41 colomon JodaZ: X == Y converts both sides to a number and compares them
18:41 JodaZ colomon, why
18:41 flussence multi sub infix:<==>(X $x, Y $y) { ... }
18:41 jnthn See https://github.com/rakudo/rakudo/​blob/master/src/core/operators.pm
18:41 JodaZ i mean do you need numerical equality that often ?
18:41 colomon JodaZ: because == is numeric comparison
18:42 flussence numbers and strings are pretty common, yes.
18:42 JodaZ x ?? t !! f
18:42 JodaZ is that ternary ?
18:42 jnthn Ye
18:42 jnthn s
18:43 JodaZ flussence, but how common is it that you need to convert something implicitly to number and then compare that against something else converted to a number implicitly ?
18:45 drake1 in sh it's: test "$A" = "$B" , but then 0001 and 1 is not equal
18:45 flussence depends on the application... but doing numeric comparison for some types and something completely different for others with the same operator isn't very obvious
18:45 jnthn JodaZ: Consider when you read in a bunch of numbers from a file somewhere.
18:46 jnthn JodaZ: You end up reading them as a string. In Perl, you don't have to go and explicitly say "oh, and make this a number".
18:46 JodaZ it won't even warn ?
18:47 jnthn JodaZ: It'll warn if there's some kind of undefiend value.
18:47 jnthn rakudo: say +"abc" # no warning here though
18:47 p6eval rakudo : OUTPUT«0␤»
18:48 jnthn If parsing you'll tend to know what you have though.
18:49 jnthn rakudo: say [+] "1,2,3,4".comb(/\d+/)
18:49 p6eval rakudo : OUTPUT«10␤»
18:49 jnthn Like there. You get a list of strings all matching the given regex. The fact that the + operator numifies both sides (just like the == one) means that this "just works"
18:50 flussence .u ≍
18:50 phenny U+224D EQUIVALENT TO (≍)
18:50 JodaZ rakudo: print "1lol" == "2lol"
18:50 p6eval rakudo : OUTPUT«Bool::False»
18:50 JodaZ rakudo: print "1lol" == "1lol"
18:50 p6eval rakudo : OUTPUT«Bool::True»
18:50 jnthn In a language where + was overloaded to do string concat too, for example, that'd simply not be possible.
18:50 JodaZ rakudo: print "1lol" == "1wtf"
18:50 p6eval rakudo : OUTPUT«Bool::True»
18:50 flussence rakudo: our multi sub infix:<≍>(Set $a, Set $b) { $a.equal($b) }; say Set.new(1, 3, 5) ≍ Set.new(1,5,3)
18:50 p6eval rakudo : OUTPUT«Bool::True␤»
18:50 jnthn There'd need to be an explicit "numify first"
18:50 flussence problem solved!
18:51 jnthn flussence: :)
18:51 JodaZ rakudo: print "1lol" + "1wtf"
18:51 p6eval rakudo : OUTPUT«2»
18:51 envi left #perl6
18:52 JodaZ and the argument for this over doing it exactly the other way arround ?
18:52 TypeNameHere____ joined #perl6
18:53 drake1 can Rakudo use custom relational object operators?
18:53 jnthn JodaZ: You can read a program and understand what semantics to expect from an operator without having to worry about tracking down the types of the operands.
18:54 drake1 eg. $obj1 > $obj2 could have a property method for use in relational expressions
18:57 drake1 what was meant by: $string > $strin2 was actually implicit length comparison, since each string object use the `length' method for the relational property.
18:58 risou left #perl6
18:58 Chillance left #perl6
19:03 jnthn drake1: At the moment you'd add multi candidates for the new types, but there's nothing to stop you doing anything like that in a module.
19:04 drake1 without explicitly calling the relational method?
19:04 jnthn our multi sub infix:<< > >>($a where .can('relational_prop'), $b where .can('relational_prop') { $a.relational_prop > $b.relational_prop }
19:04 jnthn Or you were thinking it just returns the name rather than the value?
19:04 jnthn In which case
19:04 JodaZ what kind of name is rakudo star anyways, is it racist of me for imagining a japanese person try to pronounce "rock star" everytime i read it ?
19:05 jnthn our multi sub infix:<< > >>($a where .can('relational_prop'), $b where .can('relational_prop') { $a."$a.relational_prop()" > $b."$b.relational_prop()" }
19:05 drake1 /me cracks up giggling
19:05 jnthn JodaZ: Given rakudo is a Japanese word, I suspect the Japanese can pronounce it just fine. :P
19:06 diakopter JodaZ: Maybe it's 1st-language-ist
19:06 drake1 in C you would have to say: relate(string1) > relate(string2) or something crazy like that
19:06 diakopter JodaZ: but as jnthn mentioned, the irony is that the pun's on you
19:07 colomon jnthn: what is =:=
19:08 flussence bind-equality?
19:08 jnthn Yes, pretty much what flussence said. :-)
19:08 colomon p6 periodic table says container equality
19:08 jnthn It only makes sense on reference type-y things.
19:08 colomon out of date?
19:08 jnthn Well, it's now how I'd explain it.
19:09 colomon sorry, container "identity"
19:10 drake1 if expr `how great $a` '<' `how great $b`; then echo very; fi
19:10 jnthn colomon: That's better.
19:10 jnthn colomon: Also from S03:
19:10 jnthn There is also an identity test, C<=:=>, which tests whether two names
19:10 jnthn are bound to the same underlying variable.  C<$x =:= $y> would return
19:10 jnthn true in the above example.
19:12 * jnthn afk for a bit, food
19:15 Chillance joined #perl6
19:24 sorear good * #perl6
19:25 lamstyle left #perl6
19:27 colomon o/
19:27 hercynium_ joined #perl6
19:28 lamstyle joined #perl6
19:38 drake1 in Perl6 would you have to say: $old_win = file1.win; file1.win = $win; ... file1.win = $old_win; to save the recordsize of the caller? No. Of course not. File1 would have a local win property and not conflict with other open files.
19:38 sorear win?
19:39 drake1 the record size used by filex.read
19:40 drake1 I don't know the actual property in Rakudo
19:41 drake1 it's because Perl6 / Rakudo variety of PSF.pm and vcfed in on the Future Directions and Perl5 the original version, has the $/ global or local record size variable
19:42 drake1 local $/ should set a temporary $/ for subsequent calls
19:43 _twitch left #perl6
19:44 drake1 same with local signals etc.
19:51 drake1 in other words, when a file handle object is used in place of the original file handle, local $/ won't make a difference
19:52 `26 left #perl6
19:59 drake1 might be: fp.putc(c); in place of putc(c,fp); I don't know.
20:02 drake1 hopefully it's easy in Perl6 to subclass a Nix, and keep the old semantics
20:06 colomon jnthn: any further thoughts on nqp-rx nomnom?
20:07 jhuni joined #perl6
20:22 jasonmay left #perl6
20:22 icwiener left #perl6
20:22 jasonmay_ joined #perl6
20:22 icwiener joined #perl6
20:22 betterwo1ld joined #perl6
20:22 nadim_ joined #perl6
20:22 chitragupt left #perl6
20:22 JodaZ left #perl6
20:22 nadim left #perl6
20:22 betterworld left #perl6
20:22 JodaZ joined #perl6
20:22 mikehh__ left #perl6
20:22 hercynium_ left #perl6
20:22 mavrc left #perl6
20:22 xinming left #perl6
20:22 literal left #perl6
20:22 mikehh joined #perl6
20:22 literal joined #perl6
20:22 hercynium_ joined #perl6
20:22 xinming joined #perl6
20:23 chitragupt joined #perl6
20:27 dju joined #perl6
20:30 dju left #perl6
20:31 dju joined #perl6
20:35 sorear drake1: you're not making any sense
20:36 drake1 I got the answer. You don't have to make it
20:36 sorear perl6: my $f = sub { say "Hi" }; $f($f = sub { say "Two" }); # What should this do?
20:36 p6eval rakudo : OUTPUT«Too many positional parameters passed; got 1 but expected 0␤  in <anon> at line 22:/tmp/EFUMcg3fA5␤  in main program body at line 22:/tmp/EFUMcg3fA5␤»
20:36 p6eval ..pugs: OUTPUT«Hi␤»
20:36 sorear perl6: my $f = sub ($) { say "Hi" }; $f($f = sub { say "Two" }); # What should this do?
20:37 p6eval rakudo : OUTPUT«Too many positional parameters passed; got 1 but expected 0␤  in <anon> at line 22:/tmp/ri1_hjB2tq␤  in main program body at line 22:/tmp/ri1_hjB2tq␤»
20:37 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "$f"␤    expecting "=", formal parameter, ")", context, ":" or "("␤    at /tmp/ILeAnZZZ8Q line 1, column 4␤»
20:37 sorear perl6: my $f = sub ($x) { say "Hi" }; $f($f = sub ($x) { say "Two" }); # What should this do?
20:37 p6eval pugs: OUTPUT«Hi␤»
20:37 p6eval ..rakudo : OUTPUT«Two␤»
20:42 wolverian lexically speaking, pugs's behaviour seems more correct
20:43 sorear niecz: my $f = sub ($x) { say "Hi" }; $f($f = sub ($x) { say "Two" });
20:43 sorear niecza: my $f = sub ($x) { say "Hi" }; $f($f = sub ($x) { say "Two" });
20:43 p6eval niecza f72990f: OUTPUT«Potential difficulties:␤  $x is declared but not used at /tmp/3iCmgVXczN line 1:␤------> [32mmy $f = sub ([33m⏏[31m$x) { say "Hi" }; $f($f = sub ($x) { say[0m␤Hi␤»
20:43 sorear more correct perhaps
20:43 mavrc joined #perl6
20:44 sorear but correctness isn't all I'm going for
20:44 jnthn nqp: my $f := sub ($x) { say "Hi" }; $f($f := sub ($x) { say "Two" });
20:44 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 2358 (src/Regex/Cursor.pir:232)␤»
20:45 jnthn nqp: my $f := sub ($x) { say("Hi") }; $f($f := sub ($x) { say("Two"( });
20:45 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 2358 (src/Regex/Cursor.pir:232)␤»
20:45 jnthn nqp: my $f := sub ($x) { say("Hi") }; $f($f := sub ($x) { say("Two") });
20:45 p6eval nqp: OUTPUT«Hi␤»
20:45 jnthn nqpnet: my $f := sub ($x) { say("Hi") }; $f($f := sub ($x) { say("Two") });
20:45 p6eval nqpnet: OUTPUT«error:imcc:No such file or directory␤    in file 'compile.pir' line 3␤error CS0006: cannot find metadata file `RakudoRuntime.dll'␤Compilation failed: 1 error(s), 0 warnings␤Cannot open assembly 'RakudoOutput.exe': No such file or directory.␤»
20:45 jnthn awww
20:45 jnthn diakopter: ^^
20:45 diakopter yah
20:45 jnthn Anyway, I suspect nqpnet agrees with niecza
20:46 jnthn Since I think it looks up the callee then evaluates the args.
20:46 sorear The problem is that niecza often has to spill the callee
20:46 sorear I think there would be a substantial code size reduction if the callee was allowed to be evaluated last
20:47 jnthn Callee evaluated last is fine by me.
20:47 jnthn I think.
20:47 jnthn I mean, it's the last thing that's needed
20:47 sorear Or evaluated first, but not fetched from the variable until the last moment (which is what Rakudo seems to do)
20:47 drake1 is that a spaghetti declaration?
20:47 jnthn Either way, need to get it one way or the other...don't really want nqp-rx and nqpclr having different semantics.
20:48 diakopter nqpnet: my $f := sub ($x) { say("Hi") }; $f($f := sub ($x) { say("Two") })
20:48 p6eval nqpnet: OUTPUT«Hi␤»
20:48 diakopter nqp: my $f := sub ($x) { say("Hi") }; $f($f := sub ($x) { say("Two") })
20:48 p6eval nqp: OUTPUT«Hi␤»
20:48 jnthn oh
20:48 jnthn They are the same.
20:49 diakopter it's ok; it's still NQ
20:49 diakopter hm... ForeverNQ
20:49 diakopter ""
20:49 drake1 in C99 there is a rule that simply forbids the change of objects in an expression by the expression itself
20:49 s0v joined #perl6
20:52 drake1 by the notion of a sequence point
20:55 drake1 array[i] = ( i = 5 ) +2 would result in undefined behavior or something like that
21:01 drake1 might be illegal activity in Perl under strict
21:11 diakopter ergh
21:19 s0v left #perl6
21:20 s0v joined #perl6
21:21 sji joined #perl6
21:21 sji hi all!
21:22 sorear hi
21:26 s0v left #perl6
21:26 s0v joined #perl6
21:43 dalek 6model: 2c78f1b | jonathan++ | / (3 files):
21:43 dalek 6model: [dotnet] When dying due to method not found, die a little more informatively.
21:43 dalek 6model: review: https://github.com/jnthn/6model/commit/2c78f1be37
21:43 drake1 perl6: my ($a, $b, $c) = (1, 2, 3); say "$c"
21:43 p6eval pugs, rakudo : OUTPUT«3␤»
21:44 abcchen joined #perl6
21:47 abcchen left #perl6
21:49 drake1 does Parrot x86 SSE use streaming extension for stuff like: my ($a, $b, $c) = (2.3*9,4.2*8,3.3*7) ?
21:50 drake1 that could execute a matrix operation with floats in a single core?
21:52 drake1 might be prepared for the task since perl is extensive user of list context operations
21:55 s0v left #perl6
21:57 __rnddim__ is now known as lue
21:57 lue ohai o/
21:58 colomon \o
22:07 drake1 /-
22:11 Eevee_ is now known as Eevee
22:16 drake1 fopen("im\an\ms\nerd.com","+r");
22:16 drake1 oops
22:16 risou joined #perl6
22:16 risou left #perl6
22:17 plobsing drake1: parrot doesn't generate x86 instructions directly (it is currently a bytecode *interpreter*) and therefore cannot make use of x86 SSE directly.
22:17 risou joined #perl6
22:18 justatheory left #perl6
22:18 plobsing drake1: for further questions regarding parrot, I suggest you try #parrot on irc.parrot.org.
22:18 drake1 plobsing: the who is responsible for the CPU stream?
22:18 drake1 ok. thanks
22:18 hercynium_ is now known as hercynium
22:19 hercynium left #perl6
22:19 hercynium joined #perl6
22:19 hercynium if it hasn't been mentioned, this amused me greatly: http://www.chrisseaton.com/katahdin/
22:19 hercynium "A programming language where the syntax and semantics are mutable at runtime"
22:20 mavrc left #perl6
22:20 * hercynium is actually quite pleased to see more languages with such functionality!
22:20 diakopter that person sent mail to p6l a while back
22:21 hercynium oh?
22:21 diakopter iirc
22:22 s0v joined #perl6
22:23 drake1 echo grammar9 > opt;make self; exec self
22:24 risou left #perl6
22:24 risou joined #perl6
22:26 ch3ck3r joined #perl6
22:27 drake1 how many integers is the exec string? j/k. Bye
22:28 drake1 left #perl6
22:28 diakopter ok.......
22:30 ch3ck left #perl6
22:31 lidden left #perl6
22:37 diakopter Tene: ping
22:38 Tene diakopter: I'm here.
22:39 diakopter Tene: are you looking at that LHF task?
22:39 diakopter (Configure.pl)
22:39 diakopter or even just the Makefile?
22:39 diakopter I need to add another dependency or two
22:39 Tene diakopter: Not right now, no.
22:42 am0c joined #perl6
22:47 s0v left #perl6
22:48 s0v joined #perl6
22:50 jnthn sleep &
22:51 s0v left #perl6
22:52 s0v joined #perl6
22:53 _kaare left #perl6
22:55 s0v left #perl6
22:55 s0v joined #perl6
22:55 s0v left #perl6
22:55 s0v joined #perl6
23:03 masak joined #perl6
23:03 masak ahojte!
23:04 s0v left #perl6
23:06 Ikarus joined #perl6
23:07 wamba left #perl6
23:11 diakopter i
23:12 masak hercynium: incidentally, Tene mentioned that link yesterday.
23:12 masak hercynium: and it's been mentioned twice before that in 2008 :)
23:12 hercynium :)
23:12 hercynium hah, old news then!
23:12 masak yes, but still relevant, I guess.
23:12 hercynium I think so.
23:13 masak I saw in the backlog that diakopter planned to steal the op precedence generator from that implementation. dunno if that ever happened.
23:13 dalek 6model: 8709bf4 | diakopter++ | common/NQP/NQPSetting.pm:
23:13 dalek 6model: [dotnet] add .Num and .Int to knowhow Any in NQPSetting
23:13 dalek 6model: review: https://github.com/jnthn/6model/commit/8709bf41b4
23:13 dalek 6model: bb485d4 | diakopter++ | / (3 files):
23:13 dalek 6model: Merge branch 'master' of git@github.com:jnthn/6model
23:13 dalek 6model: review: https://github.com/jnthn/6model/commit/bb485d42a9
23:13 hercynium turns out one of my co-orkers at my new job is a bigger parsing geek than I am
23:13 dalek 6model: 05d65c9 | diakopter++ | common/NQP/NQPSetting.pm:
23:13 dalek 6model: [dotnet] fix last commit
23:13 dalek 6model: review: https://github.com/jnthn/6model/commit/05d65c974e
23:13 dalek 6model: 93d2c4b | diakopter++ | common/NQP/P6Objects.pm:
23:13 dalek 6model: [dotnet] incremental progress in Cursor
23:13 dalek 6model: review: https://github.com/jnthn/6model/commit/93d2c4b7e3
23:13 diakopter hee
23:13 * hercynium runs from the dalek
23:14 diakopter masak: I'm [entirely not] surprised I'd entirely forgotten about that
23:14 masak heh.
23:14 diakopter (thanks for the reminder; we mice makes lots o' plans)
23:15 diakopter wait, there are parsing geeks in this world?
23:15 masak diakopter: I'm amazed you're even asking that question.
23:16 hercynium you don't have to make a production out of it!
23:17 risou left #perl6
23:18 masak for @parsing-geeks { .make-production }
23:23 masak by the way, more people are welcome to volunteer as Advent Calendar authors. :)
23:23 masak the more, the merrier.
23:24 Chillance left #perl6
23:24 lue that reminds me, has anyone suggested a post on grammar yet?
23:24 masak we had a pretty good one last year...
23:24 masak suggest you look at that and see if there's anything you'd like to add.
23:25 * diakopter agrees
23:25 masak cosimo_++ # https://github.com/cosimo/perl6-facter
23:26 masak rakudo: my Bool $a = 1; say $a
23:26 p6eval rakudo : OUTPUT«Type check failed for assignment␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/4EvDLiOZOZ␤»
23:26 masak if Bool were a real enum type, would the above work?
23:27 masak cosimo_: should you really copyright ported code to the original author?
23:28 * lue is looking, cursing this computer
23:30 lue were you referring to day 24?
23:31 masak no, earlier than that.
23:31 masak Tene++ wrote it. I can get it for you.
23:31 masak http://perl6advent.wordpress.com/200​9/12/21/day-21-grammars-and-actions/
23:32 * lue looking at post
23:32 masak this one also mentions grammars: http://perl6advent.wordpress.com/​2009/12/10/day-10-a-regex-story/
23:33 Tene masak: looking at that post recently, I feel like it didn't cover the basics of grammar usage anywhere near well enough, and was much too short.
23:34 Tene It really should walk through explaining building up a grammar to match an example, interactive repl usage to pull pieces out, etc.
23:34 masak maybe a post on the basics of Perl 6 regex syntax and semantics would be well received.
23:34 PacoLinux left #perl6
23:34 Tene It wouldn't be bad broken into two parts, sure.
23:35 masak there's your two posts. now it's just a question of someone signing up on that list.
23:35 lue Writing an advent post sounds like fun, I'm just stuck on what to write about :)
23:37 masak something you like and know reasonably well.
23:49 plobsing t/spec/S03-metaops/reverse.t is hanging for me with latest rakudo/parrot
23:50 plobsing rakudo: (10 R... 1, 3)[42]
23:50 p6eval rakudo :  ( no output )
23:50 plobsing rakudo: say (10 R... 1, 3)[42]
23:50 p6eval rakudo : OUTPUT«85␤»
23:51 masak seems to hang here too.
23:52 masak not even printing the plan line here.
23:52 plobsing my theory - the upper bound on R... isn't being respected leading to an infinite list
23:53 masak 1, 3 ... 10 *shouldn't* terminate.
23:53 masak but if it's indexed with .[42], that shouldn't matter.
23:56 masak ah, alpha. I had completely forgotten about your unmatched ability to give error messages without file and line number. :)
23:56 masak jnthn++
23:56 masak just having something that works better than that is a real relief.
23:56 masak Tene: oh!
23:57 masak Tene: here's another reason for not porting Web from alpha to ng yet.
23:57 masak Tene: I'm restoring the test suite to its former glory today.
23:57 bbkr left #perl6
23:57 masak doing a port from alpha to ng with a less-than-100%-restored test suite would be... unwise.
23:58 bbkr joined #perl6
23:59 lue are the .pod files in the perl6advent-2010 folder in POD (Perl 5) or Pod (Perl 6) ?
23:59 masak likely the former.

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

Perl 6 | Reference Documentation | Rakudo