Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-05-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:08 pascaldamian2 joined #perl6
00:09 pascaldamian2 left #perl6
00:32 Tene So, for statements will set $_ as a formal parameter of a block if there are no other params.  Do any other statements do that?
00:32 Tene I guess I'll check the failures.
00:32 Eevee while..?
00:33 Limbic_Region map
00:33 Limbic_Region probably the same ones as in perl 5
00:33 Limbic_Region unless defined differently
00:33 Tene Right now pblock is setting it on every block.
00:34 Eevee oh
00:34 Eevee given
00:34 Tene Hm.  I guess for now I'll just make pblock only set it on blocks that don't have anything.
00:34 Tene Slightly less broken, but still not ideal.
00:34 Eevee gather
00:35 Eevee oh, no
00:35 Tene Then I'll post to the list.
00:35 Eevee nevermind
00:35 Eevee CATCH
00:45 Eevee what OO support does rakudo have atm?
00:46 Tene Eevee: a decent amount.  Look at some of Jonathan's use.perl posts
00:47 Eevee ah, not too bad
00:48 thestarslookdown joined #perl6
00:48 Tene Oh, that didn't work.  Hm.
00:50 * Eevee pokes around t/spec/S12 and t/oo
00:52 kane_ joined #perl6
00:56 nipotan_ joined #perl6
01:00 Eevee how do custom accessors work?  S12 says they can be written but doesn't say how, unless they're just lvalue methods that touch explicitly-declared private attributes
01:23 IllvilJa joined #perl6
01:24 Ched- joined #perl6
01:25 yewenbin joined #perl6
01:29 do_aki joined #perl6
01:42 cmarcelo joined #perl6
01:50 allbery_b an accessor shouldn't return an lvalue. the whole point of an accessor is to hide the internals; an lvalue would be exporting an internal representation
01:51 allbery_b you must use a mutator to modify the internal state
01:54 Eevee well then what's that look like
01:59 eternaleye joined #perl6
02:00 allbery_b "accessor" is a concept, not a language construct.  just write a function which does whatever.
02:01 allbery_b auto-generated accessors are a language construct; the accessor is an rvalue reflection of a private variable, the mutator sets the private variable.
02:01 allbery_b if you choose to write your own, you can write whatever you want.
02:02 allbery_b the idea here is that if your internal replresentation chanegs somehow, your accesssor and mutator will hide the details while exporting the same interface, you just make them do whatever is necessary to produce (resp. consume) the externally visible value
02:03 allbery_b trivial example:  you have an object which among other things has a length expressed in inches.  later on you want it to store in millimeters.
02:03 Eevee no, I grok encapsulation; I just mean is there any way for "$obj.foo = 42;" to run code I wrote (presumably some multi method set_foo(Int $foo))
02:03 allbery_b so you replace the default accessor and mutator with versions that convert between inches and millimeters, and possibly export a new interface using millimeters if you so choose
02:04 allbery_b I'm pretty sure there is (that's a mutator) but I don't know what the current details are
02:05 allbery_b (any language definition types around?)
02:06 Eevee I only threw out lvalue because it's the ony way to do it in p5 and the only thing I can see in the synopses so far that would work; I know it's discouraged
02:07 kane_ joined #perl6
02:09 justatheory joined #perl6
02:26 allbery_b partial answer is you declare the method with the "is rw" attribute (I'd guessed that).  what you do inside it doesn't seem to be specced.
02:28 allbery_b (from what I've seen so far, I *think* you need to return an object with a STORE method which is invoked upon assignment.(
02:32 allbery_b hrm.  I wonder.  perhaps the topic of an "is rw" is the asisgned value.
02:33 allbery_b where's @Larry when you need them? :)
03:19 zostay joined #perl6
03:22 Tene allbery_b: the answer is in S06
03:23 allbery_b Eevee, listiening?
03:23 Tene I ran into it when looking for the answer to my "where is $_ set as a parameter" question.
03:25 Eevee buh
03:25 Eevee yes
03:25 allbery_b hm, I read therough S06 and didn't quite get beyond "is rw" --- what does that *mean*?
03:25 allbery_b i.e. what does the code have to do in such a thing?  I saw something about objects with FETCH and STORE methods...
03:26 allbery_b in a different context
03:26 Eevee http://perlcabal.org/syn/S06.html#Lvalue_subroutines ?
03:26 Tene Yeah, you have to return a proxy object
03:26 lambdabot Title: S06
03:26 Eevee okay so that IS what you do
03:26 Tene Eevee: yes
03:26 allbery_b that seems rather annoying
03:27 allbery_b especially compareds to ruby's def foo= ...
03:27 Eevee and/or a bit hacky
03:27 ingyfoo joined #perl6
03:28 gugod_ joined #perl6
03:32 allbery_b Eevee: it's not hacky, in fact it's a very clean way to do it.
03:33 allbery_b unfortunately it's the kind of "clean" that makes you do a lot of gruntwork to *make* it cleasn
03:33 allbery_b (i.e.. the proxy object)
03:34 Eevee from the perspective of the code I have to write, though, it strikes me as a bit low-level
03:34 allbery_b this is the kind of thing that makes me throw up my hands and start writing in Haskell, where if I have to do something ugly like that at least I can abstract it away into a higher order function :)
03:34 Eevee bumping up against internals rather than a cheerfully-exposed language feature
03:34 allbery_b pretty much, yes
03:34 Tene Eevee: what would you prefer?
03:35 Eevee Tene: I have no idea; I usually hope I can keep babbling long enough to figure out something better
03:35 Eevee but you interrupted me!
03:35 allbery_b actually, given what sounds a lot like a snide remark about set_foo() style mutators at the end of that section, I think either we have to strike that remark or come up with something better than explicit proxies
03:38 Eevee (sorry, PBP; apparently everyone just hates set_*/get_*)
03:39 allbery_b hm, sorry, the snide-off isn't in that section
03:39 Eevee hum.  python has its property() which isn't a whole lot better
03:40 Tene Okay, this passes all the tests, but it seems even worse...
03:41 Patterner everyone hates it because nobody has a better name :)
03:43 Alias_ joined #perl6
03:44 Eevee Tene: so does a Proxy's STORE stick the rhs of the assignment into the argument list?  i.e., syntactically, "$proxy = whatever" is identical to "$proxy.STORE(whatever)"
03:45 Eevee (where 'whatever' is not necessarily a single expression; that was a terrible way to write that)
03:45 * allbery_b sounds off to p6l
03:46 justatheory joined #perl6
03:46 Eevee I ask way too many questions  8)
03:47 Eevee gah, getting late and I'm being pressured to go run errands; bbl
03:47 allbery_b Eevee: I would expect it to be in the parameter list, yes, like any other method (FETCH and STORE are more or less the same as with tied scalars in perl5)
03:48 Eevee so I could do $obj.foo = 1, 2, $object_of_some_specific_type, bar => 3; ?
04:04 justatheory joined #perl6
04:05 mncharity joined #perl6
04:07 mncharity pmurias: re =~, yeah, regex handling is one of the few real elf bogosities at the moment.  adverbial modifiers weren'
04:08 mncharity t parsing until recently, so regexen... are just being silently slid from p6 into p6.  towards the top of the todo list.
04:09 mncharity *p6 into p5
04:10 ingy joined #perl6
04:10 gugod joined #perl6
04:26 Tene Okay, this works in rakudo now:
04:27 Tene for @a { say $^a }
04:27 Tene In line with: "A bare closure without placeholder arguments that uses $_ (either explicitly or implicitly) is treated as though $_ were a formal parameter"
04:27 Psyche^ joined #perl6
04:27 Tene It doesn't specify what happens if $_ is used in a closure with placeholder arguments, or if things are different in non-bare blocks.
05:04 ting joined #perl6
05:17 meppl joined #perl6
05:27 mncharity vixey: moritz_: So, you tried elf.  Was it what you hoped it would be?
05:27 * mncharity looks for feedback.
05:33 Tene perl6: my @a = <a b c d>; for @a { say $^a }
05:33 exp_evalbot kp6: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤   KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824bec4)', 'APPLY', 'HASH(0x8e510c8)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
05:33 exp_evalbot ..main::DISPATCH('HASH(0x824bec4)', 'APPLY', 'HASH(0x8e510c8)') ca...
05:33 exp_evalbot ..pugs: OUTPUT[a␤b␤c␤d␤]
05:33 exp_evalbot ..rakudo: OUTPUT[a␤b␤c␤d␤]
05:33 Tene perl6: my @a = <a b c d>; for @a { say $_ }
05:33 exp_evalbot kp6: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤   KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824be94)', 'APPLY', 'HASH(0x8e51fe0)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
05:33 exp_evalbot ..main::DISPATCH('HASH(0x824be94)', 'APPLY', 'HASH(0x8e51fe0)') ca...
05:33 exp_evalbot ..pugs: OUTPUT[a␤b␤c␤d␤]
05:33 exp_evalbot ..rakudo: OUTPUT[a␤b␤c␤d␤]
05:37 pugs_svnbot r20432 | putter++ | [elf_f] Tweaks.  'use v6;' tolerated.  PrimitivesP5.pm created.  Pairs tolerated.  eval('3') works.  Test::is_approx added.
06:11 iblechbot joined #perl6
06:12 justatheory joined #perl6
06:22 cotto joined #perl6
07:06 pmurias joined #perl6
07:07 pmurias allbery_b: re gruntwork, the proxy object is really easy to write in perl5
07:08 Tene perl6: say <a a b b c c d d d d d d d>.uniq
07:08 exp_evalbot kp6: OUTPUT[abcd␤]
07:08 exp_evalbot ..pugs: OUTPUT[abcd␤]
07:08 exp_evalbot ..rakudo: OUTPUT[abcd␤]
07:10 pmurias in perl5 a perl6 style accesor would be a :lvalue sub which "returns" a tied scalar
07:12 moritz_ a tied?
07:13 pmurias yes
07:13 pmurias perldoc perltie
07:13 moritz_ but the default is a non-tied, right?
07:13 moritz_ for :lvalue subs, I mean
07:13 pmurias yes
07:17 pmurias moritz_: i can search for my Proxy implementation if you want
07:21 moritz_ pmurias: don't bother
07:23 pmurias good, i don't know where it is and the nopaste rotted
07:32 do_aki joined #perl6
07:43 luqui joined #perl6
07:47 moritz_ @tell mncharity re feedback: elf is what I expected, though I find the source code hard to read (for example Match.pm uses Perl 6 syntax and p5 regexes..)
07:47 lambdabot Consider it noted.
07:58 do_aki_ joined #perl6
08:23 meppl joined #perl6
08:25 donaldh joined #perl6
08:26 iblechbot joined #perl6
08:53 ruoso joined #perl6
08:55 do_aki joined #perl6
08:56 mj41_ joined #perl6
09:11 jan_ joined #perl6
09:16 penk joined #perl6
09:16 mj41__ joined #perl6
09:18 gugod joined #perl6
09:18 kst joined #perl6
09:18 gbacon joined #perl6
09:18 rafl joined #perl6
09:18 exp_evalbot joined #perl6
09:18 Ingmar joined #perl6
09:18 thepler joined #perl6
09:22 REPLeffect_ joined #perl6
09:57 cognominal_ joined #perl6
10:08 elmex joined #perl6
11:16 Grrrr joined #perl6
11:17 Grrrr joined #perl6
11:22 cognominal__ joined #perl6
11:38 masak joined #perl6
11:46 iblechbot joined #perl6
11:50 kanru joined #perl6
12:04 qmole joined #perl6
12:09 charsbar_ joined #perl6
12:47 moritz_ pugs: say perl(hash(A => 2))
12:47 exp_evalbot OUTPUT[{("A" => 2),}␤]
12:47 moritz_ pugs: say perl(hash('A', 2))
12:47 exp_evalbot OUTPUT[{("A" => 2),}␤]
12:52 moritz_ rakudo: (2, 3).push(4); say 1;
12:52 exp_evalbot OUTPUT[1␤]
12:59 pmichaud joined #perl6
13:40 moritz_ I'm off for the weekend
13:40 moritz_ bye
13:41 jhorwitz joined #perl6
13:49 sscaffidi joined #perl6
13:53 cmarcelo joined #perl6
14:21 TJCRI joined #perl6
14:50 justatheory joined #perl6
14:56 stevan_ joined #perl6
15:23 kyrbe joined #perl6
15:26 kyrbe left #perl6
15:35 Tene joined #perl6
15:58 cmarcelo_ joined #perl6
16:10 pmurias ruoso:
16:11 ruoso pmurias:
16:11 pmurias ;)
16:11 pmurias what
16:11 ruoso ;)
16:11 pmurias 's the best way to do io in smop?
16:12 ruoso the biggest problem about it is that there isn't much defined in Perl 6 itself about it...
16:12 ruoso but in theory...
16:12 ruoso you can write a low-level object that complies to the IO interface
16:12 ruoso and it will interoperate freely with the higher-level implementations...
16:13 ruoso but there isn't much defined regarding buffering, blocking IO... and all the API for that..
16:14 ruoso rakudo: say IO.^methods()
16:14 exp_evalbot OUTPUT[.* method calls not yet implemented. at line 1, near ""␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6;Grammar;Actions;_block1293' pc 117878 (src/gen_actions.pir:7516)␤called from Sub 'parrot;Perl6;Grammar;Actions;dotty'
16:14 exp_evalbot ..pc 117566 (src/gen_actions.pir:7390)␤called from ...
16:14 ruoso rakudo: say IO.^subroutines()
16:14 exp_evalbot OUTPUT[.* method calls not yet implemented. at line 1, near ""␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6;Grammar;Actions;_block1293' pc 117878 (src/gen_actions.pir:7516)␤called from Sub 'parrot;Perl6;Grammar;Actions;dotty'
16:14 exp_evalbot ..pc 117566 (src/gen_actions.pir:7390)␤called from ...
16:14 ruoso pugs: say IO.^methods()
16:14 exp_evalbot OUTPUT[*** No such method in class Class: "&methods"␤    at /tmp/oaZgdZ0yTL line 1, column 5 - line 2, column 1␤]
16:14 ruoso pugs: say IO.HOW.methods()
16:14 exp_evalbot OUTPUT[*** No such method in class Class: "&methods"␤    at /tmp/JugeLmS6ot line 1, column 5 - line 2, column 1␤]
16:14 ruoso pugs: say IO.HOW.can('blocking')
16:14 exp_evalbot OUTPUT[*** No such method in class Class: "&can"␤    at /tmp/dQze16TWsJ line 1, column 5 - line 2, column 1␤]
16:15 ruoso pugs: say IO.can('blocking')
16:15 exp_evalbot OUTPUT[*** No such method in class IO: "&can"␤    at /tmp/KLMOMWMVjW line 1, column 5 - line 2, column 1␤]
16:15 ruoso pugs: say IO.^can('blocking')
16:15 exp_evalbot OUTPUT[*** No such method in class Class: "&can"␤    at /tmp/f8zHHVPsgu line 1, column 5 - line 2, column 1␤]
16:15 ruoso pmurias, it seems no implementation got there yet
16:16 ruoso I think it should be Ok to clone IO::Handle interface
16:16 iblechbot joined #perl6
16:17 ruoso pmurias, which would basically mean that it is ok to have a simple "write" method that "writes" to the file
16:18 jan_ joined #perl6
16:18 ruoso it's nice because write have only positional parameters... which is easy to implement in SMOP
16:19 pmurias there exists docs/Perl6/Spec/IO.pod
16:20 pmurias i used a custom object for my hello world needs, but writing an IO class might be a good idea
16:21 ruoso but understand that this class won't be *the* IO class
16:21 pmurias why?
16:21 ruoso because *the* IO class must support p6opaque
16:21 ruoso but you might implement *a* IO class without harm
16:22 ruoso SMOP is designed in a way that optimized implementations can cohexist freely...
16:24 ruoso and more importantly, pre-bootstrap implementations can be made to bootstrap the real Perl 6 types
16:29 pmurias the responder could me made an optional parameter to Node right? as it can be taken from the invocant most of the time?
16:30 ruoso nope... the responder is mandatory
16:30 ruoso the responder might take it from the invocant..
16:30 pmurias s/me/be/
16:30 ruoso but the dispatch is made *by* the responder
16:31 ruoso the entire invocation is delegated to the responder
16:32 ruoso the invocant, otoh is optional...
16:33 ruoso although most of the time there's oen
16:33 ruoso one
16:33 ruoso but some times, the capture is not really a capture...
16:34 ruoso (this is important to avoid infinite loops)
16:35 pmurias i don't get the "responder might take it from the invocant.." part
16:35 pmurias what's the "it"?
16:35 ruoso my bad...
16:36 ruoso the invocant might be taken from the capture inside the responder
16:36 ruoso but that's not always true...
16:36 ruoso some calls doesn't have invocant...
16:38 pmurias what i'm thinking about is that $obj.foo(1,2,3) gets compiled into Node.new(capture=>\(1,2,3),identifier=>"foo",responder=>SMOP_RI($obj)) right?
16:39 pmurias the RI is object dependent?
16:39 ruoso not really...
16:39 ruoso the capture is \($obj: 1,2,3)
16:40 ruoso pmurias, yes... the RI is object dependent
16:40 pmurias sorry, my mistake
16:40 ruoso that can be done like that because "foo" is being used statically
16:41 ruoso pmurias, $obj."foo" or $obj.$foo would be a entirely different story
16:41 pmurias $obj."foo" is really $obj.foo
16:41 ruoso well...
16:41 pmurias but $obj.$foo is a diffrent story
16:41 ruoso $obj."foo" could eventually be optimized to $obj.foo
16:42 ruoso but by $obj."foo" i really meant $obj."$foo"
16:43 pmurias the thing i'm asking is if Node.new dosn't receive a responder argument could it default to SMOP_RI($invocant)?
16:43 pmurias as the responder part is a pain when generating Nodes
16:43 ruoso not really... because there are no-op nodes
16:43 ruoso no-op nodes are nodes without a responder
16:44 ruoso are you using sm0p?
16:44 ruoso it should make it really simpler
16:44 pmurias no
16:44 ruoso why not?
16:44 pmurias it's slow
16:44 ruoso heh
16:44 ruoso blame kp6 ;)
16:45 Ched- joined #perl6
16:45 felipe joined #perl6
16:45 pmurias and i'm just going from perl6(elf) Nodes to smop Nodes
16:46 ruoso that's a challenge
16:46 ruoso pmurias++ if that works it will be *wow*
16:48 pmurias i'm generating c not doing xs so it's not hard
16:50 pmurias ruoso: do no-op nodes have a capture?
16:50 ruoso no-op nodes can have anything you want
16:50 ruoso except the responder, because then they are op nodes
16:50 ruoso but most of the time, no-op nodes are used to compose captures...
16:51 ruoso for instance...
16:51 ruoso my $a = 1 + 1;
16:51 ruoso my $b = 2 + 3;
16:51 ruoso c($a, $b)
16:51 ruoso i have to first evaluate the expression "1+1"
16:51 ruoso then the expression "2+3"
16:51 [particle] .oO(maybe they should be called no-responder nodes)
16:52 ruoso then i have to call C with the result of both
16:52 ruoso SLIME implements that by having a special object you can call
16:52 ruoso to take results from previous nodes
16:52 ruoso and set as a capture of a future node
16:52 ruoso but if you take "1 + 1"
16:53 ruoso that is a call on its own...
16:53 ruoso so you need two no-op nodes
16:53 ruoso to store those values
16:53 ruoso and at runtime, compose them into the capture of the "+" call
16:53 ruoso so you have
16:54 ruoso Node::{ result => 1 }, Node::{ result => 1 }, Node::{ capturize the last two into the next }, Node::{ call + (no capture at compose time) }
16:55 ruoso it's probably a lame design
16:55 ruoso but it was the simplest I could fin
16:55 ruoso find
16:55 ruoso dealing with register allocation was not something I was willing to do
16:55 ruoso and variable names are something that will be implemented later
16:55 ruoso using this exact same technique
16:57 pmurias if we can swap something else in the place of slime later it's ok
16:57 ruoso yeah... that's what the SMOP Interpreter thing is about
16:58 ruoso see Polymorphic Eval at the wiki
16:58 ruoso http://www.perlfoundation.org/perl6/index.cgi?smop_interpreter_implementation_api
16:58 lambdabot Title: SMOP Interpreter Implementation API / Perl 6, http://tinyurl.com/yv6sur
16:58 ruoso that one is better
16:59 pmurias i read almost all the stuff on the wiki
16:59 ruoso :)
17:00 pmurias smop related
17:01 Ched- joined #perl6
17:01 lisppaste3 joined #perl6
17:02 pmurias i can use either a helper function for nodes or add a second constructor what's better?
17:02 ruoso in which level?
17:03 ruoso at compose time?
17:03 * ruoso keeps using that term even if that might not make any sense
17:04 ruoso a helper function to create a node seems ok...
17:04 meppl joined #perl6
17:06 pmurias in the c code which creates the nodes
17:08 ruoso a helper function is ok
17:16 felipe joined #perl6
17:29 ispy1 joined #perl6
17:29 nipotan joined #perl6
17:32 pmurias ruoso: got something which can do hello world an would like to ci
17:32 pmurias ruoso: where should it live?
17:32 pmurias in elf or in smop?
17:34 tobeya joined #perl6
17:35 ruoso :)
17:35 ruoso pmurias++
17:36 ruoso you could put it in smop, because of the build depends
17:41 pmurias left it where it was, it can always be moved if mncharity objects ;)
17:41 pugs_svnbot r20433 | pmurias++ | [elf,smop] initial sketch at generating smop Nodes from perl6
17:42 ruoso pmurias, where?
17:42 pmurias misc/elf/smop
17:43 ruoso hmm... weird... I don't see it...
17:44 ruoso found
17:45 ruoso does it work?
17:45 pmurias yes
17:45 pmurias barely ;)
17:45 ruoso :)
17:46 pmurias run the generate script
17:47 * ruoso ENOTIME
17:48 * pmurias has got to do/learn j2me now
17:59 pmurias ruoso: how's the grant?
17:59 ruoso no news yet...
17:59 ruoso but the deadline didn't expire...
17:59 ruoso so there should be some time before I get some reply...
18:00 ruoso I will only be able to start working about the middle of june... so not really in a hurry
18:00 pmurias i see
18:00 pmurias &
18:09 schmalbe joined #perl6
19:34 tobeya joined #perl6
19:48 sscaffidi joined #perl6
19:52 Ingmar left #perl6
20:24 thestarslookdown joined #perl6
20:29 Ched- joined #perl6
20:51 eternaleye joined #perl6
20:56 vixey joined #Perl6
20:57 Ched- joined #perl6
21:02 mncharity joined #perl6
21:03 mncharity pmurias: re elf/smop, no problem :)
21:03 lambdabot mncharity: You have 1 new message. '/msg lambdabot @messages' to read it.
21:04 mncharity moritz_: re "for example Match.pm uses Perl 6 syntax and p5 regexes..", yeah, early STD_red didn't parse adverbial modifiers, so one couldn't say :p5.  that can be fixed now.
21:06 Lorn_ joined #perl6
21:07 pmurias mncharity: hi
21:12 pugs_svnbot r20434 | putter++ | [elf] Minor tweaks.  And a not quite current run-tests.result .
21:12 pmurias would it be hard to have Capture support in elf?
21:15 Psyche^ joined #perl6
21:16 pmurias i mean just creating captures
21:19 mncharity hi pmurias
21:21 pmurias i'm using Captures to represent Captures in smop Nodes
21:21 pmurias and Capture.new(...) is awkard
21:21 mncharity the elf side should be ... oh, let's see...
21:22 * mncharity tries ../elf_f -v -e '(3,4)' , finds out there isn't an ast handler for capture, adding one...
21:24 pmurias \(3:1,2,3) is more tricky
21:25 pmurias shower&
21:27 iblechbot joined #perl6
21:29 * pmurias remember showered already today
21:29 pmurias * remebered that hi
21:29 milanj joined #perl6
21:30 pmurias * he
21:41 milanj left #perl6
21:54 mncharity pmurias: have some of it.  still wrestling with \()  (doesn't get recognized as a capture - STD.pm problem?), and \(2:) is misparsing to \(2) ...
21:58 mncharity TimToady: (n+1) Are you still collecting STD.pm issues?  If so, it's not clear to me that capterm can match '\()'.
22:00 pmurias mncharity: "have some of it" means?
22:04 sscaffidi joined #perl6
22:06 mncharity currently \(2:) still misparses as \(2), but other than that, literal captures show up as Capture IR nodes (now with a new invocant field).
22:07 mncharity at least if their interior is assembled by infix:<,> and <:>.
22:07 Limbic_Region joined #perl6
22:08 mncharity that's the objective, yes?
22:08 mncharity you can then emit those IRx1::Capture's as whatever Capture.new(...) you wish.
22:10 pmurias thanks, i'll implement it when the smop Nodes wrappers mature enough to be usefull
22:12 pmurias sleep&
22:17 mncharity ok.  good night pmurias.  /me still puzzling over <statement> managing to accept '2:'...
22:19 meppl good night
22:34 mncharity TimToady: (n+2) Given '2:', it looks like EXPR parses the : as expect_infix, pushes it on the opstack... and then returns, forgetting it's there?   /me attempting to parse '\(2:)'.
22:34 mj41 joined #perl6
22:38 mncharity @tell pmurias  do you need '\(2:)' (invocant but no other args) to parse RSN?  it vaguely looks like STD.pm needs a "more than trivial tweak" to handle it, and I'm trying to not get *too* far ahead of STD.pm.
22:38 lambdabot Consider it noted.
22:41 mncharity another hour of life burned in hope of finally having a "usable p6 parser". :/
23:13 pugs_svnbot r20435 | putter++ | [elf/STD_red] Capture literals begin to parse.  \(2:) misparsing as \(2).  pmurias++
23:15 rolet joined #perl6
23:28 pugs_svnbot r20436 | putter++ | [elf] A temporary file, for exploring performance issues.
23:28 mncharity Drats.  Ah well, close enough.
23:30 mncharity stevan_/@Moose: misc/elf/elf_f_src/x01.pl is a hand tweaked copy of misc/elf/elf_f from r20434.  I removed all the obviously excess "use Moose" and mutability changes.  time ./x01.pl  is still 3+ sec.  Any suggestions on further improving performance?
23:32 fullermd joined #perl6
23:32 mncharity in contrast, the not quite equivalent elf_f_nomoose has a startup of 0.1 sec.
23:32 mncharity thanks.  help appreciated.
23:33 mncharity 'night all &

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

Perl 6 | Reference Documentation | Rakudo