pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
speckbot r14592 | pmichaud++ | typo fix in S02 00:32
pmichaud TimToady++ I _like_ the new adverb approach. 00:34
pmichaud std: my $foo; ::($foo)::handler() 00:52
p6eval std 22560: OUTPUT[parsed␤]
TimToady pmichaud: well, it does make life simpler for us :) 01:41
meppl good night 02:05
pmichaud TimToady: so, what happened to "Perl Philosophy is simply to torment the implementors on behalf of the user"? ;-) 03:40
pmichaud although, I'm sure Perl will come up with even better torments. 03:42
TimToady well, we *do* have to implement the changes, it's just simpler over the long term 04:08
rakudo_svn r31845 | pmichaud++ | [rakudo]: remove perl.t test for now until it can be re-fudged. 04:10
pmichaud I'm eager to see the STD.pm changes for it :-) 04:13
TimToady just about done, actually 04:34
TimToady assuming it works... 04:36
which, of course, it doesn't 04:37
but the general plan is to move adverb recognition into the infixish alternation so we don't pay for it as an extra check 04:38
it returns it to EXPR as an infix labelled fake, and if EXPR notices a fake infix (after reducing), it shoves it into the appropriate node 04:39
then tries again for an infix
rakudo_svn r31846 | pmichaud++ | [rakudo]: Adjust $?NS handling. 04:43
TimToady think I got it, but running the test suite 04:47
rakudo_svn r31855 | pmichaud++ | [rakudo]: Bring namespace parsing into closer alignment with STD.pm. 06:35
r31855 | pmichaud++ | This also adds the 'parse_name' method to Perl6::Compiler, and allows
r31855 | pmichaud++ | us to eliminate some inline PIR from actions.pm.
moritz_ pmichaud: please don't blindly trust p6eval's std: target - it sometimes reports false positives :( 06:39
pmurias is the new adverb form considered better or is it choosen due to "ease" of implementation 06:44
moritz_ pmurias: I think it's related to our discussion on built-in test operators which work as adverbs 06:45
pmichaud moritz_: it's just a first approximation for me
moritz_ irclog.perlgeek.de/perl6/2008-10-09#i_613602 an onwards
lambdabot Title: IRC log for #perl6, 2008-10-09
pmichaud if std.pm comes back with "false" then I can stop looking for a bit
pmurias: ease of implementation wasn't really the consideration, I don't think
it does help with implementation a bit, but that's not what led us to it. 06:46
pugs_svn r22561 | lwall++ | [STD] move adverb parsing into infixish and EXPR with loose_unary prec 06:50
TimToady it's really more about sanity than ease of implementation 06:53
masak sanity++
TimToady: "Note also that existence and deletion are now simply adverbs on subscript operators." what were they before? 06:54
TimToady %hash.:delete<key>
masak ah, right.
aye, the current one is arguably better
TimToady but I think it's very valuable to keep the subscript looking the same for rvalues and delete/exist 06:55
masak aye
TimToady it also keeps those words free for use by users
masak Perl 6: fewer reserverd words than you think 06:56
moritz_ sub if { say "I'm crazy" }
masak if if { if } 06:57
moritz_ you're evil, I love you ;) 06:58
masak :)
rakudo: sub if { 1 }; if if { say "whoa" }
p6eval rakudo 31855: RESULT[1]
masak that's not right. 06:59
moritz_ rakudo: sub if { 1 }; if if() { say "whoa"; }
p6eval rakudo 31855: OUTPUT[whoa␤]
masak whoa.
moritz_ now *that's* wright
masak what's the difference?
moritz_ if -> if()
masak semantically, smartass
TimToady pugs: sub if { 1 }; if if { say "whoa" }
p6eval pugs: OUTPUT[*** ␤ Unexpected "if"␤ expecting "=" or conditional expression␤ postfix op␤ at /tmp/88WOMSkORo line 1, column 18␤]
moritz_ masak: I don't know if 'if if' is allowed, but if() forced the second to be interpreted as a sub call 07:00
which is why you can't say qw(a b c); any more
masak my questions is "why does it matter?", I guess
why wouldn't 'if' be treated as a sub call here? 07:01
(the second one)
moritz_ std: if if { 1 }
p6eval std 22561: OUTPUT[parse failure␤]
moritz_ std: sub if { 1 }; if if { 1 } 07:02
p6eval std 22561: OUTPUT[parsed␤]
masak it parses, but what does it mean? :)
pmurias TimToady: is it worth converting mildew from a rule_name() style recursive traversal to a VAST::emit_m0ld one?
TimToady currently STD parses it as if() if { say "whoa" }, which is probably not right
pmurias: no kloo 07:03
VAST is still mutating rather rapidly
masak ah. didn't even see that possibility. that's what you get for defining if() :) 07:04
TimToady it ought to prefer the statement_control there, not sure why it didn't 07:05
moritz_ sense the need for another test, but has to depart soon to his doom (aka diploma exams) 07:06
s/to/for/ 07:07
TimToady well, have the appropriate amount of fun
moritz_ thanks ;)
masak moritz_: good luck on the exams! 07:19
after that, you'll learn more about the Spin Hall effect and then tell me ;)
moritz_ masak: that's only after the second exam ;/ 07:35
masak I realize that. good luck with all of 'em.
moritz_ now I have to wait 20 minutes, good opportunity to go mad ;) 07:36
masak you're in good company for that ;) 07:37
(we're developing Perl 6, at least that takes a certain strain of non-mainstream-ness) 07:38
masak the link under the heading "caller" in S29 is broken. 07:54
perlcabal.org/syn/S29.html
lambdabot Title: S29
masak what's generating that page?
TimToady well, source is from pugs/docs/Perl6/Spec/Functions.pod 07:56
don't know what's doing the formatting to html 07:57
masak nothing wrong with the source
but the formatter seems to believe in a no-longer-extant CPAN package
pugs_svn r22562 | lwall++ | [gimme5,STD] switch exists and delete to new form 07:58
masak hm, who likely knows which formatter is generating the S?? documents in perlcabal.org/syn/ ? 08:02
moritz_ masak: tools/smartlinks.pl 09:05
masak moritz_: dz 09:06
masak moritz_: are you sure? it's not a smartlink I'm talking about, but an L<> link to an external resource. 09:12
moritz_ masak: smartlinks.pl turns the *pod files into the *.html that are displayed on perlcabal.org/syn/ 09:14
masak oki
good.
moritz_ it has a variety of options
masak will peruse it more when he has time
I don't see any quick way to fix the link
pmurias TimToady: what are zygs? 09:21
masak Take off every 'ZYG'!! 09:23
pmurias is even more confused 09:24
masak pmurias: sorry, that was an obscure cultural reference. please ignore ad lib. 09:26
riffraff hi 10:28
masak riffraff: y0 10:29
masak rakudo: say "welcome, ihrd and dzma :)" 10:46
p6eval rakudo 31857: OUTPUT[welcome, ihrd and dzma :)␤]
masak oops. s/dzma/dzema/
masak perl6: {"OH HAI".$^action}.(&say) 10:53
p6eval elf 22562: OUTPUT[Parse error in: /tmp/Jlbr4xmnQE␤panic at line 1 column 19 (pos 19): Statement not terminated properly␤WHERE: {"OH HAI".$^action}.(&say)␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:355:in `eat_terminator'␤ STD_red/std.rb:269:in `block
..i...
..pugs: OUTPUT[*** Cannot bind to non-existing variable: "$action"␤ at /tmp/9ex56TGViX line 1, column 1 - line 2, column 1␤]
..rakudo 31857: OUTPUT[OH HAI␤]
masak should the above really work, or is it a coincidence in Rakudo that it does? 10:54
pmurias perl6: {"OH HAI".$^action}.(sub($arg) {say ">>>$arg<<<"}) 11:03
p6eval elf 22562: OUTPUT[Parse error in: /tmp/goNpxUy10u␤panic at line 1 column 19 (pos 19): Statement not terminated properly␤WHERE: {"OH HAI".$^action}.(sub($arg) {say ">>>$arg<<<"}␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:355:in `eat_terminator'␤
..STD_red...
..pugs: OUTPUT[*** Cannot bind to non-existing variable: "$action"␤ at /tmp/Ni2Ohkwuc7 line 1, column 1 - line 2, column 1␤]
..rakudo 31857: OUTPUT[>>>OH HAI<<<␤]
moritz_ masak: I think it should work 11:33
pmurias TimToady: what would be usefull in AST is some way to retrive the orginal Match object for a given node or at least the .from and .to information to set the line information for error messages 13:46
pmurias ruoso: hi 13:52
ruoso hi pmurias 13:53
pmurias ruoso: are you blocking on anything? 14:13
ruoso pmurias, not really.. I'm just getting all my ideas straight on how to implement multi sub dispatch 14:19
pugs_svn r22563 | pmurias++ | [mildew] switch from a simple recursive traversal to viv and VAST and traversing with emit_m0ld
pmurias ruoso: i think we will need signature comparison, to choose the most specific variant 14:27
ruoso pmurias, yeah... I've been trying to figure out an easy way to do that... 14:28
pmurias it's hard to compare closures... so i suppose we need a Signature with some structure 14:29
ruoso or some more specific API
ruoso maybe $signature[0] gets the type of the first parameter... 14:30
and $signature{foo} gets the type of the name parameter 'foo'
(doing it in terms of API instead of structure is more polymorphic... that's important, since Signature is not a native type) 14:31
pmurias the API sounds sensible 14:32
ruoso too bad for the AdhocSignature... :( 14:34
pmurias we need to handle slurpy named and positionals too 14:36
and sub foo( 14:37
|$capture) {...}
ruoso sub foo(|$capture) is already implemented 14:40
by a lowlevel one
bindcapture
which is actually :(|$_)
pmurias, hmmm... slurpy named and positionals looks like trouble... 14:41
how to check the type of a slurpy without causing the eager evaluation? 14:42
moritz_ ruoso: lazily, if possible.
moritz_ ruoso: as long as you have no tie-breakers in slurpy params that shouldn't be a problem 14:42
ruoso so we need to make very clear that (Array of Int *@a) causes eager evaluation 14:43
moritz_ for most dispatches it should be enough to evaluate the first item of @a 14:44
but perhaps you have to attach type checks to @a 14:45
that are run when @a's generator produces more items
pmurias ruoso: it think it would be ok if we didn't support (typed) slurpies in the S1P::Signature 14:52
ruoso typed slurpies maybe... but we do need slurpies
TimToady pmurias: I tend to use "zygotes" for "kids" because it sorts later in the yaml output :) 15:33
and yes, there needs to be match info in the ast, but I was leaving it out for the moment so that I didn't have to read through *both* trees intermingled 15:34
maybe we could have options on ast generation
[particle] yes please!
moritz_ if so, maybe I finally manage to write a syntax hilighter based on it ;) 15:35
TimToady gah, users!!!
moritz_ heh ;) 15:36
TimToady: think of it as a "visual aid to evaluate correctness of the AST" 15:37
TimToady but users are even pickier than a Haskell compiler, and less consistent! 15:39
moritz_ but users don't complain at compile time ;) 15:40
PerlJam was wondering what zygs where in viv's output 15:41
pmurias moritz_: that's a bad thing
[particle] users don't complain at runtime, either--only after it doesn't run 15:42
TimToady yes, they tend to harbor unthrown exceptions 15:43
which is probably the solution to binding lazy lists to typed slurpies
the type is a promise to turn type mismatches into unthrown exceptions 15:44
it's not a promise to catch all mismatches at bind time
ofer Heya Larry!
TimToady howdy doody
pmurias TimToady: what is --p6 supposed to output? identical p6 or clearer p6 or properly indented p6? 15:47
[particle] hrmm 15:47
moritz_ or uglier p6? ;-) 15:48
TimToady the idea was to spit out identical to make sure I hadn't lost an info 15:51
which means I need to attach whitespace info as well somehow, if only by ref to the _ array
*any info
pmurias and --p5 is supposed to spit out perl 5 "good enough" to run STD? 15:59
TimToady initially it's supposed to do everything gimme5 does 16:03
only correctly
pugs_svn r22564 | lwall++ | [viv] add --pos option 16:04
TimToady I figured there wasn't much point in working on --p5 before --p6 works, since the ast will keep mutating till that happens 16:06
and making --p6 work involves not forgetting anything, which is a self-imposed requirement these days 16:07
(after having to make p5 not forget via MAD)
I'd rather not forget up front rather than having to unforget later
moritz_ TimToady: is there a good reason for using a hand-rolled command liine parser instead of GetOpt::Long? 16:14
[particle] i believe he knows how to use the hand-rolled code without reading any pod :) 16:22
TimToady I enjoy rolling my own. :) 16:25
PerlJam TimToady: admit it. you're obsessive compulsive about certain things (command lines being one) 16:26
:-)
ruoso TimToady, re "the type is a promise to turn type mismatches into unthrown exceptions".... PLEASE!!! :) 16:27
[particle] yes, i like that too, ruoso 16:31
very much, in fact
pugs_svn r22565 | lwall++ | [viv] add whitespace-before info under --pos
ruoso [particle], The People against Eager Evaluation ;) 16:32
TimToady PerlJam: certainly, I have a productive blend of OCD and AS, with occasional fits of a 16:34
ADHD and OD
[particle] the drug companies want you for clinical trials of a new pill 16:35
TimToady but sometimes SWMBO is also involved
pugs_svn r22566 | putter++ | [on_sbcl] README: Add TODO section. 16:37
r22566 | putter++ | [elf_h] Sync test results with current t/.
TimToady but yeah, you can't really make it in my business without OCD
TimToady the only way I ever let it go is by going and obsessing about something else for a while 16:38
ruoso later & 16:41
pugs_svn r22567 | lwall++ | [viv] --match to attach match objects 16:43
TimToady okay, I've probably obsessed about that enough for now... 16:44
pugs_svn r22568 | pmurias++ | changed require to do to avoid having to add an 1; to viv 16:47
pugs_svn r22569 | lwall++ | [viv] change MAIN to take @ARGV args as arguments 16:53
TimToady pmurias: see above
pmurias TimToady: you mean 22569? 17:05
TimToady yes, in case you want to call into MAIN 17:08
pmurias i don't invoke MAIN
TimToady but maybe you need the args processor separate
well, feel free to whack on viv's API 17:09
pmurias i just need an extra --m0ld
TimToady or split out some of it into a viv.pm
pmurias i propably should do it as "do 'viv'" is a bit hackish... 17:10
pmurias TimToady: does --match meet the no info is lost criteria? 17:14
&
TimToady pmurias: yes, presuming the match tree itself has not lost any info. but there's a lot of duplicate data 17:48
I don't think we have a ref back to the rule that matched yet either. It's a bit tricky since subs aren't real objects in Perl 5...
TimToady but _reduced at least tells you the reduction tag for each rule 17:50
rakudo_svn r31862 | tene++ | Merge hllmagic branch into trunk. 18:23
r31862 | tene++ | Mostly looks okay.
r31862 | tene++ | If anyone runs into problems fixing the last few issues with their languages, address issues to Tene or pmichaud.
pugs_svn r22570 | moritz++ | [t/TASKS] remove some outdated tasks 19:31
pugs_svn r22571 | lwall++ | [t] excise exists and delete functions 20:43
r22572 | lwall++ | [STD] add missing TEMP block 20:45
rakudo_svn r31868 | moritz++ | [rakudo] remove S29-hash/delete.t from spectest_regression. Its syntax has 21:26
r31868 | moritz++ | changed, and is not yet supported. I'll open a TODO ticket.
Juerd I have to shutdown feather0 22:02
Which means that feather1..3 will be paused
When using an ssh session, don't press any keys and it will probably survive the outage 22:03
Juerd (Oh, by the way, it's back up) 22:10