Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-05-01

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:22 _Chillance_ joined #perl6
00:25 Maddingu1 joined #perl6
00:26 armagad joined #perl6
00:26 orafu joined #perl6
00:26 PerlJam joined #perl6
00:31 Gothmog_ joined #perl6
00:31 yath joined #perl6
00:31 Chillance joined #perl6
00:31 gbacon joined #perl6
00:31 awwaiid joined #perl6
00:31 ingy joined #perl6
00:31 Lunchy joined #perl6
00:31 yahooooo2 joined #perl6
00:31 nipotan joined #perl6
00:31 obra joined #perl6
00:31 jql joined #perl6
00:31 sunnavy joined #perl6
00:31 clkao joined #perl6
00:40 Lunchy_ joined #perl6
00:40 ingyfoo joined #perl6
00:40 jesse__ joined #perl6
00:41 gbacon joined #perl6
00:43 yahooooo joined #perl6
00:43 Ingmar_ joined #perl6
00:45 yath joined #perl6
00:45 Gothmog_ joined #perl6
00:52 felipe joined #perl6
01:04 alester joined #perl6
01:11 orafu joined #perl6
01:11 Limbic_Region joined #perl6
01:11 Auzon joined #perl6
01:11 kanru joined #perl6
01:11 jan_ joined #perl6
01:11 araujo joined #perl6
01:11 Juerd joined #perl6
01:11 jiing joined #perl6
01:11 moritz_ joined #perl6
01:11 buu joined #perl6
01:11 pjcj joined #perl6
01:11 shachaf joined #perl6
01:11 gugod joined #perl6
01:11 avar joined #perl6
01:11 pravus joined #perl6
01:11 nnunley joined #perl6
01:12 funktio joined #perl6
01:12 felipe joined #perl6
01:12 Gothmog_ joined #perl6
01:12 yath joined #perl6
01:12 gbacon joined #perl6
01:13 Lunchy_ joined #perl6
01:13 [particle] joined #perl6
01:13 Torment joined #perl6
01:13 r0bby joined #perl6
01:13 cognominal_ joined #perl6
01:13 drbean joined #perl6
01:13 diakopter joined #perl6
01:13 jjore joined #perl6
01:15 alester joined #perl6
01:20 yewenbin joined #perl6
01:54 davidm123 joined #perl6
02:02 justatheory joined #perl6
02:03 davidm123 so, what's happening with POD6?  I tried it about a year ago and kind-of liked, but decided to continue with POD5 for now.
02:03 davidm123 not even perl/parrot used it.
02:03 davidm123 http://search.cpan.org./dist/Perl6-Perldoc/ -- latest update april 2007
02:03 lambdabot Title: Damian Conway / Perl6-Perldoc - search.cpan.org.
02:06 davidm123 hmm, the "download" link is broken on http://pugscode.org/
02:06 lambdabot Title: Pugs - pugscode
02:08 mncharity pugs: 3
02:08 exp_evalbot RESULT[3]
02:08 mncharity pugs: my $x = BEGIN{ 3 };
02:08 exp_evalbot RESULT[\3]
02:08 mncharity pugs: my $x = BEGIN{ 3 }; say $x;
02:09 mncharity pugs: my $x = BEGIN{ 3 }; $x
02:09 mncharity pugs: 3
02:09 mncharity oh, right.  grrr
02:10 mncharity pugs: my $x = BEGIN{ 3 }; say $x;
02:10 exp_evalbot OUTPUT[3␤]
02:13 Tene rakudo: my $k = BEGIN { 3 }; say $k
02:13 exp_evalbot OUTPUT[Statement not terminated properly at line 1, near "{ 3 }; say"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;statementlist' pc 16407 (src/gen_grammar.pir:2398)␤called from Sub
02:13 exp_evalbot ..'parrot;Perl6::Grammar;statement_block' pc 13578 (src/gen_grammar.pir:1384)␤called f...
02:16 mncharity rakudo: my $k = BEGIN { 3 }; say $k;
02:16 exp_evalbot OUTPUT[Statement not terminated properly at line 1, near "{ 3 }; say"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;statementlist' pc 16407 (src/gen_grammar.pir:2398)␤called from Sub
02:16 exp_evalbot ..'parrot;Perl6::Grammar;statement_block' pc 13578 (src/gen_grammar.pir:1384)␤called f...
02:17 japhb joined #perl6
02:17 mncharity TimToady/anyone: perhaps it will seem obvious in the morning, but could I get a hint on the STD.pm intended parse of "my $k = BEGIN { 3 };"?  thanks.
02:22 syle joined #perl6
02:24 deephan joined #perl6
02:39 pugs_svnbot r20334 | lwall++ | [STD] define term forms of control blocks where it makes sense
02:39 pugs_svnbot diff: http://dev.pugscode.org/changeset/20334
02:39 lambdabot Title: Changeset 20334 - Pugs - Trac
02:42 thoughtpolice joined #perl6
02:42 thoughtpolice left #perl6
02:44 pugs_svnbot r20335 | lwall++ | [STD] fixed terminator and infix_circumfix_meta_operator per putter++
02:44 pugs_svnbot r20336 | putter++ | [STD_red] pod_comment runs.  statement's || alternatives are less bogusly handled (but block's let() variables are still mishandled).  stdstopper no longer ignores endstmt/endargs.  assorted tweaks.
02:44 pugs_svnbot diff: http://dev.pugscode.org/changeset/20336
02:44 lambdabot Title: Changeset 20336 - Pugs - Trac
02:53 TimToady mncharity: the term:BEGIN tweaks I just made assume that ordering matters in case of ties from the LTM
02:54 TimToady statement_control:BEGIN has to win because one of these used as a statement doesn't return a value if used at the end of a block, but should put itself into void context
03:04 elmex_ joined #perl6
03:07 pugs_svnbot r20337 | lwall++ | [STD] pod_comment improvements suggested by putter++
03:07 pugs_svnbot diff: http://dev.pugscode.org/changeset/20337
03:07 lambdabot Title: Changeset 20337 - Pugs - Trac
03:09 mncharity thanks :)
03:12 mncharity good night all &
03:58 alanhaggai_ joined #perl6
04:07 syle2 joined #perl6
04:08 syle joined #perl6
04:15 ilogger2 joined #perl6
04:30 eternaleye joined #perl6
04:53 eternaleye joined #perl6
04:57 Psyche^ joined #perl6
05:00 * allbery_b wonders if that last message was a mistake
05:01 spinclad allbery_b: no, he did leave after 'good night all &'
05:02 spinclad :)
05:02 allbery_b mm, wrong venue :)
05:44 Zaba_ joined #perl6
05:49 TimToady allbery_b: yes, it was.  :)
05:49 allbery_b hm
05:57 davidm123 left #perl6
06:16 cathyal anyone using irssi
06:16 cathyal hi tim, allbery_b
06:17 Patterner is that a trick question, cathyal?
06:17 cathyal no
06:18 Patterner yes
06:18 cathyal ok so Irssi: Join to #irssi was synced in 253 secs
06:18 cathyal how does that work?
06:18 cathyal addition multiplication, not a single step procesS?
06:18 cathyal seems like a prime number
06:18 cathyal 253..
06:18 fullermd It's not, it's 11*23   :)
06:19 cathyal wait go slow, what do you mean
06:20 * fullermd shrugs.
06:20 fullermd It's not prime, it's a product of 2 primes.
06:20 cathyal is it not a single step process?
06:21 fullermd What, the syncing?
06:21 cathyal yeah
06:21 fullermd I dunno.  It pulls a list of users at least.  Not sure what else it does.
06:22 cathyal ok
06:23 Eevee wow
06:23 Eevee I've gotten 23 seconds before but not four minutes
06:23 cathyal thats my point
06:24 Eevee might have lost an unimportant response to something and irssi waited a while before giving up
06:27 * cathyal shrugs
06:27 cathyal k
06:59 justatheory joined #perl6
07:02 araujo joined #perl6
07:08 pugs_svnbot r20338 | lwall++ | [STD5] throw out $depth and $binding params; should be done by caller, not callee
07:08 pugs_svnbot diff: http://dev.pugscode.org/changeset/20338
07:08 lambdabot Title: Changeset 20338 - Pugs - Trac
07:19 meppl joined #perl6
08:14 iblechbot joined #perl6
08:19 Schwern joined #perl6
08:36 luqui joined #perl6
08:56 FurnaceBoy joined #perl6
09:06 wknight8111 joined #perl6
09:15 icwiener joined #perl6
09:33 FurnaceBoy joined #perl6
09:34 barney joined #perl6
09:52 meppl joined #perl6
10:01 smtms joined #perl6
10:19 nipotan joined #perl6
10:42 icwiener_ joined #perl6
11:00 yewenbin joined #perl6
11:29 pbuetow joined #perl6
11:30 meppl joined #perl6
13:20 sscaffidi joined #perl6
13:41 riffraff joined #perl6
13:50 kcwu_ joined #perl6
13:57 TJCRI joined #perl6
14:06 Zaba_ joined #perl6
14:06 Lorn joined #perl6
14:10 iblechbot joined #perl6
14:19 tzoa joined #perl6
14:28 chris2 joined #perl6
14:34 syle joined #perl6
14:40 cognominal_ joined #perl6
14:51 FurnaceBoy joined #perl6
14:57 rhr joined #perl6
15:02 pugs_svnbot r20339 | lwall++ | [STD] fate should also be completely hidden from user view
15:02 pugs_svnbot diff: http://dev.pugscode.org/changeset/20339
15:02 lambdabot Title: Changeset 20339 - Pugs - Trac
15:03 yewenbin joined #perl6
15:04 mncharity joined #perl6
15:06 kyrbe joined #perl6
15:07 kyrbe left #perl6
15:15 TimToady now that I've cut out all the parameter bogosity and callee-binding, maybe I have some small hope of constructing a well-formed match tree...
15:15 TimToady at least what's left looks a heck of a lot cleaner now
15:16 kolibrie TimToady++ # tidying up
15:17 TimToady well, thanks, I just hate fighting my own past stupidities.  but it's the only way forward...
15:30 alester joined #perl6
15:32 [particle] so... does perl 6 have a 'reset' op? or is that a method on ::?COMPILER now? ;)
15:33 TimToady which reset are you referring to?
15:33 TimToady it was overloaded...
15:34 TimToady but I believe we've managed to get rid of all its meanings now
15:34 [particle] yes, i believe so too
15:34 [particle] was reset in perl 1?
15:34 TimToady I believe so
15:35 TimToady at least, the variant that clobbered lots of variables
15:35 Eevee wow I completely forgot reset even existed
15:35 TimToady not sure about resetting ?...?
15:35 [particle] i wonder about implementing that in punie.
15:35 Eevee hack from before lexicals existed?
15:35 TimToady indeed
15:36 [particle] shouldn't be hard, but i'm not sure pct supports it. there are ways around that, thought.
15:36 [particle] *though.
15:37 TimToady variable reset just needs to be able to navigate the symbol table
15:37 TimToady regex reset could be harder
15:37 mncharity "I just hate fighting my own past stupidities.  but it's the only way forward...", oh yeah.  :)
15:37 mncharity civilization and life as a bootstrap exercise
15:37 TimToady anyway, I think you'll find STD.pm rather prettier now
15:40 mncharity just to double check before I do a code =~ s/if\(/if (/g,  'if(3){4}', with no space after the if, is invalid p6, correct?
15:40 TimToady it's valid, it just doesn't mean what you think it means
15:40 mncharity :)
15:41 TimToady it calls the "if" subroutine, and then derefs as a hash subscript of 4
15:41 TimToady which, fortunately, is likely to blow up
15:41 TimToady especially if you've neglected to define an "if" sub
15:42 pugs_svnbot r20340 | jnthn++ | [spectest] A little fudging for Rakudo.
15:42 pugs_svnbot diff: http://dev.pugscode.org/changeset/20340
15:42 lambdabot Title: Changeset 20340 - Pugs - Trac
15:42 TimToady so it can catch it at compile time
15:42 TimToady (usually)
15:43 mncharity a new day, a new number sequence... (1) in statement_control:if, 'elsif' and 'else' should perhaps be followed by <nofat_space> to match if's behavior.
15:44 mncharity we'll need a new conversational idiom to distinguish "if()" from "if ()".  :)  "sc:if"?
15:45 TimToady the first one's pronounced "interface" :)
15:51 TimToady re (1), yes, though interestingly repeat's while/until probably doesn't
15:52 meppl joined #perl6
15:54 pugs_svnbot r20341 | lwall++ | [STD] elsif and else need <nofat_space> since they could be a new statement
15:54 pugs_svnbot diff: http://dev.pugscode.org/changeset/20341
15:54 TimToady whoops, forgot your putter++  :)
15:59 TimToady biab &
15:59 mncharity lol
15:59 pugs_svnbot r20342 | putter++ | [elf_e] if's must be followed by a space.
15:59 pugs_svnbot diff: http://dev.pugscode.org/changeset/20342
15:59 lambdabot Title: Changeset 20342 - Pugs - Trac
16:17 mncharity (2) q_balanced is still using the now non-existent $stop argument to EXPR.
16:21 mncharity What is the story behind  subcall  being commented out?
16:22 rindolf joined #perl6
16:26 kanru joined #perl6
16:27 Chillance joined #perl6
16:31 rdice joined #perl6
16:35 pugs_svnbot r20343 | putter++ | [elf] else's must be followed by a space.
16:35 pugs_svnbot diff: http://dev.pugscode.org/changeset/20343
16:35 lambdabot Title: Changeset 20343 - Pugs - Trac
16:36 TimToady mncharity: the story is that it's currently handled by term:name because my LTM doesn't yet do backoff to tied or shorter tokens
16:37 rindolf Hi TimToady
16:37 TimToady same story as packagevar and fulltypename, basically
16:37 TimToady howdy
16:37 rindolf TimToady: I have more lines for my "I'm the Real TimToady song."
16:37 rindolf "And Randal Schwartz said... Nothing, you Idiot! Randal Schwartz's mad at you for not paying attention."
16:37 TimToady I don't recognize that tune...
16:38 rindolf TimToady: wait a sec.
16:38 rindolf TimToady: can you see YouTube?
16:38 TimToady not at the moment
16:38 Eevee TimToady: you're not really missing much
16:38 eternaleye joined #perl6
16:38 rindolf TimToady: well use http://www.youtube.com/watch?v=zCuwOG39HMo
16:39 lambdabot Title: YouTube - Oops The Real Sim Shady Did It Again
16:39 rindolf TimToady: you can also use youtube-dl.
16:39 rindolf TimToady: which is written in Python (Shavess!) but is still cool.
16:40 mncharity re subcall, ah, ok.  then I'll continue using it for now.
16:40 rindolf TimToady: do you know Yiddish?
16:40 rindolf TimToady: I know a little of it.
16:42 mncharity (3) token dotty uses explict '.' rather than <sym>, so does endsym unspacey get used or not?
16:42 TimToady re (2), the quote languages should be using a derived terminator like the regex sublanguages
16:42 TimToady I'm still refactoring that
16:43 mncharity nod
16:43 TimToady rindolf: not enough to know whether I'm a schlemiel or a schlemazl
16:43 rindolf TimToady: heh.
16:43 rindolf TimToady++
16:43 TimToady endsym is only used on <sym>
16:46 obra pmichaud: ping
16:47 TimToady I'm disinclined to all unspace in the middle of .* et al. but after that token is probably okay
16:48 TimToady *allow
16:50 mncharity ok.  just noting proto token dotty is ensym unspacey, but it no longer looks like there's a dotty <sym> to use it anywhere.
16:50 pugs_svnbot r20344 | lwall++ | [STD] dotty needs more unspaciness, putter++
16:50 pugs_svnbot diff: http://dev.pugscode.org/changeset/20344
16:50 lambdabot Title: Changeset 20344 - Pugs - Trac
16:50 mncharity ah :)
16:51 TimToady problem is that <sym> would match .* literally, rather than .+, .?, etc.
16:51 TimToady otherwise I have to split those all out as separate tokens
16:52 TimToady and that was one of the things that was making my lexers huger earlier
16:52 TimToady probably not as big a problem now that I split lexers on first char
16:53 sscaffidi joined #perl6
16:54 TimToady twigils also act as lexer multipliers if you're careful...
16:55 TimToady *not careful
16:57 [particle] depends on what you're being careful to accomplish
17:04 TimToady I/O, I/O, so off to work I go...  &
17:06 rindolf A Bit or Bite so late at night.
17:06 rindolf I Bit a Bite so late at night.
17:14 mncharity oy :)
17:16 pmichaud 16:46 <obra> pmichaud: ping
17:17 pmichaud pong
17:18 [particle] rats. now i gotta go. bbi~2h
17:18 obra pmichaud: hiya.
17:19 obra particle has been talking me through some of the bits of extracting and converting pugs tests.
17:19 obra I started poking at something at looked "easy" and got an interesting explosion:
17:19 obra then perl t/harness --fudge --keep-exit-code t/pugs/operators/arith.t
17:19 obra sub tryok ($ok, $todo = '') {
17:19 obra trips up rakudo's parser
17:20 pmichaud just a sec
17:20 pmichaud I don't know if initializers are implemented yet
17:20 rindolf Hi pmichaud
17:20 rindolf Hi obra, [particle]
17:20 * rindolf is editing http://www.perlfoundation.org/perl5/index.cgi?history
17:20 lambdabot Title: History / Perl 5 Wiki
17:21 pmichaud obra:  it looks like rakudo doesn't understand the  = ''    part yet
17:21 justatheory joined #perl6
17:22 pmichaud not hard to implement, just hasn't been done yet.  Could try it as  $todo?   though
17:22 obra poking
17:23 pmichaud oh, I misread rakudo's grammar -- looks like ? and ! aren't there yet either
17:23 pmichaud oh wait, yes they are
17:24 obra there's other fudging I need to do
17:25 obra for undefine $a;
17:25 obra and ..some operator
17:25 obra but I'm doing the brute force thing right now
17:25 obra t/pugs/operators/arith......Scope  not found for PAST::Var 'ok'
17:25 pugs_svnbot r20345 | clkao++ | use items for bind_pad.
17:25 pugs_svnbot diff: http://dev.pugscode.org/changeset/20345
17:25 lambdabot Title: Changeset 20345 - Pugs - Trac
17:25 tcliou joined #perl6
17:26 pmichaud we should be able to get the '=' initializer implemented relatively quickly
17:26 pmichaud I'll file a ticket for it
17:28 obra cool.
17:28 obra mostly, I'm trying to understand the test extraction process
17:28 obra so that I can write it up for the list to maybe lure in some willing help
17:29 pmichaud feel free to ask questions here -- any of myself, particle, or TimToady can likely answer
17:29 pugs_svnbot r20346 | putter++ | [STD_red] cleanup continues.  statement_control et.al. whitespace; term:BEGIN; <?stdstopper> calls added (disabled in expect_term due to massive regression); dotty changes (one deferred); EXPR argument list tweaked.
17:29 pugs_svnbot diff: http://dev.pugscode.org/changeset/20346
17:29 * obra nods
17:30 pmichaud one potential workaround for now is    sub foo($ok, $todo?) { $todo = $todo // '';  ... }
17:30 pmichaud I *think* we've implemented infix:<//>
17:30 * obra nods
17:30 * pmichaud checks.
17:30 obra I don't know what that new failure I pasted means
17:31 pmichaud looks like a typo in the codegen somewhere
17:31 pmichaud we shouldn't have a PAST::Var 'ok' -- it should be '$ok'
17:31 obra (Pasted to: http://paste.husk.org/11305
17:32 obra both failures and the currently hacked up t file
17:32 pmichaud oh
17:32 pmichaud that's looking for &ok
17:32 pmichaud (which gets automorphed into 'ok')
17:33 pmichaud what is the &ok.nextwith(...)   supposed to do?
17:34 obra looking
17:34 obra Any pugs test hackers able to shed light?
17:34 pmichaud my initial guess is that it's automatically counting tests
17:35 pmurias joined #perl6
17:35 pmichaud and that .nextwith is some sort of currying
17:35 pmichaud (updating my pugs repo so I can check)
17:35 pmurias mncharity: do you use the elf_e executable?
17:36 mncharity TimToady: (4) why is stdstopper a regex rather than a token?  also fulltypename.
17:36 obra (I sadly need to run away for a going-away lunch)
17:37 pmichaud no problem.  I'll look into it a bit further and message you
17:37 pmichaud I need to do lunch also
17:37 pmichaud I'll be back around 1400 CDT
17:37 pmichaud (80 mins from now)
17:37 mncharity pmurias: yes.  and _nomoose.
17:38 pmichaud ah, .nextwith is in S06
17:38 mncharity pmurias: ... why? :)
17:39 pmichaud my opinion is that testing for arithmetics shouldn't depend on the availability of wrapping.
17:40 pmurias mncharity: i'm wondering if there is any point of keeping it
17:41 pmurias mncharity: why do you use elf_e instead of elf_e_nomoose? (testing?)
17:42 pmurias pmichaud: .nextwith is used to provide better error traces
17:44 pmichaud pmurias: how so?
17:45 pmichaud regardless, I think it's a bit of a mistake to say that any given p6 implementation must have .wrap and .nextwith working before it can run the arithmetic tests.
17:45 mncharity nextwith is a tailcail, so caller remains the test line of interest
17:46 pmurias it's a bit pointless as &ok dosn't throw exceptions
17:46 mncharity don't think .wrap is needed.  (could be wrong.  and not expressing a preference on it's (non)existance)
17:46 jferrero joined #perl6
17:46 pmichaud oh.  S06 describes .nextwith in its section on wrapping.
17:49 pmurias mncharity: will elf support named parameter?
17:52 pmurias pmichaud: do you want to change the test?
17:52 pmichaud definitely
17:52 pmichaud (want it to change, yes.)
17:53 pmurias changing .nextwith to function application should work
17:53 pmichaud yes
17:53 pmichaud also, particle and I were talking about adjusting the standard Test.pm functions a bit
17:54 pmichaud but I don't have any specifics handy at the moment
17:54 mncharity pmurias: re why... given the very large amount of effort embedded in Moose, it's an attractive path.  and elf_e_nomoose doesn't yet do variable default values.  but I often use eenm for testing.  and always(~) check that both bootstrap.
17:56 pmurias mncharity: i'm not really sure how much Moose features can we use
17:56 mncharity at some point in the not too distant future, someone has too look at the performance of autobox, and decide whether to continue building the EmitSimpleP5 object system on autobox or do something else.
17:57 pmurias and the moose on is too slow for me, so i don't update/use it all
17:58 pmurias mncharity: boxing everything would be the alternative to autobox
17:59 pmurias re named parameters they would change our calling convention
17:59 TimToady re (4), I tend to use "regex" to document the fact that I'm not actually trying to traverse a token
18:00 pmurias so we must choose if we do them properly, hack them on or omit them
18:00 mncharity re 'will elf support named parameter?', I'd rephrase that as will EmitSimpleP5 support named parameters.  elf can be used to compile and run emitters which do anything.  There's also the related question of whether the core elf code will depend on named parameters working.  soo...  ESP5 support, probably.  but I don't want to take a runtime hit from
18:01 TimToady not sure why fulltypename has that, unless I had it backtracking in some form or other
18:01 mncharity it so it may be compiler analysis intensive.
18:02 mncharity I'm tempted to minimize the feature set of my elf core code
18:03 mncharity s/of/used by/, but... maybe not.  So I'm unclear on whether using named parameters in the elf implementation itself is a good idea or not.
18:05 pmurias mncharity: i don't thing the runtime hit will be significant but the calling convention would be incompatible from the perl5 one
18:05 pugs_svnbot r20347 | lwall++ | [STD] fulltypename should probably be a rule
18:05 pugs_svnbot diff: http://dev.pugscode.org/changeset/20347
18:06 pmurias as one would have to pass the named parameters as one of the positionals
18:07 mncharity re calling convention properly/hack/omit, I am tempted to emit routines as two parts, one for when the compiler understands the arguments, and one which takes a Capture.  providing fast case and general case.  and with the elf core being mostly fast case.  and named args... not clear.  maybe included in fast case, perhaps restricted, or maybe not.
18:09 mncharity compatibility with p5 calling convention isn't really a priority.  at least for me and EmitSimpleP5.  but again, its easy to fork a EmitDifferentlySimpleP5.  :)
18:10 pmurias if you don't care for compatibility i think it's worth having them in
18:10 mncharity actually, it would eventually be nice to be able to control calling convention on a per-sub basis.
18:12 mncharity though that requires cross-module analysis, which may fit the independently compiled modules story.
18:12 mncharity *not fit
18:13 pmurias you have independently performed analysis then
18:13 mncharity re regex, ah, ok.
18:14 eternaleye joined #perl6
18:15 mncharity re independently, which requires either access to the non-compiled form, or requires the compiled form to contain all the information in the non-compiled form.  not clear to me either is required by spec at present.
18:21 mncharity pmurias: but the real answer is anyone coming up with a more featureful calling convention and emitter, would be great.  and, assuming we get any users, appreciated.  and if fast and having an attractive development path, might displace the current one.
18:22 mncharity elf is intended to be more a family of compilers than a single monolithic thing like pugs.
18:24 mncharity if no one creates elf derivatives than something is wrong, because no single set of tradeoffs can possibly be appropriate for the wide range of things one might do with it (eg, run on different backends, or serve as a platform for developing (type analysis, compilation games, alternate calling conventions, etc, etc)).
18:25 mncharity and both the "it's all p6"(well, except the parser for now) and the architecture is designed to facilitate such use.
18:25 mncharity s/than/then/
18:26 pmurias the current design of having a seperate executable for each variant would get in the way loads of derivatives
18:29 mncharity the demands of "elf as a way of doing parsing with grammars for p5 cpan modules" is very different than "elf as a reference p6 self-implementation" or my current focus "elf as a tool to shake down STD, and encourage people working on a p5 backend components, and start passing pugs t/ to provide test driven development opportunities".
18:31 pmurias what subset should elf be in?
18:32 pmurias the one shared by all|most backends, or the most complete one?
18:32 Zaba_ joined #perl6
18:32 mncharity elf_x EmitSomethingElse.pm foo.pm   can run foo.pm with the new emitter (but which requires, of course, SomethingElse be compatible with the emitter which compiled elf_x - that's why you often want a separate executable).
18:33 mncharity elf_x EmitSomethingElse.pm  -x -o foo.whatever foo.pm  compiles foo.pm with the new emittter.
18:35 pmurias i'm aware of the monkey patching trick ;)
18:38 mncharity re what subset/dialect, good question.  I'm tempted towards "be featureful where it simplifies architecture (ie, multimethods), but less so for only local bumming".  but it's a pragmatic "what is most convenient for most people at the moment" question, with possible multiple forks.  and we don't yet have even a second backend.
18:38 mncharity or no, I guess we do.  that's _nomoose.  currently maintained as a small fork.
18:40 mncharity feel free to start another one. :)   I should probably move the RegexYare stuff out of elf as a fork until it matures.  oh, there's also the smop emitter fork of elf_e (elf_d?).
18:42 mncharity someone is needed to take on the task of looking at Data::Bind and the rest of the cpan "this will help doing p6 like stuff in p5" and weave them together into runtime convention(s).
18:44 mncharity http://dev.pugscode.org/browser/perl5/Data-Bind
18:44 lambdabot Title: /perl5/Data-Bind - Pugs - Trac
18:44 pmurias mncharity: the problem with forks starts when they are incompatible with each other
18:44 pmurias mncharity: i used Data-Bind in the short-lived mp6v6
18:48 mncharity re forks incompatible, that, like, implies active development!  more than one developer!  that would be a wonderful problem to have.  ;)
18:48 pmurias for example code emitted by RegexYare would either follow the named parameter convention, or the positional only one
18:50 mncharity and if bridging that difference is difficult, given collaborating developers working in a common environment and community, then it indicates something badly broken in p6 as a language, or a too-narrow implementation of same.
18:52 hermax_ joined #perl6
19:00 mncharity elf, noun: (a) ~8 p6 files which happen to define a p6 backend capable of compiling files like themselves; (b) a p6 implementation based, in whole or in part, on those files or derivatives; (c) a movement; (d) one of santa's helpers.
19:02 mncharity but the key point is it's just a couple of files.  encoding knowledge of what a p6 implementation looks like.  no big infrastructure or entanglement.
19:04 mncharity you might even be able to run them in pugs.  eventually at least (I haven't tried, and expect it would take some work).
19:07 mncharity anyone with an itch to scratch, a corner of the very very big p6 implementation picture you wish to pursue, is encouraged to grab and make use of the files and/or executables.
19:09 mncharity type analysis and such written in p6 seem likely to be just as useful for rakudo as elf-ish implementations, a new pugs, or whatever else.
19:10 mncharity issues of divergent IR's seem likely to be minor compared to shaking down spec and "getting the first one working".
19:12 mncharity bbiab
19:33 pmichaud obra: message about arith.t sent to perl6-compiler mailing list
19:35 obra pmichaud: thanks
19:35 pmichaud er, maybe not.  checking
19:35 pmichaud oops, sent to wrong address.  Re-sending.
19:35 pmichaud *now* it's sent.
19:36 pmichaud (time to fix my mail aliases)
19:36 obra heh
19:36 obra my goal is more about getting down an easy recipe for taking old pugs tests and bringing them into the new world order easily
19:37 pmichaud this message somewhat addresses that, I think.
19:37 pmichaud in the case of arith.t, I think we should get rid of the "helper subs" that are at the top of the file and just use what already exists in Test.pm
19:38 pmichaud (where Test.pm might end up meaning "Rakudo's Test.pm")
19:40 rob__ joined #perl6
19:41 r0bby_ left #perl6
19:50 mncharity obra: re the new world order, are there any docs? :)
19:50 pugs_svnbot r20348 | putter++ | t/operators/arith.t: .nextwith tailcalls commented out to help rakudo.
19:50 pugs_svnbot r20348 | putter++ | Probably degrades error messages, so restore once rakudo does .nextwith.
19:50 pugs_svnbot diff: http://dev.pugscode.org/changeset/20348
19:52 mncharity Oh, I should have mentioned I failed to test the modified file against pugs. :(  I don't have a working one at the moment. :-(
19:52 pugs_svnbot r20349 | clkao++ | assign into pad for rw.
19:52 pugs_svnbot diff: http://dev.pugscode.org/changeset/20349
19:52 pmichaud per my message, I disagree with "restore .nextwith"
19:52 pmichaud rakudo isn't the only other Perl 6 implementation
19:55 obra mncharity: mailing list conversation between pmichaud [particle] and TimToady with a bunch of existing work to create the spec/ hierarchy
19:55 obra what I'm trying to help get together is "and here's how to masssage the existing body of not-so-organized tests
19:56 [particle] obra++
19:57 mncharity re nextwith, but setting up .nextwith as an alias to subcall is easy.
19:57 mncharity s/is/should be/
19:58 obra does having .nextwith enhance the tests or are you suggesting it as a porting bandaid?
19:59 mncharity re massage, note that, at least the last time I looked, my impression was the t/spec and t/ test philosophies were rather different.  t/ generally trying to avoid off-topic dependencies like .nextwith, and t/spec feeling free to use maximal p6.  both have a role.  t/spec beeing a good validation suite, but t/ being more useful as a new impl takes its first steps.
20:00 obra I am not qualifed to talk about this.
20:00 * obra defers to [particle] and pmichaud
20:00 [particle] mncharity: i disagree with that perspective
20:00 [particle] t/spec/ should be well-factored
20:00 mncharity re suggesting, merely pointing out that for elf, I'd have hacked in .nextwith, rather than hacking the test.
20:00 [particle] it's not where it should be yet, because it needs a larger effort
20:01 [particle] tests should rely only on well-documented parts of perl 6
20:01 [particle] that is, whatever is required for Test.pm to work
20:02 [particle] of course, that may be different for each implementation
20:02 mncharity [particle]: validating p6 well will be quite hard.  making it harder by using a restricted dialect seems a problematic choice.
20:03 [particle] how do i best say this...
20:03 [particle] ultimately, yes, we need to validate full perl 6. and it should be free to use macros, etc.
20:04 [particle] now, today, when there are multiple burgeoning implementations, we need to concentrate on developing tests that rely on a minimum of features
20:04 [particle] that set of features will grow as the implementations grow
20:04 [particle] there's really no one way to bootstrap
20:05 [particle] we have to be reasonable about it
20:05 [particle] so, when testing math, it's better not to rely on tailcalls
20:05 [particle] that's my feeling, at least.
20:06 mncharity "that set of features will grow as the implementations grow" that's a reprise of the approach taken with pugs.  it was arguably a mistake then too. :)  the difficulty is
20:08 Eevee not that I have any room to talk, but it seems to me that spec tests are only really useful if features are kept to a minimum except for what you're actually testing, so an implementation can get useful results no matter how far along it is, as long as it meets a known and very simple baseline
20:08 Eevee if you have a math test failing because you don't support tailcalls, what use is the math test
20:10 [particle] an important difference between the pugs approach an the t/spec/ approach is that the latter is organized by synopsis
20:10 Zaba joined #perl6
20:11 [particle] ...and the synopses are mainly numbered such that you can implement them in numeric order
20:12 [particle] so, for example, you don't need to have implemented s12-objects before s02-bits&pieces
20:13 mncharity ok, let's see...  there is definitely a role for hand-holding.  t/01-sanity has been *very* helpful in getting infant implementations moving.  the next phase is making toy implementations less toyish.  with t/ tending to avoid off-topic complexity, the main problem there has been
20:13 wknight8111 joined #perl6
20:14 mncharity the file based testing.  parse fails somewhere in the file, or there's a runtime error, and you lose the file.
20:15 mncharity pugs dealt with that by being selective about what was actually put in .t files (no bulk dumping of failing tests), and individually tagging problematic tests.
20:16 mncharity redsix, and I believe PIL-Run dealt with it by trying to be incremental - trying to run as much of the file as possible.
20:16 mncharity don't remember what PIL2JS did.
20:17 [particle] we now have 't/spec/fudge' to do preprocessing
20:17 mncharity but the upshot of that experience was a feeling (at least by me;) that a less file-oriented approach was needed for the long talked about t/-next generation.
20:17 [particle] you no longer have to worry about parsefails, because '#?elf skipall "parsefail"' will take care of that for you
20:18 mncharity one where individual test setups and tests could succeed or fail on their own.
20:18 [particle] (i may have screwed up the syntax a bit there)
20:18 mncharity and the same infrastructure could serve for generative testing.
20:19 obra but writing your trivial test function to use .trynext seems to be counterproductive
20:20 mncharity so that's making implementations less toyish.  (will backlog in a sec - one bit more).  once an implementation is ceasing to be a toy, is passing much of the test suite, the set of what is useful changes.  rather than being accessible to toy implementations, what's important is
20:21 mncharity shaking down a non-toy impl as hard and efficiently and well as possible.  that's implicitly the same argument as "that set of features will grow as the implementations grow".   grown implementations require a different set of tests than toy ones.
20:21 obra mncharity: do you object to having feature tests refactored to exercise fewer features which aren't what you're actually testing?
20:22 [particle] mncharity: you're getting ahead of yourself, and the rest of us. all perl 6 implementations are toys now.
20:22 [particle] some day near the release of Pelr 6.0 (official spec and test suite)
20:22 [particle] *Perl
20:23 mncharity but just like t/spec shouldn't be rewritten to look like t/01-sanity, it's not clear to me t/ itself should either.  let alone a t/shake_the_last_incompatibilities_out_of_a_mature_impl (aka t/spec?).
20:23 mncharity backlogging...
20:23 [particle] we'll refactor the tests again to make them better
20:23 [particle] we're in a process of continuous refinement and refactoring
20:23 [particle] right now, t/spec/ better meets the needs of implementations
20:23 [particle] in the future, that's likely to change, and we'll change it.
20:24 obra (http://www.nntp.perl.org/group/perl.perl6.compiler/2007/12/msg1667.html has been linked here today, right?)
20:24 lambdabot Title: Proposal: refactor the test suite according to synopsis - nntp.perl.org, http://tinyurl.com/64882k
20:26 mncharity re "when testing math, it's better not to rely on tailcalls", yeah, I don't really disagree.  but, for instance, I had the same feeling about adverbs (:todo). :)  If .nextwith was harder to implement, it would be a clearer argument.  but the suggested change to the test is identical to an implentation faking .nextwith as a regular subcall.  I've no objection to
20:26 mncharity the change itself, but it seemed a useful discussion foil.  a test suite without :todo<foo>'s could be nice too. :)
20:30 mncharity re "what use is the math test", a math test verifies, for some implementation, that the math is working.  the key is 'for some implementation'.  One could suggest "my implementation can't do operator precedence parsing - can math be rewritten using just subcalls?".  Or "my implementation is robust and mature, can math be rewritten in non-toy p6 to give maximum testing bang?".  the
20:31 mncharity issue is in part what development profile you expect.  if it's a slow infancy, short childhood of rapidly developing capabilities, and long adulthood of trying to get things right, then, for instance, it's not clear whether you care that a toy implementation is handing Inf right or not.  it should be focusing on other things until it is non-toy.
20:33 obra the point of the spec tests is to test specific features defined in the synopses.
20:33 pmichaud handling :todo<...>
20:33 pmichaud is already being done with fudge
20:33 obra Broken down by synopsis.
20:33 pmichaud so we already eliminate those from the test suite
20:33 pmichaud (or at least refactor them out into fudge-able todo markers instead of part of the call)
20:34 obra Trying to turn them into torture tests for whatever code some hacker wrote one evening is intentionally making them into something they're not supposed to be
20:34 Eevee why would you want to rewrite a math test in non-toy p6?  everything you could possibly use should already be tested elsewhere
20:34 obra Eevee: right.
20:35 pmichaud "can math be rewritten using just subcalls" would mean that we're not really testing the math operators, which I presume to be the point of the test
20:35 mncharity re "organized by synopsis", tying tests to spec can certainly be useful.  I'm unclear on how far that goes as an architectural principle.  re "you can implement them in numeric order", eep, but it seems very unlikely to be that far.
20:35 [particle] mncharity: what's "official" about Perl 6?
20:35 Eevee isn't it *always* a good idea to make tests as specific as possible
20:35 [particle] 1) the Spec. 2) the test suite.
20:36 pmurias obra: what's wrong with torture tests?
20:36 pmichaud nothing's wrong with torture tests.  But they should be identified as torture tests, and not part of the "simple mathematical operators" test.
20:36 obra ==pmichaud
20:37 [particle] t/spec/torture/some_crazy_tests.t
20:37 pmichaud also, fudge gives us a convenient way to segment out the torture tests so that a given implementation can still test the basic stuff and skip over the tortuous stuff
20:37 pmichaud ...as long as all of the tests aren't using the tortuous stuff :-)
20:37 lisppaste3 joined #perl6
20:38 mncharity oh, let's see, lots of threads...
20:38 pmichaud (er, as long as the basic stuff isn't using the tortuous constructs.)
20:38 pmichaud phrasing it slightly different
20:38 pmichaud I would posit that a Perl 6 implementation could be "non-toy" and still not have .nextwith implemented.
20:39 pmichaud it's not complete, but I wouldn't say that ".nextwith" is something that is critical to any non-toy implementation of Perl 6
20:39 pmichaud having operator precedence working is critical to any non-toy implementation
20:39 pmichaud as is conditionals, loops, variables, etc.
20:39 Eevee yes, feature implementation order isn't guaranteed
20:40 Eevee and if you murk tests with other features then implementors get to figure out what order they have to implement features in before the tests are useful
20:41 mncharity re "why would you want to rewrite a math test in non-toy p6?" and "aving operator precedence working is critical to any non-toy", Eevee: so "ok(2 == 2);"  requires non-toy. ;)
20:42 mncharity if we were serious about supporting toy no-opp impls, we would need to do "ok(eq(2,2));" or some such.
20:42 pmichaud yes, but that doesn't mean tests should also be using .nextwith or tailcalls or the like :-)
20:43 Eevee I think == is a liiittle bit more basic than tailcalls
20:43 pmichaud also, mncharity's logic doesn't quite follow
20:43 pmurias the .nextwith is a bad example as it serves no purpose in that particular test
20:44 pmichaud just because every non-toy implementation requires == doesn't mean you can't have == in a toy implementation :-)
20:44 mncharity at the risk of overly focusing on the discussion foil, re "posit that a Perl 6 implementation could be "non-toy" and still not have .nextwith implemented", the point is _not_ that tailcall is critical, but that subcall is, and that a non-toy can trivially fake nextwith as a subcall.
20:44 pmichaud mncharity: that's assuming that my subs are objects on which I can easily attach methods
20:45 pmichaud Parrot isn't quite there yet
20:45 justatheory joined #perl6
20:45 mncharity err, yeah.  s/subcall/method call/g.
20:45 mncharity ah.  hmm.
20:45 pmichaud so, "any non-toy can trivially fake..." isn't exactly true in Rakudo's case
20:46 obra so. every implementation could also implement a rot13 filter to keep the content of a test a surprise until runtime.
20:46 obra that doesn't make it useful
20:46 pmichaud but still, the point remains -- why does arithmetic testing need to rely on .nextwith?  That doesn't belong in arithmethic testing -- those sorts of things should be factored out into the generic testing library
20:46 Eevee I don't want to have to implement $x higher-level "trivial" features just to run tests
20:47 obra implicitly requiring an unrelated feature to perform basic feature tests is pointless and frustrating.
20:48 obra mncharity: you'll note that nobody is arguing about initalizers on variables in signatures, which these tests also required.
20:49 mncharity ok, so that's the "what is a toy" thread.  re 'has there ever been a non-toy', such things are relative of course, but pugs was at least sufficiently non-toy that people kept trying to use it as if were not one.  PIL2JS had the next greatest test passing, but was slow.  PIL-Run passed somewhat less.  redsix was down around 1/4.  I've no idea where rakudo is.
20:49 mncharity for the purposes of this discussion, I'd say pugs was non-toy.  perhaps PIL2JS.
20:50 pmichaud I'm not too concerned with figuring out what is "toy" versus "non-toy", but I agree that Pugs is non-toy.
20:50 [particle] pugs and pil* all used the same parser, no?
20:50 pmichaud I don't know that toy versus non-toy is a useful label or distinction to try to definitively establish
20:51 mncharity re same parser, yes
20:51 mncharity re toy/non-toy, let's see, the core question is...
20:53 obra More blood has been shed over whether a given p6 implementation is/was/will be a toy than has been shed over many other more important religious debates.
20:54 mncharity what dialect do you write various subsets of tests in?  it's clear very highly restricted dialects can be useful (ie, sanity).  it's clear you can do a "non-fixed subset - dialect grows as some privileged impl grows".  it's clear that doesn't as well serve other impls at differing stages of paths of development.  what else...
20:55 mncharity *or paths
20:56 pmichaud I'd take the general guideline as being that tests should, as far as possible, use only those features in sanity and that are core to the thing being tested
20:57 mncharity ... there seems disagreement on whether the test suite for mature impls will use a rich dialect.  "write validation suite richly, and consider impls toys until they have the rich dialect working", and "grow to rich with growning impl" both suggest yes, "why would you want it?  be minimal" suggest no.
20:58 pmichaud "rich dialect" is a sliding scale, not a definitive item
20:59 pmichaud if the purpose of the test suite is to make it possible to verify implementations and to assist implementers, then increasing the richness of the suite for its own sake makes it less useful
20:59 mncharity ok, so "why would you want it?",
20:59 pmichaud why would I want... what?
21:00 mncharity "why would you want to rewrite a math test in non-toy p6?"
21:00 pmichaud I wouldn't.
21:00 mncharity :)
21:00 pmichaud if "toy p6" is sufficient to test my math features, then I should use that for writing the test.
21:02 mncharity one can not only test math features, but implement a p6-ish backend, without array variables working.  it's not clear that means the test suite should avoid using array variables outside of the array tests.
21:03 pmichaud arrays are currently part of sanity, I think.  But I think we can agree there are basic features that we expect that a p6 implementation would handle sooner rather than later, and that arrays might be in that list.
21:04 pmichaud I also think that if we asked the general population "is it reasonable to write p6 programs even if .nextwith isn't available", then a lot of people would agree.
21:04 mncharity I note that "complexity of dialect-of-tests will grow as implentation strength grows" and "use a minimal sanity-like dialect-of-tests" are incompatible positions.
21:04 pmichaud I disagree
21:04 mncharity !  say on :)
21:04 pmichaud one can have increasing complexity of the suite without having to increase the complexity of every test in the suite
21:05 pmichaud "complexity of passable tests will grow as implementation strength grows"
21:05 mncharity so tests are written in varying dialects, whose complexity is a function of their position along some bootstrap path?
21:06 pmichaud ...whose complexity is a function of whatever functionality is needed to adequately describe the test.
21:07 pmichaud tests for basic mathematical operations don't require complex functionality.
21:08 pmichaud it's just like Perl 6 itself, as a language.  We don't require someone to learn about .nextwith and currying if they don't need it to write a program.  But it's there when they do need it.
21:09 pmichaud someone should be able to use Perl 6 without having to know all of its richness.
21:09 pmichaud The tests are the same say -- they should be able to test various parts of Perl 6 without having to know all of the rich features
21:10 pmichaud s/say/way/
21:11 pmichaud afk for a bit
21:13 Eevee pmichaud++
21:18 mncharity let's see, wrapping up...  it looks like areas of non-concensus include: () role of non-minimalism - is it ever useful?  if useful, avoid it anyway? () selection of (locally) minimal dialect - is there an obvious choice?  is it sanity-like?  what is the cost of this?  is it adequate? () what else...?
21:19 mncharity my take is () yes, no, () no, shudder, high, no.
21:19 felipe joined #perl6
21:20 mncharity my fuzzy impression is Eevee is () no, yes () ??, yes, ??, yes
21:20 mncharity and pmichaud:  () ??, sometimes?? () yes, yes, acceptable??, ??
21:21 Eevee ehh.  if non-minimalism is useful your test might be too complicated
21:22 Eevee but as a general rule..  the more complex some feature, the more effort it is probably worth expending to not use it in an unrelated test
21:23 mncharity re what else... () variation of 'is there an obvious choice': is there an obvious complexity ordering - yes/no?
21:23 mncharity :)
21:24 Eevee re obvious choice: the line is blurry and depends per feature how often it's particularly useful for the rest of the suite
21:25 pmichaud obvious choice:  as with most things of this nature, it may be better to get there by successive approximations with refinement rather than try to a-priori determine it at the outset
21:25 Eevee agreed
21:25 pmichaud and I don't think it has to be a strict ordering
21:26 pmichaud but I think we can all agree that it's perfectly reasonable to do math tests without having .nextwith available :-)
21:26 Eevee if the test suite hits 70% complete and some feature X is only used (outside its tests) in one place, it's probably worth rewriting
21:26 pmichaud this isn't to say that none of the test suite can use .nextwith, but just that it's not really necessary or important for math tests
21:26 Eevee (fsvo '70%', 'complete', 'its'...)
21:26 pmichaud especially since if, as in this case, there's a far more straightforward way to do the tests using only basic Test.pm functionality
21:27 mncharity ... yes/no?  is it a function of ease of (some) implementation, or of usefulness to test suite?  is the concept flawed, or merely unknown-but-approximatable?
21:27 pmichaud function of both
21:27 mncharity re 70% agreed.
21:28 pmichaud is having .nextwith in the arith.t tests useful?  I don't think it is.
21:28 pmichaud so, ease of implementation concerns dominate.
21:28 Eevee well, I think those are somewhat similar
21:28 Eevee if X is particularly useful to the test suite then it's probably going to be useful in general
21:29 pmichaud I'm not so sure about that
21:29 Auzon joined #perl6
21:29 pmichaud I can think of features that would be particularly useful for testing but might not be terribly important for general purpose programming
21:29 pmichaud END blocks come to mind
21:29 Eevee ah, hm
21:29 pmichaud I'm not saying END is generally unimportant, but simply that I can write a lot of useful programs without ever needing END
21:30 pmichaud that said, END is important enough to testing that I think it's a reasonable candidate for sanity-level
21:30 mncharity the design points I'd like hit are () sanity (concensus)  () not-too insane tests for test-driven-development of toys (some disagreement on details, but basic agreement), () 'pull out all the stops for maximal programmer productivity and test coverage' tests for validation (no concensus).
21:30 Eevee yeah that's fair
21:30 pmichaud "pull out all stops"  -- we do that by using #skip blocks in the test files, and or separating them out
21:31 pmichaud if by "maximal programmer productivity" you mean "maximal 'test programmer' productivity", I think that actually argues in favor of more simplicity because we increase the number of potential test authors
21:31 mncharity err, rephrasing "pull out all stops", "no holds barred", "anything goes", "maximal use of p6 power".
21:32 pmichaud in a particular test implementation?
21:32 pmichaud in the test suite in general?
21:32 pmichaud or in the language?
21:32 mncharity in the third "flavor of tests", whose focus is on validation of mature implementations, rather than helping immature ones.
21:33 pmichaud simply put the mature tests into test files that focus on the mature features
21:33 obra t/spec, which is what I thought was being discussed, is defined as validating particular features as defined in the synopses.
21:33 japhb joined #perl6
21:34 pmichaud yes, I thought our discussion was limited to t/spec tests
21:34 pmichaud I'm not talking about all testing for modules written in Perl 6
21:34 obra which makes "anything goes" somewhat antithetical to the whole point.
21:34 mncharity sigh, so I'm clearly failing, let's see..
21:35 pmichaud give me an example of a "mature feature" that you think is appropriate for arith.t
21:35 pmichaud oh, I've got one.  heredocs.
21:36 obra . o { POD }
21:37 pmichaud I can see why someone would want to use a heredoc in arith.t, perhaps as a database of things to be tested inside of a loop or the like
21:37 pmichaud however, I think we can do some basic tests in arith.t without heredocs, and then skip over the part that does use heredocs
21:38 pmichaud fudge allows us to do that.
21:38 mncharity re t/spec, if t/spec's role is defined as validation of mature impls, rather than helping immature ones, then that's a very hard task which I'd like to write in real p6, not in some restricted dialect.
21:38 pmichaud mncharity: would you need "real p6" for *every* test ?
21:39 pmichaud I'm not saying that tests can't contain "real p6".  I'm saying that we should adjust the amount of "real p6" in each test to the level appropriate for each test.
21:39 pmichaud clearly a mature impl should be able to pass any tests that an immature one passes.
21:40 obra t/spec is for validation of features.
21:40 obra I would expect that tests for arithmetic are going to require fewer interesting features than tests for overloading.
21:40 pmichaud exactly
21:41 obra In all cases within t/spec, if a refactoring can remove a feature not related to the spec being tested, that refactoring should be considered reasonable
21:41 obra er. remove a dependency on
21:41 pmichaud obra++
21:42 Eevee yes
21:42 mncharity I just got an out of band "please shut up now".  so, I'm out.  bbl
21:42 pmichaud in general it's better to reduce dependencies than to increase them :-)
21:42 Auzon Definitely.
21:42 Auzon I'll keep that in mind this summer.
21:46 jferrero joined #perl6
21:51 [particle] auzon, we'd like you to sign a cla so you can get a parrot commit bit if you need one this summer
21:51 [particle] cla?
21:51 pmichaud purl, CLA?
21:51 pmichaud purl?
21:51 [particle] purl: cla is Contributor License Agreement or http://www.perlfoundation.org/contributor_license_agreement
21:52 pmichaud ENOPURL
21:52 pmichaud (purl already knows cla :-)
21:52 Auzon ;)
21:52 [particle] Auzon: it's probably not necessary, but it can't hurt to send one in
21:53 Auzon Alright. I'll check it out
21:53 Zaba_ joined #perl6
21:55 mncharity unless there has been a profound culture shift here in pugs land, there is no 'the consensus' and no 'the plan' for technical discussion to constitute an attempt to derail.  that kind of political crud and groupthink has had little role here, and hopefully this will remain the case.
21:56 mncharity perhaps it can't survive in the absence of a benevolent dictator.  but the local culture has been quite distinct from p6l and parrot.
22:12 Limbic_Region joined #perl6
22:35 clintongormley joined #perl6
22:35 clintongormley heya
22:35 clintongormley any idea why the http://dev.pugscode.org/changeset/xxxx links aren't working?
22:35 clintongormley -> 500 errors
22:36 Eevee they've been off and on for me, not sure why
22:37 clintongormley http://dev.pugscode.org/browser is doing the same
22:37 Eevee looks like everything is
22:38 clintongormley damn python
22:38 clintongormley .oO( always blame the language )
22:38 Eevee could be damn apache -> damn C
22:39 clintongormley :)
22:42 clintongormley this has probably been asked a million times before, but...
22:42 clintongormley how can i contribute? i'm a reasonably experienced Perl programmer, but zero C experience
22:42 clintongormley are there a list of small finite tasks that i could choose from?
22:43 obra clintongormley: one of the things that needs lots of help is fleshing out the p6 spec tests
22:43 clintongormley i presume there isn't a list of tests that need writing, but rather : here are the specs, add the missing tests?
22:43 * [particle] is very glad obra++ is still here
22:44 obra rakudo, the p6 implementation on top of parrot finally got its milestone act together
22:44 obra so there's a list of milestones which roughly tie to p6 'synopses' (specs)
22:44 Eevee clintongormley: ha, same boat as I
22:44 clintongormley yeah, i saw that post
22:44 obra and there is a huge mass of disorganized tests built up over time as pugs (the haskell implementation) has grown.
22:45 obra so basically, it's a matter of picking a section of one of the synopses tied to a near-term milestone and starting to enumerate clean, simple tests for that syn's features
22:45 obra either pulled from the existing pugs tests or out of whole cloth
22:45 clintongormley that last line just answered the question i was writing :)
22:46 Eevee oh, there are pugs tests outside of t/spec?  where are they?  (or is it obvious like pugs/t/)
22:46 clintongormley which would be a good syn to start with?
22:46 obra pugs/t
22:46 [particle] eevee: occam's razor
22:46 Eevee the world would be a better place if occam's razor always applied to programming
22:47 Eevee so far its success rate for me is around 7%
22:47 obra [particle]: opinions on good syns to start with?
22:47 [particle] i say go to spec.pugscode.org
22:47 clintongormley and the tests are written in p5 or p6 or other
22:47 [particle] pick a synopsis from the list
22:47 obra tests are written in p6
22:47 obra svn co http://svn.perl.org/parrot/trunk parrot
22:47 lambdabot Title: Revision 27277: /trunk
22:47 obra cd parrot
22:47 obra perl Makefile.PL
22:47 obra make
22:47 obra cd languages/perl6
22:48 obra make spectest
22:48 obra that will grab all of the existing t/spec from the pugs repo and run it
22:48 [particle] however... rakudo sorely needs more oo tests
22:48 clintongormley you've never done that before, have you ;)
22:48 Auzon Aha, obra++ for make spectest
22:48 Auzon I was looking for that recently
22:48 obra Auzon: I didn't do that
22:48 obra I tried this for the first time today
22:48 Auzon No, pointing it out
22:48 obra I'm cribbing from my notes
22:48 obra ah :)
22:48 [particle] so t/oo/ is a good place to start
22:48 obra particle++ created it
22:49 Auzon Can we run Rakudo against pugs/t yet?
22:49 [particle] no
22:49 [particle] probably never will
22:49 obra [particle]: can I nopaste our this-morning conversation about tests and tools
22:49 [particle] auzon: we need to convert all pugs/t/ to pugs/t/spec
22:49 Eevee isn't the idea to get rid of pugs/t and merge it into t/spec?
22:49 [particle] obra: feel free
22:50 [particle] i'll throw some tuits into converting tests in the next week
22:50 obra Eevee: let's not go there ;)
22:50 Auzon I'll have tuits starting a week from today
22:50 obra there will always be a wide variety of tests that aren't spec-based
22:50 [particle] Auzon: good to know!
22:51 Auzon I'd love to jump in now, but I have finals.
22:51 [particle] something that would really help us out, and is very easy to do, is to convert all pod blocks to pod6
22:51 obra http://paste.husk.org/11312
22:51 [particle] replace =begin with =begin pod and =cut with =end pod
22:52 obra that's the conversation [particle] and I had about how to start doing this
22:52 clintongormley particle - that's it?
22:52 clintongormley just search all available code and change those lines?
22:52 [particle] no, but it's a start
22:52 Auzon Hm... I bet I could automate that ;)
22:52 [particle] clintongormley: for the pod, basicly, yes
22:53 [particle] as soon as the pod parses, it means rakudo will actually parsefail source, instead of docs
22:53 clintongormley :)
22:53 clintongormley ok - so just the rakudo files?
22:53 obra clintongormley: Eevee: would the two of you like commit bits to the pugs repo so you can start to commit to t/spec?
22:53 [particle] no.
22:53 [particle] pugs/t, except t/spec/
22:53 clintongormley and for committing changes?
22:53 obra yes
22:53 clintongormley yes please
22:53 Eevee sure
22:53 obra email addresses, pelase
22:53 obra please
22:53 clintongormley time is short, so can't promise results, but....
22:54 clintongormley clint@traveljury.com
22:54 mncharity pugs: my $a = [3,4,5]; my @b = @($a); say pop(@b); say $a;
22:54 exp_evalbot OUTPUT[5␤3 4 5␤]
22:54 obra even a single commit is good :)
22:54 clintongormley svn ci "changed whitespace"
22:54 obra if it's more readable :)
22:54 clintongormley svn revert
22:54 obra traditional first commit is to add yourself to AUTHORS
22:54 Eevee perl6@veekun.com
22:54 obra just to test everything
22:55 obra ok. you should each have a commit bit in your inbox
22:55 clintongormley is there a syntax highlighter available for p6 yet?
22:55 clintongormley i suppose it is changing too fast
22:56 Eevee I vaguely recall seeing something for vim a while back
22:56 Eevee so there might be an up-to-date one floating around
22:56 clintongormley will google
22:56 clintongormley commit bit received - thanks
22:56 obra look in pugs/util when you check out the pugs repo
22:56 Eevee got bit
22:56 obra I see a vim mode at the least
22:56 obra "updates to that would be cool too"
22:57 obra Ok. I'm brain-fried and need to wander off
22:57 Eevee what a coincidence!  I've always meant to figure out vim syntax highlighting
22:57 obra good luck, guys
22:58 clintongormley thanks :)
22:58 Eevee seeya
23:01 clintongormley commits to trunk? a branch?
23:02 Auzon I believe everything is in trunk
23:02 clintongormley ok
23:02 Auzon I don't actually see any branches.
23:03 clintongormley http://svn.perl.org/viewvc/parrot/branches/
23:03 lambdabot Title: 1 [ 6 parrot 1 ] 1 12 Index of /branches 30
23:04 Auzon oh, that's parrot.
23:04 Auzon ^_^'
23:04 Auzon Are you committing to Parrot or Pugs?
23:05 clintongormley ummm which one should i be committing to :)
23:05 Auzon Commitbit is for Pugs.
23:05 clintongormley isn't the focus on rakudo (and thus parrot) now?
23:05 Auzon Yes, but a lot of stuff still lives in Pugs
23:05 clintongormley ah ok
23:05 * clintongormley is puzzled
23:06 vaughn joined #perl6
23:06 Auzon Yeah. You'll be working in the Pugs repo
23:06 Auzon That's where the big test suite resides.
23:07 Auzon And pretty much all Perl6 code that isn't Rakudo.
23:07 clintongormley so, i should be writing tests in pugs but running them with rakudo?
23:08 [particle] clintongormley: the perl 6 tests are in the pugs repo, because it's very easy to get a pugs commit bit
23:08 [particle] that makes it easy to recruit testers
23:08 clintongormley so: pugs/trunk/t
23:08 [particle] rakudo does an 'svn co' of pugs/t/spec/
23:08 [particle] no, there's no trunk iirc
23:08 [particle] svn co  http://svn.pugscode.org/pugs pugs
23:08 lambdabot Title: Revision 20349: /
23:08 [particle] or, if you don't want it to take all day,
23:08 [particle] svn co  http://svn.pugscode.org/pugs/t pugs/t
23:09 lambdabot Title: Revision 20349: /t
23:09 clintongormley ahhh - ok, so not : http://svn.perl.org/viewvc/perl6/pugs/
23:09 lambdabot Title: 1 [ 5 perl6 1 ] 1 e Index of /pugs 30
23:09 [particle] no, go with pugscode
23:09 [particle] http://pugscode.org for more
23:09 lambdabot Title: Pugs - pugscode
23:11 clintongormley so the previous instructions for rakudo : "make spectest" - does this require me to have the pugs tests downloaded and in a particular directory?
23:11 * clintongormley promises to stop annoying shortly
23:11 [particle] no
23:12 clintongormley ok - ta
23:12 [particle] you need to have and build parrot
23:12 clintongormley will shut up now and give things a try :)
23:12 [particle] then build languages/perl 6/
23:12 [particle] *perl6
23:12 [particle] if you look at the Makefile in languages/perl6/ it'll tell you all you need to know
23:12 clintongormley many thanks
23:13 clintongormley g'night all
23:13 [particle] ~~
23:13 Auzon see you
23:13 clintongormley left #perl6
23:28 cookys_ joined #perl6
23:29 mncharity TimToady: (5) it seems at eos, statementlist -> EXPR which calls expect_term, which succeeds on stdstopper, and exists the loop because pos hasn't moved.  but EXPR then panics because @termstack is empty?
23:31 felipe joined #perl6
23:40 mncharity works if panic() is replaced by regex failure.
23:40 mncharity *search failure
23:44 meppl good night
23:47 mncharity good night meppl :)
23:48 meppl ;)
23:51 mncharity TimToady: (6) It looks like dotty doesn't get prec set?  perhaps dotty --> Term  and an additional prec case in post.
23:59 pugs_svnbot r20350 | lwall++ | [STD] much-improved match model, now handles singular/plural bindings
23:59 pugs_svnbot diff: http://dev.pugscode.org/changeset/20350

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

Perl 6 | Reference Documentation | Rakudo