|
Fallback repos: svn.perl.org/perl6/pugs/trunk/ | pugscode.org <Overview Journal Logs> | pugs.kwiki.org Set by autrijus on 11 May 2005. |
|||
| mugwump | it's still early in Taiwan | 00:00 | |
| putter | ;) | ||
| time to read the traits paper... | |||
|
00:43
_metaperl_ is now known as _metaperl
00:59
_metaperl_ is now known as _metaperl
|
|||
| _metaperl | my perl mongers talk on hangman.p6 will commence in 46 minutes: www.metaperl.com/talks/p6/hangman-elucidated/ | 01:14 | |
| mugwump | nice looking talk, _metaperl | 01:22 | |
| _metaperl | mugwump, thanks | ||
| stevan | _metaperl: I agree w/ mugwump | 01:29 | |
| :) | |||
| _metaperl | :) great. glad to help out the p6 movement in my own way | ||
| revdiablo | if anyone's interested, I made a greasemonkey script to re-sort the www.nntp.perl.org post listings | 01:31 | |
| makes it sort of threaded, at least easier to follow the threads than it was | |||
| stevan | horray,.. openfoundry is back | 01:55 | |
| wilx | ~_~ | 01:57 | |
| I forgot to turn off my speakers befire I went to sleep and my mIRC beeps on notice. | |||
| It woke me up :/ | |||
| stevan | sorry | 01:58 | |
| wilx | 0357 | ||
| Heh. | |||
| stevan | shhhhh wilx is sleeping :) | ||
| wilx | np | ||
| My fault. | |||
| autrijus | OpenFoundry back, commit at will | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 02:01 | |
| autrijus | hopefully stevan will still have enough sanity to update ChangeLog :) | 02:02 | |
| stevan | TEst::Builder now parses :) | 02:03 | |
| autrijus++ # cant stop him | |||
| autrijus | that's not saying it works :) | ||
| stevan | I know | ||
| but its closer then it was before | |||
| :) | 02:04 | ||
| autrijus | :) | ||
| stevan | I have a test for you too | ||
| I am going to commit once this build finishes | |||
| method chaining | |||
| $foo.bar().baz() was not working | |||
| could not find &baz was the error | |||
| autrijus | right. I even know why | 02:05 | |
| stevan | cool | ||
| autrijus | basically invs needs to be reduced before findSub. | ||
| otherwise can't know the exact type of $foo.bar() to lookup baz with | |||
| but it's a nontrivial change -- and not at all sure what needs to happen when there are two .baz imposing different context to its inv | 02:06 | ||
| stevan | ok | ||
| autrijus | hm. maybe we can do away by declaring the correct return type in ".bar" | ||
| stevan | well I will commit the test | ||
| autrijus | then use that type in the mmd | ||
| but yeah, just commit the test | |||
| stevan | I dont /need/ it | 02:07 | |
| I would just /like/ it :) | |||
| autrijus | :) | ||
| stevan | so how useful to you is this Meta-Model stuff mugwump and I are doing | 02:09 | |
| autrijus | extremely | ||
| stevan | ok | ||
| good | |||
| its fun | |||
| meta-meta-hacking :) | |||
| autrijus | :) | ||
| stevan | I actually now have a reason to read my metaclass book | 02:10 | |
| autrijus | without it I can't delta with parrot and nudge leo to fix things :) | ||
| and I'll probably backport it to Class.hs | |||
| down to 66 failed, 7 unexpected success | 02:11 | ||
| crysflame | heh | 02:21 | |
| you woke wilx up | |||
| that's just.. cool | |||
| not for wilx but still :) | |||
| stevan | it must have sounded like wilx's computer was going nuts too | 02:25 | |
| all those notices one after the other :) | 02:26 | ||
| oh autrijus, one other request if you please :) | 02:27 | ||
| I need some way to identify objects as unique | |||
| =:= would be nice | |||
| but baring that | |||
| maybe some kind of hex address like perl5 does | |||
| and if thats not possible, I can hack something myself for now | 02:28 | ||
| crysflame | should all instances of a singleton object identify as the same unique object? | 02:30 | |
| stevan | yes | ||
| that is the definition of a singleton really | |||
| stevan goes off to read more of his metaclass book :) | 02:31 | ||
| autrijus++ | |||
| stevan dreams of a day when he can code /only/ in perl6 :) | 02:32 | ||
| mugwump | and Haskell! :) | 02:35 | |
| autrijus | stevan: chaining.t should now pass. I'm smoking to make sure I didn't break things before I commit | 02:40 | |
| mugwump | chain smoking! | 02:44 | |
| crysflame remembers the [email@hidden.address] debate fondly | 02:45 | ||
| mugwump | summary, crysflame ? | ||
| or a case of "you had to be there sitting on the sidelines" ? :) | |||
| crysflame | "smoking is bad" | 02:46 | |
| "it's a pun, laugh | |||
| "no! i refuse to laugh" | |||
| end summary | |||
| use.perl.org/article.pl?sid=01/02/19/1321228 | 02:47 | ||
| "After a small dispute over the naming scheme, the 'smokers' list was renamed to 'daily-build' instead. 'smokers' was retained as an alias, however. " | |||
| "Of course, as with all good ideas, it was nearly drowned out by lots and lots of trivial bickering. Schwern had called the mailing list [email@hidden.address] and the smoke testing software SmokingJacket. This produced objections from non-smokers and recovering smokers, and started a long and tedious objection - counterproposal cycle. Eventually, the list was given an alias of [email@hidden.address] | 02:48 | ||
| officially, the list is daily-build with an alias smokers@. | |||
| mugwump | I love the title of that use.perl.org article - "Help Smoke Camels" | 02:49 | |
| mugwump is a sucker for|of clove cigarettes | 02:53 | ||
| autrijus | stevan: you could've used | 02:58 | |
| $_foo3 =:= $_foo2 =:= $_foo1 =:= $foo | |||
| and anyway, =:= is there now. | |||
| committing | |||
| mugwump | so, does 7 =:= 7 ? | 03:00 | |
| autrijus | sure. | ||
| all pure values are identical to themselves. | |||
| mugwump | this implies some distinction between pure things and complex things | 03:01 | |
| autrijus | sure. one can be written to. | ||
| mugwump | the reason I ask is it makes an important difference when writing the Set class | ||
| but does "7" =:= 7, say? | 03:02 | ||
| autrijus | woot, chaining.t all passes | ||
| pugs> "7" =:= 7 | |||
| bool::false | |||
| you can try it for yourself :) | |||
| mugwump | :P | ||
| mugwump svn up's | |||
| So, anyway, I was contemplating the difference between a Hash and a Map | 03:03 | ||
| autrijus | in haskell, Hash is destructive, Map is not | ||
| mugwump | thinking, a Hash is a Map where the keys must be stringifyable, and no two objects that stringify to the same thing can be used for different keys | 03:04 | |
| Whereas a Map is where the object's uniqueness is the key | |||
| ie, Map is to =:=, as Hash is to == | |||
| or eq | |||
| Which leads me to ponder whether a Map *can* be implemented in terms of a Hash | 03:06 | ||
| autrijus | hm. Map requires Ord | 03:07 | |
| (which implies Eq) | |||
| and Hash requires a (key -> Int32) | |||
| mugwump | You sort of need that Map-ness to implement a set.. | ||
| autrijus | (which doens't imply anything) | 03:08 | |
| mugwump | ok, so a hash only requires a hashing method, not stringify? | ||
| autrijus | right. | ||
| mugwump | Then it could still use =:= on the key | 03:09 | |
| And just like you can have two entries in a hash that hash to the same value, you could have two keys that stringify to the same value if they are unique objects | |||
| autrijus | sure. | ||
| but you need a general (Object -> Int32) thing first | 03:10 | ||
| mugwump | However, that raises the issue of how you refer to those entries. You can't just pull them by string anymore | ||
| Object -> int32 is easy, just use the pointer address and don't tell anyone (or some other useless identifier) | |||
| autrijus | well then, you can pull them out by their memory address ;) | ||
| mugwump | no, because that's the hash value, which is useless for pulling values out from a user interface point of view | 03:11 | |
| This has the implication of losing one trick - returning strings that are actually objects with a stringify method | 03:12 | ||
| as used by, say, URI | |||
| You would have to explicitly stringify the use | |||
| autrijus | right. | 03:13 | |
| mugwump | so, what about tacking 'out of band' stuff onto strings | 03:15 | |
| eg my $foo = '0' but true; | |||
| is that a pure and simple scalar, or a deviant? | |||
| mugwump starts up his shiny new pugs build | 03:16 | ||
| or is it simply a syntax error | 03:17 | ||
| mugwump hmms | |||
| autrijus | "0 but true" is always an Int object | 03:18 | |
| unlike "0" which is an int value | |||
| mugwump | right | 03:19 | |
| mugwump makes a start on t/operators/identity.t | 03:22 | ||
| putter | Hi folks. I've been porting the Perl6::Rules test files to (current) p6. | 03:28 | |
| It's time for a checkin. Other eyes, time passing, and not sure I'll be able to work on it tomorrow. | |||
| But I can't actually run any of it. My cvs-ghc HEAD simply isnt building, so rules are still a nogo. | 03:30 | ||
| autrijus | check them into t/rules/Disabled first? | ||
| putter | So I was thinking of t/rules/Disabled/from_perl6_rules. Comments? | ||
| ;) | |||
| autrijus | sure, that worksforme | 03:31 | |
| putter | will do. | ||
| autrijus | we're close to 5000 tests :) | ||
| putter | :) | ||
| well, here come another 5k, though almost all of that is unicode. | 03:32 | ||
| autrijus | wow. | ||
| autrijus { for -> $impact {} } | 03:33 | ||
| putter | unfortunately, it was ancient (apr '04), so the p6... wasn't. | 03:34 | |
| autrijus | we're down to a respectable 32 failures in 11 tests | 03:37 | |
| crysflame | happy r3000 | 03:39 | |
| autrijus | :) | 03:40 | |
| stevan | autrijus: should I update the changelog? | 03:41 | |
| or wait a little longer | |||
| autrijus | stevan: please do update it | 03:42 | |
| no major features is planned before 6.2.3. | |||
| we already delayed for one week to get classes and rules in :) | 03:43 | ||
| stevan | excellent | ||
| autrijus | what's left is fixing the 7 or so regressions | ||
| and ship :) | |||
| putter | the tests required extensive rewriting. I expect some of them are buggy. ah well. | ||
| autrijus | putter: it's important to get started :) | 03:44 | |
| putter | *nod* | ||
| autrijus | stevan: also, if you have some time, try look into why golf.t is failing | ||
| it may be the golf script themselves are bad. | |||
| not sure. | |||
| bbl. :) & | |||
| stevan | ok | 03:45 | |
| stevan just ate a handful of chocolate covered espresso beans :) | |||
| I should be good for a few hours | |||
| putter | ok, thanks folks. good night. | 03:47 | |
| stevan | 'night putter | ||
| f0rth | hello | 03:58 | |
| stevan | hullo | ||
| crysflame | hi, f0rth | ||
| stevan | crysflame: should that be f0rth, hi | 03:59 | |
| :) | |||
| crysflame | heh | ||
| f0rth | switched to wrong channel to test bot ^^" | 04:00 | |
| stevan | autrijus: oh, I almost forgot | 04:03 | |
| classes seems to be file scoped | |||
| mugwump | ouch | 04:04 | |
| stevan | so class defined in MyClass.pm is not available when you use MyClass; | ||
| mugwump: yeah, its a bugger | |||
| mugwump: BTW - my metaclass book is proving helpful,... although they are only talking about meta-classes,.. not meta-meta classes | 04:05 | ||
| but it is helping me get my head around this more | |||
| mugwump | the great thing is that we can actually start at either the M3 or M2 layer | 04:09 | |
| stevan | mugwump: I would like to get what we have already done into real objects | ||
| then maybe see what we have | 04:10 | ||
| mugwump | ok. I'm just in the process of releasing this site I've been working on today and yesterday, should clean up this week's professional work :) | ||
| stevan | btw - are you planning on building a set class? | ||
| mugwump | yes | ||
| stevan | ok | ||
| good | |||
| scw | revdiablo: thanks for updating debian/ :) I was totally occupied these days | 04:11 | |
| revdiablo | scw: no problem, I only built the debian package 10 times before noticing. :) | 04:13 | |
| stevan | autrijus: changelog updated :) | 04:25 | |
| hmmm, it seems like objects are destroyed a little too quickly at times | 04:53 | ||
| writing a test | |||
| actually maybe not | 04:57 | ||
| hmmm | |||
| crysflame | write the test anyways | 05:01 | |
| stevan | crysflame: its not the issue | ||
| its very hard to isolate this | |||
| however @array_of_foo_objects[0].bar() does not work | 05:02 | ||
| but I suspect that is a known issue | |||
| crysflame | huh | 05:03 | |
| stevan | it is probably related to the method chaining issue | ||
| (which is mostly fixed) | |||
| it is not easy to know what @array_of_foo_objects[0] will be,... and therefore hard to find the compatible &bar method | 05:04 | ||
| Khisanth | in "- return map {.4.} sort {.3.} grep {.2.} map {.1.}" from svn.openfoundry.org/pugs/modules/PORTING_HOWTO what are all those .s for? | 05:08 | |
| mugwump umms and ahhs about whether to use junctions or hashes to implement the Set class | 05:17 | ||
| stevan | mugwump: junctions would be cooler, but hashes might be easier | 05:33 | |
| stevan goes off to sleep, back in ~8 hours & | |||
| f0rth | and now ext/Set/Makefile.PL is broken? | 05:37 | |
| mj41 | *** Error: Can't locate Perl6/MakeMaker.pm in @INC | 05:46 | |
| f0rth: r3051 fixed? | 05:59 | ||
| f0rth | yes, fixed :D | 06:01 | |
|
06:43
chady_ is now known as chady
|
|||
| gaal | ./pugs.exe -e 'my @a = <1 2 3 4>;map { $_ += 1 }, (@a)' | 07:28 | |
| *** Error: Can't modify constant item: VNum 2.0 at -e line 1, column 25-33 | |||
| this is a bug, isn't it? map's $_ should be rw like for's, no? | |||
|
07:46
Aankh|Clone is now known as Aankhen``
|
|||
| osfameron | (Jonathan Worthington)++ # Win32 pugs build | 08:30 | |
| yay, pugs interpreter doesn't interpret each statement in an eval! | 08:45 | ||
| my $x=123 | |||
| say $x; # still 123 | |||
| mj41 | congratulations ... 737/4914 subtests failed, 85.00% okay. | 08:58 | |
| WinXP, r3051 | |||
| history ... r1600 - 1308/4135 subtests failed, 68.37% okay. | 09:03 | ||
| osfameron | Hmmm, tried to build pugs (WinXP nmake, GHC 6.4 binary, no parrot) and get | 09:04 | |
| makefile(414) : fatal error U1087: cannot have : and :: dependents for same target | |||
| Juerd | Perhaps try cygwin, with a real make? | 09:09 | |
| mj41 | my nmake is ok .... xrl.us/ff9b | 09:10 | |
| osfameron | Juerd: you don't want pugs to run on Windows natively? | ||
| Juerd | I personally don't really care :) | 09:11 | |
| osfameron | GNU Make version 3.78.1 also fails with makefile:307: *** multiple target patterns | 09:15 | |
| mj41 | parrot only with mingw32-make and pugs only with nmake :-) | 09:18 | |
| osfameron curses his lack of make-fu | |||
| ah | |||
| f0rth | I am playing Net::IRC and found that 'normalize (split " ", $event<rest>)[0]' on line 147 is incorrect now | 09:32 | |
| Juerd | f0rth: [...][0] | ||
| f0rth | normalize((split " ", $event<rest>)[0]) is ok | ||
| Juerd | Oh, wow, did that break? | 09:33 | |
| Juerd upgrades | |||
| I'll have pugs built an an hour :) | |||
| f0rth | build 7 times today until now :p | 09:35 | |
| a question from logbot.p6, the result of rx:P5/^\001ACTION (.*)\001?$/ includes the last \001, is that correct? | 09:43 | ||
| or removing the "?"? | 09:44 | ||
| Juerd | It is correct, I think | 09:45 | |
| CTCP is enclosed in \cA\cA, but the second is sometimes not sent by stupid clients | 09:46 | ||
| f0rth | so that's the reason, thanks :) | 09:47 | |
| the second one is always printed now | 09:52 | ||
| autrijus | f0rth: want committer bit to fix this? | 10:05 | |
| f0rth | I always generate C-like code :) | 10:11 | |
| autrijus | that's fine :) | ||
| Juerd | f0rth: Let fixing that up to others then :) | 10:12 | |
| A simple "XXX - restyle" is a good indicator | |||
| autrijus | fixed, btw. | ||
| Juerd | autrijus: Why do arrayrefs .perl-ize as \()? | 10:13 | |
| autrijus | Juerd: no good reason at all | 10:14 | |
|
10:14
broquaint_ is now known as broquaint
|
|||
| Juerd | autrijus: Can it be []? That's somewhat (a lot) easier to read, especially when combined with () :) | 10:14 | |
| webmind | ([7,8,0], [4,5,6], [1,2,3]); ? | 10:15 | |
| Juerd | rather than (\(7,8,0), \(4,5,6), \(1,2,3)) | 10:16 | |
| autrijus | Juerd: I can do that, but you have to fix the failing tests that tests .perl for me :) | ||
| Juerd | autrijus: Sure | 10:17 | |
| autrijus: { x => $x + $dx, y => $y + $dy } is parsed as a sub - on purpose, or bug? | |||
| autrijus | a bug. tested, even | 10:19 | |
| Juerd | There are exactly two occurrences of \() with .perl, in tests | ||
| So that's doable :) | |||
| autrijus | x => 3+4 currently parses a (x=>3)+4 | ||
| Juerd | Ahh | ||
| So adding parens to ($x+$dx) oughta do the trick for now? | |||
| autrijus | yeah | ||
| Juerd | (I'm avoiding "hash" now) | 10:20 | |
| autrijus | and ($y+$dy) | ||
| ok, [] prettification is in | |||
| r3056 | |||
| Juerd | hash is .perl-ized as \(..., ...) # stub? | ||
| Thanks | |||
| autrijus | np | 10:22 | |
| Juerd | Hm, no, it's not the hash that's .perl-ized like that. Weird. | ||
| autrijus: Same suggestion for hashes: {} :) | |||
| And pairs: => | |||
| So that .perl is actually perl code :) | 10:23 | ||
| autrijus | ok, ok. | ||
| Juerd | I'm currently mixing arrays, hashes and pairs | ||
| And only the past few minutes I've began to understand that the output isn't wrong at all :) | |||
| Just a little surprising | |||
| (Though I don't know if an arrayref can be used as pair or hash) | 10:24 | ||
| autrijus | all done. committing | ||
| (you'll have much more to fix!) | |||
| r3057. please fix away :) | 10:27 | ||
| Juerd | Will do | 10:29 | |
| autrijus: I'm getting weird results for nested loops - any attempt to shorten the code unbreaks the code | |||
| Or, perhaps not | 10:30 | ||
| While you're fixing stuff, fix my brain too please :) | |||
| autrijus | sure, send the source of your brain to p6c | ||
| I'll see what I can do | |||
| Juerd | autrijus: I have a case of nested for loops, the inner body being { say ...; ... and next; }, somehow the say isn't executed | 10:36 | |
| Ahh | 10:37 | ||
| autrijus: if I have 4 nested for loops, "next" in the 4th operates on the 3rd | |||
| autrijus | .. wtf? | 10:38 | |
| check in a test please :) | |||
| Juerd | First I'm recompiling pugs and fixing existing tests | ||
| autrijus | "make unoptimised" is your friend, btw. | ||
| Juerd | ok | 10:39 | |
| ./pugs -e'for 1..3 -> $a { say "a = $a"; for 1..3 -> $b { say "b = $b"; next } }' | 10:40 | ||
| Wow | 10:42 | ||
| There isn't a single test that tests hashes or arrays based on .perl's output | |||
| There's one occurrence of \(, and that's for a junction | |||
| autrijus | Juerd: fixed... the bug is caused by one less indentation level than needed | 10:53 | |
| a simple >> in vim fixed it ;) | |||
| isn't significant whitespace great? | |||
| Juerd | No! | 10:57 | |
| Well, significant whitespace is okay. Significant indentation is not :) | |||
| autrijus | and next.t now passes :) | 10:59 | |
| Juerd | Yep :) | 11:00 | |
| a[f[k[p<[ulqv]>?|g<[blchm]>?|l<[qhmr]>?|q<[uvmrw]>?]?|b[g<[lchm]>?|c<[hdi]>?|h<[lmdin]>?]?|g[l<[pqhmr]>?|c<[hdi]>?|h<[mdin]>?|m<[qrins]>?]?|l[p<[uqv]>?|q<[uvmrw]>?|h<[cmdin]>?|m<[rins]>?|r<[vwnsx]>?]?]?|b[g[k<[plq]>?|l<[pqhmr]>?|c<[hdi]>?|h<[mdin]>?|m<[qrins]>?]?|c[h<[lmdin]>?|d<[iej]>?|i<[mnejo]>?]?|h[l<[kpqmr]>?|m<[qrins]>?|d<[iej]>?|i<[nejo]>?|n<[rsjot]>?]?]?|g[k[p<[ulqv]>?|l<[qhmr]>?|q<[uvmrw]>?]?|l[p<[uqv]>?|q<[uvmrw]>?|h<[cmdin]>?|m<[rins]>?|r<[vwnsx]>?]?|c[ | 11:03 | ||
| YEEHAW | |||
| First part works. | |||
| Now to create 25 of these | |||
| How dependent one can be on not-flattening, working next and handy debugging tools (pretty .perl) amazes me | 11:04 | ||
| autrijus | ah. right. charclass now works in Pugs's bundled pge | ||
| Juerd | The same thing 2 days ago didn't work *at all* | ||
| autrijus | :) | 11:05 | |
| Juerd | I had to recode some parts to avoid gather/take though | 11:06 | |
| (I had written this months ago) | |||
| autrijus | say, is gather/take coro-like, or not? | ||
| Juerd | Not really | ||
| gather returns a list | |||
| A list of whatever inner "take" collected | |||
| @foo = gather { for 1..5 { take } } | 11:07 | ||
| equals @foo = 1..5 | |||
| This way you can avoid my @foo; for 1..5 { push @foo, $_ } | |||
| Which has @foo redundant | |||
| Which for some people, including me, feels unclean | |||
| wolverian | it's certainly a coroutine (take is just a yield) | ||
| Juerd | wolverian: It doesn't have more than one entry or exit point | 11:08 | |
| 'take' simply pushes | |||
| It doesn't terminate anything | |||
| Every gather block has an implicit array, onto which take pushes | |||
| wolverian | hmm. but it can be implemented as such. after taking, gather would yield itself back to the user code. | ||
| s,after taking,after each take, | 11:09 | ||
| Juerd | It shouldn't do that. | ||
| If you want that, use a coro. | |||
| wolverian | I don't see a practical difference. | ||
| Juerd | This is for building lists. A way to use statements instead of expressions | ||
| autrijus | luqui seems to want gather/take vs Lazy list to act as coro. | ||
| i.e. gather is a generator | 11:10 | ||
| wolverian | that seems sensible. | ||
| Juerd | `gather` is a `map` that has no input list, and can take more than once | ||
| autrijus: When did pugs start, by the way? | |||
| wolverian | Juerd: I know what it is, and what I described implements that, with coroutine semantics. | ||
| at least as far as I can see. :) | |||
| autrijus | Juerd: 100 days ago | ||
| wolverian | (which isn't really far at all.) | ||
| Juerd | wolverian: Then I don't understand coroutines well enough | ||
| autrijus: Was that before or after feb 4? | |||
| autrijus | feb 1st | 11:11 | |
| Juerd | I wrote the script I'm refitting that day | ||
| It's close to its first run ;) | |||
| wolverian | Juerd: right. both the { ... } given to gather and gather itself are coroutines, to be exact. when the user code calls take, execution returns to gather, which pushes the arg (think of take as a return) to the list being gathered. (er, array..) then gather yield()s back to the user code doing the take; the execution continues immediately after the take. | 11:12 | |
| Juerd | Ah | 11:13 | |
| I don't see why that's useful | |||
| It seems more complex than simply pushing onto an implicit array :) | 11:14 | ||
| wolverian | sure. I don't know either, except maybe take() can be implemented more cleanly this way. | ||
| Juerd | It's taking a hell of a lot of time, but it appears to WORK :) | 11:28 | |
| Juerd restarts it | tee rule | |||
| Don't want to wait for building the rule more than once (takes .5 seconds in p5) | |||
| autrijus: How can it build a huge rule, recursively, with constant memory usage? | 11:30 | ||
| H | |||
| m | |||
| I'm probably better off using an optimized build for these | 11:31 | ||
| this | |||
| I just realised that in Perl 6, you don't have to prebuild the rule | 11:34 | ||
| And can even go into unlimited depth of words to be found | |||
| But that's an exercise for much later | |||
| Juerd wonders how join.t was wrong | 11:40 | ||
| autrijus | join("|", [1,2,3]) | 11:42 | |
| that [] doesn't flatten, no? | |||
| please don't say it flattens now :) | |||
| oh btw: | |||
| * (a => 3+4) is now parsed as (a => (3+4)), not (a => 3)+4. | |||
| r3068 | |||
| Juerd | autrijus: No | 11:43 | |
| autrijus | so that's how it was wrong | ||
| it was assuming *[1,2,3] | |||
| Juerd | autrijus: Although it's entirely possible that join, the function itself, flattens arrayrefs | 11:44 | |
| I don't think there's spec on this | |||
| autrijus | it's not specced as such in Rod's, iirc | ||
| Juerd | I'm not asking p6l either. Flatless is good here. | ||
| And flattening with join, but not other functions, leads to surprises | 11:45 | ||
| autrijus | down to 14 fails. | 11:46 | |
| Juerd | Wow | 11:47 | |
| impressive, autrijus | |||
| autrijus++ | |||
| autrijus | 13 now. | ||
| in 4 tests | |||
| Juerd | I wonder if when this matrix.p6 fun is finished, I have the largest Perl 6 rule ever created ;) | 11:49 | |
| If it ever finishes, that is :) | |||
| scook0 | autrijus: may I pick your brain for a bit? | 11:51 | |
| autrijus | scook0: yes? | ||
| scook0 | I have a bunch of pugs-internals questions that I've been accumulating... | ||
| about Pads: | |||
| ajs | morning all. Juerd, do you ever sleep? :) | 11:52 | |
| scook0 | they map from names to /lists/ of refs, right? | ||
| Juerd | ajs: Yes. Think timezones. | ||
| scook0 | is that for multisubs, where the same sub name maps to multiple sub objects? | ||
| Juerd | Office time :( | 11:56 | |
| autrijus | scook0: yes and yes. | ||
| scook0 | autrijus: cool, that's what I thought | ||
| autrijus | scook0: I'm been thinking to split a Pad entry into single and multiple variants | ||
| MkPad !(Map Var ([(TVar Bool, TVar VRef)])) | 11:57 | ||
| becomes | |||
| scook0 | yeah, the whole list thing is a bit confusing if it only gets used for one purpose | ||
| autrijus | data Pad = MkPad !(Map Var PadEntry) | 11:58 | |
| data PadEntry = MkEntry (TVar Bool, TVar VRef) | MkEntryMulti [(TVar Bool, TVar VRef)] | |||
| yeah. but it's not critical, so is low priority | |||
| Juerd | I HAVE THE RULE | ||
| autrijus | down to 3 failing tests. | ||
| scook0 | well, if I start feeling confident about /writing/ Haskell I might give it a try sometime | ||
| autrijus | Juerd: YOU RULE | ||
| has $.source is rw; | 11:59 | ||
| scook0 | actually, that reminds me of another question about confusing lists | ||
| I'm not sure why SlurpLimit needs to be a list | |||
| Juerd | juerd.nl/bigrule.txt | 12:00 | |
| firefox cowardly refuses to display a 71995 character line. | |||
| scook0 | if I'm not mistaken, SlurpLimits are never given more than one entry | ||
| SlurpLimits are only used for subs with a finite number of slurpy scalars and no slurpy array, right? | 12:01 | ||
| Juerd | autrijus: I'll check in matrix.p6, though it's far from completion or prettiness | ||
| wolverian | Juerd: it displays it fine here. | ||
| autrijus | scook0: .assuming will impose multiple limits | 12:02 | |
| wolverian | Juerd: what does that rule do? :) | ||
| autrijus | because you can assume (curry) multiple times | ||
| scook0 | ah | ||
|
12:02
chady is now known as chady_
|
|||
| autrijus | mmm | 12:02 | |
| "Pugs now powers the Matrix" | |||
| scook0 | I'll have to write that in the docs then | ||
| Am I correct in that they only apply to subs that take a finite number of slurpy scalars? | 12:03 | ||
| Juerd | wolverian: See svn commit comment that will appear soonish | 12:04 | |
| scook0 | Slurpy array params seem to nuke the SlurpLimit | ||
| Juerd | autrijus: Should it run faster with parrot? | ||
| scook0 | because slurpy arrays can take any number of args | ||
| Juerd | wolverian: 3070 | 12:05 | |
| wolverian | waiting for svnbot6 to pick it up. | ||
| Juerd | If it displays the comment verbatim entirely, it'll flood the channel :) | 12:06 | |
| autrijus | scook0: yes, and yes. | 12:07 | |
| Juerd | It does. | ||
| scook0 | autrijus: thanks | ||
| autrijux: My next question is: what's the difference between (Syn "=>" ... ) and (App "&infix:=>" ... ) ? | 12:08 | ||
| is the Syn form obsolete? | |||
| wolverian | Juerd: how long does it take perl5 to generate the rule? | 12:09 | |
| oh. the second includes that time. | 12:10 | ||
| Juerd | imcc_compile_file: couldn't find 'library/Data/Escape.imc' | 12:11 | |
| autrijus | scook0: no, both are in use | ||
| scook0: I think we should unify to one of them, though | |||
| there's no difference. | |||
| Juerd | wolverian: svn up to see matrix.p6 | ||
| eh | |||
| wolverian: svn up to see matrix.p5 | 12:12 | ||
| autrijus | Juerd: should be fixed now; try again | 12:13 | |
| Juerd | I have to go to the office now, for real :( | ||
| I'll try later | |||
| (Though you can try it yourself too if you want) | 12:14 | ||
| autrijus | k. | ||
| Limbic_Region | morning all - was just catching up on what looked like an exciting day on p6.l | 12:15 | |
| scook0 | autrijus: At the moment, if you call a sub that has multiple slurpy arrays, Pugs deliberately binds the first one normally, and makes all the rest empty | 12:16 | |
| Is this proper behaviour, or is it just a quirk of the current implementation? | 12:17 | ||
| autrijus | no, that's specced. | ||
| i.e. correct | |||
| scook0 | ok | ||
| actually, are slurpy hash params supposed to be working? | 12:18 | ||
| I ask this because they appear to be implemented, but they don't seem to actually work | |||
| Is this just because there aren't any tests for them? | |||
| autrijus | pugs> sub foo (*@_, *%x) { say %x } foo( c => 3 ) | 12:20 | |
| c 3 | |||
| worksforme | |||
| er, or not. | |||
| probably not. | |||
| yeah, it's very broken. tests welcome :) | 12:21 | ||
| mark them as :todo<bug> for now | |||
| scook0 | ok | ||
| autrijus: I think that's all the questions I had written down -- thanks :) | 12:23 | ||
| autrijus | :) | 12:26 | |
| ok. in that case... preflight will start in a few minutes! | |||
| cognominal | autrijus: is this difficult to support the sub prefix:<OPNAME> syntax in pugs? | 12:35 | |
| autrijus | cognominal: it's quite trivial | 12:36 | |
| but I'm in preflight. :) write tests | |||
| cognominal | I am still in larval stage ofr haskell :( | 12:37 | |
| autrijus | tests doesn't need haskell-fu :) | 12:40 | |
| cognominal | haskell-fu? | 12:44 | |
| Shillo | Hullo, folks! | 12:47 | |
|
12:48
Hoppy is now known as [nz]Hoppy
|
|||
| autrijus | please "make test" :) | 12:51 | |
| preflight #1: pugscode.org/Perl6-Pugs-6.2.3-pre1.tar.gz | |||
| Preflight #1: pugscode.org/Perl6-Pugs-6.2.3-pre1.tar.gz | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 12:51 | ||
| autrijus | autrijus.org/tmp/changes-6.2.3.html # primitive changelog | 13:01 | |
| stevan | *sniff* *sniff* | 13:13 | |
| ahh I love the smell of smoking Pugs in the morning | |||
| autrijus | hey stevan. :) | 13:16 | |
| stevan | hey autrijus | 13:18 | |
| I see we are in preflight | |||
| autrijus | yes. | 13:19 | |
| stevan | I am building now | ||
| autrijus | Config-Tiny doesn't pass tests | ||
| stevan | ok | ||
| I will look at it | |||
| autrijus | stevan: also please check: | 13:23 | |
| t/10_unix_test.t 101 10 9.90% 41 82-90 | |||
| t/20_win32_test.t 165 1 0.61% 4 | |||
| (that's File::Spec) | |||
| stevan | ok | ||
| autrijus | aw | 13:24 | |
| t/entities.t 9 3 33.33% 2-4 | |||
| and LWP::Simple: | 13:25 | ||
| *** Error: Unhandled/unknown proxy settings: "": NonTerm (MkPos "/home/autrijus/work/dist/pugs/blib6/lib/LWP/Simple.pm" 169 7 169 76): NonTerm (MkPos "/home/autrijus/work/dist/pugs/blib6/lib/LWP/Simple.pm" 62 13 62 48) at t/live.t line 77, column 14-24 | |||
| t/getprint.t 1 256 3 0 0.00% ?? | |||
| t/live.t 1 256 29 54 186.21% 3-29 | |||
| and your P::E::P: | 13:26 | ||
| t/basic.t 1 256 5 6 120.00% 3-5 | |||
| t/basic_html.t 1 256 3 2 66.67% 3 | |||
| t/complex.t 1 256 3 2 66.67% 3 | |||
| that's all there is | 13:33 | ||
| stevan | ok, build donw | ||
| i will attack these right now | |||
| autrijus | stevan++ | 13:36 | |
| I'll brb | |||
| stevan | oh, very odd | 13:37 | |
| Juerd | autrijus: Should fixed pugsbugs tests be moved to pugsbugs/fixed? | 13:40 | |
| autrijus | Juerd: no, they should be moved to other t/ directories | 13:42 | |
| stevan | autrijus: this is one of the Config::Tiny errors | ||
| pugs -e '"hello " ~~ rx:perl5/^(.*?)\s(.*)$/; my %h; %h{$0} = $1; say %h.keys; say %h<hello> ?? "true" :: "false";' | |||
| prints: hello \n true | |||
| %h<hello> is the match (\MkMatch {matchOk = True, matchFrom = 6, matchTo = 6, matchStr = "", matchSubPos = [], matchSubNamed = {}}) | 13:43 | ||
| Juerd | autrijus: ok | 13:44 | |
| stevan | autrijus: is that correct behavior? | ||
| hey nothingmuch :) | 13:45 | ||
| nothingmuch | hola | ||
| stevan | autrijus: Config::Tiny has been fixed | 13:50 | |
| moving onto File::Spec | |||
| guten morgen iblech | 14:03 | ||
| iblech | Should new tests be TODOed currently? | 14:05 | |
| stevan | iblech: what do you mean new tests? | 14:09 | |
| iblech | stevan: I wanted to write a test for %*ENV.exists(), as it doesn't work ATM | ||
| stevan: Should I TODO it? | |||
| stevan | hmmm, I would say yes since we are in preflight | 14:10 | |
| iblech | ok | ||
| stevan | but i will leave the final descision to autrijus | ||
| iblech | :todo<bug>? | 14:11 | |
| cognominal | how comes "my $x; my $x" succeed in intereactive pugs but fails in a test? | ||
| anyway it should fail because , "it's illegal to declare $x twice in the same scope." | |||
| PerlJam | cognominal: is it illegal? If so, why? | 14:12 | |
| autrijus | iblech: no, don't todo it. | 14:13 | |
| because it's, like, fixed. | |||
| committing | |||
| iblech | autrijus++ :) | ||
| cognominal | # L S<o4/The Relationship of Blocks and Declarations> | ||
| stevan | autrijus++ | ||
| iblech++ | |||
| cognominal | it is stated verbatim there | ||
| autrijus | cognominal: yes, I noticed. write a test with todo<bug> | 14:14 | |
| PerlJam | cognominal: ah, so it is. | ||
| I was thinking the perl5 behavior would continue on that one | |||
| autrijus | env.t all passes :) | ||
| stevan | File::Spec passes | 14:17 | |
| autrijus | woot | ||
| iblech | FYI, I'm fixing LWP::Simple ATM | ||
| stevan | I tried to fix the Win32 abs2rel bug, but I have not yet had enough coffee, so I left it TODO | 14:18 | |
| autrijus | k. | ||
| stevan | moving onto P::E::E | ||
| s/E$/P/ | |||
| iblech | Hm... connect $h, 8086 works fine, but connect $h, $p (where $p == 8086), does not ("pugs: connect: does not exist (Connection refused)") | 14:22 | |
| That's weird, as I use variables for the port numbers in Net::IRC, too, and there, they work fine... | 14:23 | ||
| autrijus | it worksforme. | 14:24 | |
| iblech | Yeah, and it works in the interactive shell, too, w/o problems | 14:25 | |
| But not in _send_request of LWP::Simple... investigating | 14:26 | ||
| nothingmuch | iblech: apropos _send_requst, shouldn't that be 'http_proxy' and not 'HTTP_PROXY'? or at least both? | ||
| iblech | nothingmuch: I didn't write the original code, but you're certainly right. Fixing | 14:27 | |
| nothingmuch | oh crap, now I se what my problem is | 14:28 | |
| svn up loop was broken | |||
| autrijus | iblech: I know. | ||
| fixing. | 14:29 | ||
| iblech | excellent. :) | ||
| nothingmuch | time for parrot to be installed too | ||
| cognominal | autrijus: wagner.elixus.org/~autrijus/svk-overview.png ==> 404 | ||
| stevan | autrijus: did you see my note about the match? | ||
| autrijus | stevan: yeah, same problem | 14:30 | |
| cognominal: mv to autrijus.org/svk-overview.png | |||
| the reason is | 14:31 | ||
| $0 is a match obj | |||
| match obj numifies to number of submatches | |||
| I'm making $0 etc into stringified match obj now. | |||
| nothingmuch | oi, parrot won't make -j3 | ||
| autrijus | not sure if it's according to spec | ||
| nothingmuch | *sigh* | ||
| autrijus | but certainly less painful | 14:32 | |
| committed. please test to see that it works now | |||
| stevan: you may not need "$foo" anymore; $foo would do | 14:33 | ||
| food & | |||
| nothingmuch goes to get pita + labane while things are building | |||
| Limbic_Region | mmmm food | 14:34 | |
| cognominal | what are all these empty merges when I do a svk push? | 14:36 | |
| iblech | autrijus: connect() works now :) | 14:37 | |
| clkao | eek | ||
| stevan | Pod::Event::Parser fixed (that pesky $0 again) | 14:39 | |
| Limbic_Region wonders if we will jump from version 6.28 to 6.2831 since pmichaud has already given us rules and grammars | 14:41 | ||
| kungfuftr | where's the roadmap again? | 14:43 | |
| PerlJam | kungfuftr: svn.perl.org/perl6/pugs/trunk/docs/...rview.html | 14:45 | |
| iblech | kungfuftr: docs/01Overview.html | ||
| PerlJam | search for "roadmap" | ||
| Limbic_Region: nah, I don't think so ... rules and grammars hasn't been vetted enough | |||
| kungfuftr | ta | ||
| stevan | Limbic_Region: we also dont have full classes and traits | 14:46 | |
| (we dont have traits at all actually) | |||
| (or rather Roles) | |||
| iblech | cognominal: There's no local() in Perl 6, it's called temp() instead, and one is allowed to use temp() on a variable multiple times | 14:48 | |
| cognominal | my bad | 14:49 | |
| are you sure about the "multiple times"? | |||
| iblech | yes | ||
| PerlJam | cognominal: you *must* be able to temp multiple times. | ||
| cognominal | I am sure multiple times are not allowed on lexicals | ||
| PerlJam | That's the prime benefit | ||
| cognominal | on the same scope? | 14:50 | |
| PerlJam | cognominal: sure you can temp a lexical multiple times | ||
| Unless this is one of the behaviors that will *really* surprise me with perl6 | |||
| Limbic_Region | stevan - think I wasn't clear | 14:51 | |
| 6.28 to 6.2813 implied that we did get full classes and traits | 14:52 | ||
| we would just be skipping over 6.281 (rules and grammars) | |||
| cognominal | PerlJam: so I am sure that "my $x; my $x" is an error, but currently it does not parse as a test, but it works on interactive pugs | 14:53 | |
| Limbic_Region | or rather, was what I was trying to imply | ||
| PerlJam | cognominal: It doesn't say in the synopses whether or not you can temp a var multiple times in the same scope. I can't even find an example that implies it. | ||
| cognominal | how should I test. | ||
| iblech | cognominal: That's because you wrote $x in the test description, which was double quoted. (Fixed.) | ||
| cognominal | PerlJam: in S04: (It's illegal to declare $x twice in the same scope.) | 14:54 | |
| PerlJam | cognominal: temp isn't a declaration | 14:55 | |
| cognominal | but the only example given is a lexical declaration | ||
| PerlJam | state $x; state $x should be an error too (I haven't looked if there's a test or not) | 14:56 | |
| iblech | PerlJam: It's tested in cognominal++'s t/var/var.t | 14:57 | |
| cognominal | how much of smart matching is implemented? | 14:59 | |
| iblech | IIRC $str ~~ rx/.../ and $object ~~ Class (but maybe other things, too) | 15:00 | |
| Juerd | My local repository is very fucked up | 15:03 | |
| I'm starting over | |||
| (svn-- # refuses to let me correct mistakes) | |||
| cognominal notes thhat iblech has a ipv6 address | 15:10 | ||
| iblech | cognominal: Yes :) See tunnelbroker.as8758.net/ | 15:11 | |
| BTW, it'd be great if I could connect() to IPv6 hosts *hint* :) | 15:12 | ||
| (Actually, POE::Component::IRC has the same problem last I checked, therefore iblechbot is still IRCing over IPv4.) | |||
| autrijus | stevan: so, module tests all work now? | 15:13 | |
| kungfuftr | iblech: you need an IPv6 server to connect to? | 15:15 | |
| iblech | kungfuftr: First, I need a tunnel broker, which gives me an IPv6 address. Then I can connect to the IPv6net :) | 15:16 | |
| kungfuftr | iblech: ah, you need a tunnel... you in the UK? | ||
| iblech | kungfuftr: No, Germany. My tunnel broker is tunnelbroker.as8758.net/. | ||
| ingy | hola | ||
| gugod++ | 15:17 | ||
| stevan | autrijus: yes I think so | ||
| ingy | gugod++ | ||
| autrijus | cool... rolling preflight #2 | ||
| iblech | autrijus: Just checked, yes, all ext/* pass | ||
| autrijus | iblech++ stevan++ | ||
| kungfuftr | iblech: i have native ipv6 from here: ipv6.glbx.net/ | ||
| iblech: ah, they blocking 6667? | 15:18 | ||
| iblech | kungfuftr: Native! | ||
| autrijus | Preflight #2: pugscode.org/Perl6-Pugs-6.2.3-pre2.tar.gz | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 15:19 | |
| iblech | kungfuftr: Yes, but not 7000, which Freenode's IRC server listen on, too :) | 15:19 | |
| kungfuftr | iblech: yup, native | ||
| autrijus | in that preflight, var.t will fail, that's expected | 15:22 | |
| already fixed in trunk | |||
| will still release if that's the only failure seen | 15:23 | ||
| (instead of pre3, that is) | |||
| iblech | autrijus: t/magicals/env.t fails 7, 10, 11 here (Linux) | 15:26 | |
| putter | re pre2, SIGNATURE? | 15:27 | |
| find . |xargs grep SIGNA | |||
| ./README: cpansign -v # optional; see SIGNATURE for details | |||
| . | |||
| iblech | Oh and BTW, do you know that interactive Pugs forgets class declarations? | ||
| autrijus | putter: oh. it's unsigned. will fix in final | ||
| putter | k | ||
| autrijus | iblech: no, I don't. aww. | 15:28 | |
| iblech | It does work when the class declaration and the use of the class is on the same line, e.g. 'class A {} my $a = A.new' | ||
| autrijus | iblech: hm, failing 7 means you don't have ./pugs | ||
| usually | |||
| can you investigate? | |||
| iblech | will do | 15:29 | |
| cognominal | iblech: getting an ipv6 address was painless | 15:30 | |
| kungfuftr will see about offering tunneling | 15:31 | ||
| iblech | autrijus: env.t fixed as r3096 (the vars SHLVL and _ were set by bash, and they didn't compare to the env expected, so those two tests failed) | 15:34 | |
| But the %*ENV.exists("...") bug is still there | |||
| autrijus | hm, it always returns true? | ||
| iblech | yes | 15:35 | |
| autrijus | attempted another fix. | 15:36 | |
| r3097 | |||
| iblech | Still doesn't work. If it helps you, defined %*ENV<does_not_exist> works (i.e., returns false) | 15:38 | |
| autrijus | hm. did you touch src/Pugs/AST/Internals.hs and rebuild? | 15:39 | |
| iblech | No, will do. | ||
| autrijus | please do. :) | ||
| Forth_ | I've svk sync so~ many times today... | ||
|
15:39
Forth_ is now known as Forth
|
|||
| iblech | Still doesn't work. :( | 15:39 | |
| No, wait a sec | 15:40 | ||
| works! :) | |||
| autrijus++ | |||
| autrijus | good. :) | ||
| anyone else running a test on preflight #2? | |||
| putter | yes. | ||
| autrijus | cool. win32? | 15:41 | |
| probably need a win32 confirmation before flying | |||
| stevan | autrijus: the class in the interactive shell issue iblech is talking about | ||
| it also shows up with use My::Class; | |||
| putter | sorry. FedoraCore3 x86_64. | ||
| autrijus | ah. that's cool too. :) | ||
| stevan: yeah, I noticed | |||
| stevan | ok | ||
| cool | |||
| where is the link for preflight #2 BTW | 15:42 | ||
| iblech | pugscode.org/Perl6-Pugs-6.2.3-pre2.tar.gz | ||
| stevan | nvermind found it | ||
| thanks iblech :) | |||
| autrijus | I think envClasses needs to be a TVar to avoid this kind of problem | 15:43 | |
| basically the env changed by use"" won't propagate back to the caller unless it's a TVar | |||
| (because it'd be lexical otherwise) | |||
| but it's not for 6.2.3 :) | 15:44 | ||
| iblech | autrijus: Found another env bug: Deleting an env var does not propagate to subprocesses (but setting does) | ||
| autrijus | what about setting it to '' ? | 15:45 | |
| Forth | Is there a way to specify the output encoding writing to file or stdout? | ||
| iblech | autrijus: Forget, it does work perfectly fine :) | ||
| autrijus | iblech: eh. :) | ||
| Forth: no... we don't yet have encoding support | 15:46 | ||
| suggestions welcome | |||
| we can link against *gasp* ICU | |||
| or iconv. | |||
| iblech | Ok, 4927 ok, 0 failed, 708 todo, 13 skipped and 0 unexpectedly succeeded on Linux | 15:49 | |
| autrijus | cool. I'm booting to win32 to test. | 15:52 | |
| Forth | i am running test but not pre2..... | ||
| autrijus | Forth: on win32? | 15:53 | |
| Forth | yes | ||
| autrijus | oh. cool | ||
| then I won't need to | |||
| putter imagines everyone doing "make unoptimized" to save time, and simple "make" not being tested... | 15:57 | ||
| Juerd | I use optimized make more often than unoptimized make. | 15:58 | |
| Most of the time, I am in no hurry | |||
| 2;0 juerd@sxark:~/project/pugs$ ./pugs -BParrot examples/matrix.p6 | |||
| pugs: Cannot compile: Syn "{}" [Var "%had",Pos (MkPos "examples/matrix.p6" 26 10 26 17) (App (Var "&infix:~") [Var "$y",App (Var "&infix:~") [Val (VStr "/"),App (Var "&infix:~") [Var "$x",Val (VStr "")] []] []] [])] | |||
| What does that mean? | |||
| putter | pre2 results (FC3 amd64, unoptimized, external parrot): | 15:59 | |
| Failed 3/253 test scripts, 98.81% okay. 5/4921 subtests failed, 99.90% okay. | |||
| t/magicals/env.t 11 2 18.18% 7 10 | |||
| Juerd | And the other 3? | ||
| Corion | I'm compiling the latest svn snapshot on Win32 | ||
| putter | t/unspecced/eval_yaml.t 254 65024 2 4 200.00% 1-2 | ||
| t/var/var.t 5 1 20.00% 2 | |||
| Corion | (Justin Case) | ||
| Juerd | Hm | ||
| putter | eval_yaml failure is a ghc amd64 bug. | ||
| Juerd | Corion: There are a lot of justins here | ||
| Corion | Juerd: :) | 16:00 | |
| Juerd | Corion: Time and Case are the most mentioned | ||
| Forth | oh no~ I forget I don't have parrot install at home | 16:01 | |
| osfameron | hmmm, I see r3098 in scrollback | ||
| but svn.perl.org/perl6/pugs/ is at 3005 ? | |||
| aha, that's a mirror | 16:02 | ||
| iblech | osfameron: svn.perl.org is mirrored from the real repository svn.openfoundry.org/pugs | ||
| osfameron | ta | ||
| Forth | Failed 2/253 test scripts, 99.21% okay. 9/4921 subtests failed, 99.82% okay. | 16:04 | |
| from the latest svn | |||
| Corion | unlink.t fails with 2 fails (as expected, but should be :todo for Win32 | ||
| ninereasons | you could add ':todo<Win32>' to those tests, Corion :) | 16:06 | |
| autrijus | Corion: ok, please skip them for win32 | ||
| Limbic_Region | Corion - is that even after it has been closed | ||
| Forth | and the last line is NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code '0xff' Stop. | ||
| autrijus | putter: how does t/unspecced/eval_yaml.t fail? | ||
| Limbic_Region | ? | ||
| putter | internal error: adjustor creation not supported on this platform | 16:07 | |
| Corion | Will fix unlink.t for Win32 | ||
| putter | allegedly (fully or partially fixed) in current cvs-ghc... which doesn't build for me at the moment. | ||
| (or didn't build for me yesterday... trying again) | 16:08 | ||
| osfameron | oooo, pugs is building r3098... | ||
| autrijus | putter: ok... I'm going to let it fail for x8664 | 16:09 | |
| putter | k | 16:10 | |
| Corion | Committed unlink.t fix (r3100) | 16:12 | |
| resmoking | |||
| autrijus | I guess pre3 is warranted after all ;) | 16:13 | |
| Corion | Gah. I was too eager... My fix put too much on :todo :( | ||
| autrijus waits for Corion's fix fix | 16:14 | ||
| Corion | r3101 | ||
| Oh. And undef.t dies, according to datenzoo.de/pugs/win2k.html ... | |||
| but other than that, we're ready to fly :) | 16:15 | ||
| autrijus | Corion: you don't have parrot in path, right :) | ||
| Corion | Is anybody "fixing" undef.t ? | ||
| autrijus: Nope, no parrot here. | |||
| autrijus | ok. I'm "fixing" it now | ||
| ninereasons | that's a tidy way to handle it, Corion++ # todo => $win32 | 16:19 | |
| Forth | pugscc won't create .exe anymore? | ||
| autrijus | Forth: I thought it would. what's the error msg? did you "nmake install" first? | 16:20 | |
| Corion | I never do "nmake install" | ||
| stevan | autrijus: I got 4 errors | ||
| t/builtins/undef.t 1 256 66 14 21.21% 60-66 | |||
| t/magicals/env.t 11 2 18.18% 7 10 | |||
| t/unspecced/eval_haskell.t 4 1 25.00% 2 | |||
| t/var/var.t 5 1 20.00% 2 | |||
| Corion | (at least not with Pugs) | ||
| stevan: You don't have Parrot? :) | 16:21 | ||
| iblech | autrijus: FYI, on Linux, pugscc only works with --parrot, not with --pugs and --haskell | ||
| stevan | rather, 11 errors, in 4 tests | ||
| autrijus | stevan: how does t/unspecced/eval_haskell.t fail? | ||
| stevan | Corion: I never managed to get it to work | ||
| autrijus: looking | |||
| Corion | stevan: That accounts for t/builtins/undef.t :) | ||
| stevan | failed test 2 | ||
| eval_haskell.t that is | |||
| autrijus | stevan: you have an old version of hs-plugins perhaps. | 16:22 | |
| stevan | autrijus: quite likely | ||
| Corion: yes, undef.t (something about not finding parrot) | |||
| autrijus | undef.t shoudl be fixed | 16:23 | |
| please test. | |||
| stevan | ok | ||
| autrijus | iblech: try pugscc again | 16:24 | |
| Forth: svn up and try pugscc again? | |||
| iblech | autrijus: --runpugs and --runparrot work now :), --runhaskell not | ||
| Forth | autrijus: sure, building now | 16:25 | |
| autrijus | stevan: so I'll let old hs-plugins fail for this release... you can update to something around or after 20050417 too | 16:27 | |
| stevan | ok | ||
| autrijus | iblech: try r3105 | 16:29 | |
| $ perl script/pugscc --runhaskell -e 'say 1' | |||
| 1 | |||
| how's undef.t for parrotless folks? | |||
| iblech | autrijus: All --run[parrot|pugs|haskell] work now :) | 16:30 | |
| autrijus | good. | ||
| Corion | autrijus: good | 16:31 | |
| autrijus | pre3! | ||
| Corion | autrijus: Does not crash anymore and fails one (TODO) test | ||
| autrijus | Final check: pugscode.org/Perl6-Pugs-6.2.3-pre3.tar.gz | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 16:31 | |
| autrijus | Corion: that's good to hear | 16:31 | |
| final call before boarding :) | 16:32 | ||
| Corion starts a (final|full) smoke from svn | |||
| autrijus starts writing release announcement | |||
| # pugscode.org/Perl6-Pugs-6.2.3-pre3.tar.gz | 16:33 | ||
| Juerd | 2;1 juerd@sxark:~/project/pugs$ ./pugs -BParrot examples/matrix.p6 | 16:38 | |
| pugs: Cannot compile: Syn "{}" [Var "%had",Pos (MkPos "examples/matrix.p6" 26 10 26 17) (App (Var "&infix:~") [Var "$y",App (Var "&infix:~") [Val (VStr "/"),App (Var "&infix:~") [Var "$x",Val (VStr "")] []] []] [])] | |||
| What does it mean? | |||
| autrijus | Juerd: that means that parrot codegen doesn't do PerlHash. | ||
| Juerd | Oh | ||
| That's unfortunate | |||
| autrijus | Juerd: really, please wait until after APW :) | ||
| Juerd | What's APW? | ||
| autrijus | the parrot codegen will get rewritten during my stay with Leo | ||
| Juerd | I see - when is that? | 16:39 | |
| autrijus | and hopefully unified with the Eval monad | ||
| that's ~1month from now | |||
| Juerd | ok | ||
| Are there other ways of speeding up execution? | |||
| autrijus | will try to cram stuff into parrot 0.2.1 to support things | ||
| ajs | A *month* ... in pugs time, that's like 10 years!!! ;-) | ||
| autrijus | Juerd: make things optimised... | ||
| Juerd | It segfaults after a while, when trying to match the rule | ||
| autrijus: Doing so already | |||
| I'd add a test for the segfault, but it takes way too long for that :) | 16:40 | ||
| autrijus | Juerd: I have this feeling that you're looking at a PGE problem :) | 16:41 | |
| Juerd: send the rule to p6c to pmichaud? | 16:42 | ||
| Juerd | It might very well be | ||
| It's hard to send it as e-mail | |||
| Because it exceeds the line length, and mailing lists don't accept attachments | |||
| autrijus | why? just .gz it | ||
| Juerd | No attachments. | ||
| autrijus | oh. then send a url | ||
| Juerd | That's a good idea | ||
| autrijus praises the technology known as URL | |||
| so, pre3 all clean here | 16:43 | ||
| how's it going for others? | |||
| stevan | undef.t is good for me | 16:44 | |
| _metaperl | hangman.p6 had a syntax error in it... | 16:45 | |
| Juerd | done | ||
| _metaperl | I found out during my presentation last night :) | ||
| autrijus | _metaperl: huh? it worksforme :) | ||
| _metaperl | ok I will try again... maybe its my pre-ghc6.4 pugs | ||
| Forth | the result of test irc.csie.org:8888/115 | 16:47 | |
| autrijus | Forth: what version is this? | ||
| Forth | r3106 | 16:48 | |
| autrijus | really. | ||
| run t\entities.t by hand and see what are the errors? | |||
| _metaperl | anyone want to help guess the p6-authors name? sorry to interrupt | ||
| autrijus | _metaperl: uh. what? | 16:49 | |
| Juerd | _metaperl: If you want people to cooperatively play the game, just make it an irc bot. | ||
| _metaperl | wild idea Juerd | ||
| Corion | r3105 is go on Win32 btw | ||
| autrijus | Forth: I suspect you are running against an old copy | 16:50 | |
| Corion | Hmmm. What is the easy way to get Parrot/Win32 ? | ||
| autrijus | Corion: read README | ||
| Corion | Oh. | ||
| _metaperl | here are my guesses so far: pastebot.nd.edu/802 | ||
| autrijus | _metaperl: botify it :) | 16:51 | |
| _metaperl | is that easy? it sounds involved | ||
| Forth | autrijus: irc.csie.org:8888/116 | ||
| is that my environment's problem? | 16:52 | ||
| autrijus | Forth: I remember that stevan fixed that a while ago | 16:53 | |
| unless I'm terribly mistaken | |||
| stevan | autrijus: that was Ovid's module actually,... I never touched it | 16:54 | |
| autrijus | Forth: I have no idea why it fails for you... | ||
| oh ok. | |||
| iblech | HTML::Entities's tests work fine here (as do all the other ext/* tests) | ||
| Forth | i have no idea, too. it's a clean build | 16:55 | |
| autrijus | ok. I'll investigate | ||
| Forth | i should try it again first :) | ||
| autrijus | no, duplicated here. | ||
| stevan | I would offer to help, but I really need to pay attention to $work :) | 16:56 | |
| sorry | |||
| autrijus | that's fine :) | 16:57 | |
| Forth | previous test is ok on that | ||
| Juerd | work always gets in the way of productivity | 16:58 | |
| It's an universal rule of open source | |||
| autrijus | fixed. | 17:03 | |
| committing | |||
| Forth++ | |||
| stevan | Juerd: $work is open source (to a certain degree) | 17:04 | |
| just not /all/ of it | |||
| Juerd | Cool | ||
| putter | my test run looked good. | 17:06 | |
| autrijus | Forth: please retest HTML::Entities | ||
| r3110 | |||
| if it works for you, I'm ready to fly | |||
| Forth | go fly :) | 17:08 | |
| irc.csie.org:8888/117 | |||
| autrijus | ok. :) | 17:11 | |
| Juerd | Yay | 17:12 | |
| Limbic_Region | . o O ( fly like an eagle ) | ||
| autrijus | 6.2.3 is airborne! | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | ||
| Limbic_Region | . o O ( leaving in on a jet plane - ain't coming back to this rev level again ) | ||
| autrijus | pugscode.org/dist/Perl6-Pugs-6.2.3.tar.gz | 17:13 | |
| enjoy! :) | 17:14 | ||
| autrijus cheers | |||
| release announcements etc will be up shortly | |||
| bbiab. | |||
| putter | woo hoo! | ||
| autrijus | 6.2.3 is airborne! | pugscode.org <Overview Journal Logs> | pugs.kwiki.org | 17:14 | |
| putter | hey everybody -- just awesome. ;) | 17:15 | |
| stevan | whoa.. flying Pugs,.. watch out below :P | 17:18 | |
| _metaperl | first there was Air Jordan. And now... Air Pugs | ||
| winning slam dunk contests everywhere | 17:19 | ||
| wilx | :) | 17:20 | |
| stevan | Money it's gotta be the Haskell! | 17:24 | |
| _metaperl | Forget Sleepy Floyd... forget Sleepy-eyed Tracy mcGrady... it's Lazy Evaluation's time to shine | 17:25 | |
| boogie | Somebody can tell me, how can I test rules with Pugs? It seems, that everybody can test it, but me. :) I have the latest Pugs and the latest Parrot, and got error if I run an easy regexp test... | 17:28 | |
| autrijus | boogie: what's the error? | ||
| boogie | pugs: user error (*** Running external 'parrot' failed: | 17:29 | |
| error:imcc:op not found 'concat' (concat<2>) | |||
| autrijus | latest parrot? | ||
| 0.2.0-release? | |||
| boogie | trunk | ||
| autrijus | is the parrot in your path also trunk? | ||
| boogie | yes, both parrot and pugs is the latest svn version. | 17:30 | |
| kolibrie | boogie: does 'which parrot' point to the right one? | 17:31 | |
| _metaperl | perl5 to perl6 question | ||
| my ($width,$height) = split(/x/, $banner->{size}); | |||
| $xpad = defined($xpad) ? $xpad : 40 ; | |||
| autrijus | boogie: cd into src/pge | ||
| _metaperl | I could write this as $xpad //= 40 ; | ||
| autrijus | in pugs tree | ||
| run this | |||
| $ parrot run_pge.pir 123 123 | |||
| PGE_Match 0 3 [] [] | |||
| _metaperl: that's right | 17:32 | ||
| _metaperl | wonderful | ||
| autrijus | boogie: I'm pretty sure both parrot trunk and 0.2.0 works with our bundled pge | ||
| boogie | kolibrie: that's the problem... | ||
| ingy | _metaperl: freepan accout set up | 17:33 | |
| tpe.freepan.org/repos/metaperl/ | |||
| please testit | 17:34 | ||
| boogie | Thanks for your help... ;) | ||
| kolibrie | boogie: :) | ||
| autrijus | :) | 17:35 | |
| but if you want to use rules in real programs, I'd recommend embedded parrot | |||
| spawning a process for each rule match could be slow | |||
| boogie | autrijus: I've tried that too, but I got error when compiled it. | 17:36 | |
| autrijus: I give it a try again, maybe it will work. The environment variables were right, but who knows. | 17:37 | ||
| autrijus | I'd be grateful if you can show me the error msg. | ||
| boogie | OK, I've started compiling it. | 17:38 | |
| kolibrie | autrijus++ # helping everyone with debugging | ||
| autrijus | everyone++ # helping me with debugging | 17:39 | |
| kolibrie | :) | ||
| autrijus | I still remember the early 6.0.x days... without TAP matrix, automatic smoke runs, or a channel full of lambdacamels... | 17:40 | |
| it's a miracle that I managed to get anything at all done back then ;) | |||
| kolibrie | ah, pioneering | 17:41 | |
| autrijus | "madness" is more like it | 17:42 | |
| kolibrie | I didn't say that | ||
| autrijus | :) | ||
| boogie thinks, that Compiling Pugs.AST.Internals takes long time. :) | 17:43 | ||
| wilx | So...are there any Perl6 tutorials yet? | ||
| It seems the time it starts to be worth learing has come. | |||
| _metaperl | 3 talks: metaperl.com/talks/p6 | ||
| autrijus | there's a examples/tutorial_gen/ | ||
| boogie | wilx: read the tests, and check the doc dir | ||
| autrijus | also the very-old-but-still-somewhat-useful exegeses | 17:44 | |
| boogie: "make unoptimised" will make it fast(er) | 17:45 | ||
| but yeah, more refactor-into-small-chunks is needed on that | |||
| or we can rename it to Pugs.AST.TakesReallyLongToCompilePleaseBePatientOrAbortNowAndMakeOptimisedByHittingCtrlC | |||
| boogie | it's the same with Pugs.Parser. :) But I want to get an optimized and fast version for my CGI experiments. :) | 17:46 | |
| autrijus | ahh :) | ||
| boogie got error message | 17:49 | ||
| Linking ... | |||
| /usr/local/lib/ghc-6.4/libgmp.a(set_str.o): In function `digit_value_in_base': | |||
| /playpen/ghc/nightly/STABLE-cam-02-unx/i386-unknown-linux/ghc/rts/gmp/mpz/set_str.c:44: undefined reference to `__ctype_b_loc' | |||
| /usr/local/lib/ghc-6.4/libgmp.a(set_str.o): In function `__gmpz_set_str': | |||
| /playpen/ghc/nightly/STABLE-cam-02-unx/i386-unknown-linux/ghc/rts/gmp/mpz/set_str.c:77: undefined reference to `__ctype_b_loc' | |||
| /playpen/ghc/nightly/STABLE-cam-02-unx/i386-unknown-linux/ghc/rts/gmp/mpz/set_str.c:149: undefined reference to `__ctype_b_loc' | |||
| collect2: ld returned 1 exit status | 17:50 | ||
| make: *** [pugs] Error 1 | |||
| autrijus | mm ghc nightly? | ||
| wilx | Hmm, examples/sendmoremoney.p6, in the =kwid section, the second one line paragraph ends in half of the sentence. | ||
| -- The `exhaustive' solution...etc. | 17:51 | ||
| boogie | autrijus: I don't remember, but it's possible. Should I try the latest nightly build? | 17:52 | |
| autrijus | boogie: no, it looks like something weird with ctype.h. hm. | ||
| it's possible that ghc was built with a different ctype than parrot. | |||
| boogie | ctype belongs to gcc? | 17:53 | |
| autrijus | I think so | ||
| pmichaud | ummm, I think ctype probably belongs to glibc | 17:54 | |
| autrijus | oh well. at least fork is fast on linux :) | ||
| ah. that's right. | |||
| __ctype_b_loc, specifically. | |||
| boogie | then I try to recompile GHC now. | ||
| pmichaud | and I noticed that glibc doesn't match the C Standard Library as far as ctype goes | ||
| Limbic_Region | autrijus - when I fork I like it to last a while | ||
| pmichaud | at least, it doesn't match the version in the Plauger book | ||
| autrijus | pmichaud: I've never had the occasion to deal with glibc | ||
| boogie | I mean glibc, too. :) I never knew these C libs. ;) | ||
| autrijus | so all knowledge of it is purely hearsay | 17:55 | |
| s/all/all my/ | |||
| iblech compiles Pugs 6.2.3 live cd... | 18:07 | ||
| Limbic_Region | iblech - how do I play? | 18:08 | |
| iblech | ?game starts a new game, ?guess char guesses, ?show shows the name again (covered, of course) | ||
| _metaperl | wow | 18:09 | |
| ?game | |||
| autrijus | oh. wow. hangman bot. | ||
| Limbic_Region | has it joined the channel? | ||
| iblech | _metaperl: You first have to start the bot ;) | ||
| Limbic_Region | and if not - why not? | ||
| iblech | okok I start it ^^ | ||
| autrijus | iblech++ # madness | 18:10 | |
| iblech | thanks :) | ||
| boogie agree with autrijus :) | |||
| iblech | my Pugs is still compiling (optimized this time, for the live cd)... | ||
|
18:12
ChanServ sets mode: +o autrijus
18:13
autrijus sets mode: -o autrijus
|
|||
| iblech | :) | 18:13 | |
| Corion | We got ops? Yay! That means we can kick people! :) | ||
| Bah. :( | |||
| iblech | ?game | ||
| Limbic_Region | ?game | ||
| iblech | ?guess i | ||
| Limbic_Region | heh | ||
| autrijus | eh. | ||
| _metaperl | ?guess e | ||
| wilx | ?guess a | ||
| Limbic_Region | ?guess m | ||
| _metaperl | ?guess r | ||
| wilx | ?guess u | ||
| Limbic_Region | ?guess t | ||
| wilx | ?guess Y | ||
| Limbic_Region | ?guess s | ||
| _metaperl | ?guess p | ||
| wilx | ?guess w | ||
| Limbic_Region | ?guess o | ||
| wilx | :)) | ||
| autrijus | fun! | ||
| iblech | :) | ||
| Corion | THE MACHINE WINS! YES! :) | ||
| Odin- | Hm. | ||
| autrijus | ?game | 18:14 | |
| Limbic_Region | wow | ||
| _metaperl | ?guess e | ||
| Corion | iblech: The bot should gloat a bit more :) | ||
| Odin- | Those don't appear as channel messages. | ||
| Limbic_Region | ?guess t | ||
| _metaperl | ?guess p | ||
| autrijus | ?guess o | ||
| _metaperl | ?guess a | ||
| Limbic_Region | ?guess a | ||
| autrijus | ?guess y | ||
| _metaperl | ?guess b | ||
| iblech | Odin-: They're NOTICEs, as the IRC RFCs mandate | ||
| autrijus | ?guess s | ||
| _metaperl | ?guess n | ||
| Limbic_Region | ?guess m | ||
| Odin- | iblech: Mandate? | ||
| autrijus | lol | ||
| Limbic_Region | ok - this is going to wreak hell on the irc logger coherency | ||
| iblech | Corion: Feel free to fix this, /me lacks the vocab | 18:15 | |
| Corion | Maybe somebody should start #perl6_games :) | ||
| boogie | Corion: :)) | ||
| autrijus aborts the bot :) | |||
| iblech | Odin-: ...as the IRC RFCs recommend bot writers | ||
| autrijus | iblech++ # lots and lots of fun | ||
| Odin- | iblech: Interesting. | ||
| Corion | This is so the bots don't get caught up in a feedback loop | ||
| Odin- | iblech: And annoying. ;) | ||
| Limbic_Region | iblech | 18:16 | |
| grr - iblech plus plus even | |||
| iblech | Odin-: Yes... Somebody posted an URL to a page describing the necessary steps to let those NOTICEs get displayed nicer | ||
| putter | no svn commit notes in irc log :( :( | ||
| autrijus | wow. icfp'05 contest is the same day as yapc::na | 18:17 | |
| must... let... Perl 6 win icfp'05 | |||
| iblech | putter: True. And the beep of the NOTICEs woke wilx up today ;) | 18:18 | |
| autrijus | # icfpc.plt-scheme.org/ | ||
| wilx | Hehe. | ||
| Yeah. | |||
| I usually turn off speakers but I forgot last night :) | |||
| Odin-LAP | Much fun, then? | ||
| putter | ;) | 18:19 | |
| iblech | Ok, then I convert the NOTICEs to PRIVMSGs | ||
| wilx | :/ | ||
| No good either. | |||
| Odin-LAP | Normal messages are PRIVMSG... | ||
| iblech | ?quit Shutting svnbot6 down for a minute (convert to PRIVMSGs) | 18:20 | |
| iblech is uploading the new live cd :) | 18:25 | ||
| svnbot6 | r3113 (iblech) -- NOTICE -> PRIVMSG for svnbot.p6 and hangmanbot.p6. | 18:26 | |
| Odin-LAP | Hmm. | 18:27 | |
| autrijus | iblech: announce the live cd separately on p6c please :) | ||
| integral | hmm, now irssi highlights this window for every commit :-( | ||
| Odin-LAP | Noticeably better. :) | ||
| iblech | autrijus: Ok :) | ||
| Limbic_Region | ?game | 18:28 | |
| oh - did the bot go away? | |||
| yep | |||
| autrijus | Guess! _i_b_c_R_g_o | ||
| Limbic_Region goes back to $work | |||
| svnbot6 | r3114 (autrijus) -- * typo | 18:33 | |
| Khisanth | pugs livecd? | ||
| PerlOS? :) | |||
| eric256 | hello... could someone explain why the example uses my $y = =$*IN; ... i don't understand where the second = comes from. | 18:34 | |
| stevan | eric256: it is basically equivalent to readline | 18:35 | |
| integral | = is for reading from an iterator | ||
| stevan | my $y = readline($*IN) is the same thing | ||
| eric256 | ahhh. cool. thanks. | ||
| stevan | :) | ||
| eric256 | and so i begin to learn. ;) | ||
| autrijus | :) | ||
| Limbic_Region | advocacy at work | 18:36 | |
| eric256 | i love the new classes. that is probably the only thing that i'm totaly excited about so far.. hopefully more will come | 18:37 | |
| autrijus | I love the lack of @{${[]}} :) | ||
| eric256 | do we still need to chomp input .... and is there an easy way to do that all i none step? | ||
| Limbic_Region | meant to mention to you in the chatterbox - if you haven't already - install Perl6::Bible | ||
| eric256 is chomped isn't implemented yet | 18:38 | ||
| but there should be a way to autochomp - yes | |||
| just as there is a way to auto-linefeed output | |||
| say versus print | |||
| eric256 | cool | ||
| Limbic_Region | s/should be/will be/ | ||
| eric256 | chomp IS implemented | 18:39 | |
| Limbic_Region | right - just not autochomp | ||
| eric256 | oh gotcha...whats the Perl6::Bible give me? | ||
| Limbic_Region | but don't make the mistake of opening up your file as rw AND turning on autochomp (when it becomes available) unless you really know what that will do ;-) | ||
| all the As Es and Ss | 18:40 | ||
| at your fingertips | |||
| autrijus | hm where is autochomp specced? | ||
| Limbic_Region | autrijus - it isn't as far as I know | ||
| autrijus | I see adverbial form of slurp :chomp in Perl6::Slurp | ||
| Limbic_Region | it has been thrown around several times though | ||
| autrijus | but nothing about autochomping | ||
| Odin-LAP | Limbic_Region: And what would that do? | ||
| You'd suppose it does 'chomp' automatically on each line fed in..? | 18:41 | ||
| Limbic_Region | dunno | ||
| autrijus | @lines = io("file").chomp.slurp; | ||
| (if we go with the IO::All api) | |||
| autrijus likes the IO::All api, btw, except maybe for the overloading bit | 18:42 | ||
| Limbic_Region | autrijus - great thing about Perl6::Bible is it makes grep'ing for something easy (though building it into p6bible would be nicer) | 18:43 | |
| eric256 | why not just $person.name = =$*IN.chomp; ?? | ||
| Limbic_Region | autrijus - for example, I have already found $*ARGS is chomped; | ||
| so it must be in there somewhere - looking closer | |||
| autrijus | eric256: well, you can use the perl5 idiom | 18:44 | |
| class Person { has $.name } | |||
| my $me = Person.new; | |||
| ($me.name = =<>).chomp; | |||
| Limbic_Region | looks like E02 autrijus | ||
| autrijus | that works in pugs just fine | ||
| Limbic_Region: hmm E is nonnormative | |||
| (as it's not added with "Update" markers) | 18:45 | ||
| maybe it'd be fun to update it, though | |||
| based on current pugs/p6l understandings | |||
| that will make a good tutorial | |||
| eric256 | any reason they didn't change chomp to return the chomped string like every sane person expects? | 18:46 | |
| Limbic_Region | autrijus - well, I know it has also been mentioned on p6.l the same way as the "Biting off less so you can chew" section of E02 | ||
| might just take a confirmation email to the list | |||
| autrijus | sure. | ||
| Limbic_Region | ok - will do | 18:47 | |
| autrijus | eric256: hm, maybe chomp should then be nonmutating | ||
| and you use | |||
| $foo .= chomp; | |||
| if you want destructive chomp | |||
| iirc it's been proposed by Juerd. | |||
| eric256: so, send a patch/suggestion to Rod's S29 | 18:50 | ||
| # www.rodadams.net/Perl/S29.html | |||
| "chomp" is not defined there, so just define it | |||
| and make it either only destructive under void context, or never destructive at all | |||
| eric256: send off to p6l and, see if it can be made into S29 -- once it is, I'd be happy to implement it in pugs and/or walk you thru on how to implement it | 18:51 | ||
| btw, you can patch against Pugs's docs/S29draft.pod | |||
| bbiab. | |||
| Limbic_Region | message sent | 18:52 | |
| eric256 just knows it seems crazy as is. | |||
| am i getting myself invovled in yet another project that i don't have time for? although admitidly this is a much more interesting project than any before. ;) | 18:53 | ||
| Limbic_Region | eric256 - I don't have any time for it either but you would be surprised how a lot of people contributing a little bit adds up | 18:54 | |
| besides - even if you don't get into the Haskell side of the house (I haven't) - you still get to learn p6 | 18:55 | ||
| kolibrie | and hang out with uber-cool folks | ||
| Limbic_Region | imagine the XP you will get when everyone starts using it and you are able to answer questions faster and better than the p5 experts | ||
| eric256 | very true. i looked into haskell a bit but i think i'll stick to learning p6 | ||
| Limbic_Region never thought he would resort to using XP as a marketing strategy | |||
| eric256 | lol | 18:56 | |
| okay. i stumbled on something.... say "hello" & "wow"; prints each on its own line... new magical meaning of &? | 18:57 | ||
| pmichaud | & is a junction | ||
| eric256 | hmmm. so it causes say to be called twice? once for each element in the junction? | 18:58 | |
| pmichaud | but it should probably generate a "cannot print junction" error and not print both | ||
| at least, that's what Damian claims | |||
| Limbic_Region feels that it shouldn't unless you ask it to | |||
| pmichaud | but yes, a junction would be a scalar that holds multiple values and a relationship among them simultaneously | ||
| Limbic_Region | IOW - provide for a short cut to for all( stuff ) { say } | 18:59 | |
| but don't make it just be say all( stuff ) | |||
| hmmm - I have convinced myself I don't like that idea | |||
| Limbic_Region shuts up now and leaves the design to the experts | 19:00 | ||
| eric256 | which idea? so is this a bug or feature at this point? lol | ||
| svnbot6 | r3115 (iblech) -- Added Makefile.old to the svn:ignore of ext/Test-Builder. | ||
| eric256 | or undefined as yet? | ||
| pmichaud | I haven't fully followed the meaning of for all ( stuff ) { say } yet | ||
| integral | reify { say reflect "hello & wow" } maybe | ||
| autrijus | eric256: it's undefined. | 19:01 | |
| eric256 | hmm i. say("this" | "that") also prints both which doesn't seem right | ||
| pmichaud | okay, just got for all(stuff) { ... } from S03 | ||
| Limbic_Region | pmichaud - I am kind of frustrated with the way junctions are currently spec'd so I don't know myself | ||
| pmichaud | eric256: are you specifically interested in junctions? Or are you trying to test && and || ? | 19:02 | |
| autrijus | eric256: so, foo("this" | "that") actually means | ||
| foo("this") | foo("that") | |||
| pmichaud | say( "this" | "that" ) ==> say any("this", "that" ) | ||
| autrijus | so foo will be called twice no matter what juctive combinator you use | ||
| junctive, even | |||
| pmichaud | as long as foo accepts junctive scalars | ||
| autrijus | that's right. | 19:03 | |
| eric256 | autrijus: ohhh. pmichaud i just stumbled on the behavior by accident. i mean ~...don't ask how i hit the & lol | ||
| autrijus | :D | ||
| pmichaud | in particular, it doesn't do the autothreading if foo(...) accepts a list | ||
| autrijus | hm? where is that said? | 19:04 | |
| pmichaud | S09 | ||
| "In any scalar context not expecting a junction of values, a junction produces automatic parallelization of the algorithm." | |||
| autrijus | oh. you mean "accepts a list" as in "imposing a plural context" | ||
| Limbic_Region still wants to be able to do all( any(@foo) eq any(@bar)) and have the result be all the matches and not a boolean true/false | |||
| pmichaud | autrijus: right | ||
| autrijus | that's right then | ||
| PerlJam | pm: btw, did you implement & in PGE? | 19:05 | |
| pmichaud | pj: not yet | ||
| eric256 has to goto lunch now before his head explodes or possibly implodes | |||
| pmichaud | limbic: so, define the special eq operator I discussed :-) | ||
| autrijus | so will == be special as well? | 19:06 | |
| ~~? =:=? curious minds wants to know! :) | |||
| pmichaud | i.e., define an eq operator that returns the equivalent value instead of a boolean true/false, and you can get any(@foo) myeq @bar | ||
| Limbic_Region | pmichaud - and as I said, I don't necessarily need to see it in the core but it should be readily available in a generic form as one of the first p6 modules | 19:07 | |
| I just don't have the appropriate fu yet | |||
| autrijus | use Junc::Util;; | ||
| pmichaud | Oh, I suspect it'll end up being use Sets; :-) | ||
| Limbic_Region | either Sets or Junc::Util is fine by me | 19:08 | |
| grrr - real $work | 19:09 | ||
| Limbic_Region wanders off | |||
| revdiablo | ok, I really need to build parrot now. | 19:11 | |
| integral | it builds refreshingly faster than pugs ;-) | 19:12 | |
| revdiablo | I wonder if dh_make_perl can handle it nicely | ||
| ... or at all | |||
| Limbic_Region | looks like volunteers for finishing S29 are being asked for autrijus | 19:16 | |
| autrijus | pmichaud: ping | ||
| Limbic_Region | eric256 - perfect opportunity to plunge in head first | ||
| autrijus | if 'localhost:80' ~~ /^(.+)\:(.+)$/ { | ||
| my $socket = connect($0, $1); | |||
| } | |||
| pmichaud: assume that $1 is evaluated in Int context. | |||
| pmichaud: what does it evaluate to? 80? 0? | |||
| pmichaud | 1 | 19:17 | |
| autrijus | right, 1. | ||
| but hey, isn't that just killing one of the idioms? | |||
| pmichaud | use $1 | ||
| er | |||
| use ~$1 | |||
| autrijus | and why is it 1 when it has no submatches? | ||
| pmichaud | a match object returns 1 if it successfully matched | 19:18 | |
| revdiablo | argh, dh-make-perl is looking for modules, not just any CPAN distribution | ||
| autrijus | should it not be 0 (as in, no submatches) | ||
| er, I thought the numeric context stands for number of submatches | |||
| pmichaud | no, I think it's going to be the number of successful matches | ||
| autrijus | or is that for quantified capture only? | ||
| ah ok. | |||
| so if (xx)+ matches 3 times | |||
| pmichaud | it's always 1, unless :g is specified in which case it may increase | ||
| autrijus | $0 would numifiy to 3? | ||
| pmichaud | nope | 19:19 | |
| autrijus | still 1? | ||
| pmichaud | as far as I know -- that's what Damian's post says | ||
| to get 3 one would typically use @{$0} | |||
| or maybe +@{$0} | |||
| autrijus | ok | 19:20 | |
| pmichaud notes that he didn't write the spec (or have much hand in it) -- he just implements it | |||
| hmmm, how do I explain the difference to Aaron (on p6l)? | 19:21 | ||
| autrijus | ooh S29 pumpking wanted on p6l | 19:23 | |
| pmichaud: thanks for the explanation -- so my understanding was right -- but I think that's very inconvenient | |||
| sent to p6l for further deliberation | 19:24 | ||
| pmichaud | it may indeed be inconvenient, I don't know that anyone had come across that particular issue yet | ||
| autrijus | it broke quite a few of our tests :) | ||
| elmex | p6 tends to become inconventient in not so few places | ||
| autrijus | elmex: hm? | 19:25 | |
| pmichaud | it may be that we decide that match objects in numeric context become the numified version of the string value | ||
| autrijus | that would be nice. | ||
| pmichaud | that's probably more important and useful than having it be the number of successful matches | ||
| which we can always get via a method on the match object | |||
| autrijus | yeah. | ||
| yup. | |||
| .matches, that is. | |||
| Limbic_Region | autrijus - [15:16] <Limbic_Region> looks like volunteers for finishing S29 are being asked for autrijus | 19:26 | |
| autrijus | oh. didn't see that :) | ||
| Limbic_Region | I followed it up with | ||
| [15:16] <Limbic_Region> eric256 - perfect opportunity to plunge in head first | 19:27 | ||
| autrijus | right! | ||
| Limbic_Region | I didn't get a reply though | ||
| Limbic_Region might have scared him | |||
| autrijus hopes not | |||
| PerlJam | autrijus: did you see larry's reply regarding split /(..)*/, 1234567890 ? | 19:30 | |
| autrijus | PerlJam: yes, implemented as such. | ||
| committing | |||
| PerlJam | magic! | ||
| autrijus | tests welcome | ||
| PerlJam | will do | ||
| autrijus | pmichaud: | 19:32 | |
| svnbot6 | r3116 (ninereasons) -- skip a segfaulting test | ||
| PerlJam | Hrm. Is the first arg to split always a RE in perl6? | ||
| Limbic_Region | PerlJam - unless it is something else ;P | ||
| autrijus | hm, nvm, it's my fault :) | ||
| pmichaud | autrijus: glad to help :) | ||
| autrijus | :D | ||
| I forgot that (..)* always matches. | 19:33 | ||
| PerlJam | Limbic_Region: in perl5, it's always a regular expression even if you do split "foo+bar",$string (i.e. that + is a quantifier not a literal +) | 19:34 | |
| Is perl6 the same? | |||
| elmex | why does (..)* always match? | ||
| PerlJam | elmex: * means zero or more | ||
| elmex: you can always match zero times | |||
| elmex | PerlJam: hm.... | 19:35 | |
| k | |||
| autrijus | anyone have parrot 0.2.0-release installed? | 19:39 | |
| svnbot6 | r3117 (bsmith) -- Added export lists to Pugs.AST.Internals, Pugs.Eval and Pugs.Lexer. | ||
| Limbic_Region | PerlJam - I was being silly^h^h^h^h^hunhelpful | ||
| integral | hmm, pugs uses the same AST structure to compile and run the code? I mean there's always Pads with VRefs attached, even at just compile time? | 19:40 | |
| autrijus | integral: yes. | ||
| the notion of "compile time" in perl is weird | 19:41 | ||
| the compiler itself is a perl runtime | |||
| integral | hmm, it's awkward | ||
| autrijus | it is. | ||
| it's also fun. | |||
| integral | it looks like it's the main reason AST.Internals is so big too | ||
| autrijus | it's like how TH2 let you run IO in the Q stage. | ||
| integral | hmm | 19:42 | |
| autrijus | it's the same idea | ||
| integral | But then when the Q bit has run, you're just left with a static AST | ||
| autrijus | that is right | ||
| the static AST is then fed to codegen | |||
| integral | that's the bit that perl doesn't have then? | ||
| autrijus | perl5 by default doesn't do that | 19:43 | |
| it just walks the tree in memory, like pugs does | |||
| but perl6 will codegen to PIR | |||
| by default | |||
| integral | hmm, another idea: the IVar uses these ScalarClass things, maybe something similar for Var(?) ? | ||
| autrijus | hm? | 19:44 | |
| integral | and in walking the tree it hangs pads etc off the same tree, rather than another? | ||
| autrijus | where is this "another"? | 19:45 | |
| svnbot6 | r3118 (autrijus) -- * sync pge | ||
| r3119 (autrijus) -- * split// now attaches the submatches themselves to the | |||
| r3119 (autrijus) -- resulting list. | |||
| autrijus | the compiler and runtime shares the same tree that is envExp | ||
| the parser too | |||
| integral | ok, but do they have to? | ||
| autrijus | not sure what the gain would be if they don't | 19:46 | |
| but I think theoretically yes | |||
| integral | well it means that the Exp tree wouldn't contain Pads, surely? | ||
| hmm, | 19:47 | ||
| autrijus | you still need the Pad to close the closures over, no? | ||
| integral | but you don't have closures until you run code... | ||
| autrijus | ...which is what the compiler has to do | ||
| consider: | |||
| my $x; BEGIN { $x = 3 }; say $x | 19:48 | ||
| here the BEGIN{} happens at parsetime | |||
| even before say is parsed | |||
| integral | hrm, I see now | ||
| autrijus | we're dealing with a clearly insane language :) | ||
| pmichaud | created by clearly insane people. Nice, that. | ||
| :) | |||
| autrijus | :) | ||
| integral | hmm, but when it comes to separate compilation the value of $x is going to be serialised anyway | ||
| autrijus | sure | ||
| so that's why I say you can use two Exp | 19:49 | ||
| but the first one (the compile time one) | |||
| still needs its own pads | |||
| and all | |||
| Odin-LAP | autrijus, pmichaud: Any non-perler could've told you that several years ago. | ||
| autrijus | it needs to be a full environment | ||
| Odin-LAP | (re: sanity) | ||
| autrijus | that's right. | ||
| integral | hang on, what does: sub foo { my $x; BEGIN { $x = 3 }; say $x } do? | ||
| autrijus | it's the same as | 19:50 | |
| sub foo { my $x ::= 3; say $x } | |||
| er, no | |||
| it's not the same | |||
| Limbic_Region throws in a state() or two just to make it crazier | |||
| autrijus | what it does is that it creates a Pad for foo with $x in it | ||
| that pad has a value of 3 on entry | |||
| integral | at the moment sub foo { my $x; BEGIN { $x = 3 }; say $x } foo; foo; foo; prints "3\n\n\n" | ||
| _metaperl | Limbic_Region, what is state()? | 19:51 | |
| autrijus | fortunately, this we can check with p5. | ||
| Limbic_Region | like static in C | ||
| only gets initialized once | |||
| autrijus | $ perl -le 'sub foo { my $x; BEGIN { $x = 3 }; print $x } foo; foo; foo;' | ||
| 3 | |||
| \n\n\n | |||
| same behaviour. | |||
| Limbic_Region | let me see if I can find the exmple | ||
| autrijus | i.e. the pad with 3 on entry is scratched on reentrance. | ||
| integral | personally I say this is weird. It creates a new pad the other two times, but not the first | ||
| autrijus | to not scratch it, you use state() | ||
| kolibrie | _metaperl: like my(), except that it is still there the next time the block is entered | 19:52 | |
| Limbic_Region | _metaperl - see svn.openfoundry.org/pugs/examples/cashiers.p6 | ||
| autrijus | integral: line 287 in Eval does that. | ||
| the reduction rule for | |||
| reduce (Pad SMy lex exp) = do | |||
| is clearly doing just that | |||
| _metaperl | i see. thanks kolibrie and Limbic_Region | ||
| integral | ugg, I really don't like this bit of perl | ||
| autrijus | integral: I agree that is weird. I also think it's useful. | ||
| perl's idea of a lexical scope is much more.. dynamic | 19:53 | ||
| (it's also much more error prone.) | |||
| integral | wouldn't it be an idea to solve then? ;-) | ||
| hmm, is this behaviour already spec'ed? | |||
| autrijus | I'm not sure on how to "solve" this once you allow BEGIN{}. | ||
| integral: I think it's supposed to be just like p5 in this regard | |||
| integral | I'd say that the $x wasn't visibile to the BEGIN | ||
| autrijus | but no, it's not in any of synopsis | ||
| integral | (because it doesn't exist until you enter the lexical scope of the sub) | 19:54 | |
| autrijus | I agree it's far saner, but also note that perl's use Module; is specced as | ||
| BEGIN { require Module; } | |||
| and it needs to see its lexical scope even if inside a named subroutine | |||
| in order for pragma modules to work | 19:55 | ||
| viewing from any angle, it's a huge hack... but taken together it makes an eerie kind of sense. | |||
| integral | hmm | ||
| autrijus | it's one of those Autostereogram things | ||
| wolverian | p6l++ # 22 new posts to read | 19:56 | |
| integral | hrm, one might think that my $x if 0 makes sense too :-/ | ||
| pmichaud | wolverian: the number will only continue to increase for some time, methinks :-) | ||
| I've got a couple of nearly-warnocked posts still outstanding :) | 19:57 | ||
| autrijus | pmichaud: I implemented your suggestion in pugs for now | ||
| it's saner than the kluge I use | |||
| integral | would p6l be the right place to ask if this is right? | ||
| autrijus | integral: yes. | ||
| pmichaud | anytime there's a question about what the language *should* do, it generally belongs on p6l | ||
| autrijus | integral: and hey, if you can get @Larry to agree that closure entrance is not created during BEGIN time, I'd be surprised -- but it makes writing compilers much easier | 19:58 | |
| ;) | |||
| pmichaud | I'm pretty sure $Larry already knows the answer to this puzzle | ||
| integral modifies his view slightly: $x should be visible, but as some kind of "prototype" variable, that you can't really assign to | 19:59 | ||
| autrijus | mmm single-assign perl6 | ||
| j/k | |||
| integral: but if $x is visible, you can also rebind it | 20:00 | ||
| and it will also kill the pad | |||
| unless you mandate that the pad is read-only during BEGIN time | |||
| but then, the entire module is inside a BEGIN{} block | |||
| when use'd | |||
| integral | hmm | ||
| svnbot6 | r3120 (autrijus) -- * implement pmichaud's suggestion of numifiing | 20:01 | |
| r3120 (autrijus) -- match objects using its string value. | |||
| Limbic_Region | just change used modules to a sourcefilter | ||
| autrijus | cf. "Variable will not stay shared" fiasco | ||
| Corion | bbl (firefox upgrade) | ||
| pmichaud | autrijus: if p6l comes back and agrees with my suggestion, then it'll end up being the same in PGE itself. FWIW. | ||
| eric256 | what method should be used for defaulting class properties? is that what the BUILD method is for? and if i define a build method will i loose the ability to pass properties as part of .new ? | 20:02 | |
| autrijus | pmichaud: sure, cool | ||
| eric256 | s/properity/attribute/ i guess | ||
| autrijus | eric256: see Test::Builder :) | ||
| ext/Test-Builder/ | |||
| note that pugs doesn't yet run it (but hopefully soon) | 20:03 | ||
| once pugs run it, though, it will be the reference of OO semantics for some time. | |||
| Limbic_Region | chromatic wrote that right? | ||
| autrijus | right, with help from dconway and luqui | 20:04 | |
| iirc | |||
| Limbic_Region | grrr - I want to know who broke the Monastery | ||
| _metaperl | ?game | 20:05 | |
| Limbic_Region | the bot left _metaperl | ||
| _metaperl | oh... it was a lot of fun while it lasted | ||
| autrijus | you can run it too ;) | ||
| Limbic_Region | probably needs to /msg by default | ||
| or at least remember who started what game | 20:06 | ||
| autrijus - out of curiosity, is there a way to determine what rev you are on straight from the pugs executable? | 20:07 | ||
| pugs -V doesn't have it | |||
| eric256 | reading its source doesn't seem to help me. i can tell how to default method parameters...but not class attributes....unless making a BUILD methods with the right parameters defaulted is what i need...which i guess it kind of is. | ||
| integral | Limbic_Region: ./pugs -V:pugs_revision | ||
| Limbic_Region | it always says 0 | ||
| integral | oh, you're on svk? | ||
| autrijus | eric256: it is. you can also use | 20:08 | |
| has $.foo = 4; | |||
| which, although legal, is not yet supported in pugs | |||
| integral | someone should fix util/version_h.pl so it groks SVK too | ||
| Limbic_Region | integral - I am getting binary Win32 builds from Jonathan | ||
| www.jwcs.net/~jonathan/perl6/ | |||
| integral | hmm, he mustn't be using svn I suppose | ||
| eric256 | okay. so i'll just wait on that then ;) | 20:09 | |
| pmichaud | eric256: did you look at S12? | ||
| All classes inherit a default C<new> constructor from C<Object>. | |||
| It expects all arguments to be named parameters initializing attributes | |||
| of the same name. You may write your own C<new> to override the | |||
| default, or write constructors with any other name you like. | |||
| Limbic_Region | oh well - at least he does daily builds - I can't be more than what - say 60 or 70 revisions behind each morning | ||
| autrijus | so, if anyone is using parrot 0.2.0-release | 20:12 | |
| please try pge with trunk | |||
| eric256 | crap. i didn't read down it far enough. | ||
| autrijus | and see if you can still match anything | ||
| i.e. if it just curls up and die :) | |||
| pmichaud | the latest versions of pge won't run with parrot 0.2.0-release | 20:13 | |
| 0.2.0 doesn't have the find_cclass and find_not_cclass ops | |||
| autrijus | oh. ok. aw. | ||
| pmichaud | those were just added yesterday | ||
| autrijus ponders what to do | |||
| PerlJam | quick! Release parrot 0.2.1 | 20:14 | |
| autrijus | demand trunk parrot? :) | ||
| PerlJam: nah, parrot's release schedule is up to 4x slower than ours | |||
| PerlJam | 4x? I think it's much slower than that :) | ||
| autrijus | it's now monthly. | ||
| chip++ | |||
| Limbic_Region | 1xmonth versus 1xweek | ||
| pmichaud | autrijus: well, I can't imagine anything in pge that will require more from parrot. It might be worthwhile to get a pugs-parrot release | 20:15 | |
| i.e., just build the equivalent of a release for distribution with pugs until the next official parrot release | |||
| it ought to be a one-time thing | |||
| autrijus | pmichaud: mayyybe. | ||
| Corion | Hmmm. While browsing the tests, I found # FIXME tests that were commented out. Should these be converted into skip() tests, so we find them easier? Or is grep -l FIXME Good Enough? | ||
| autrijus | need to talk with leo about that | ||
| Corion | I've grown fond of the HTML view of things | ||
| pmichaud | I don't believe I'm going to need anything new from parrot to fill out PGE | ||
| but I definitely needed find_cclass and find_not_cclass | 20:16 | ||
| PerlJam | pmichaud: famous last words ;) | ||
| pmichaud | and they just didn't get added in time for 0.2.0 | ||
| _metaperl | is PGE supposed to add PCRE for any language compiling to Parrot? | ||
| pmichaud | _metaperl: that's my vision | ||
| Limbic_Region | P6CRE right | ||
| PerlJam | PGE adds PGE for any language compiling to parrot :-) | ||
| pmichaud | yeah, it's more than just regular expressions :-) | 20:17 | |
| Limbic_Region | right | ||
| autrijus | actually we have Inline::Parrot :) | 20:18 | |
| in CPAN | |||
| so maybe Regexp::PGE? | |||
| or call it... *gasp* Perl6::Rules | |||
| pmichaud | heh | ||
| Limbic_Region can't imagine an anarchist wanting to follow "the rules" | 20:20 | ||
| pmichaud | it's a verb, not a noun :-) | ||
| autrijus | nah. "rules" as in "anarchism rules" | ||
| right. | |||
| boogie | autrijus: ghc compiled (today's 6.4 snapshot). just another bug | 20:22 | |
| svnbot6 | r3121 (autrijus) -- * revert last change for now as it breaks parrot 0.2.0 | ||
| r3122 (bsmith) -- Now tries to use the svk "Mirrored from" revision number if it's not a svn | |||
| r3122 (bsmith) -- checkout. | |||
| boogie | Linking ... | ||
| /usr/local/lib/ghc-6.4.20050506/libHSrts_thr.a(Schedule.thr_o): In function `schedule': | |||
| Schedule.thr_o(.text+0x1a7): undefined reference to `awaitEvent' | |||
| collect2: ld returned 1 exit status | |||
| boogie going to bed. it was enough for him today... | 20:24 | ||
| autrijus | boogie: link without threads | ||
| you can fix it in Makefile.PL | |||
| that should work | |||
| i.e. remove -threads in Makefile | |||
| svnbot6 | r3123 (corion) -- Changed a test from ok(eval(...)) to eval_ok() | 20:28 | |
| PerlJam | pm: I was just looking at the characater class stuff in P6Rules ... Is there some reason you didn't make the charclass and charmatch stuff part of the constructor for PGE::Exp::CharClass? | ||
| Corion | I'm moving stuff out of t/pugsbugs/ if it now works ;) | 20:29 | |
| autrijus | Corion++ | ||
| Limbic_Region | Corion plus plus | ||
| autrijus | Corion: thoughts on championing S29? | ||
| Corion: we can all maintain it under docs/S29Draft.pod | |||
| pmichaud | pj: yes | ||
| Corion | "championing" ? Like, taking it over? | ||
| pmichaud | there's not any constructor methods for the subclass, only for the base class | ||
| autrijus | Corion: yeah, www.nntp.perl.org/group/perl.perl6....uage/21097 | ||
| Limbic_Region | Rod asked for volunteers | ||
| Corion | Hmmm - I don't have much time, resp. want-need to spend it on other stuff too ... But I can try, wiki-style :) | 20:30 | |
| pmichaud | more to the point, at present in parrot there's no way to get a subclass to be able to call a superclass' method | ||
| autrijus | Corion: I think maintaining it under docs/S29Draft.pod is a good idea, but we still need an editor :) | ||
| Limbic_Region notes the time and heads homewards | |||
| autrijus | pmichaud: uh, what? | ||
| Corion | autrijus: I'm good at cleaning up stuff ;) | ||
| autrijus | pmichaud: you mean like ->SUPER:: ? | ||
| PerlJam | pm: Oh I see. So you'd have to duplicate all of the logic were you to do that? | ||
| pmichaud | pj: right | ||
| boogie | autrijus: you mean that '-threaded' should go to ghc, or should I remove it? :) | ||
| autrijus | boogie: remove it will likely solve the link error | 20:31 | |
| pmichaud | autrijus: what is ->SUPER:: ? | 20:32 | |
| autrijus | pmichaud: it's this $self->SUPER::method() | ||
| I was not sure what you're talking about that parrot doesn't do | |||
| PerlJam | If I can keep the wife and kids happy without my attention, I may add character class support to Glob.pir tonight. Otherwise it'll have to be on the weekend. | ||
| pmichaud | oh, you mean from perl. In Parrot, as far as I know there's not a way for a subclass to dispatch to an overridden method in the superclas | ||
| s | |||
| Corion | btw, is :todo now invalid? I got an error in a commented-out line which I could fix (resp. change into another error) by making it into "todo => 1" | 20:33 | |
| autrijus | huh? | ||
| pmichaud | pj: okay, just be aware that the interface/attributes for the ::CharClass object are likely to change | ||
| autrijus | Corion: it should be ok. weird -- but I'm doing $work, no time to investigate yet | ||
| Corion | np | ||
| pmichaud | autrijus: www.nntp.perl.org/group/perl.perl6....nals/29323 | 20:34 | |
| svnbot6 | r3124 (ninereasons) -- todo<bug> a failing test | ||
| r3125 (corion) -- Pugsbugs cleanup: Move now working tests to their resp. directories, change parsefailing tests to new (but still failing) valid syntax | |||
| PerlJam | pm: sure. But the method that's there now works right? | ||
| autrijus | pmichaud: thanks! | ||
| pmichaud | pj : yes | ||
| PerlJam | good enough for me :) | ||
| pmichaud | autrijus: super class method calls are certainly to be added in Parrot -- afaik they aren't there yet | ||
| there's certainly nothing in the docs about them, and when I asked leo about them last week they weren't available yet and leo is looking for comments | 20:35 | ||
| PerlJam | you know, I asked the dbdi-dev mailing list if they were still alive and I bet the ability to call super's methods is one of the features they're missing (and thus partly why the list is in hibernation) | 20:36 | |
| pmichaud | yes, I was surprised by it as well. But at present I've just worked around it in PGE | ||
| autrijus | ok... in that case I think we don't need to create a special parrot-pge-pugs snapshot :) | ||
| we'll just demand people to use parrot trunk ;) | 20:37 | ||
| because codegen won't work reasonably on 0.2.0-release as well | |||
| without short attribute names, etc | |||
| PerlJam | autrijus: at pugs' rate of development that's not an unreasonable demand | ||
| autrijus | true :) | 20:38 | |
| nothingmuch | lambdacamels: how would you name an object that has arbitrary fields with accessors, can inherit data fields from others like it, and push data fields upwards to those it inherits from? | 20:39 | |
| svnbot6 | r3126 (corion) -- More tests moved out of t/pugsbugs/ | ||
| autrijus | "push data field upwards"? | 20:40 | |
| Corion | nothingmuch: "generic" ? | ||
| nothingmuch | Corion: eh? | ||
| autrijus | "classless"? | ||
| Corion | nothingmuch: Your description could be all or nothing :) | ||
| nothingmuch | think of it as a hash | ||
| Corion | "prototyped" or "hierarchical" could be good names as well | ||
| nothingmuch | where you have all the keys from the hashes you derive from | 20:41 | |
| Corion | (mostly synonymous with "classless") | ||
| nothingmuch: Ah. "classless" it is. Like in JavaScript. | |||
| integral | (Self or Class::Prototyped) | ||
| nothingmuch | and you can also push your own keys upwards to your parents | ||
| wait wait wait | |||
| Corion | nothingmuch: That's an ugly idea. | ||
| nothingmuch: You don't want propagation in both directions. | |||
| (at least I don't want that) | |||
| nothingmuch | one is inheritence, and defaultness | ||
| this is not an object system | |||
| Corion: yes I do | 20:42 | ||
| Corion | because if you push values upstream, they propagate downstream through the whole tree again | ||
| nothingmuch | that's exactly the point | ||
| Corion | Ugh. | ||
| nothingmuch | =) | ||
| nevermind, it works | |||
| Corion | Maybe you have a use case for it, but why not simply modify the parent. | ||
| nothingmuch | i just need a name | ||
| because the object modifying the child does not get to decide whether the parent sees it's changes | |||
| it really is simply modifying the parent, except that it's in two steps | 20:43 | ||
| autrijus | ok, I've decided: pugs will no longer bundle PGE; people who want rules need parrot trunk at all times; all PGE checkins happen at parrot tree. | ||
| Corion | autrijus: One day, Pugs and Parrot should be one bundle ... That makes it easier for lazy people like me ;) | ||
| autrijus | Corion: that day may be sooner than you think :) | ||
| (and ponie too) | 20:44 | ||
| nothingmuch | so! anybody got a nice name? Hierarchal is too long to type, methinks. It's not classes. Generic and Prototyped don't mean anything to me | ||
| integral | ponie now uses svn:external thingies | ||
| autrijus | yup, I asked for that :) | ||
| jhorwitz | autrijus: trying to return exit code from system() but getting a type error. can you take a real quick look at a paste? probably really stupid... | ||
| autrijus | sure. | 20:45 | |
| eric256 | are junctions working? because my $choice; until ($choice == 'a' | 'b' | 'c') {} always gets skipped | ||
| pasteling | "jhorwitz" at 216.52.77.2 pasted "for autrijus -- system() type error" (24 lines, 909B) at sial.org/pbot/10095 | ||
| Corion | nothingmuch: I think there was some Config:: module that does Just What you need recently | 20:46 | |
| eric256 | nm i;'m dumb | ||
| autrijus | jhorwitz: that reads "liftIO" | ||
| rv <- liftIO $ system cmd | |||
| nothingmuch | Corion: we've looked at a whole lot of these, around two weeks ago... is it that new? | ||
| eric256 | string eq not ==....so fucused on all the new stuff | ||
| autrijus | it's a great way to ensure that this won't happen in an atomic{} block :) | 20:47 | |
| Corion | nothingmuch: Hmmm. Around last week should have been it, yes. | ||
| jhorwitz | autrijus: will try that. need to learn all these new things... :) | ||
| autrijus | jhorwitz: you're in the Eval monad; to do IO things in an Eval monad, you need to lift it, that's all | ||
| nothingmuch | search.cpan.org/~mgraham/Config-Con...Context.pm ? | ||
| autrijus | also see liftSTM elsewhere for in-memory operations | ||
| Corion | autrijus: Should I send a mail to p6l regarding S29 or do we simply take over? I don't want to subscribe to p6l as I [dw]on't read it. | 20:49 | |
| nothingmuch | Corion: ? | ||
| jhorwitz | autrijus: that did the trick. getting another error in the return, but i think i can handle it. :) | ||
| autrijus | cool :) | 20:50 | |
| (effect typing & dependent typing)++ # damn good idea | 20:51 | ||
| Corion: er. sure, send a mail to rod, ccing p6l, about the plan | |||
| Corion | nothingmuch: Aaah, I now get it - that URL was to me ;) Yes, that's the one I thought about I think. | ||
| nothingmuch: Maybe "Templated" or something like that is also a good name for your stuff. | |||
| nothingmuch | Corion: in that case, that thing is cool, but more than what we need for some things, and doesn't really work well with this hierarchal model progressing | 20:52 | |
| the tree changes over time | |||
| jhorwitz | autrijus: maybe a BOF at YAPC for those of us not going to the hackathon? | 20:53 | |
| autrijus | jhorwitz: sure -- talk to rdice, not me :) | ||
| I'm fine with BOFs | |||
| I'll also stay around in the city for a while after the conf | 20:54 | ||
| so if you want even more hacking, I'm fine with that too | |||
| nothingmuch 's flight is late at night the day after YAPC ends | |||
| so I can be available too | |||
| autrijus | cool | 20:55 | |
| I hear this year's going to be 500+ people | |||
| nothingmuch | is that a lot or a little? | ||
| ingy | autrijus: good job with release | ||
| autrijus | nothingmuch: that is huge, for a yapc | ||
| ingy: thanks :) | |||
| nothingmuch | really? nice to know =) | 20:56 | |
| autrijus | ingy: I want the io() primitive, seriously :) | ||
| nothingmuch | YAPC::Israel averaged around 110 people | ||
| autrijus | (along with everything that comes with it) | ||
| ingy | I checked Perl6::Bible and seems up to date | ||
| autrijus: what is the status of io() primitive? | |||
| autrijus | ingy: it's OK'ed but not implemented yet. | ||
| ingy | I was going to write about IO::All to p6l | ||
| autrijus | ingy: first we need to write it into S29. | ||
| which require a new champion for s29 | 20:57 | ||
| pmichaud | and it needs p6l's blessing | ||
| autrijus | pmichaud: Larry blessed it a while ago | ||
| ingy | just to clarify my thoughts | ||
| autrijus | except the < and > bits | ||
| (replaced with <== and ==>) | |||
| ingy | right | ||
| I need to reread and make some points to the list | |||
| pmichaud | autrijus: ah, I must've missed that. thanks. Then yes, we just need an S29 champion. I'd do it but prefer to spend my energies elsewhere -- another volunteer would be good | ||
| autrijus | ingy++ | ||
| pmichaud: exactly me thoughts :) | 20:58 | ||
| s/me/my/ | |||
| PerlJam hears Queen playing in the background | |||
| must be my imagination ... ;) | 20:59 | ||
| pmichaud | "where are the champions...?" | ||
| Corion | Oh. And I just volunteered for S29, and the mail just went out ... | ||
| pmichaud | "no time for losers... cuz we need a champion... yay!" | ||
| PerlJam | Corion++ | ||
| pmichaud | corion++ | ||
| Corion | While I'm not really fond of io() | ||
| PerlJam | Corion: why not? | 21:00 | |
| pmichaud | corion: I can request commit privs for you to the perl6 repository | ||
| so you can maintain s29.pod directly in the repository | |||
| Corion | PerlJam: Perl5 open "|rm -rf" was a bad idea, and so is much of IO::All | ||
| pmichaud: I thought S29 was in the Pugs repository? | |||
| pmichaud | corion: pugs has been maintaining a separate draft for the time being | 21:01 | |
| ingy | autrijus: I can write io() into S29 | ||
| pmichaud | but it properly belongs in perl6/doc/trunk/syn | ||
| ingy | or give it a shot at least | ||
| Corion | (as the default. It's convenient if you know-what-you're-doing, but as the default, users don't know that) | ||
| ingy is a champion | |||
| pmichaud | I offerred commit access to rod, but he preferred to maintain it on his own site rather than learn svn | ||
| or something like that | |||
| Corion | pmichaud: Hmmm. Oh well. So I'll have to get yet-another-login/password ... | ||
| as long as it's svn that's OK. | |||
| pmichaud | corion: you're welcome to maintain it wherever you wish | 21:02 | |
| Corion | maybe I should install svk locally | ||
| ingy | pmichaud: I'll email Rod about it | ||
| PerlJam | Corion: It's not a bad idea, just a tool to be used with care. At least in perl6 open() won't be that tool anymore. | ||
| pmichaud | ingy: well, if corion will take over S29 then it all works out I think :) | ||
| Corion | PerlJam: ??? If instead of open() you now say io(), people will use that as a backdoor | ||
| ingy | oh ok. i missed that | 21:03 | |
| Corion | PerlJam: If io() starts a webserver, that's a huge security hole. the file/directory traversal part of io() is cool, the rest is a bad idea. | ||
| ingy: Feel free to take S29 instead of me - I'm not really sure I should be doing this :) | |||
| ingy: It would also get io() much more power :) | |||
| PerlJam | Corion: perl's job is to provide options. It's the community's job to come up with best practices or other means of preventing people from shooting themselves in the foot. | ||
| ingy | Corion: I'll give io() a first draft | ||
| I don't want all of S29 btw :p | 21:04 | ||
| Corion | PerlJam: It took Perl5 up to 5.6.x to get the three-arg-open(). I don't want this problem in Perl6. | ||
| meppl | guten abend | ||
| Corion | ingy: Bah ;) | ||
| pmichaud | *nobody* wants S29 :-) | ||
| what we really need is someone to champion it and farm out specs to others | |||
| or coordinate patches | |||
| PerlJam | meppl: guten tag :) | 21:05 | |
| pmichaud | I'll be glad to coordinate patches to S29, I just don't want to be writing the contents | ||
| ingy | pmichaud: an S29 Pumpking! | ||
| pmichaud | actually, I'll coordinate patches to any design document :-) | ||
| Corion | PerlJam: io() opens a giant load of security holes if it opens server ports. Client ports are convenient, but not really necessary either in the sense of DOS attacks. | ||
| meppl | nett . | ||
| ingy | a dubious title indeed :) | ||
| Corion | ingy: If we have persons in charge of the ~~ operator, we can also have Pumpkings in charge of S29 | 21:06 | |
| ingy | heh | ||
| ajs | I can take S29... what's the worst that can happen, right? ;-) | ||
| pmichaud | well, if Rod is stepping down as S29 coordinator, and if there's no immediate replacement, I'm probably going to just take the existing S29 and put it in the perl6/docs repo | ||
| ajs | pmichaud can tell me where I get it wrong :) | 21:07 | |
| pmichaud | and I'll take patches from there. It would help me to see them all as they come in :) | ||
| ingy | lunch & | ||
| meppl | guten abend perljam | ||
| so | |||
| good evening perljam | |||
| autrijus | how about this -- ajs collects suggestions and new checkins | ||
| and hand them to pmichaud for perl6/docs/ | 21:08 | ||
| once it hits there, it's considered to be the current consensus :) | |||
| pmichaud | that's perfect | ||
| others can send me patches directly, and I'll either forward them to ajs or check them in directly as appropriate | |||
| autrijus | cool | ||
| pmichaud | but ajs can be the point person for it :) | ||
| autrijus | and pmichaud can ensure its sanity | 21:09 | |
| (or lack thereof) | |||
| Corion feels relieved :))) | |||
| pmichaud | or at least point out the seemingly insane parts | ||
| autrijus | Corion: :) | ||
| pmichaud | corion: you're not off the hook, you still have to submit patches :) | ||
| autrijus | but at least he won't feel compelled to read the p6l firehose :) | ||
| pmichaud | indeed. All of the lists have been quite a firehose lately, and I suspect it will get bigger throughout the summer | 21:10 | |
| Corion | indeed :) | ||
| I can sit back and snipe at everybody :) | 21:11 | ||
| PerlJam | just wait until we have a "real" perl6 compiler | ||
| "pugs says this, but perl6 says this. Who's correct?" | |||
| ajs | pugs was here first :) | ||
| Corion | PerlJam: I don't see any "real perl6 compiler" in the near future | ||
| ajs | or does the homesteading thing not work :-) | ||
| PerlJam | Corion: I do. | 21:12 | |
| Odin-LAP | Hmm. | 21:13 | |
| Corion | PerlJam: Once the run time library is native (to the "real" Perl6 compiler) that maybe starts to happen, but writing a (cross-platform, native) runtime library is hard even if you steal from Perl6 | ||
| err - steal from Perl5 | |||
| Odin-LAP | What is really needed is a way to transport pugs from Haskell to Perl6... | ||
| autrijus | Corion: don't underestimate the parrotfolks :) | ||
| PerlJam | Corion: pm has said there will be an alpha perl6 compiler before the end of the third quarter this year. I think he's a little optimistic, but I think than an alpha perl6 compiler is defeinitely doable this year. | ||
| Odin-LAP | And essentially turn it into the "real" compiler... | ||
| Corion | autrijus: Yeah, maybe I underestimate them | ||
| autrijus | I see three bootstrapping routes from here; the good thing is, all three routes complement each other | 21:14 | |
| and can work in a concert | |||
| Corion | Heh. 1 unexpected success in r3126 - datenzoo.de/pugs/win2k.html | ||
| wolverian | autrijus: could you explain them? :) | ||
| autrijus | Redundant Array of Insane Hackers | ||
| PerlJam | autrijus: 3? which are they? | ||
| autrijus | PerlJam: #1 is writing a PugsAST/PIR backend for Jhc/GHC, so we can compile Pugs itself to P6/PIR | 21:16 | |
| (and from there, use Pugs's Perl6->Parrot codegen) | |||
| pmichaud | pj: I'm more optimistic about it than ever | 21:17 | |
| not only do I think we'll have a parrot p6 compiler by Q3 this year, I'm really hoping for OSCON | |||
| autrijus | #2 is to use Pugs's Perl6->Parrot codegen monad and AST, but instead of compiling haskell to pir/p6, we translate the generating parts by hand into pir/p6. | 21:18 | |
| this assumes that the parser is already in p6 rules. | 21:19 | ||
| pmichaud | and of course, there's the pure p6/parrot bootstrap, which is the direction I'm still heading (no reflection on pugs) | 21:20 | |
| autrijus | and also that we can compile the translated p6 code to pir | ||
| yes. #3 is writing the codegen and ast transformer in perl6. | |||
| or writing them in pir, and backtranslate to p. | |||
| or writing them in pir, and backtranslate to perl6. | |||
| wolverian | did you just try to tab-complete 'perl6'? :) | ||
| autrijus | no :) | ||
| Juerd | 20:51 < autrijus> $foo .= chomp; | 21:21 | |
| 20:51 < autrijus> if you want destructive chomp | |||
| 20:51 < autrijus> iirc it's been proposed by Juerd. | |||
| svnbot6 | r3127 (corion) -- Match capture variables $1 ... now reset after a failed match. Also promoted a hardfail() to eval_ok() | ||
| r3126 (corion) -- More tests moved out of t/pugsbugs/ | |||
| Juerd | Yes, but there was no discussion about non-method chomp | ||
| autrijus | pmichaud: there needs to be a "lifting" stage anyway... if you write parser, codegen etc in PIR, there still needs to be a PIR->Perl6 compiler or hand translation | ||
| that is not entirely different from Haskell->Perl6 :) | |||
| pmichaud | hand translation, likely | 21:22 | |
| Juerd | .= has been blessed, but as far as I know, there has been no specific ruling on the consistency of non-.= methods | ||
| autrijus | yeah. and whenever there's hand translation, there's potential difference in semantics | ||
| Juerd | I want them to consistently not-mutate, though. | ||
| pmichaud | but yes, there's a lifting stage no matter what | ||
| autrijus | and that's where our 7000 tests come into play :) | ||
| PerlJam | autrijus: And which of the 3 will you be working on? :) | 21:23 | |
| autrijus | PerlJam: likely all 3 | ||
| PerlJam | I think #2 probably has the best chance | ||
| Juerd | 7000 already | ||
| autrijus | PerlJam: the beauty is that they can _all_ work at th same time :) | ||
| PerlJam | unless pm takes that as a challenge and steps up #3 just to spite me :) | ||
| Juerd | Are there statistics about the number of tests, over time? | 21:24 | |
| I wonder if there's some moore-like law to be found :) | |||
| autrijus | if all three works, we get, a parrot-native haskell compiler, a codegen that can compile perl6 to PIR, C#, C-- | ||
| Juerd | "the number of tests doubles every $x days" | ||
| pmichaud | pj: I did say that I already have a bottom-up parser in PIR :) | ||
| right now I'm working on the operation subroutine specs | |||
| autrijus | and crazy two-way round tripping between various ASTs | ||
| well, not that crazy | 21:25 | ||
| scheme people had that, like, forever | |||
| Corion | round-tripping is important for compiler regression testing - if the second round of round-trips changes anything, you've got bugs. | ||
| autrijus | but it'd be new to perl :) | ||
| pmichaud | so far I'm able to handle prefix:, infix:, postfix:, postcircumfix:, circumfix:, and term: into the parser | ||
| I'm basically missing the metas and coerce: | |||
| ajs | autrijus: Has CL gotten past that stage yet? ;-) | 21:26 | |
| autrijus | ajs: sadly I know nothing about CL :) | ||
| svnbot6 | r3127 (corion) -- Match capture variables $1 ... now reset after a failed match. Also promoted a hardfail() to eval_ok() | ||
| ajs works in a CL shop, but not a CL guy... it's on the list | |||
| autrijus | PerlJam: also, re: which parts will I be working on... I'll use whatever that works :) | 21:27 | |
| Juerd | pmichaud: Does statement: fit in that list, or is it parsed more sub-like? | ||
| pmichaud | I'm planning that statement: will be handled top-down | ||
| statement: and statement-modifier: are likely to be the interface between the top-down and bottom-up parsing regimes | |||
| autrijus | PerlJam: however, I don't see codegen and reduction logic going away from Haskell to PIR or P6 any time soon | 21:28 | |
| pmichaud | autrijus: unfortunately, I can never be sure what "not soon" means when you say it :-) | ||
| autrijus | PerlJam: the correctness guarantee offered by GADT is not easily replaced -- not until we make sure P6 offers something like that :) | ||
| ajs | pmichaud: where do I get my hands on the current state of S29? | 21:29 | |
| Corion | We simply port GHC to Perl6 | ||
| autrijus | Corion: that's #1 :) | ||
| pmichaud: it means, I think, at least a couple months | |||
| pmichaud | well, I'll answer with a reverse-question -- what's the status of the S29 that's living in the pugs repo? | ||
| wolverian | maybe someone should ask about perl6's equivalent of GADTs on p6l. | 21:30 | |
| pmichaud | Rod's latest draft is in www.rodadams.net/Perl/S29.pod | ||
| wolverian | (someone that understands them, that is. which is not me.) | ||
| autrijus | pmichaud: no difference. | 21:31 | |
| eric256 has nearly completed an OO mini RPG for pugs. ;) | |||
| autrijus | well, three empty newlines :) | ||
| eric256: oh. wow! | |||
|
21:32
knotty_ is now known as knotty
|
|||
| pmichaud | well, ajs, if they're both the same, then you can use either one for now. Just send me one when you're ready and I'll replace it in the syn tree | 21:32 | |
| and we'll call it official then | |||
| autrijus | fwiw, I don't think I like the idea of Pugs and Perl6 having different semantics, really :) | 21:36 | |
| I'd much rather to share all of <grammar codegen ast> :) | |||
| and simply solve intermediate technical problems that prevents sharing, by eg. embedding and extending | 21:37 | ||
| pmichaud | I don't think Pugs and Perl6 should have different semantics either, and yes, we can share wherever we can :) | ||
| autrijus | and where translation absolutely must happen, write compiler instead of translate by hand :) | 21:38 | |
| (because hand-translation lose semantics) | |||
| but that's just my preference. :) | |||
| PerlJam | automate automate automate | ||
| pmichaud | we just want to make sure we don't end up with a piece that we only have in a compiled form with no way to rebuild it | 21:39 | |
| autrijus | right. and we do that by keeping the master source is the current most readable/writable form | ||
| Juerd | Aw, so I can't go and write bytecode by hand? :( | ||
| autrijus | and compile it down to other representations as needed :) | ||
| pmichaud | exactly | 21:40 | |
| autrijus | from that POV, P6 should be the master source (provided no semantic is lost) | ||
| PerlJam | autrijus: so ... the source will be in XML? :> | ||
| autrijus | PerlJam: no, in EBCDIC UTF-9 | ||
| encoded as aperiodic Wang tiling patterns | 21:41 | ||
| eric256 | does map still work the same or do i need to go relearn map? ;) | 21:44 | |
| autrijus | not exactly the same | ||
| map foo($_), @bar; # no longer works | |||
| need to write | |||
| map { foo($_) } @bar | |||
| or | |||
| @bar.map:{ foo($_) } | |||
| in other words, implicit closure form is verboten | |||
| ajs | pmichaud: the only difference between those two versions is the one in the repository has a "=for review" around line 143 | 21:47 | |
| integral wonders what uses Show Pad | 21:50 | ||
| eric256 | hehe i started with junctions and a given but they have been refactored out. lol ;( | 21:51 | |
| map seems to be flattening into a string.... | 21:53 | ||
| autrijus | integral: the compiler used to use that, but no longer | 21:59 | |
| integral: so it's there just so Env can be Show sensibly | |||
| integral: feel free to raze it! | |||
| integral | YAY! | ||
| autrijus | found a spot to attack finally? :) | ||
| integral | just a few bits, unfortunately | 22:00 | |
| it's seeing the structure that's hard | |||
| clkao | *yawn* | 22:03 | |
| pmichaud | ajs: (sorry for delay) -- okay, I'll just copy S29.pod into the repository then -- will have to do it a bit later | ||
| eric256 | if i do $person.weapons{'a'} = Weapon.new(:name("sword"), :power(5) ); | 22:05 | |
| how would i then access that ? $person.weapons{'a'} right? | |||
| autrijus | I imagine so, yes | 22:07 | |
| pmichaud | ummm, wouldn't you want %person.weapons{'a'} there ? | ||
| autrijus | see Set.pm for a working example | ||
| hm? | |||
| sigil is invariant, no? | |||
| $person is the object | |||
| $person.weapons is the accessor | |||
| pmichaud | ah, okay, I was misreading it | 22:08 | |
| eric256 | so then i have | ||
| $self.weapons.keys.map:{ "\t" ~ $_ ~ "-attack with " ~ $self.weapons{$_}.name ~ "\n"}; | |||
| autrijus | oh btw. | ||
| you can write | |||
| eric256 | but the $self.weapons{$_}.name doesn't like me at all. | ||
| autrijus | "\t$_-attack with $self.weapons{$_}.name\n" | ||
| eric256: check in your code under examples/ so we can see you? | 22:09 | ||
| eric256: your email please -- I'll make you a committer :) | |||
| pmichaud | what is .name there? | ||
| does it need to be .name() ? | |||
| eric256 | [email@hidden.address] | ||
| autrijus | .name() yes. | ||
| eric256 | .name is an attribute of the Weapon class | ||
| autrijus | inside strings, that is | ||
| eric256 | ohhh | ||
| autrijus | outside strings, I think .name should still work, no? | 22:10 | |
| pmichaud | outside strings .name should work, yes | ||
| method accessors inside strings always require after the last one | |||
| eric256 | *** Error: No compatible subroutine found: "&name": | ||
| pmichaud | s/require/require ()/ | ||
| eric256 | and if i put it all in the string i get "s-attack with <obj:Person>.weaponss.name" | ||
| autrijus | oh. hm | 22:11 | |
| try | |||
| clkao | 6.2.3 coming out? | ||
| autrijus | .weapons(){$_} | ||
| clkao: already | |||
| clkao | autrijus++ | ||
| autrijus++ # while i was partying | |||
| autrijus | eric256: ah. I see why. | ||
| our MMD was not dealing with untyped Hash | 22:12 | ||
| so you probably need to say | |||
| my $weapon = $.weapons{$_}; | |||
| ... $weapon.name ... | |||
| btw, $self.weapons can be written as $.weapons | |||
| or, even better | |||
| my Weapon $weapon = $.weapons{$_}; | |||
| $weapon.name; | 22:13 | ||
| that's a bug... but you can't yet specify | |||
| has Weapon %.weapons; | |||
| Juerd | Even better: s/=/:=/ :) | ||
| autrijus | well it can, but wouldn't work | ||
| yeah, := too | |||
| hierarchical types gives me headaches | |||
| so will probably need to wait a while | |||
| a while being a few weeks | |||
| eric256 | i'm now completly lost. ;) | ||
| Juerd | There's enough to do to take weeks | ||
| eric256 | i'll rewrite then to not use a map and use some temp variables? | 22:14 | |
| autrijus | something like that. | ||
| commit the code? :) | |||
| (invitation has been sent to your gmail account) | 22:15 | ||
| as examples/some_rpg_game_name_here/ or examples/games/some_rpg_game_name_here/ | |||
| eric256 waits for invite | |||
| Juerd | 101 days | 22:16 | |
| 101 people in AUTHORS | |||
| autrijus | cool | ||
| Juerd | Yea | ||
| eric256 | can i commit thru SVN? | 22:17 | |
| autrijus | yes | ||
| just "svn ci" | 22:18 | ||
| you may need to "svn add" first | |||
| welcome aboard, btw :) | |||
| eric256 crosses his fingers and hopes | |||
| added as wizard.p6 in examples/games | 22:19 | ||
| autrijus | nice! | ||
| eric256 | of course this is the now broken version. ;) | ||
| autrijus | that's fine. I'll boot to freebsd now to haxx0r on that | ||
| brb. | |||
| pmichaud | well, all, gotta run for a while. bbt | ||
| eric256 has to run for a while... later | 22:22 | ||
| svnbot6 | r3128 (eric256) -- Wizard RPG game based sort of on the one from Perl Monks | ||
| stevan | I just had a MetaModel "ah-ha" moment :) | 22:32 | |
| I will try and record it later | |||
| mugwump: ping me when you wake up | |||
| mugwump | ok | 22:33 | |
| I'll let you know... still haven't had my morning coffee yet | |||
|
22:33
sbkhh is now known as Odin-
|
|||
| mugwump | autrijus++ # fixing Set.pm | 22:33 | |
| autrijus | eric256: fixed. | 22:37 | |
| it uncovered two bugs: | |||
| svnbot6 | r3129 (autrijus) -- * wizard.p6 runs. | ||
| r3128 (eric256) -- Wizard RPG game based sort of on the one from Perl Monks | |||
| autrijus | 1. "$obj.method() foo" will eat the space between ) and f | ||
| 2. "when (1|2) { ... }" doesn't work. | 22:38 | ||
| i.e. always match fails against junctions | |||
| tests welcome for both of them. | |||
| autrijus killed the Army of Frogs multiple times | |||
| crysflame | heh! gotos dont kill people, stupid programmers do | 22:39 | |
| seen elsewhere | |||
| jabbot | crysflame: I havn't seen elsewhere , crysflame | ||
| crysflame | oh | ||
| this is #perl6. | |||
| crysflame curses yet again and switches two windows leftward. | |||
| cognominal | my @a = << %ENV<PATH> >> # can someone explain? | 22:41 | |
| I would expext it to be an array containing the current PATH | 22:42 | ||
| mnic | I really don't like the trinary operator in 6. I mean, why must say '??' and '::'. Larry's explanation doesn't satify me. | ||
| autrijus | mnic: hm? || and // etc shortcuts | ||
| svnbot6 | r3129 (autrijus) -- * wizard.p6 runs. | ||
| r3130 (autrijus) -- * minor fixups | |||
| autrijus | i.e. they may cause its operand to not evaluate | 22:43 | |
| unlike almost all other operators | |||
| clkao | tha really looks like lots of autrijus-- | ||
| obra | autrijus: we missed you today | ||
| autrijus | obra: :) | ||
| clkao | the bot needs ot make author++ | ||
| autrijus | you had fun? | ||
| clkao: sure, fix it? it's in examples/network/svnbot.p6 | |||
| you are, incidentally, a committer now. | 22:44 | ||
| Welcome aboard :) | |||
| mnic: but anyway. ?? and :: looks like || and // to denote short circuiting | 22:45 | ||
| mnic | ok | ||
| autrijus | and frees ? for boolification and : for adverbs | ||
| so I think that's a win | |||
| $person.weapons<a> = Weapon.new(:name<sword>, :power(5) ); | |||
| that looks quite neat thanks to the : :) | |||
| mnic | okay, i will look into it more. | 22:46 | |
| I just use stuff like this all the time: my $var = ($a == 10) ? $a : $b; | 22:47 | ||
| And I don't like changing that to: my $var = ($a == 10) ?? $a :: $b; | |||
| mugwump | where are adverbs described? | ||
| autrijus | mugwump: all over the place | ||
| there's adverbial pairs, adverbial blocks, adverbial parameters | 22:48 | ||
| and more | |||
| cognominal | I don't see Pair as a native type in S06.pod. Is this a shortcoming? | ||
| also, I am surprised to see | |||
| pugs> ref (a => 'b') | 22:49 | ||
| ::Scalar | |||
| I would expect ::Pair as a result | |||
| knewt | jesus. 42 commits since i last synced up to trunk. (although some of those will be from when mainline was down, so i will have seen them on the fallback) | 22:50 | |
| autrijus | 42 is normal :) | ||
| knewt | sorry. 142 | ||
| autrijus | cognominal: literals are flattened, I think | ||
| aw. | |||
| pugs> my $x = :a<b>; $x.ref | |||
| ::Pair | |||
| Shillo | Hullo! | ||
| knewt | autrijus: 142, not 42 *g* | ||
| autrijus | cognominal: but I'm not exactly sure. | ||
| clkao | why is svnbot so slow | 22:51 | |
| to get on irc | |||
| autrijus | clkao: sleep 300 | ||
| also you need to pass it various parameters | |||
| clkao | have to invite | 22:52 | |
| i have no op! | |||
|
22:52
ChanServ sets mode: +o autrijus,
autrijus sets mode: +o clkao
|
|||
| clkao | doesn't work! | 22:52 | |
| autrijus | what's the bot name? | 22:53 | |
| clkao | svntest | ||
| autrijus | it worksforme. | 22:54 | |
| clkao | eek | ||
| autrijus | the log reads | ||
| Ā» Got an invitation from "autrijus!~autrijus@220-132-132-105.HINET-IP.hinet.net" to join channel "#perl6". | |||
| Ā» Joined channel "#perl6". | |||
| clkao | i don't get that log | 22:55 | |
| commit something! | 22:57 | ||
| autrijus | ... | ||
| svnbot6 | r3131 (clkao) -- for svnbot.p6: | 22:59 | |
| r3131 (clkao) -- * Increase karma for author that commits. | |||
| r3131 (clkao) -- * Accept additional repository ARGV so you dont need a svn wc. | |||
| r3132 (autrijus) -- * reformat VICTUALS a bit | |||
| clkao | oh it's per-line! | 23:00 | |
| karma autrijus | |||
| svntest | r3131 (clkao++) -- for svnbot.p6: | ||
| r3131 (clkao++) -- * Increase karma for author that commits. | |||
| r3131 (clkao++) -- * Accept additional repository ARGV so you dont need a svn wc. | |||
| r3132 (autrijus++) -- * reformat VICTUALS a bit | |||
| jabbot | clkao: autrijus has karma of 145 | ||
| clkao grins | 23:01 | ||
| and i don't need svn wc to run that. | |||
| obra | clever | 23:02 | |
| clkao | obra++ # autrijusized | 23:03 | |
| autrijus | clkao++ # writing p6! | ||
| now let's just get svn.perl.org/ponie/trunk/ going a bit | |||
| and the entire svk can be converted bit by bit to p6! | |||
| clkao giggles | |||
| obra | autrijus: we were discussing it with nichloas | ||
| clkao | if you can do the io layer crap | ||
| obra | one of the issues is the lack of support for svn:externals in svk right now | 23:04 | |
| autrijus | clkao: the support is there already ParrotIOLayer | ||
| clkao | we'll sort out proper way for him to do venodr branch | ||
| autrijus: but in perl6 land i need! | |||
| if you can demostrate perlio::via::dynamic | |||
| autrijus | clkao: right... write tests ;) | ||
| clkao | but if shouldn't require that magic for that | ||
| which synopsis is for that? | 23:05 | ||
| "it's like perl... but less hateful!" | |||
| autrijus | clkao: perlio? I think it ties to the io() primitive | ||
| clkao: Larry ok'ed IO::All in core | 23:06 | ||
| clkao | (!) | ||
| autrijus | clkao: so work with ingy to get that section written | ||
| clkao | but layers? | ||
| i refuse to | |||
| autrijus | IO::All has layers | ||
| clkao | that will keep reminding me storable in cookie | ||
| autrijus | but hey, just design it the way you see fit | ||
| clkao | so there's no explicit synopsis for layered io yet? | 23:07 | |
| autrijus | $handle.layers.push(':utf8'); | ||
| clkao | oh. | ||
| autrijus | clkao: svn.perl.org/perl6/doc/trunk/plans/...n_docs.pod | ||
| it's on the list next to threading | |||
| so pretty high priority | |||
| clkao | as in to be documented? | 23:08 | |
| autrijus | yeah | ||
| or as in to be OK'ed | |||
| clkao | alright. so it's wild land | ||
| autrijus | when presented with sane designs | ||
| it is :) | |||
| autrijus notes that PerlIO is also a wild land thing | 23:09 | ||
| it's less than 3 years old :) | |||
| (the layers as we know it) | |||
| clkao | grr | ||
| autrijus | but really, read pdd01 :) | 23:10 | |
| in particular, in parrot you have | 23:11 | ||
| $P0 = open "svk.elixus.org/", "<:utf8" | |||
| clkao | YUCK! | 23:12 | |
| that in parrot? | |||
| do you mean that the vm speaks http? | |||
| WTF | |||
| autrijus | the vm speaks URI. | ||
| how it is handled depends on scheme registers. | |||
| clkao | and how does it callback? | ||
| phew | |||
| ok | |||
| autrijus | registered scheme handlers, that is. | ||
| misc | autrijus: it could potentially use "open irc://..." :) | 23:13 | |
| autrijus | yes :) | ||
| clkao | ok i need to do something interesting tomorrow or i'll die | 23:14 | |
| obra | clkao: we'll find things | ||
| clkao | good | ||
| rindolf | Does anyone here has op on #perl? | 23:21 | |
|
23:21
autrijus sets mode: -o autrijus
|
|||
| rindolf | autrijus: here? | 23:21 | |
| autrijus | rindolf: yes? | ||
| I'm not #perl op. | |||
| rindolf | autrijus: that's OK. | 23:22 | |
| autrijus: someone was spamming #perl. | |||
| eric256 | 10autrijus01: did i see you say that you fixed the issue with my code ;) your amazing! ;) | 23:23 | |
| rindolf | He no longer does. | ||
| revdiablo | anybody know what CEST timezone is in relation to GMT? | ||
| +2 hours? | 23:25 | ||
| mugwump | isn't CEST a junction of timezones? | ||
| revdiablo | listed as Central European Summer Time | 23:26 | |
| www.timeanddate.com/library/abbrevi...timezones/ | |||
| I just googled it :) | |||
| mugwump | TZ=CET date | ||
| eric256 begines to recompile ;) guess i should make some tests for that case ehh? | 23:27 | ||
| autrijus | eric256: the fix is just in the .p6 -- no need to recompile :) | 23:28 | |
| also, if compilation is slow, "make unoptimised" will help | |||
| eric256 | cool. ohh i thought you fixed the code. so the bug is still there. you just bypassed it in the .p6. thanks! | 23:29 | |
| autrijus | yup :) | ||
| eric256 | if/else works in a given? | 23:30 | |
| autrijus | now would be an excellent time to commit into t/ :) | ||
| sure, given is not special | |||
| given just sets $_ | |||
| and set scope for when exit | |||
| that's all it does | |||
| so you can use it freely without when{} | |||
| eric256 | ohh. didn't know that.. cool. | 23:31 | |
| mugwump | ah, no, it's all<CDT CST EDT EST> that are junction timezones | ||
| ie, CDT refers to one<+10:30 -5:00>, CST to one<+9:30 -6:00>, etc | 23:33 | ||
| svnbot6 | r3133 (revdiablo) -- fixed debian/changelog datestamp lines to conform to parsechangelog's regular expression | ||
| svntest | r3133 (revdiablo++) -- fixed debian/changelog datestamp lines to conform to parsechangelog's regular expression | ||
| mugwump | svntest, svnbot6, duke it out | 23:34 | |
| eric256 | so when is different than if how? | ||
| revdiablo | the only difference is svntest increments the karma for each commit? | 23:36 | |
| autrijus | revdiablo: svnbot6 will do that after a restart | 23:37 | |
| eric256: when topicalises $_ | |||
| when 3 { ... $_ is now 3 ... } | |||
| if 3 { ... always true ... } | |||
| er sorry | |||
| I thought given {} | |||
| when {} is smart match against $_. | |||
| when FOO { ... } | |||
| is like | |||
| if ($_ ~~ FOO) { ... } | |||
| eric256 | lol. okay. so you can use it outside of given blocks. the two just work together to make a pretty case like statment | 23:38 | |
| autrijus | yes. | ||
| I'll bbl | |||
| & | |||
| ninereasons | stevan, should all the 'force_todo' s be changed to per-line :todo<reasons> ? | 23:39 | |
| mugwump | I think so, ninereasons | 23:42 | |
| ninereasons | me too, mugwump. I think I'll go do some of that. | 23:43 | |
| eric256 | okay so i'm righting a test that i know it fails right now... where should i put it? or how should i mark it? | 23:44 | |
| mugwump | ninereasons: eg, commit 3083 does that | ||
| also r2762 | 23:45 | ||
| (searchable commit messages)++ | |||
| eric256, you meen "writing", presumably, "righting" would be "to make right", or correct | 23:46 | ||
| put :todo<feature>, :todo<bug>, etc at the end of the is()/ok()/... arguments | 23:47 | ||
| eric256 | yes writing...it's like 80 degrees at my desk ;) | ||
| ok($pass == 1, 'when', :todo <bug>); | 23:48 | ||
| mugwump | jabbot, (80 - 32) * 5 / 9 | ||
| jabbot | mugwump: But your desk. | ||
| eric256 | liek that? | ||
| mugwump | looks right to me, though I'd write that as | 23:49 | |
| is($pass, 1, "when", :todo<bug>); | |||
| revdiablo | how do I get pugs to build with embedded parrot? I have to tell pugs where parrot is, or something? | 23:50 | |
| eric256 | i was then doing 'pugs junction_any_pick.t' to run it but it yells at me. is there some other way i can run the test to make sure it behaves? | 23:51 | |
| mugwump | eval_ok() is the normal way for correct code which doesn't parse yet | ||
| eric256 | but it is the :todo part that is not parseing yet. | 23:52 | |
| mugwump | um... :todo<> definitely works :) | ||
| eric256 | *** Error: No compatible subroutine found: "&todo": NonTerm (MkPos "junction_any_pick.t" 55 23 55 33) at junction_any_pi | 23:53 | |
| ck.t line 55, column 1-34 | |||
| runs fine without the :todo <bug> part | |||
| mugwump | drop the space? | ||
| eric256 | aha! | ||
| mugwump | this is Perl, it's only whitespace insensitive when the whitespace doesn't make the code look different ;) | 23:54 | |
| autrijus | revdiablo: yes. read README and run Makefile.PL? :) | ||
| eric256 | thanks...now to find a better file to house this test in...any_pick is not right | ||
| obra | autrijus: did you hack SetupSessionCookie to deal with chinese rtnames? | 23:55 | |
| autrijus | revdiablo: set PUGS_EMBED env to 'parrot' and PARROT_PATH to source of a completed parrot build dir | ||
| obra: no, I outlawed them | |||
| eric256 | [autrijus] any idea where a good home for the when test would be? | 23:56 | |
| autrijus | not sure if I merged back though; although a good utf8-happy cookie is generally useful | ||
| eric256: I don't know, improvise! | |||
| merge into t/statements/given.t perhaps | |||
| but other ways are fine too | |||
| just improvise :) | |||
| eric256 | i just don't want to tick someone off. ;) i figure i would right some test cases for junctions/given and just didn't know where to stick it. so i guess i'll hunt around and stick it where i want! (: | 23:57 | |
| mugwump | if someone doesn't like it they can just move it | 23:58 | |
| autrijus | right. | 23:59 | |
| think wikipedia. it's impossible to accidentally tick other people off... | |||