pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/ Set by TimToady on 25 January 2008. |
|||
04:20
ilogger2 joined
04:34
eternaleye joined
04:47
eternaleye left
04:58
eternaleye joined
05:02
Psyche^ joined
|
|||
allbery_b wonders if that last message was a mistake | 05:05 | ||
spinclad | allbery_b: no, he did leave after 'good night all &' | 05:06 | |
:) | |||
allbery_b | mm, wrong venue :) | 05:07 | |
05:14
Psyche^ is now known as Patterner
05:48
Zaba_ joined
|
|||
TimToady | allbery_b: yes, it was. :) | 05:53 | |
allbery_b | hm | 05:54 | |
06:16
Zaba_ is now known as Zaba
|
|||
cathyal | anyone using irssi | 06:21 | |
hi tim, allbery_b | |||
Patterner | is that a trick question, cathyal? | 06:22 | |
cathyal | no | ||
Patterner | yes | ||
cathyal | ok so Irssi: Join to #irssi was synced in 253 secs | 06:23 | |
how does that work? | |||
addition multiplication, not a single step procesS? | |||
seems like a prime number | |||
253.. | |||
fullermd | It's not, it's 11*23 :) | ||
cathyal | wait go slow, what do you mean | ||
fullermd shrugs. | 06:24 | ||
It's not prime, it's a product of 2 primes. | 06:25 | ||
cathyal | is it not a single step process? | ||
fullermd | What, the syncing? | ||
cathyal | yeah | ||
fullermd | I dunno. It pulls a list of users at least. Not sure what else it does. | ||
cathyal | ok | 06:26 | |
Eevee | wow | 06:28 | |
I've gotten 23 seconds before but not four minutes | |||
cathyal | thats my point | ||
Eevee | might have lost an unimportant response to something and irssi waited a while before giving up | 06:29 | |
cathyal shrugs | 06:31 | ||
k | |||
07:03
justatheory joined
07:04
justatheory left
07:07
araujo joined
|
|||
pugs_svnbot | r20338 | lwall++ | [STD5] throw out $depth and $binding params; should be done by caller, not callee | 07:13 | |
diff: dev.pugscode.org/changeset/20338 | |||
lambdabot | Title: Changeset 20338 - Pugs - Trac | ||
07:24
meppl joined
08:18
iblechbot joined
08:24
Schwern joined
08:40
luqui joined
09:01
FurnaceBoy joined
09:10
wknight8111 joined
09:20
icwiener joined
09:30
FurnaceBoy left
09:37
FurnaceBoy joined
09:39
barney joined
09:55
meppl left
09:56
meppl joined
10:05
FurnaceBoy left
10:06
smtms joined
10:24
nipotan joined
10:41
barney left
10:47
icwiener_ joined
10:59
icwiener left
11:04
yewenbin joined
11:32
meppl left
11:33
pbuetow joined
11:35
meppl joined
12:17
nipotan is now known as nipotaway
12:39
wknight8111 left
12:53
iblechbot left
13:25
sscaffidi joined
13:37
eternaleye left
13:46
riffraff joined
13:55
kcwu_ joined
14:02
TJCRI joined
14:11
Zaba_ joined,
Lorn joined
14:14
iblechbot joined
14:23
Zaba left
14:24
Zaba_ is now known as Zaba,
tzoa joined
14:32
chris2 joined
14:39
yewenbin left,
syle joined
14:44
cognominal_ joined
14:55
FurnaceBoy joined
15:01
rhr joined
|
|||
pugs_svnbot | r20339 | lwall++ | [STD] fate should also be completely hidden from user view | 15:07 | |
diff: dev.pugscode.org/changeset/20339 | |||
lambdabot | Title: Changeset 20339 - Pugs - Trac | ||
15:08
yewenbin joined,
mncharity joined
15:11
kyrbe joined,
kyrbe left
|
|||
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:19 | |
at least what's left looks a heck of a lot cleaner now | 15:20 | ||
kolibrie | TimToady++ # tidying up | ||
TimToady | well, thanks, I just hate fighting my own past stupidities. but it's the only way forward... | 15:21 | |
15:32
kcwu_ is now known as kcwu
15:35
alester joined
|
|||
[particle] | so... does perl 6 have a 'reset' op? or is that a method on ::?COMPILER now? ;) | 15:37 | |
TimToady | which reset are you referring to? | 15:38 | |
it was overloaded... | |||
but I believe we've managed to get rid of all its meanings now | |||
[particle] | yes, i believe so too | ||
was reset in perl 1? | 15:39 | ||
TimToady | I believe so | ||
at least, the variant that clobbered lots of variables | |||
Eevee | wow I completely forgot reset even existed | ||
TimToady | not sure about resetting ?...? | ||
[particle] | i wonder about implementing that in punie. | ||
Eevee | hack from before lexicals existed? | 15:40 | |
TimToady | indeed | ||
[particle] | shouldn't be hard, but i'm not sure pct supports it. there are ways around that, thought. | ||
*though. | |||
TimToady | variable reset just needs to be able to navigate the symbol table | 15:41 | |
regex reset could be harder | |||
mncharity | "I just hate fighting my own past stupidities. but it's the only way forward...", oh yeah. :) | 15:42 | |
civilization and life as a bootstrap exercise | |||
TimToady | anyway, I think you'll find STD.pm rather prettier now | ||
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:44 | |
TimToady | it's valid, it just doesn't mean what you think it means | 15:45 | |
mncharity | :) | ||
15:45
sscaffidi left
|
|||
TimToady | it calls the "if" subroutine, and then derefs as a hash subscript of 4 | 15:45 | |
which, fortunately, is likely to blow up | 15:46 | ||
especially if you've neglected to define an "if" sub | |||
pugs_svnbot | r20340 | jnthn++ | [spectest] A little fudging for Rakudo. | ||
diff: dev.pugscode.org/changeset/20340 | |||
lambdabot | Title: Changeset 20340 - Pugs - Trac | ||
TimToady | so it can catch it at compile time | ||
(usually) | 15:47 | ||
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. | ||
we'll need a new conversational idiom to distinguish "if()" from "if ()". :) "sc:if"? | 15:48 | ||
TimToady | the first one's pronounced "interface" :) | 15:50 | |
15:55
meppl left
|
|||
TimToady | re (1), yes, though interestingly repeat's while/until probably doesn't | 15:56 | |
15:56
meppl joined
|
|||
pugs_svnbot | r20341 | lwall++ | [STD] elsif and else need <nofat_space> since they could be a new statement | 15:58 | |
diff: dev.pugscode.org/changeset/20341 | |||
TimToady | whoops, forgot your putter++ :) | ||
biab & | 16:03 | ||
mncharity | lol | ||
pugs_svnbot | r20342 | putter++ | [elf_e] if's must be followed by a space. | ||
diff: dev.pugscode.org/changeset/20342 | |||
lambdabot | Title: Changeset 20342 - Pugs - Trac | ||
16:13
luqui left
|
|||
mncharity | (2) q_balanced is still using the now non-existent $stop argument to EXPR. | 16:22 | |
What is the story behind subcall being commented out? | 16:25 | ||
16:27
rindolf joined
16:29
yewenbin left
16:31
kanru joined
16:32
Chillance joined
16:36
rdice joined
|
|||
pugs_svnbot | r20343 | putter++ | [elf] else's must be followed by a space. | 16:40 | |
diff: dev.pugscode.org/changeset/20343 | |||
lambdabot | Title: Changeset 20343 - Pugs - Trac | ||
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:41 | |
rindolf | Hi TimToady | ||
TimToady | same story as packagevar and fulltypename, basically | ||
howdy | |||
rindolf | TimToady: I have more lines for my "I'm the Real TimToady song." | 16:42 | |
"And Randal Schwartz said... Nothing, you Idiot! Randal Schwartz's mad at you for not paying attention." | |||
TimToady | I don't recognize that tune... | ||
rindolf | TimToady: wait a sec. | ||
TimToady: can you see YouTube? | |||
TimToady | not at the moment | ||
Eevee | TimToady: you're not really missing much | ||
16:43
eternaleye joined
|
|||
rindolf | TimToady: well use www.youtube.com/watch?v=zCuwOG39HMo | 16:43 | |
lambdabot | Title: YouTube - Oops The Real Sim Shady Did It Again | ||
rindolf | TimToady: you can also use youtube-dl. | ||
TimToady: which is written in Python (Shavess!) but is still cool. | 16:44 | ||
mncharity | re subcall, ah, ok. then I'll continue using it for now. | 16:45 | |
rindolf | TimToady: do you know Yiddish? | ||
TimToady: I know a little of it. | |||
mncharity | (3) token dotty uses explict '.' rather than <sym>, so does endsym unspacey get used or not? | 16:46 | |
TimToady | re (2), the quote languages should be using a derived terminator like the regex sublanguages | 16:47 | |
I'm still refactoring that | |||
mncharity | nod | ||
TimToady | rindolf: not enough to know whether I'm a schlemiel or a schlemazl | ||
rindolf | TimToady: heh. | 16:48 | |
TimToady++ | |||
TimToady | endsym is only used on <sym> | ||
obra | pmichaud: ping | 16:51 | |
TimToady | I'm disinclined to all unspace in the middle of .* et al. but after that token is probably okay | 16:52 | |
*allow | |||
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:55 | |
pugs_svnbot | r20344 | lwall++ | [STD] dotty needs more unspaciness, putter++ | ||
diff: dev.pugscode.org/changeset/20344 | |||
lambdabot | Title: Changeset 20344 - Pugs - Trac | ||
mncharity | ah :) | ||
TimToady | problem is that <sym> would match .* literally, rather than .+, .?, etc. | ||
otherwise I have to split those all out as separate tokens | 16:56 | ||
and that was one of the things that was making my lexers huger earlier | |||
probably not as big a problem now that I split lexers on first char | 16:57 | ||
16:58
sscaffidi joined
|
|||
TimToady | twigils also act as lexer multipliers if you're careful... | 16:59 | |
*not careful | |||
[particle] | depends on what you're being careful to accomplish | 17:02 | |
17:08
tzoa left
|
|||
TimToady | I/O, I/O, so off to work I go... & | 17:09 | |
rindolf | A Bit or Bite so late at night. | 17:10 | |
I Bit a Bite so late at night. | |||
mncharity | oy :) | 17:19 | |
pmichaud | 16:46 <obra> pmichaud: ping | 17:21 | |
pong | |||
[particle] | rats. now i gotta go. bbi~2h | 17:22 | |
obra | pmichaud: hiya. | 17:23 | |
particle has been talking me through some of the bits of extracting and converting pugs tests. | |||
I started poking at something at looked "easy" and got an interesting explosion: | 17:24 | ||
then perl t/harness --fudge --keep-exit-code t/pugs/operators/arith.t | |||
sub tryok ($ok, $todo = '') { | |||
trips up rakudo's parser | |||
pmichaud | just a sec | 17:25 | |
I don't know if initializers are implemented yet | |||
rindolf | Hi pmichaud | ||
Hi obra, [particle] | |||
rindolf is editing www.perlfoundation.org/perl5/index.cgi?history | |||
lambdabot | Title: History / Perl 5 Wiki | ||
pmichaud | obra: it looks like rakudo doesn't understand the = '' part yet | 17:26 | |
17:26
justatheory joined
|
|||
pmichaud | not hard to implement, just hasn't been done yet. Could try it as $todo? though | 17:26 | |
obra | poking | 17:27 | |
pmichaud | oh, I misread rakudo's grammar -- looks like ? and ! aren't there yet either | ||
oh wait, yes they are | |||
obra | there's other fudging I need to do | 17:29 | |
for undefine $a; | |||
and ..some operator | |||
but I'm doing the brute force thing right now | 17:30 | ||
t/pugs/operators/arith......Scope not found for PAST::Var 'ok' | |||
pugs_svnbot | r20345 | clkao++ | use items for bind_pad. | ||
diff: dev.pugscode.org/changeset/20345 | |||
lambdabot | Title: Changeset 20345 - Pugs - Trac | ||
17:30
tcliou joined
|
|||
pmichaud | we should be able to get the '=' initializer implemented relatively quickly | 17:31 | |
I'll file a ticket for it | |||
obra | cool. | 17:33 | |
mostly, I'm trying to understand the test extraction process | |||
so that I can write it up for the list to maybe lure in some willing help | |||
pmichaud | feel free to ask questions here -- any of myself, particle, or TimToady can likely answer | ||
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. | ||
diff: dev.pugscode.org/changeset/20346 | |||
obra nods | 17:34 | ||
pmichaud | one potential workaround for now is sub foo($ok, $todo?) { $todo = $todo // ''; ... } | ||
I *think* we've implemented infix:<//> | |||
obra nods | 17:35 | ||
pmichaud checks. | |||
obra | I don't know what that new failure I pasted means | ||
pmichaud | looks like a typo in the codegen somewhere | 17:36 | |
we shouldn't have a PAST::Var 'ok' -- it should be '$ok' | |||
obra | (Pasted to: paste.husk.org/11305 | ||
both failures and the currently hacked up t file | |||
pmichaud | oh | 17:37 | |
that's looking for &ok | |||
(which gets automorphed into 'ok') | |||
what is the &ok.nextwith(...) supposed to do? | 17:38 | ||
obra | looking | ||
Any pugs test hackers able to shed light? | 17:39 | ||
pmichaud | my initial guess is that it's automatically counting tests | ||
17:39
pmurias joined
|
|||
pmichaud | and that .nextwith is some sort of currying | 17:39 | |
(updating my pugs repo so I can check) | 17:40 | ||
pmurias | mncharity: do you use the elf_e executable? | ||
mncharity | TimToady: (4) why is stdstopper a regex rather than a token? also fulltypename. | 17:41 | |
obra | (I sadly need to run away for a going-away lunch) | ||
pmichaud | no problem. I'll look into it a bit further and message you | ||
I need to do lunch also | |||
I'll be back around 1400 CDT | |||
(80 mins from now) | 17:42 | ||
mncharity | pmurias: yes. and _nomoose. | ||
pmichaud | ah, .nextwith is in S06 | ||
mncharity | pmurias: ... why? :) | 17:43 | |
pmichaud | my opinion is that testing for arithmetics shouldn't depend on the availability of wrapping. | 17:44 | |
pmurias | mncharity: i'm wondering if there is any point of keeping it | 17:45 | |
mncharity: why do you use elf_e instead of elf_e_nomoose? (testing?) | |||
pmichaud: .nextwith is used to provide better error traces | 17:47 | ||
pmichaud | pmurias: how so? | 17:49 | |
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:50 | ||
mncharity | nextwith is a tailcail, so caller remains the test line of interest | ||
pmurias | it's a bit pointless as &ok dosn't throw exceptions | ||
mncharity | don't think .wrap is needed. (could be wrong. and not expressing a preference on it's (non)existance) | 17:51 | |
17:51
jferrero joined
|
|||
pmichaud | oh. S06 describes .nextwith in its section on wrapping. | 17:51 | |
17:53
chris2 left
|
|||
pmurias | mncharity: will elf support named parameter? | 17:54 | |
pmichaud: do you want to change the test? | 17:57 | ||
pmichaud | definitely | ||
(want it to change, yes.) | |||
pmurias | changing .nextwith to function application should work | 17:58 | |
pmichaud | yes | ||
also, particle and I were talking about adjusting the standard Test.pm functions a bit | |||
but I don't have any specifics handy at the moment | 17:59 | ||
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. | ||
pmurias | mncharity: i'm not really sure how much Moose features can we use | 18:00 | |
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. | 18:01 | |
pmurias | and the moose on is too slow for me, so i don't update/use it all | 18:02 | |
mncharity: boxing everything would be the alternative to autobox | 18:03 | ||
re named parameters they would change our calling convention | 18:04 | ||
TimToady | re (4), I tend to use "regex" to document the fact that I'm not actually trying to traverse a token | ||
pmurias | so we must choose if we do them properly, hack them on or omit them | 18:05 | |
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 | ||
TimToady | not sure why fulltypename has that, unless I had it backtracking in some form or other | ||
mncharity | it so it may be compiler analysis intensive. | 18:06 | |
I'm tempted to minimize the feature set of my elf core code | |||
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:07 | ||
pmurias | mncharity: i don't thing the runtime hit will be significant but the calling convention would be incompatible from the perl5 one | 18:09 | |
pugs_svnbot | r20347 | lwall++ | [STD] fulltypename should probably be a rule | 18:10 | |
diff: dev.pugscode.org/changeset/20347 | |||
pmurias | as one would have to pass the named parameters as one of the positionals | 18:11 | |
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. | ||
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:14 | ||
pmurias | if you don't care for compatibility i think it's worth having them in | 18:15 | |
mncharity | actually, it would eventually be nice to be able to control calling convention on a per-sub basis. | ||
though that requires cross-module analysis, which may fit the independently compiled modules story. | 18:17 | ||
18:17
eternaleye left
|
|||
mncharity | *not fit | 18:17 | |
pmurias | you have independently performed analysis then | ||
mncharity | re regex, ah, ok. | 18:18 | |
18:19
eternaleye joined
|
|||
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:20 | |
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:26 | ||
elf is intended to be more a family of compilers than a single monolithic thing like pugs. | 18:27 | ||
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:29 | ||
and both the "it's all p6"(well, except the parser for now) and the architecture is designed to facilitate such use. | |||
s/than/then/ | 18:30 | ||
pmurias | the current design of having a seperate executable for each variant would get in the way loads of derivatives | 18:31 | |
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:33 | |
18:34
FurnaceBoy left
|
|||
pmurias | what subset should elf be in? | 18:36 | |
the one shared by all|most backends, or the most complete one? | |||
18:36
Zaba_ joined
|
|||
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:37 | |
elf_x EmitSomethingElse.pm -x -o foo.whatever foo.pm compiles foo.pm with the new emittter. | 18:38 | ||
pmurias | i'm aware of the monkey patching trick ;) | 18:39 | |
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:42 | |
or no, I guess we do. that's _nomoose. currently maintained as a small fork. | 18:43 | ||
18:44
rindolf left
|
|||
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:45 | |
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:47 | ||
dev.pugscode.org/browser/perl5/Data-Bind | 18:48 | ||
lambdabot | Title: /perl5/Data-Bind - Pugs - Trac | 18:49 | |
pmurias | mncharity: the problem with forks starts when they are incompatible with each other | ||
mncharity: i used Data-Bind in the short-lived mp6v6 | |||
18:49
Zaba left
18:52
riffraff left
|
|||
mncharity | re forks incompatible, that, like, implies active development! more than one developer! that would be a wonderful problem to have. ;) | 18:52 | |
pmurias | for example code emitted by RegexYare would either follow the named parameter convention, or the positional only one | ||
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:55 | |
18:57
hermax_ joined,
hermax_ left
|
|||
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:04 | |
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:07 | ||
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:09 | ||
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:12 | ||
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:14 | ||
issues of divergent IR's seem likely to be minor compared to shaking down spec and "getting the first one working". | 19:15 | ||
bbiab | 19:16 | ||
19:34
jferrero left
|
|||
pmichaud | obra: message about arith.t sent to perl6-compiler mailing list | 19:37 | |
obra | pmichaud: thanks | 19:39 | |
pmichaud | er, maybe not. checking | 19:40 | |
oops, sent to wrong address. Re-sending. | |||
*now* it's sent. | |||
(time to fix my mail aliases) | |||
obra | heh | 19:41 | |
my goal is more about getting down an easy recipe for taking old pugs tests and bringing them into the new world order easily | |||
pmichaud | this message somewhat addresses that, I think. | ||
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:42 | ||
(where Test.pm might end up meaning "Rakudo's Test.pm") | |||
19:44
rob__ joined
19:45
rob__ is now known as r0bby_
19:46
r0bby_ left
|
|||
mncharity | obra: re the new world order, are there any docs? :) | 19:55 | |
pugs_svnbot | r20348 | putter++ | t/operators/arith.t: .nextwith tailcalls commented out to help rakudo. | ||
r20348 | putter++ | Probably degrades error messages, so restore once rakudo does .nextwith. | |||
diff: dev.pugscode.org/changeset/20348 | |||
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:56 | |
pugs_svnbot | r20349 | clkao++ | assign into pad for rw. | ||
diff: dev.pugscode.org/changeset/20349 | |||
pmichaud | per my message, I disagree with "restore .nextwith" | 19:57 | |
rakudo isn't the only other Perl 6 implementation | |||
obra | mncharity: mailing list conversation between pmichaud [particle] and TimToady with a bunch of existing work to create the spec/ hierarchy | 19:59 | |
what I'm trying to help get together is "and here's how to masssage the existing body of not-so-organized tests | 20:00 | ||
[particle] | obra++ | 20:01 | |
mncharity | re nextwith, but setting up .nextwith as an alias to subcall is easy. | ||
s/is/should be/ | 20:02 | ||
obra | does having .nextwith enhance the tests or are you suggesting it as a porting bandaid? | 20:03 | |
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:04 | |
obra | I am not qualifed to talk about this. | ||
obra defers to [particle] and pmichaud | |||
[particle] | mncharity: i disagree with that perspective | ||
t/spec/ should be well-factored | 20:05 | ||
mncharity | re suggesting, merely pointing out that for elf, I'd have hacked in .nextwith, rather than hacking the test. | ||
[particle] | it's not where it should be yet, because it needs a larger effort | ||
tests should rely only on well-documented parts of perl 6 | 20:06 | ||
that is, whatever is required for Test.pm to work | |||
of course, that may be different for each implementation | |||
mncharity | [particle]: validating p6 well will be quite hard. making it harder by using a restricted dialect seems a problematic choice. | 20:07 | |
[particle] | how do i best say this... | ||
ultimately, yes, we need to validate full perl 6. and it should be free to use macros, etc. | 20:08 | ||
now, today, when there are multiple burgeoning implementations, we need to concentrate on developing tests that rely on a minimum of features | |||
that set of features will grow as the implementations grow | 20:09 | ||
there's really no one way to bootstrap | |||
we have to be reasonable about it | |||
so, when testing math, it's better not to rely on tailcalls | |||
that's my feeling, at least. | 20:10 | ||
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:11 | |
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:13 | |
if you have a math test failing because you don't support tailcalls, what use is the math test | |||
[particle] | an important difference between the pugs approach an the t/spec/ approach is that the latter is organized by synopsis | 20:15 | |
20:15
Zaba joined
|
|||
[particle] | ...and the synopses are mainly numbered such that you can implement them in numeric order | 20:15 | |
so, for example, you don't need to have implemented s12-objects before s02-bits&pieces | 20:17 | ||
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:18 | |
20:18
wknight8111 joined
|
|||
mncharity | the file based testing. parse fails somewhere in the file, or there's a runtime error, and you lose the file. | 20:19 | |
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:20 | ||
redsix, and I believe PIL-Run dealt with it by trying to be incremental - trying to run as much of the file as possible. | |||
don't remember what PIL2JS did. | |||
[particle] | we now have 't/spec/fudge' to do preprocessing | 20:22 | |
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. | ||
[particle] | you no longer have to worry about parsefails, because '#?elf skipall "parsefail"' will take care of that for you | ||
mncharity | one where individual test setups and tests could succeed or fail on their own. | ||
[particle] | (i may have screwed up the syntax a bit there) | ||
mncharity | and the same infrastructure could serve for generative testing. | 20:23 | |
obra | but writing your trivial test function to use .trynext seems to be counterproductive | ||
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:24 | |
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:26 | ||
obra | mncharity: do you object to having feature tests refactored to exercise fewer features which aren't what you're actually testing? | ||
20:26
nipotaway is now known as nipotan
|
|||
[particle] | mncharity: you're getting ahead of yourself, and the rest of us. all perl 6 implementations are toys now. | 20:26 | |
some day near the release of Pelr 6.0 (official spec and test suite) | 20:27 | ||
20:27
icwiener_ left
|
|||
[particle] | *Perl | 20:27 | |
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?). | ||
backlogging... | |||
[particle] | we'll refactor the tests again to make them better | ||
20:27
Schwern left,
Zaba_ left
|
|||
[particle] | we're in a process of continuous refinement and refactoring | 20:28 | |
right now, t/spec/ better meets the needs of implementations | |||
in the future, that's likely to change, and we'll change it. | |||
obra | (www.nntp.perl.org/group/perl.perl6....g1667.html has been linked here today, right?) | ||
lambdabot | Title: Proposal: refactor the test suite according to synopsis - nntp.perl.org, tinyurl.com/64882k | ||
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:30 | |
the change itself, but it seemed a useful discussion foil. a test suite without :todo<foo>'s could be nice too. :) | 20:31 | ||
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:34 | ||
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:36 | ||
obra | the point of the spec tests is to test specific features defined in the synopses. | 20:38 | |
pmichaud | handling :todo<...> | ||
is already being done with fudge | |||
obra | Broken down by synopsis. | ||
pmichaud | so we already eliminate those from the test suite | ||
(or at least refactor them out into fudge-able todo markers instead of part of the call) | |||
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 | ||
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:39 | |
obra | Eevee: right. | ||
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 | ||
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. | ||
[particle] | mncharity: what's "official" about Perl 6? | 20:40 | |
Eevee | isn't it *always* a good idea to make tests as specific as possible | ||
[particle] | 1) the Spec. 2) the test suite. | ||
pmurias | obra: what's wrong with torture tests? | ||
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:41 | |
obra | ==pmichaud | ||
[particle] | t/spec/torture/some_crazy_tests.t | ||
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 | ||
...as long as all of the tests aren't using the tortuous stuff :-) | 20:42 | ||
20:42
lisppaste3 joined
|
|||
mncharity | oh, let's see, lots of threads... | 20:42 | |
pmichaud | (er, as long as the basic stuff isn't using the tortuous constructs.) | ||
phrasing it slightly different | 20:43 | ||
I would posit that a Perl 6 implementation could be "non-toy" and still not have .nextwith implemented. | |||
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:44 | ||
having operator precedence working is critical to any non-toy implementation | |||
as is conditionals, loops, variables, etc. | |||
Eevee | yes, feature implementation order isn't guaranteed | ||
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 | |||
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:46 | |
if we were serious about supporting toy no-opp impls, we would need to do "ok(eq(2,2));" or some such. | 20:47 | ||
pmichaud | yes, but that doesn't mean tests should also be using .nextwith or tailcalls or the like :-) | ||
Eevee | I think == is a liiittle bit more basic than tailcalls | 20:48 | |
pmichaud | also, mncharity's logic doesn't quite follow | ||
pmurias | the .nextwith is a bad example as it serves no purpose in that particular test | ||
pmichaud | just because every non-toy implementation requires == doesn't mean you can't have == in a toy implementation :-) | ||
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:49 | |
pmichaud | mncharity: that's assuming that my subs are objects on which I can easily attach methods | ||
20:49
justatheory left
|
|||
pmichaud | Parrot isn't quite there yet | 20:49 | |
20:49
justatheory joined
|
|||
mncharity | err, yeah. s/subcall/method call/g. | 20:50 | |
ah. hmm. | |||
pmichaud | so, "any non-toy can trivially fake..." isn't exactly true in Rakudo's case | ||
obra | so. every implementation could also implement a rot13 filter to keep the content of a test a surprise until runtime. | ||
that doesn't make it useful | |||
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:51 | |
Eevee | I don't want to have to implement $x higher-level "trivial" features just to run tests | ||
obra | implicitly requiring an unrelated feature to perform basic feature tests is pointless and frustrating. | ||
mncharity: you'll note that nobody is arguing about initalizers on variables in signatures, which these tests also required. | 20:52 | ||
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:53 | |
for the purposes of this discussion, I'd say pugs was non-toy. perhaps PIL2JS. | 20:54 | ||
pmichaud | I'm not too concerned with figuring out what is "toy" versus "non-toy", but I agree that Pugs is non-toy. | ||
[particle] | pugs and pil* all used the same parser, no? | ||
pmichaud | I don't know that toy versus non-toy is a useful label or distinction to try to definitively establish | 20:55 | |
mncharity | re same parser, yes | ||
re toy/non-toy, let's see, the core question is... | 20:56 | ||
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:58 | |
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:59 | |
*or paths | |||
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 | 21:01 | |
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. | 21:02 | |
pmichaud | "rich dialect" is a sliding scale, not a definitive item | 21:03 | |
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 | |||
mncharity | ok, so "why would you want it?", | 21:04 | |
pmichaud | why would I want... what? | ||
mncharity | "why would you want to rewrite a math test in non-toy p6?" | 21:05 | |
pmichaud | I wouldn't. | ||
mncharity | :) | ||
pmichaud | if "toy p6" is sufficient to test my math features, then I should use that for writing the test. | ||
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:06 | |
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:08 | |
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. | |||
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. | ||
pmichaud | I disagree | 21:09 | |
mncharity | ! say on :) | ||
pmichaud | one can have increasing complexity of the suite without having to increase the complexity of every test in the suite | ||
"complexity of passable tests will grow as implementation strength grows" | 21:10 | ||
mncharity | so tests are written in varying dialects, whose complexity is a function of their position along some bootstrap path? | ||
pmichaud | ...whose complexity is a function of whatever functionality is needed to adequately describe the test. | 21:11 | |
tests for basic mathematical operations don't require complex functionality. | |||
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:13 | ||
someone should be able to use Perl 6 without having to know all of its richness. | 21:14 | ||
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 | |||
s/say/way/ | |||
afk for a bit | 21:15 | ||
Eevee | pmichaud++ | 21:17 | |
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:22 | |
my take is () yes, no, () no, shudder, high, no. | 21:23 | ||
21:23
felipe joined
|
|||
mncharity | my fuzzy impression is Eevee is () no, yes () ??, yes, ??, yes | 21:24 | |
and pmichaud: () ??, sometimes?? () yes, yes, acceptable??, ?? | 21:25 | ||
Eevee | ehh. if non-minimalism is useful your test might be too complicated | 21:26 | |
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 | |||
mncharity | re what else... () variation of 'is there an obvious choice': is there an obvious complexity ordering - yes/no? | 21:28 | |
:) | |||
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:29 | |
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:30 | |
Eevee | agreed | ||
pmichaud | and I don't think it has to be a strict ordering | ||
but I think we can all agree that it's perfectly reasonable to do math tests without having .nextwith available :-) | |||
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 | ||
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:31 | |
Eevee | (fsvo '70%', 'complete', 'its'...) | ||
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 | ||
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? | ||
pmichaud | function of both | ||
mncharity | re 70% agreed. | 21:32 | |
pmichaud | is having .nextwith in the arith.t tests useful? I don't think it is. | ||
so, ease of implementation concerns dominate. | |||
Eevee | well, I think those are somewhat similar | 21:33 | |
if X is particularly useful to the test suite then it's probably going to be useful in general | |||
pmichaud | I'm not so sure about that | ||
21:33
Auzon joined
|
|||
pmichaud | I can think of features that would be particularly useful for testing but might not be terribly important for general purpose programming | 21:33 | |
END blocks come to mind | 21:34 | ||
Eevee | ah, hm | ||
pmichaud | I'm not saying END is generally unimportant, but simply that I can write a lot of useful programs without ever needing END | ||
that said, END is important enough to testing that I think it's a reasonable candidate for sanity-level | |||
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). | ||
Eevee | yeah that's fair | ||
pmichaud | "pull out all stops" -- we do that by using #skip blocks in the test files, and or separating them out | 21:35 | |
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:36 | ||
mncharity | err, rephrasing "pull out all stops", "no holds barred", "anything goes", "maximal use of p6 power". | ||
pmichaud | in a particular test implementation? | ||
in the test suite in general? | |||
or in the language? | |||
mncharity | in the third "flavor of tests", whose focus is on validation of mature implementations, rather than helping immature ones. | 21:37 | |
pmichaud | simply put the mature tests into test files that focus on the mature features | ||
obra | t/spec, which is what I thought was being discussed, is defined as validating particular features as defined in the synopses. | 21:38 | |
21:38
japhb joined
|
|||
pmichaud | yes, I thought our discussion was limited to t/spec tests | 21:38 | |
I'm not talking about all testing for modules written in Perl 6 | 21:39 | ||
obra | which makes "anything goes" somewhat antithetical to the whole point. | ||
mncharity | sigh, so I'm clearly failing, let's see.. | ||
pmichaud | give me an example of a "mature feature" that you think is appropriate for arith.t | ||
21:40
rdice left
|
|||
pmichaud | oh, I've got one. heredocs. | 21:40 | |
obra | . o { POD } | 21:41 | |
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 | ||
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:42 | ||
fudge allows us to do that. | |||
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. | ||
pmichaud | mncharity: would you need "real p6" for *every* test ? | 21:43 | |
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:44 | ||
clearly a mature impl should be able to pass any tests that an immature one passes. | |||
obra | t/spec is for validation of features. | ||
I would expect that tests for arithmetic are going to require fewer interesting features than tests for overloading. | 21:45 | ||
pmichaud | exactly | ||
21:46
pmurias left
|
|||
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:46 | |
er. remove a dependency on | |||
pmichaud | obra++ | ||
Eevee | yes | 21:47 | |
mncharity | I just got an out of band "please shut up now". so, I'm out. bbl | ||
pmichaud | in general it's better to reduce dependencies than to increase them :-) | ||
Auzon | Definitely. | ||
I'll keep that in mind this summer. | |||
21:51
jferrero joined
|
|||
[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:56 | |
cla? | |||
pmichaud | purl, CLA? | ||
purl? | |||
[particle] | purl: cla is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement | ||
pmichaud | ENOPURL | ||
(purl already knows cla :-) | |||
Auzon | ;) | 21:57 | |
[particle] | Auzon: it's probably not necessary, but it can't hurt to send one in | ||
Auzon | Alright. I'll check it out | ||
21:58
Zaba_ joined
|
|||
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:59 | |
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:00 | ||
22:07
iblechbot left
22:12
Zaba left
22:16
Limbic_Region joined
22:24
TJCRI left
22:29
sscaffidi left
22:39
clintongormley joined
|
|||
clintongormley | heya | 22:39 | |
any idea why the dev.pugscode.org/changeset/xxxx links aren't working? | 22:40 | ||
-> 500 errors | |||
Eevee | they've been off and on for me, not sure why | 22:41 | |
clintongormley | dev.pugscode.org/browser is doing the same | ||
Eevee | looks like everything is | 22:42 | |
clintongormley | damn python | ||
.oO( always blame the language ) |
22:43 | ||
Eevee | could be damn apache -> damn C | ||
22:43
eternaleye left
|
|||
clintongormley | :) | 22:44 | |
this has probably been asked a million times before, but... | 22:47 | ||
how can i contribute? i'm a reasonably experienced Perl programmer, but zero C experience | |||
are there a list of small finite tasks that i could choose from? | |||
obra | clintongormley: one of the things that needs lots of help is fleshing out the p6 spec tests | ||
clintongormley | i presume there isn't a list of tests that need writing, but rather : here are the specs, add the missing tests? | 22:48 | |
[particle] is very glad obra++ is still here | |||
obra | rakudo, the p6 implementation on top of parrot finally got its milestone act together | ||
so there's a list of milestones which roughly tie to p6 'synopses' (specs) | |||
Eevee | clintongormley: ha, same boat as I | 22:49 | |
clintongormley | yeah, i saw that post | ||
obra | and there is a huge mass of disorganized tests built up over time as pugs (the haskell implementation) has grown. | ||
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:50 | ||
either pulled from the existing pugs tests or out of whole cloth | |||
clintongormley | that last line just answered the question i was writing :) | ||
Eevee | oh, there are pugs tests outside of t/spec? where are they? (or is it obvious like pugs/t/) | ||
clintongormley | which would be a good syn to start with? | ||
obra | pugs/t | 22:51 | |
[particle] | eevee: occam's razor | ||
Eevee | the world would be a better place if occam's razor always applied to programming | ||
so far its success rate for me is around 7% | |||
obra | [particle]: opinions on good syns to start with? | ||
[particle] | i say go to spec.pugscode.org | 22:52 | |
clintongormley | and the tests are written in p5 or p6 or other | ||
[particle] | pick a synopsis from the list | ||
obra | tests are written in p6 | ||
svn co svn.perl.org/parrot/trunk parrot | |||
lambdabot | Title: Revision 27277: /trunk | ||
obra | cd parrot | ||
perl Makefile.PL | |||
make | |||
cd languages/perl6 | |||
make spectest | |||
[particle] | however... rakudo sorely needs more oo tests | ||
obra | that will grab all of the existing t/spec from the pugs repo and run it | ||
clintongormley | you've never done that before, have you ;) | 22:53 | |
Auzon | Aha, obra++ for make spectest | ||
I was looking for that recently | |||
obra | Auzon: I didn't do that | ||
I tried this for the first time today | |||
Auzon | No, pointing it out | ||
obra | I'm cribbing from my notes | ||
[particle] | so t/oo/ is a good place to start | ||
obra | ah :) | ||
particle++ created it | |||
Auzon | Can we run Rakudo against pugs/t yet? | ||
[particle] | no | ||
probably never will | 22:54 | ||
obra | [particle]: can I nopaste our this-morning conversation about tests and tools | ||
[particle] | auzon: we need to convert all pugs/t/ to pugs/t/spec | ||
Eevee | isn't the idea to get rid of pugs/t and merge it into t/spec? | ||
[particle] | obra: feel free | ||
i'll throw some tuits into converting tests in the next week | |||
obra | Eevee: let's not go there ;) | 22:55 | |
Auzon | I'll have tuits starting a week from today | ||
obra | there will always be a wide variety of tests that aren't spec-based | ||
[particle] | Auzon: good to know! | ||
Auzon | I'd love to jump in now, but I have finals. | ||
[particle] | something that would really help us out, and is very easy to do, is to convert all pod blocks to pod6 | ||
obra | paste.husk.org/11312 | 22:56 | |
[particle] | replace =begin with =begin pod and =cut with =end pod | ||
obra | that's the conversation [particle] and I had about how to start doing this | ||
clintongormley | particle - that's it? | ||
just search all available code and change those lines? | 22:57 | ||
[particle] | no, but it's a start | ||
Auzon | Hm... I bet I could automate that ;) | ||
[particle] | clintongormley: for the pod, basicly, yes | ||
as soon as the pod parses, it means rakudo will actually parsefail source, instead of docs | |||
clintongormley | :) | ||
ok - so just the rakudo files? | |||
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:58 | |
[particle] | no. | ||
pugs/t, except t/spec/ | |||
clintongormley | and for committing changes? | ||
obra | yes | ||
clintongormley | yes please | ||
Eevee | sure | ||
obra | email addresses, pelase | ||
please | |||
clintongormley | time is short, so can't promise results, but.... | ||
[email@hidden.address] | |||
mncharity | pugs: my $a = [3,4,5]; my @b = @($a); say pop(@b); say $a; | ||
exp_evalbot | OUTPUT[53 4 5] | ||
obra | even a single commit is good :) | ||
clintongormley | svn ci "changed whitespace" | ||
obra | if it's more readable :) | 22:59 | |
clintongormley | svn revert | ||
obra | traditional first commit is to add yourself to AUTHORS | ||
Eevee | [email@hidden.address] | ||
obra | just to test everything | ||
ok. you should each have a commit bit in your inbox | |||
clintongormley | is there a syntax highlighter available for p6 yet? | 23:00 | |
i suppose it is changing too fast | |||
Eevee | I vaguely recall seeing something for vim a while back | ||
so there might be an up-to-date one floating around | |||
clintongormley | will google | 23:01 | |
commit bit received - thanks | |||
obra | look in pugs/util when you check out the pugs repo | ||
Eevee | got bit | ||
obra | I see a vim mode at the least | ||
"updates to that would be cool too" | |||
Ok. I'm brain-fried and need to wander off | |||
Eevee | what a coincidence! I've always meant to figure out vim syntax highlighting | ||
obra | good luck, guys | 23:02 | |
clintongormley | thanks :) | ||
Eevee | seeya | 23:03 | |
clintongormley | commits to trunk? a branch? | 23:06 | |
Auzon | I believe everything is in trunk | ||
clintongormley | ok | 23:07 | |
Auzon | I don't actually see any branches. | ||
clintongormley | svn.perl.org/viewvc/parrot/branches/ | 23:08 | |
lambdabot | Title: 1 [ 6 parrot 1 ] 1 12 Index of /branches 30 | ||
Auzon | oh, that's parrot. | ||
^_^' | |||
Are you committing to Parrot or Pugs? | 23:09 | ||
clintongormley | ummm which one should i be committing to :) | ||
Auzon | Commitbit is for Pugs. | ||
clintongormley | isn't the focus on rakudo (and thus parrot) now? | ||
Auzon | Yes, but a lot of stuff still lives in Pugs | 23:10 | |
clintongormley | ah ok | ||
clintongormley is puzzled | |||
23:10
vaughn joined
|
|||
Auzon | Yeah. You'll be working in the Pugs repo | 23:11 | |
That's where the big test suite resides. | |||
And pretty much all Perl6 code that isn't Rakudo. | |||
clintongormley | so, i should be writing tests in pugs but running them with rakudo? | 23:12 | |
[particle] | clintongormley: the perl 6 tests are in the pugs repo, because it's very easy to get a pugs commit bit | ||
that makes it easy to recruit testers | |||
clintongormley | so: pugs/trunk/t | ||
[particle] | rakudo does an 'svn co' of pugs/t/spec/ | 23:13 | |
no, there's no trunk iirc | |||
svn co svn.pugscode.org/pugs pugs | |||
lambdabot | Title: Revision 20349: / | ||
[particle] | or, if you don't want it to take all day, | ||
svn co svn.pugscode.org/pugs/t pugs/t | |||
lambdabot | Title: Revision 20349: /t | ||
clintongormley | ahhh - ok, so not : svn.perl.org/viewvc/perl6/pugs/ | ||
lambdabot | Title: 1 [ 5 perl6 1 ] 1 e Index of /pugs 30 | 23:14 | |
[particle] | no, go with pugscode | ||
pugscode.org for more | |||
lambdabot | Title: Pugs - pugscode | ||
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:15 | |
clintongormley promises to stop annoying shortly | 23:16 | ||
[particle] | no | ||
clintongormley | ok - ta | ||
[particle] | you need to have and build parrot | ||
clintongormley | will shut up now and give things a try :) | ||
[particle] | then build languages/perl 6/ | ||
*perl6 | 23:17 | ||
if you look at the Makefile in languages/perl6/ it'll tell you all you need to know | |||
clintongormley | many thanks | ||
g'night all | |||
[particle] | ~~ | ||
Auzon | see you | ||
23:18
clintongormley left
23:23
felipe left
23:33
cookys_ joined
|
|||
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:34 | |
23:35
felipe joined
|
|||
mncharity | works if panic() is replaced by regex failure. | 23:44 | |
*search failure | 23:45 | ||
meppl | good night | 23:48 | |
mncharity | good night meppl :) | 23:52 | |
meppl | ;) | 23:53 | |
23:53
meppl left
|
|||
mncharity | TimToady: (6) It looks like dotty doesn't get prec set? perhaps dotty --> Term and an additional prec case in post. | 23:55 | |
23:58
japhb left
|