|
Check your feather email | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | www.treehugger.com/files/th_images/paradigm.jpg Set by audreyt on 29 August 2006. |
|||
| diakopter | there is Devel::Size. I wonder if it discounts self-nested references, like Data::Dumper | 00:04 | |
|
00:15
justatheory joined
|
|||
| TreyHarris | can somebody with a working pugs svn checkout help me out with something? should only take a minute or two.... | 00:17 | |
| markstos | feather needs a little help from audrey or an admin. Running pugs there returns: "user error (Incompatible version number for compilation unit | ||
| Consider removing /usr/local/lib/perl6/Prelude.pm.yml and make it again" | |||
|
00:17
plisk__ joined
|
|||
| markstos | TreyHarris: I'll try {}. | 00:17 | |
| TreyHarris | markstos: yes, gaal was looking for sudo to fix it himself, but he didn't find it | ||
| markstos: what OS are you building under? | |||
| markstos | I'm on feather, (Linux), but also have an older pugs on FreeBSD, which doesn't have Parrot or Perl5 support. | 00:18 | |
| TreyHarris | oh | ||
| well, if feather's pugs doesn't work, and that's what you're using, i think we're not going to get anywhere :-) | |||
| markstos | "looking for sudo" ? I assume you mean looking for some kind of access rights, not looking for the binary, which is /usr/bin/sudo | 00:19 | |
| TreyHarris | looking for sudoers access | ||
| markstos | pugs works on feather, it's just a warning that slows things down a wee bit and is annoying. | 00:20 | |
| TreyHarris | yeah, without parrot or perl 5, your BSD won't help me either, as there's a couple regexps in the script i wanted you to try | ||
| ah, ok, in that case, try running util/test_loh_segfault.pl | 00:21 | ||
| (i committed it in r12932) | |||
| markstos | It just printed out some instructions... | ||
| TreyHarris | follow them :-) | 00:22 | |
| markstos | segfault. | ||
| TreyHarris | email me the yaml please when you're done? | 00:23 | |
| markstos | TreyHarris: sent, from my feather account. | 00:26 | |
| It said "success: y", where I guess success is defined as segfaulting... | |||
| ?eval my @a = ( { a => 1}, { b => 2 } ); say @a.perl; | 00:28 | ||
|
00:28
evalbot_12929 is now known as evalbot_12934
|
|||
| evalbot_12934 | user error (Incompatible version number for compilation unit Consider removing blib6/lib/Prelude.pm.yml and make it again ) OUTPUT[[{("a" => 1),}, {("b" => 2),}] ] Bool::True | 00:28 | |
| markstos | TreyHarris: I think it's something about the interactive pugs, since it is segfault-free, otherwise. | 00:29 | |
|
00:29
azr|elious is now known as azr|el
|
|||
| TreyHarris | markstos: thank you :-) | 00:30 | |
| yes, "success in duplicating the segfaulting issue" :-) | |||
| interesting, in your yaml, were the last three ? items (pugs_revision, success, uname) all indented farther to the right than the other items? | 00:31 | ||
|
00:31
aufrank joined
|
|||
| aufrank | hi hi | 00:32 | |
| markstos | TreyHarris: probably not. It was probably pasting into vim that did that. | ||
| TreyHarris | ah, ok | ||
| thanks | |||
| markstos | TreyHarris: This fails too: pugs -e 'say ({a => 1}, {b => 2}).perl' | ||
| By failure, I mean "fails to reproduce the segfault issue" | |||
| success: f | 00:33 | ||
| TreyHarris | yeah, i spent some hours looking for some way to reproduce it non-interactively, since obviously that is a very non-optimal way to test | ||
| hmm. i suppose i could probe for Expect, and use that.... | |||
| TreyHarris hrms | |||
| markstos | TreyHarris: But if it's reproducible on feather, it will be easy for audrey and and a number of others to work with it. | 00:35 | |
| TreyHarris | guess so. since gaal couldn't reproduce it, i thought maybe gathering info on OS, GHC, etc. might be helpful | 00:40 | |
| markstos | In Perl 5, I could say "$meth->$name". Even after re-reviewing S12, I'm having trouble finding something that works like $meth.$name in Perl6. hints ? | 00:53 | |
| TreyHarris | um... i'm confused. $meth is a reference to a method, and $name is... what? | 00:55 | |
| markstos | A method name. | 00:56 | |
| But it's determined at run time, so it I can't just be $meth.something_concrete. | |||
| TreyHarris | huh, i've never seen that before. so you'd have "sub foo... my $f = \&foo; my $foo = "foo" ... $f->$foo"? and what would that do? | 00:57 | |
| wolverian | markstos, do you mean $obj->$meth? | ||
| markstos | Yes! | ||
| Sorry. | |||
| wolverian | hm. I don't know. any tests for it? | 00:58 | |
| TreyHarris | oh. IIRC, that was one of the first questions you asked when you arrived on #perl6. :-) maybe you didn't understand the answer then? | ||
| markstos | Or I have a short memory | 00:59 | |
| Trey who? | |||
| ;) | |||
| Please freshen my buffer. | |||
| TreyHarris | ?eval class Point { has $.x is rw; has $.y is rw; method dist { sqrt($.x**2 + $.y**2) } }; my $meth = &Point::dist; my Point $p .= new(x => 2, y => 3); say $meth($p:); | 01:03 | |
| evalbot_12934 | user error (Incompatible version number for compilation unit Consider removing blib6/lib/Prelude.pm.yml and make it again ) OUTPUT[3.605551275463989 ] Bool::True | ||
| TreyHarris | make sense? | ||
| wolverian | I'm not sure why $p.$meth wouldn't work | ||
| (but it doesn't) | |||
| TreyHarris | $meth($p:) | 01:04 | |
| wolverian | yes, I am not blind, thanks. :-) | ||
| I am just wondering about the other syntax. | |||
| TreyHarris | wolverian: sorry, i was giving that as markstos's answer, not correcting you. | 01:05 | |
| wolverian | oh, sorry, then. | ||
| aufrank | does $p: $meth; work? | ||
| markstos | TreyHarris: Thanks. testing now. | ||
| TreyHarris | $p.$meth doesn't work because $meth could potentially be anything, maybe a reference to a sub or a method even outside of $p's class | 01:06 | |
| wolverian | aufrank, that makes no sense, I think. | ||
| TreyHarris | so we have to call it as a subroutine, not as a method | ||
| using the colon to force $p to be taken as invocant | |||
| markstos | TreyHarris: Yes, I recognize the use of the colon for that purpose now. | 01:07 | |
| My own test isn't working, though. I'm reviewing what I might be doing differently now. | |||
| I figured it out. "$p" has to be a coderef, not just a scalar as can be the case in Perl5. | 01:08 | ||
| aufrank | wolverian: no sense why? | ||
| TreyHarris | markstos: $p a codref? no, $p must be an object, and $meth must be a routineref | 01:09 | |
| or rather, $meth must be Routine, and $p must be consistent with $meth's invocant's type | |||
| markstos | TreyHarris: Sorry, I was using Perl5 spec. That's what I meant. | ||
| s/spec/speak/ | 01:10 | ||
| TreyHarris | and you swapped your varnames again ;-) | ||
| back in a few & | |||
| markstos | We all have our strengthnesses and weaks. | 01:11 | |
| wolverian | weaknesses | 01:13 | |
| er | |||
| yeah, mine is being blind to irony. | 01:14 | ||
| markstos | :) | ||
| Here's what I was looking for. By using a symbolic reference, the $meth can be a scalar, rather than a Routine. | 01:19 | ||
| ?eval class Foo; method foo () { say "found!"; } my $obj = Foo.new; my $rm = 'foo'; &::($rm)($obj:); | |||
| evalbot_12934 | user error (Incompatible version number for compilation unit Consider removing blib6/lib/Prelude.pm.yml and make it again ) OUTPUT[found! ] Bool::True | ||
|
01:23
kanru joined
|
|||
| aufrank | markstos: why's it so important that you use $meth = 'foo' and not $meth = { say "found!" } ? | 01:26 | |
| (curious, not dubious) | |||
| markstos | This is the dispatch system of CGI::Application. Ther defines the strings that correspond to the possible methods that can be dispatched. | 01:27 | |
| s/Ther/The user/ | 01:28 | ||
| aufrank | I see | ||
| markstos | To turn the strings into code references beforehand would be more work. | ||
| aufrank | I know you've been looking at the given/when construct... could users define possible method names there, along with blocks? | 01:29 | |
| markstos | But this is a prefect use of symbolic references in Perl6, so I'm happy. | ||
| I haven't tried, | |||
| and I'm not familiar enough the spec to say for certain. | |||
| aufrank | given $input { when <foo> { say "found!" }; when bar { say "want a pint?" } } | ||
| s/bar/<bar>/ | 01:30 | ||
| markstos | so you are suggesting using given/when as a dispatch system for this case ? | 01:31 | |
| aufrank | just wondering if it would work | 01:32 | |
| markstos | It might. I'm happy with the symbolic ref solution for now. I don't see any drawbacks to it. | ||
| aufrank | yeah, I think the way that the given/when dispatch would fit in would be complementary to your approach, not replace it | 01:33 | |
| markstos | Ah. | ||
| aufrank | if you had certain method names that you wanted to provide defaults for, you could dispatch to those specifically, and then your fallthrough could be the symbolic ref approach | 01:34 | |
| markstos | But there is one default, called AUTOLOAD, and I've already handled that case. | ||
| I used the !! ?? construct to handle that part. | 01:35 | ||
| aufrank | makes sense | ||
| just for completeness sake, this is what I'm thinking of (I think). given $input { when <known_argument> { say "this one is built in" }; default { &::($_)($input:);} ; } | 01:37 | ||
| markstos | I see. | 01:38 | |
| aufrank | just wanted to work through it for my own sake ;) | ||
| markstos | If I call routine(self:), it should still find "routine" even if it's in a parent class, since 'self' is the invocant, right ? | 01:50 | |
| I think it should, so I'll write a test. :) | 01:53 | ||
| Ok. I committed a new failing test. From a grep, it seemed there weren't other tests for the interaction between symbolic refs and OO. | 02:03 | ||
| svnbot6 | r12935 | markstos++ | Commit test: &::($meth)(self:) should find method in parent class | ||
| r12935 | markstos++ | This test could use a peer review for spec-compliance. | |||
|
02:08
Limbic_Region joined
02:09
etzel joined
|
|||
| Limbic_Region | !seen audreyt | 02:09 | |
| seen audreyt | |||
| markstos | ?seen audreyt | ||
| lambdabot | audreyt is in #perl6 and #haskell. I last heard audreyt speak 11 hours, 37 minutes and 11 seconds ago. | ||
| Limbic_Region | hrmm, I was hoping she would be online by now | 02:10 | |
| Limbic_Region is inches away from getting Pugs to compile with ghc 6.6 rc | |||
|
02:22
weinig is now known as weinig|zZz
02:39
ludan left
02:44
kanru joined
|
|||
| audreyt | lisppaste3: pong | 02:51 | |
| er | |||
| Limbic_Region: pong | |||
| obra | 'morning ms tang | 02:57 | |
| I have to ask: did you actually have jifty stuff _localizing_ to false values? | 02:59 | ||
| audreyt | lunch, bbiab :) | 03:04 | |
| yes, 0 localizes to 0, and one thing I localize to '' | |||
| to hide it from display | |||
| obra | hah | 03:08 | |
| but 0->0 should have worked with the existing setup | |||
| I appreciate the patch though | |||
| (schwern and I had debated it before I implemented, so Iwas amused) | |||
| Localizing __Foo Bar__ was exploding Lcoale::Maketext | 03:09 | ||
| svnbot6 | r12936 | autrijus++ | * Fix building on GHC 6.4.1 + PowerPC OSX by forcing a separate ranlib phase after installation. This is suboptimal but will work. | 03:25 | |
|
03:32
justatheory joined
03:41
SubStack joined
03:43
peacock joined
|
|||
| Teratogen | myspace, schmyspace | 04:56 | |
| audreyt | peacock: I just fixed the OSX ppc | 05:00 | |
| it now builds again on pristine GHC 6.4.1 here | |||
| can you try r12936? | |||
| peacock | i'm way ahead of you - i saw the svnbot note and i'm building now | 05:01 | |
| :) | |||
| audreyt | nice :) | ||
| peacock | my machine's not too fast and its 1:00 AM in EST so I won't see the results until to tomorrow | 05:02 | |
| audreyt | "make fast" | ||
| but that may be detrimental to your sleeptime | |||
| so go sleep already :) | |||
| peacock | hehe - yeah i better | 05:03 | |
| thanks for your help btw | |||
| audreyt | no prob -- thanks for your report | ||
| peacock | i'll drop by tomorrow night and let you know how it came out | 05:04 | |
| audreyt | okie. I did duplicate the failure mode and have a working pugs here | ||
| so unless our setup differ in subtle ways, it should work for you also | |||
| peacock | sweet | ||
| *goes zzzzz* | 05:05 | ||
| audreyt | sleep well | ||
| oh, did you have a commit bit? | |||
|
05:18
m1chael joined
|
|||
| gaal | morning | 05:31 | |
|
05:50
takanori joined
05:51
takanori_ joined
|
|||
| gaal | audreyt: [try]?followedBy has its args in the reverse order, as far as my intuition goes. why? is a curried version used somewhere? | 05:55 | |
| that is, for golf this looks natural: followedBy whiteSpace $ blah | |||
| ah, I see it's used infix in one place. mind if I switch it over? | 05:56 | ||
.oO( it's also against the order of other combinators like sepBy, so maybe not? ) |
05:57 | ||
| audreyt | sure, switch it over | 06:02 | |
| gaal | I think sepBy etc. changed my mind :) | ||
| did you see my Q about Dog ::T $fido? | 06:03 | ||
| how is that expressed in Param? | |||
| currently we have a [Type] member, but nothing else that looks pertinent | |||
| also: in named-only param :moo, the p_label is 'moo', what's the p_variable? | 06:04 | ||
|
06:06
takanori_ joined
|
|||
| gaal | looks like a problem right? because how to allocate the storage class? | 06:13 | |
| svnbot6 | r12937 | gaal++ | * Pugs.Param: improve readability of ruleParam with declarative style | 06:23 | |
| gaal | ah, S06/Named parameters answers my Q about varname... | 06:25 | |
| but am I right in assuming '$' is the default sigil when the programmer doesn't supply a varname? | 06:26 | ||
| aufrank | gaal: that's how I remember it | 06:30 | |
|
06:31
takanori joined
|
|||
| ingy | nothingmuch: ping | 06:35 | |
|
07:03
kasei joined
|
|||
| audreyt | gaal: I wonder if gen_prelude can detect for compunit vers | 07:16 | |
| and if it's there, then force regen as part of "make" | 07:17 | ||
| sane? | |||
| (this is so that evalbot won't complain) | |||
| gaal | perl -le '<>; print $1 if ($_ = <>) =~ /^- (\d+)/' blib6/lib/Prelude.pm.yml | 07:18 | |
| => 5 | 07:19 | ||
|
07:20
axxsa joined
|
|||
| axxsa | omfg... www.groomgle.com just released a public gmail hack, lets you easily manipulate you're google page rank... who should i contact??? | 07:20 | |
| gaal | audreyt: is it reasonable to rewrite ruleParam like this, or should I schlep ruleFormalParam and convert the result? | 07:21 | |
| this is a general question about Parser remoosing, I guess | |||
| in the long run reqriting is called for, no doubt | |||
|
07:22
axxsa left
|
|||
| gaal | I read "force regen as part of make" as "rm the stale compiled version" :-) | 07:22 | |
| question is if we want to make "the latest compunit version" something more robust than | 07:24 | ||
| perl -nle 'print $1 if /^compUnitVersion = (\d+)/' src/Pugs/AST/Internals.hs | |||
| BTW, lexical question about haskell: in one of my cleanups, I wanted to write: | 07:25 | ||
| let p = MkParam | |||
| { ... | |||
| } | |||
| but that wouldn't compile! ghc thought I was ending the do-block with something that wasn't an expression | |||
| I had to rewrite that as | 07:26 | ||
| let p = MkParam { | |||
| ... | |||
| } | |||
| Why? | |||
| Is this a layout bug? :) | 07:27 | ||
| ayrnieu | that does seem odd, I thought the { } were for overriding the normal indentation style. Well, did you try the latter with } as in K&R ? | ||
| gaal | ayrnieu: in this case it's for record fields spec. | 07:28 | |
| k&r doens't really work in haskell :) | |||
| audreyt | let p = MkParam | ||
| q = 1 | 07:29 | ||
| vs | |||
| let p = MkParam | |||
| { ... } | |||
| the layout rule can't distinguish between them | |||
| so it requires continuation lines to at least be idented 1spc more | |||
| let p = MkParam | |||
| {...} | |||
| xerox | let p = | ||
| mkParam { ... | |||
| Maybe this buys you something. | |||
| gaal | aw, that's subtle. | ||
| audreyt tries pugs vs strawberry 2 | 07:32 | ||
| tonight I'll meet my new macbook :-( | |||
| xerox | Why ':(' ? | ||
| gaal | newMac = drop oldMac | 07:33 | |
| audreyt | lol | ||
| xerox | Oops :) | ||
| audreyt | so I'll have a spare battery, a spare LCD | ||
| and some spare fragile RAMs | |||
| *pouts* | |||
| ayrnieu bought a Zaurus 3200, yesterday :-) | |||
| audreyt | oooh | 07:34 | |
| I'd like one too, but my electronics toys budget just disappeared | |||
| gaal wonders how soon those things will be able to handle ghc | |||
| audreyt | I know hugs runs on zaurus | 07:35 | |
| GHC probably runs also, I think | |||
| there's ARM-Linux port | |||
| gaal | 64mb ram?... probably walks. slowly | ||
| xerox | I think they were having some kind of weird problems with GHC on ARM | ||
| audreyt | GHC runs on nokia 770 | ||
| but there's weird floating point off-by-ones I think | |||
| xerox | That's a fun device! | ||
| xerox played with shapr's one hehe | 07:36 | ||
| audreyt | gaal: "cross compile" | ||
| gaal | audreyt: my pugs has almost 40mb virt, i suppose it might run on such a platform... | 07:37 | |
| 54 once i use Test | 07:38 | ||
| oy, 'use' from interactive pugs is pretty ugly | |||
| audreyt | it is | ||
| technically correct but ugly | 07:39 | ||
| improve the Pretty instance? | |||
| gaal | what is 'sub {Syn "block" ...' ? | ||
| how did the sub come about there? | |||
| I think it's better to leave the Pretty as it is, and catch it in the interactive elk. | 07:40 | ||
| audreyt | oops, I though you were talking about | 07:42 | |
| pugs> pugs> use perl5:Test | |||
| macro {Prim ([Pugs.AST.Internals.Val] -> () Pugs.AST.Internals.Val)} | |||
| the Syn "block" thing shouldn't go back here. | |||
|
07:42
iblechbot joined
|
|||
| gaal | just 'use Test' | 07:42 | |
| xerox | () Val ? Yuck. | 07:43 | |
| gaal | i should go get some breakfast... bbiab & | ||
| xerox groans | 07:44 | ||
| audreyt | instance Typeable1 (EvalT (ContT Val (ReaderT Env SIO))) where typeOf1 _ = typeOf () | ||
| which is, of course, entirely bogus, but works fine... | 07:45 | ||
| xerox 's heart explodes | |||
| audreyt | SIO btw is a union of other three monads | 07:46 | |
| xerox | That's nice :) | ||
| What do you use that instance for? | |||
| audreyt | actually I think it's a pretty clever hack and generally useful | ||
| it lets you mix pure, STM, and IO actions | |||
| and enter/leave "runlevels" | |||
| which will reject unsafe-in-that-level actions at runtime | |||
| data SIO a = MkSTM !(STM a) | MkIO !(IO a) | MkSIO !a | 07:47 | ||
| the six-layer monad is pugs's main Eval monad | |||
| all runtime happens under there | |||
| and since pugs supports thunks | |||
| (in the haskell sense) | |||
| (Eval Val) is a first class value that must be typeable | 07:48 | ||
| xerox | Ah. | ||
| You want full power. | |||
| audreyt | yes. | ||
| as spj puts it | |||
| "adding in feature to GHC is like throwing raw flesh to hyenas" | 07:49 | ||
| xerox | haha | 07:50 | |
| I am so excited about the Hackaton. | |||
| I hope sometime it'll be possible to -Ofun ghc ``easily'' ! | 07:51 | ||
| audreyt | you going there? | ||
| xerox | Nope :( | 07:52 | |
| audreyt | oy :/ | ||
| xerox | Yarrr! :( | ||
| audreyt | so your Cabal hacks made into GHc 6.6? | ||
| including cabal-install? | |||
| xerox | I think it will not. | ||
| Hrmpf. | |||
| audreyt | oh, we have another year or so to work around the subtle bugs of a pre-alpha design? | ||
| j/k :) | 07:53 | ||
| xerox | hehe | ||
| audreyt | JaffaCake's chglog indicates cabal-install is in | ||
| xerox | Well, it isn't tested enough to be released anyway | ||
| audreyt | hence my question | ||
| xerox | Really? | ||
| I asked him but I didn't know if he did it | |||
| audreyt | let me check... | ||
| xerox | I thought I was going to push them as soon as I got darcs access, which I haven't yet | ||
| That's a good thing | 07:54 | ||
| xerox checks something too | 07:55 | ||
| If he commited my patches, anyway, they just miss one (multi-server) | 07:58 | ||
|
08:00
turrepurre joined
|
|||
| audreyt | chglog: | 08:01 | |
| # | |||
| Added cabal-setup, a user interface to building and installing Cabal packages. | |||
| # | |||
| Added cabal-install, an automated installer for cabal packages. | |||
| but reality is that only cabal-setup is in bin/ | |||
| xerox | :( | ||
| Where do you read that? | |||
| audreyt | both in the 0901 win32 bindist | 08:04 | |
| xerox | Ah. | 08:05 | |
| It will not work on win32 now. | |||
| It depends on a tar binary :/ | |||
| I am now doing cabal-put | 08:06 | ||
| audreyt | k | ||
| uhm | |||
| xerox | But I can roll up a all-haskell implementation of tar | ||
| audreyt | ghc can very easily ship tar binary | ||
| xerox | That works for the purposes of cabal-install | ||
| audreyt | it does for ar.exe and so on | ||
| xerox | can it? hm! | ||
| Then we could ship cabal-install I think | |||
| xerox hacks up cabal-put faster so people try it on monk adding their packages | |||
| nothingmuch | oosem | 08:07 | |
| xerox | In fact people could have used it before, but nobody seem to have looked at cabal-devel mails | ||
| Sigh. | |||
|
08:21
penk joined
|
|||
| audreyt | I can't believe I'm working around dmake bugs for an hour now :/ | 08:32 | |
| (to get pugs build under strawberry) | 08:33 | ||
| finally done. | 08:36 | ||
| svnbot6 | r12938 | audreyt++ | * very sad, very sick fix for dmake and strawberry. don't even ask. :-/ | 08:51 | |
| r12939 | audreyt++ | * dmake is very picky about .svn/entries not existing, so we kluge some more. | 09:00 | ||
| clkao | aaaaahh | 09:03 | |
|
09:04
b_jonas joined
09:18
elmex joined
|
|||
| svnbot6 | r12940 | audreyt++ | * refactor $AR_EXE in util/build_pugs.pl to save perl/ghc disagreement on $ar placement | 09:24 | |
| audreyt | Pugs now works with embedded strawberry. | ||
| xerox | haha | ||
| I wonder what does it mean. | 09:25 | ||
| audreyt | # www.vanillaperl.com/ | ||
| lambdabot | Title: Vanilla Perl | ||
| audreyt | it means it now works with the MinGW based community-maintained perl 5 distribution of choice :) | ||
| xerox | Aha! | ||
| ā | |||
| audreyt | and we don't even need the kluges to work around cl.exe calls for ActivePerl, yay. | 09:26 | |
| xerox | āŗā» | ||
| audreyt | (back story: on win32, the leading binary perl distribution is activeperl) | ||
| which has for a long time mandated installation of visual c++ | |||
| xerox | Strawberry is a nice name. | 09:27 | |
| Eeck! | |||
| audreyt | which doesn't quite work with GHC's idea of the world | ||
| but recently they implemented MinGW compatibility | |||
| so we can now work with ActivePerl | |||
| but it requires quite a bit of kluges | |||
| strawberry/vanilla is community maintained, entirely MinGW based distro | |||
| xerox | I wonder what do you do in pugsese for mif :: m Bool -> m () -> m () :D | ||
| audreyt | and uses exactly the same set of tools as GHC | ||
| xerox | Nice to know! | 09:28 | |
| audreyt | er, I see that dons has checked in the same forM and forM_ into base | ||
| yesterday | |||
| which broke pugs ;) (conflicting import) | |||
| xerox | haha | ||
| ?type when | |||
| lambdabot | forall (m :: * -> *). (Monad m) => Bool -> m () -> m () | ||
| xerox | ?type unless | ||
| lambdabot | forall (m :: * -> *). (Monad m) => Bool -> m () -> m () | ||
| xerox | Those take Bool, not m Bool :( | ||
| audreyt | well, if spj fixes the layout rule | 09:29 | |
| so that you can write | |||
| if foo then do | |||
| ... | |||
| else do | |||
| ... | |||
| then mif doesn't win much, no? | |||
| xerox | It's just to avoid | ||
| do ok <- amb | |||
| if ok ... | |||
| audreyt | action >>= \ok -> if ok ... | 09:30 | |
| but yeah. doesn't see obvious use in pugs | |||
| xerox | ok <- doesFileExist path | ||
| unless ok $ error $ printf "File does not exist: %s" path | |||
| No idea.. | |||
| doesFileExist path >>= \ok -> unless ok $ | 09:33 | ||
| error $ printf "File does not exist: %s" path | |||
| '>>= \ok -> unless ok $' = 'or die' | |||
| audreyt: <www.renmenven.org/tooncast/2006/01/...y.html> heheh | 09:44 | ||
| gaal | remoose | 09:49 | |
|
09:55
buetow joined
10:05
xerox joined
10:26
ludan joined
|
|||
| ludan | hi | 10:27 | |
| xerox | Hello. | 10:29 | |
|
10:34
DaGo joined
10:45
reZo joined
|
|||
| ludan | xerox: ! | 10:53 | |
| xerox | Ā” | ||
| ludan | xerox: are you from italy? | ||
| xerox | That's right sir. | 10:54 | |
| ludan | eheh | ||
| xerox | .nl, but I see an italian name... | ||
| ludan | yes because i'm living in the netherlands for a short period of 6 months | ||
| but i'm a truly italian :) | 10:55 | ||
| xerox | So nice! I wanted to go study there. But it'll probably happen next year. | ||
| ludan | tudelft? | ||
| xerox | Utrecht. | ||
| ludan | cool | ||
| xerox | They've got some bright Haskell people there %-) | ||
| ludan | that city is full of nice girls ;) | ||
| xerox | Yarrr. | 10:56 | |
| ludan | where do you live in italy/ | ||
| xerox | Turin. | ||
| ludan | subject? | ||
| xerox | Mathematics. Starting this year. | 10:57 | |
| ludan | auguri :) | ||
| xerox | Grazie :D | ||
| What brings you here in pugsland? | |||
| ludan | i'm a good lurker :) | ||
| xerox | Do you come from the lambda or the camel side of the river? | ||
| ludan | the camel side for sure | 10:58 | |
| and you? | |||
| xerox | The Ī» one :) | ||
| ludan | functional dude! | ||
| xerox stretches ... quite! | |||
|
10:59
plisk joined
11:25
markstos joined
11:28
elmex joined
|
|||
| ludan | āŖ | 11:59 | |
| Juerd | gaal: pong; done. | 12:00 | |
|
12:02
GeJ joined,
onsen joined
|
|||
| gaal | Juerd: thanks. | 12:19 | |
|
12:20
onsen_ joined
12:25
xerox joined
12:33
weinig|zZz is now known as weinig|bbl
|
|||
| markstos | So, I just want to copy an array from a hash key to a plain array. I was surprised this doesn't work: | 12:35 | |
| ?eval my %h = ( a => @( 'c', 'd' ),); my @a = %h<a>; say @a.perl; | |||
|
12:35
evalbot_12934 is now known as evalbot_12940
|
|||
| evalbot_12940 | OUTPUT[[["c", "d"],] ] Bool::True | 12:35 | |
| markstos | ..it puts both elements in the first slot in the array. | ||
| Maybe I need: @a = [,]%h<a> ? (unimplemented?) | 12:36 | ||
| ayrnieu | ?eval my %h = (a => @('c','d')); my @a = @{%h<a>}; say @a.perl | 12:37 | |
| evalbot_12940 | Error: unexpected "(" expecting "::" | ||
| ayrnieu shrugs. | |||
| markstos | This works, with an extra steps that seem unnecessary: | 12:38 | |
| ?eval my %h = ( a => @( 'c', 'd' ),); my $aref = %h<a>; my @b = @$aref ; say @b.perl; | |||
| evalbot_12940 | OUTPUT[["c", "d"] ] Bool::True | ||
| ayrnieu | my @a = @%h<a>; doesn't work similarly? | 12:39 | |
| markstos | ?eval my %h = ( a => @( 'c', 'd' ),); my @c = @%h<a>; say @c.perl; | ||
| evalbot_12940 | (no output) | ||
| markstos | (segmentation fault...) | ||
| ayrnieu | fascinating. | ||
| markstos | Tha's one word for it... | 12:40 | |
| audreyt | uhm. | 12:41 | |
| you want @(%h<a>) | |||
| @%h<a> means something else | |||
| lambdabot | Unknown command, try @list | ||
| audreyt | namely (@%h).<a> | ||
| clkao | moose | ||
| markstos | audreyt: Should I submit a test for the segfault above ? | 12:42 | |
| And thanks for the help! | |||
| buubot | kack! | ||
| audreyt | sure, commit a test | 12:43 | |
| it's expected to fail | |||
| but not to segfault, obviously | |||
| markstos | confirmed to work: | ||
| ?eval my %h = ( a => @( 'c', 'd' ),); my @c = @( %h<a> ); say @c.perl; | |||
| evalbot_12940 | OUTPUT[["c", "d"] ] Bool::True | ||
| audreyt | aye. sigil invariance means that when you append prefix sigils | 12:44 | |
| it's always binding tighter than postfix method calls | |||
| as it's considered part of the "var name expression", so to speak | |||
| markstos | translation? :) | ||
| audreyt | $$x.foo always means ($$x).foo not $($x.foo) | 12:45 | |
| and %h<a> is simply %h.<a> | |||
| markstos | Ah. Got it. | ||
| ayrnieu | ?eval my @c = @(@('c','d')); say @c.perl | ||
| evalbot_12940 | Error: unexpected "(" expecting "::" | ||
| audreyt | @('c','d') is suspicious too | 12:46 | |
| lambdabot | Unknown command, try @list | ||
| audreyt | you sure you don't mean ['c', 'd'] or just <c d> ? | ||
| @(1,2) I think just means (1,2). | |||
| lambdabot | Unknown command, try @list | ||
| ayrnieu | here, I mean [<c d>], but I don't know why markstos used it. | 12:47 | |
| markstos | I started with just <c d>, but that didn't work, so I tried other things. I'll try <c d> again, since that didn't seem to be the problem. | ||
| audreyt | yeah | ||
| bbiab... | 12:48 | ||
| markstos | Works: | ||
| ?eval my %h = ( a => <c d>); my @c = @( %h<a> ); say @c.perl; | |||
| evalbot_12940 | OUTPUT[["c", "d"] ] Bool::True | ||
|
12:55
plisk joined
|
|||
| svnbot6 | r12941 | markstos++ | Adding failing test for @%(a => <b>)<a>, which segfaults. | 12:57 | |
|
13:04
larsen joined
|
|||
| markstos | When I try to do the hash / array assignment in this slightly more complex case, using @( %h<a> ) no longer seems to work: | 13:10 | |
| ?eval class Foo { has @.a is rw; method param (*%h) { @.a = @( %h<key> ); self; } } my @f = Foo.new.param( key => <c d>).a; say @f.perl; | |||
|
13:10
evalbot_12940 is now known as evalbot_12941
|
|||
| evalbot_12941 | OUTPUT[[["c", "d"],] ] Bool::True | 13:10 | |
| audreyt is still trying to fight with gnu ddrescue | 13:13 | ||
|
13:13
hugues23 joined
|
|||
| markstos solved his own problem with: my @f = @( Foo.new.param( key => <c d>).a ); | 13:13 | ||
| audreyt | oof. indeed in that case, the .a accessor should return the list in list context | ||
| not pretending that it's a scalar | |||
| that is a bug | |||
| I wonder if it's tested :) | |||
| markstos | test coming. :) | ||
| audreyt | but the @() forcecast will always work | ||
| even after this is fixed | 13:14 | ||
| so it's a sound workaround :) | |||
| markstos | Good. | ||
| audreyt | there's also spec (But not yet implemented) such that you can write | ||
| foo.bar.baz.@ | |||
| to mean | |||
| @( foo.bar.baz ) | |||
| lambdabot | Maybe you meant: . v | ||
| markstos | audreyt: Is there a recommend place to check for existing tests, or should I just poke around on my own. | ||
| audreyt | which is further nice sugar | ||
| grep some keywords like "array" etc in t/oo/? | 13:15 | ||
| markstos | Sigils on the right look strange. | ||
| k. | |||
| audreyt | it's okay to dup tests. | ||
|
13:15
plisk joined
|
|||
| markstos | Good. :) | 13:15 | |
| audreyt | just make sure that it's smartlinked this time if you can :) | ||
| (since smartlink is our main weapon to fight test dup) | |||
| markstos | Aha. Will try. | 13:16 | |
| audreyt | yay | ||
| markstos forages for breakfast in $localtime. | |||
| audreyt thanks ddrescue for sanity | |||
| as otherwise dd will take, oh, 5 days. | |||
| markstos | dd, the lowlevel copy tool ? | 13:17 | |
| audreyt | yeah | ||
| my old macbook died with some bad sectors around its 80g hd | |||
| "old macbook" sounds like oxymoron. sigh. | |||
| markstos | Yikes. | 13:18 | |
| so ddrescue copies even faster ? | |||
| or something? | |||
| audreyt | so this new one (exactly the same spec!) has 120g and I'm dd'ing the old one over with firewire | ||
| yes. it dynallocs blksz | |||
| so on bad sector it narrows down | |||
| and on good regions it ups the blksz | |||
|
13:19
penk joined
|
|||
| audreyt | as you'd expect a sane tool to do :) | 13:19 | |
| integral | ddrescue++ # reverse copy! | ||
| markstos | :) | ||
| audreyt | reverse copy? | ||
| markstos | do we need an audreyt laptop fund? | ||
| integral | audreyt: copy from the other end of the drive so you can get the stuff beyond the hole (if the hole is very, very bad) | 13:21 | |
| audreyt | markstos: in the past five yeras I broke two compaq, three asus, two apple | ||
| three palms | |||
| one zaurus | |||
| so... ;) | |||
| clkao | quote nothingmuch, "girl elegance" | 13:22 | |
| nothingmuch | ? | 13:23 | |
| markstos | so we need two funds ? | 13:26 | |
| nothingmuch | clkao: ? | ||
| markstos | Or a TankBook fund ? | 13:27 | |
| clkao | nothingmuch: what audrey said | ||
| audreyt | actually $job pays well enough that it's not a severe financial hit anymore | ||
| but it's still a nontrivial emotional hit :/ | |||
| clkao | *nod* | ||
| nothingmuch | brb, phone | 13:28 | |
| i don't see /lastlog eleg | |||
| audreyt | probably around the same time irl when you told me to fetch you beers :) | 13:29 | |
| in boston, that is | |||
|
13:30
larsen is now known as lamas
|
|||
| audreyt | yay, ddrescue thinks it will only take 4 hours. | 13:31 | |
|
13:33
lamas is now known as larsen
13:47
markstos_ joined
13:56
ludan joined
|
|||
| markstos_ | btw, on feather, I still get "Incompatible version number for compilation unit" when I use pugs. Needs root/sudo access to fix. | 14:01 | |
|
14:01
markstos_ is now known as markstos
|
|||
| svnbot6 | r12942 | markstos++ | Add test for: "my @f = Foo.new.param( key => <c d>).a;", with smartlink. failing. | 14:03 | |
| r12941 | markstos++ | Adding failing test for @%(a => <b>)<a>, which segfaults. | |||
|
14:04
yhsuan joined
14:08
Limbic_Region joined
14:12
miyagawa_ joined
|
|||
| Limbic_Region | ?seen audreyt | 14:12 | |
| lambdabot | audreyt is in #perl6 and #haskell. I last heard audreyt speak 41 minutes and 2 seconds ago. | ||
| Limbic_Region | audreyt ping | 14:13 | |
| audreyt | pong | 14:14 | |
| Limbic_Region | so yesterday, gaal tried to convince particle and I to try the latest ghc snapshot | ||
| as it was a 6.6 rc | |||
| I told him it had been b0rk for some time | |||
| but we went ahead and tried it anyway | |||
| sure enough, it was b0rk - but in a new way | |||
| for one, the headers aren't in the usual place | 14:15 | ||
| no problem, just copy them | |||
| next, they removed some libs that pugs depends on as extralibs | |||
| hrm - problem as Win32 has binary distro and these extra libs are source only | 14:16 | ||
| solution - use Cabal to install them | |||
| that is after creating our own Setup.hs | |||
| ok, ready to try and compile Pugs | |||
| gets through the first 95 steps no problem | |||
| and begins its second pass | |||
| and then it bombs out | |||
| going to nopaste the error - see if it makes any sense to you | |||
| btw - did you get the msg I sent you? | 14:17 | ||
| hrm - going to take me a second to nopaste that as I did a realclean inadvertently | 14:19 | ||
| audreyt | I did and I sent it to igloo | ||
| GHC's release manager | |||
| I'm on win32 now | |||
| still using 20060819 build | |||
| no problem at all | |||
| Limbic_Region | oh, I was working with Igloo last night | 14:20 | |
| audreyt | oh. I didn't notice that | ||
| hopefully he didn't think my mail as rude then | |||
| Limbic_Region | as well as eivoukko | ||
| audreyt | since I just repasted your report :) | ||
| Limbic_Region | doubtful | ||
| they were both very intrigued and happy that I (well, we the pugs team) brought the issues forward | 14:21 | ||
| audreyt | cool | ||
| Limbic_Region | They were pretty sure the nightly build for Win32 was b0rk | ||
| audreyt | yup | ||
| I used 0819 to work on strawberry and vanilla embedding | |||
| both now works as of tonight | |||
| activeperl still needs special handling | 14:22 | ||
| Limbic_Region | ok - starting the build now - should take 10-15 minutes | ||
| audreyt | in Makefile.PL | ||
| but vanilla/strawberry now builds using the same code as other unixes | |||
| and as such should remain stable without fiddling | |||
| Limbic_Region | great | ||
| audreyt | (I also downlaoded activeperl build 819) | ||
| and made sure it still works | |||
| Limbic_Region | (xdg and team)++ | ||
| audreyt | indeed | 14:23 | |
| Limbic_Region | oh, 819 is out | ||
| cool - Module::Build should work out of the box thanks to bart, Intrepid, and myself | |||
|
14:23
larsen_ joined
|
|||
| audreyt | and PAR will work out of the box thanks of tsee | 14:23 | |
| it's nice to see this coming together :) | |||
| Limbic_Region | jan dubois is extremely responsive on the AS front | ||
|
14:24
larsen_ is now known as larsen
|
|||
| audreyt | I really like jand. he's probably the most important early PAR contributor | 14:24 | |
| and yet he is author of PerlApp. | |||
| he went as far as clarify activeperl's license to make sure that PAR has no licensing problems :) | |||
|
14:25
jferrero joined
|
|||
| Limbic_Region | wow | 14:25 | |
| audreyt | according to him, he wants people to buy perlapp based on merit and its nice UI | ||
| not because they are forced to or locked in | |||
| jand++ # very healthy attitude | |||
| Limbic_Region | well, I am constantly suprised in this community by technical skill and willingness to give freely of oneself | ||
| so anyway - the folks over in #haskell went silent the few times I asked about timeframe of fixing the Win32 binary build issues | 14:26 | ||
| so for now, if we can get it working, we should add or update a win32.readme? | 14:27 | ||
| audreyt | "a GHC 6.6 showstopper" or something | ||
| no... not really | |||
| 0819 is known to work | |||
| only because 0901 is broken, doesn't mean we need to adapt | |||
| 6.6 should work out of the box with pugs :) | |||
| Limbic_Region | right | 14:28 | |
| except it isn't going to unless we have a few brave souls poking and prodding it | |||
| markstos uses whatever is on feather | 14:29 | ||
| Limbic_Region | presumably, the current ghc release is only b0rk on Win32 so you shouldn't have an issue markstos | ||
| audreyt | Limbic_Region: exactly. and the fix should be twofold: rolling in extra-pkg into the final .msi | ||
| and add the include path in ghc's buildflags | 14:30 | ||
| markstos | I'm just saying: If 6.6 were being used on feather, I would be testing with it by default. | ||
| audreyt | I have no control on the former; the second one, I can probably help. | ||
| Limbic_Region | audreyt - I am not yet convinced those are the only issues yet | 14:31 | |
| but yeah, I think your solution approach is the most sane | |||
| Happy 1.15 won't build with GHC 6.5 (0819) or 6.6RC btw | 14:32 | ||
| apparently some array bounds changed internally and lots of old programs broke | |||
| Limbic_Region just thought he was doing something wrong again | |||
| perlbot nopaste | |||
| perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
| pasteling | "Limbic_Region" at 24.35.57.240 pasted "ghc 6.6 rc build failure" (69 lines, 3.6K) at sial.org/pbot/19421 | 14:33 | |
| audreyt | er wow, it doesn't ship with ld. | 14:35 | |
| Limbic_Region | yes it does | ||
| it is there | |||
| notice the double \\ | |||
| that looks odd to me | |||
| markstos just got basic integration with perl5:HTML::Template working with p6:CGI::Application | |||
| ! | |||
| audreyt | hm | 14:36 | |
| I need a more complete log | |||
| markstos: ! | |||
| Limbic_Region: I need the lines starting at | |||
| GHC installation path: $ghc_inst_path\n | |||
| which should be near beginning | |||
| Limbic_Region | audreyt - hrm, it doesn't give the full path so .... | ||
| ok, you are on the same line of thought | 14:37 | ||
| will hopefull nopaste if my buffer is long enough | |||
| audreyt | 0819 still works, so it's 0909 specific | 14:38 | |
| pasteling | "Limbic_Region" at 24.35.57.240 pasted "full build output and some of perl Makefile.PL too" (997 lines, 48K) at sial.org/pbot/19422 | 14:39 | |
| Limbic_Region | audreyt - oh, I agree but I am not sure it is a ghc problem or a pugs assumption | ||
| as with the location of the header files | 14:40 | ||
| audreyt | I got the fix. | ||
| Limbic_Region kisses audreyt | |||
| audreyt smiles | |||
| hmm wait | 14:41 | ||
| you put ghc 6.6rc1 into c:\ghc\ | |||
| not c:\ghc\ghc-6.5.20060901 ? | 14:42 | ||
| svnbot6 | r12943 | audreyt++ | * fix #1 for GHC 6.6-rc1 building on win32: use the same runcompiler for build_exe | 14:43 | |
| Limbic_Region | audreyt - yes | ||
| one issue I had last night with 3 different ghc's | 14:44 | ||
| 6.4.2, 6.5 (0819) and 6.6rc | |||
| audreyt | if you put it into that dir, pugs should pickup it | ||
| Limbic_Region | was that I accidently compiled some binaries from one with the other compiler and ended up spending time tracking down wild gooses | ||
| hrm | 14:45 | ||
| should it matter where I install ghc? | |||
| audreyt | no | ||
| Limbic_Region | ok so do I have to move where ghc is now to make your fix work? | 14:46 | |
| audreyt | no | ||
| let me think thru the implications | |||
| if you mkdir gcc-lib | |||
| in pugs workdir | |||
| and copy ld.exe from c:\ghc\gcc-lib there | |||
| Limbic_Region | ok | ||
| audreyt | does it suddenly work? | ||
| Limbic_Region | this happened to us before remember | ||
| my bet is yes | |||
| audreyt | the offending line is Cabal.Distribution.Simple.GHC | ||
| (baseDir, _) = splitFileName compilerDir | |||
| in | 14:47 | ||
| darcs.haskell.org/packages/Cabal/Di...ple/GHC.hs | |||
| somehow it lost track how it was invoked. | |||
| Limbic_Region | ooh | ||
| audreyt | that's a new bug | ||
| Limbic_Region | yeah, that would be a problem | ||
| that's ghc issue | |||
| audreyt | it's "fixed" by esa vuokko | ||
| www.mail-archive.com/cabal-devel@ha...00010.html | |||
| lambdabot | Title: System.Directory.findExecutable and ghc's ld in Windows, tinyurl.com/kfq5p | ||
| audreyt | that fix broke our assumption | ||
| Limbic_Region | ghc should not assume the place it was compiled would have anything remotely to do with where it is installed | ||
| audreyt | still thinking how to do that portably | ||
| Limbic_Region | ok | 14:48 | |
| will test the gcc-lib thingy | |||
| audreyt | k | ||
| nothingmuch | mooooooooooooooo | 14:49 | |
| Limbic_Region | looks like that was it | ||
| markstos wonders if he hears moose noises | |||
| audreyt | Limbic_Region: ok. now try this | 14:50 | |
| put gcc-lib under some other PATH | |||
| say c:\perl\bin\gcc-lib | |||
| Limbic_Region | audreyt - isn't that how darwin awards are handed out | ||
| audreyt | but _not_ under pugs workdir | ||
| Limbic_Region | k | ||
| audreyt | my working hypothesis is that it now uses the win32 native SEarchPath | ||
| Limbic_Region | oh, so shouldn't I then just be able to add C:\ghc to my path? | ||
| audreyt | well that too | 14:51 | |
| actually try c:\ghc to your PATH | |||
| and c:\ghc\bin | |||
| and see if it magicaklly works | |||
| Limbic_Region | ok - ghc\bin is already there | ||
| audreyt | (it might not.) | ||
| Limbic_Region | need to go for a sec - issues with my daughter | ||
| audreyt | k | ||
| Limbic_Region | ok, in order to test this theory, since pugs has finished buildihng | 14:52 | |
| building even | |||
| audreyt | you need simply to rm pugs.exe | ||
| Limbic_Region | k | ||
| audreyt | and nmake again | ||
|
14:53
nothingmuch joined
|
|||
| Limbic_Region | testing now | 14:53 | |
|
14:53
aufrank joined
|
|||
| Limbic_Region gets the distinct impression that Win32 in the haskell community is the bastard red headed stepchild that only a few love and the rest have a deep aversion for | 14:54 | ||
|
14:55
nothingmuch joined
|
|||
| Limbic_Region | audreyt - that also works | 14:55 | |
| nothingmuch | god damnit | ||
| nothingmuch shakes fist at irc | |||
| You were killed by www.astray.com [(Bad Nickname)] [Path: ] | 14:56 | ||
| *sigh | |||
| Limbic_Region does a little dance as he now has Pugs building on Win32 using GHC 6.6RC | |||
| with many thanks to audreyt, Igloo, and eivoukko (and others he likely forgot) | 14:57 | ||
| nothingmuch | and me | ||
| i helped a lot too | |||
| i inspired motivation | |||
| audreyt | Limbic_Region: perl was like that actually | 14:58 | |
| until activeperl 5.6.1 or so | |||
| and the relentless, tireless, never-burns-out iron pumpkingerring from gsar | |||
| Limbic_Region | audreyt - well, it is not at all uncommon | ||
| I guess it just suprised me a little | |||
| [particle] returns from scrollbackland | 14:59 | ||
| audreyt | "How many perl5-porters does it take to change a sarathy?" | ||
| "None. Sarathy never burns out." | |||
| nothingmuch | hah | ||
| where is he now? | |||
| [particle] | retired in florida | ||
| Limbic_Region | particle - did you hear the news | ||
| woot | |||
| [particle] | ;) | 15:00 | |
| audreyt | actually, still hacking in activestate | ||
| [particle] | Limbic_Region++ # yes i just read it | ||
| nothingmuch | ugh | ||
| [particle] | audreyt++ too | ||
| audreyt | Limbic_Region: so, remove c:\ghc from path | ||
| nothingmuch | why does magnet kill me? | ||
| stupid netsplits | |||
| am i on some blacklist now? | |||
| Limbic_Region | ready for next experiment audreyt | 15:01 | |
| audreyt | Limbic_Region: line 89 of util\build_pugs.pl is supposed to do that for you | ||
| [particle] | nm: what are you talking about? you're not bouncing here | ||
| audreyt | trying to think why it's not | ||
| nothingmuch | [particle]: i can't connect to irc.perl.org | ||
| Limbic_Region | let me look at it and see if it makes sense to me | ||
| nothingmuch | You were killed by www.astray.com [(Bad Nickname)] [Path: ] | ||
| [particle] | oh | ||
| nothingmuch | not only astray though | ||
| [particle] | did you try another nick? | 15:02 | |
| audreyt | Limbic_Region: maybe it needs to be put in front? not sure | ||
| [particle] | like, say [nothingmuch] ? :) | ||
| Limbic_Region | audreyt - no | ||
| I put it at the end in my test | |||
| nothingmuch | [particle]: i've been trying to convince irssi to do that | ||
| Limbic_Region | let me do this | ||
| let me print those values to see if they are indeed correct | |||
| nothingmuch | ughhhhhhhhh | 15:03 | |
| not working either | |||
| nothingmuch gives irc a rest | |||
| going out for the evening anyway | 15:04 | ||
| Limbic_Region | running again now with prints of those variables | ||
|
15:05
kane-xs joined
|
|||
| Limbic_Region | ok - this is really odd | 15:05 | |
| it worked when it shouldn't have | |||
| C:\ghc and C:\ghc\bin respectively | 15:06 | ||
| oh wait | |||
| audreyt - is line 89 your fix? | |||
| audreyt | no. | ||
| Limbic_Region | of about 10 minutes ago? | 15:07 | |
| audreyt | no. | ||
| Limbic_Region | hrm then | ||
| audreyt | hrm indeed. | ||
| I can't tell the difference | |||
| between that line and your manual env tweaking | |||
| then should, for all intent and purpose, be equivalent | |||
| Limbic_Region | except that my env no longer includes c:\ghc and it worked | ||
| audreyt | er wow. | ||
| ok. to make sure... blast away dist\build and pugs.exe and "nmake fast". | 15:08 | ||
| [particle] | Limbic_Region: thanks for the msg of the error report | ||
| Limbic_Region | let me make sure I didn't make a bonehead mistake | ||
| and didn't delete pugs..exe | |||
| particle - no worries, though one additional thing is likely required to finish building pugs | |||
| which is what audreyt and I are working on | |||
| [particle] | k | ||
| i'll just wait in the wings | |||
| my default build is 6.4.1 anyway | 15:09 | ||
| Limbic_Region | re-running now audreyt after having made sure pugs.exe is deleted | ||
| ok, my mistake | |||
| I hadn't removed the executable - it is once again failing despite %ENV being modified | 15:10 | ||
|
15:10
rindolf joined
|
|||
| rindolf | Hi all. | 15:11 | |
| Limbic_Region | audreyt - who is the one attempting to find gcc-lib\ld.exe? | ||
|
15:11
jdv79 joined
|
|||
| Limbic_Region | salutations rindolf | 15:11 | |
| rindolf | Limbic_Region: hi. What's up? | ||
| jdv79 | anyone know how to fetch the primary method's name from within a modifier with moose? | ||
| Limbic_Region | just debugging a problem | 15:12 | |
| audreyt - is the issue with $runcompiler - if it is, then I know what the problem is | |||
| it is not using $ghc_installdir but $ghc_bindir | |||
| jdv79 | hello Limbic_Region. | 15:13 | |
| Limbic_Region | salutations jdv79 | 15:14 | |
| markstos | jdv: Moose? Sounds like a Perl5 issue. | ||
| Limbic_Region | audreyt - what exactly was your fix anyway as I think it may have worked | ||
| markstos | jdv: the meta model that moose uses hasn't been implemented in pugs yet. | ||
| jdv79 | i understand that but nobody is anwering my query elsewhere so it was suggested that i try here as a last resort | ||
| Limbic_Region | ld.exe still isn't found | 15:15 | |
| but it is finishing the build anyway | |||
| audreyt | but that isgoing to be bogus | ||
| Limbic_Region | I had been ctrl-cing after that line of output | ||
| let me nopaste the last run | |||
| markstos | jdv: You could try posting a code example that explains what you are trying to express. | ||
| audreyt | as it's using the previous output in third-party/installed/Pugs | ||
| Limbic_Region | this is with no manual fix to the env | ||
| audreyt | so we're back to sq1: ld.exe not found | ||
| markstos | jdv: Are you really using Moose in Perl5 or is this a Perl6 question? | ||
| audreyt | now if you manually tweak env to include c:\ghc in PATH | 15:16 | |
| and "nmake fast" again, does it make ld.exe found? | |||
| Limbic_Region | let me blow away dist and pugs.exe | ||
| not tweak env | |||
| jdv79 | yes, of course - p5, this is not a perl6 question. | ||
| Limbic_Region | and nmake fast | ||
| markstos | bbiab | 15:17 | |
| Limbic_Region | wow, nmake fast is really fast in comparison | ||
| audreyt | well, blow away third-partyinstalled\pugs-6.2.12 too while you are at it. | 15:18 | |
| yes. please do use it to investigate build problems | |||
| save lots and lots of time :) | |||
| (and with GHC 6.6, the resulting pugs.exe is actually just 20% slower or so) | |||
| it's getting to a point where I'm not sure whether we should still make optimzied build the default. | |||
| markstos | 6.6 is slower ? | ||
| Limbic_Region | ok - audreyt, different build error | 15:19 | |
| jdv79 | that's ungood news | ||
| audreyt | markstos: no, the diff between "make optimized" and "make unotimized" is narrower | ||
| markstos | Ah. | ||
| audreyt | 6.6 is generally 2~3x faster than 6.4. | ||
| markstos | Wahoo! | ||
| Limbic_Region | runtime that is | ||
| markstos | I look forward to experiencing that. | ||
| audreyt | yes. compile time is a bit shorter but not dramatically | ||
| markstos | Oh. | 15:20 | |
| audreyt | but "make fast" produces better code | ||
| so you can maybe "make fast" more often. | |||
| (the difference: "make fast" uses GHC's own codegen based on C--, and "make optimized", among other things, forks out to GCC) | |||
| markstos | when I was building my own pugs, I use "make fast", just because I suspected it would be faster. :) | ||
| audreyt | (and GCC is really, really slow.) | ||
| Limbic_Region | audreyt - I am reverting back to my original state | 15:21 | |
| meaning just before I pinged you | |||
| audreyt | ok... | ||
| markstos | Is there potential for Perl6 to ever compile quickly with this implementation? | ||
| audreyt | surely! | ||
| the parser is one of our slowerst parts. | 15:22 | ||
| as it's working on a linked list of UTF32 characters, currently | |||
| which is the slowest possible sane representation of source code. | |||
| SamB | oh, yeah, you can do much better soon enough, I think ;-) | ||
| jdv79 | isn't p6 going to compile itself, in a manner of speaking? | ||
| audreyt | SamB: I sure hope so ;) | ||
| markstos | I just know that it seems uncommon to write a language in Haskell, versus, say C. I'm fairly ignorant about these issues, though. | ||
| Limbic_Region | heh | 15:23 | |
| the Haskell folks were interested in why we were interested in 6.6rc | |||
| audreyt | markstos: yeah. most of pugs's slowness comes from the very, very slow representation of strings | ||
| markstos | and that's fixable? | ||
| SamB | markstos: well, most of the people who have created mainstream languages haven't known Haskell... and frankly when they did it Haskell wasn't likely very good anyway... | ||
| audreyt | whenever we switch a part into the new fast packed strings, that part sees 5x or so speedup. | ||
| Limbic_Region | it is like people today that think perl is just a scripting language | 15:24 | |
| markstos | Wow. | ||
| Limbic_Region | they are living in the past | ||
| audreyt | currently only variable names is switched | ||
| Limbic_Region | haskell did come from academia | ||
| markstos should poke around with Haskell more. | |||
| audreyt | and type names | ||
|
15:24
justatheory joined
|
|||
| audreyt | and already pugs is 35% faster | 15:24 | |
| Limbic_Region | and it likely wasn't very good at anything other than teaching at first | ||
| but it has been around the block for a while | |||
| audreyt | to switch other parts, we need perhaps to forsake GHC 6.4 compatibility | ||
| so gaal and I have been holding a bit | |||
| Limbic_Region | I am fine with that ;-) | ||
| audreyt | (actually, I've been holding back gaal a bit :)) | ||
| SamB | Limbic_Region: I don't think it was originally intended for teaching, really... | ||
| markstos | I'm already a fan of darcs, and Haskell by extension. | ||
| Limbic_Region | SamB - I don't think that's what it was intended for - I said I think that was all it was likely good at (at first) | 15:25 | |
| markstos welcomes the GHC 6.6 overlords | |||
| SamB | I think they wanted to play with it and use it in papers | ||
| gaal purrs | |||
| audreyt | it's good for producing PhDs ;) | ||
| Limbic_Region | audreyt - ok, back to the expected failure | ||
| markstos is wrapping up a new blog post about Perl5 embedding and YAML emitting. | |||
| SamB | audreyt: you have to admit that it is also fun to play with ;-) | ||
| Limbic_Region | so, we know that moving gcc-lib to pugs working dir works | 15:26 | |
| I don't know for certain adding c:\ghc to my path will work | |||
| because even though it did last time around, so did everything else | |||
| gaal | beed kinda out of elk today. what's the feature set we absolutely want for Sig for the coming release? | ||
| Limbic_Region | so let me try that first | ||
| audreyt | indeed. but we need to do that | ||
| Limbic_Region: yup. | |||
| gaal | and, audreyt, did you see my 'Dog ::T $fido' <=> Pugs.Val.Code.Param question? | 15:27 | |
| audreyt | gaal: rename siglist.t to signature.t | ||
| and that'd be good enough for me :) | |||
| Limbic_Region | gaal, let's gang up on audreyt and get everyone to move off 6.4.x | ||
| Limbic_Region is a believer | |||
| gaal | Limbic_Region: it works for you now? great | 15:28 | |
| but not sure about all platforms | |||
| mac in particular is said to have problems | |||
| "the kind audreyt doesn't have" | |||
| markstos | pugs doesn't seem to be buildable on FreeBSD now anyway, because parrot doesn't seem to be buildable there. | ||
| Limbic_Region | gaal - well, I wouldn't want anyone to go through what I am going through under normal conditions - so no | ||
| Limbic_Region is mostly teasing | |||
| but the perf diff is amazing | |||
| SamB | is that a general statement of fact, or a is it specific? | ||
| audreyt | markstos: pugs doesn't dep on parrot | ||
| Limbic_Region | audreyt - good news | 15:29 | |
| audreyt | gaal: I actually have an ibook g4... | ||
| Limbic_Region | well, not so good news | ||
| it doesn't work | |||
| SamB | (mac being said to have problems) | ||
| audreyt | Limbic_Region: ok. it's a good news | ||
| Limbic_Region | but that is good news | ||
| yeah | |||
| gaal | l~r, once 6.6 is available on all platorms in binaries, for sure | ||
| audreyt | means we are not insane and not seeing phantoms | ||
| markstos | audreyt: Yes, I built it without parrot, and it worked fine, until I tried to use some kinds regular expressions or rules... | ||
| gaal | SamB: hearsay, I don't own one mylsef to tell. | ||
| markstos | and then it complained it couldn't find parrot. | ||
| audreyt | markstos: oh. that. we're fixing that tomorrow | ||
| Limbic_Region | gaal - it is avail on Win32 in binaries but still takes a lot to get it working | ||
| audreyt | markstos: soon you'll not need parrot for that, either! | 15:30 | |
| SamB | I mean, apparantly it is uses a rather odd ABI on x86... | ||
| markstos | Nice. | ||
| audreyt | (as it'd use embedded perl5 to call Pugs::Compiler::Rules) | ||
| gaal | Limbic_Region: I mean releaseworthy packages, e.g. packages for .deb and .rpm etc. | ||
| audreyt | (which is why I was fighting dmake...) | ||
| markstos | Now I like working on feather and having pugs rebuilt frequently for me. :) | ||
| I also like playing with svk. I had trouble installing that, too... | |||
| Limbic_Region | ideas? | 15:31 | |
| [particle] | markstos: have you reported parrot build problems with parrotbug? | ||
| s/with/to/ | |||
| audreyt | Limbic_Region: so re gcc-lib. does it only need ld.exe there? | ||
| Limbic_Region: i.e. did you copy the whole gcc-lib or juts ld? | |||
| gaal | oooh siglist.t++! | ||
| markstos | particle: It seemed to be a known issue. The FreeBSD parrot port is marked as "BROKEN". | 15:32 | |
| audreyt | because if it's just ld.exe, we can workaround. | ||
| Limbic_Region | whole | ||
| audreyt | ok. please try part. | ||
|
15:32
iblechbot joined
|
|||
| Limbic_Region | but let me test | 15:32 | |
| gaal | audreyt: some future release should use newval Sigs to parse sub declarations, too... | ||
| Limbic_Region | holding daughter - b aminute | ||
| audreyt | gaal: certainly... | ||
| ...that's why we are doing this :) | |||
| I mean, Capture should also be used to parse calls. | 15:33 | ||
| it's a prereqto get newExp rolled in. | |||
| gaal | yeah. so what about the old ruleFormalParam -- should I rewrite it in newmoose, or convert its result? | ||
| Limbic_Region | attempting | ||
| audreyt | gaal: which ever easiest. I think newmoose. | ||
| gaal | ok! | 15:34 | |
| audreyt | woot! | ||
| Limbic_Region | audreyt - works | 15:35 | |
| with just ld.exe that is | |||
| audreyt | Limbic_Region: ok. so, horrible-hack time for now | ||
| and I'll try to fix cabal. | |||
| gaal | brb w/coffee | ||
| Limbic_Region | yeah, ghc hacking | ||
| go audreyt++ | |||
| Limbic_Region is starting over btw without make fast | 15:36 | ||
| oh wait | |||
| you are going to want me to test your horrible-hack | |||
| Limbic_Region waits patiently | |||
| oh, and are you going to remove your third-party thingy? | 15:37 | ||
| audreyt | fixing. | 15:39 | |
| fixed. | 15:40 | ||
| try r12944 | 15:41 | ||
| aufrank | audreyt: regarding chromatic's role article, do you think that type is synonymous with role in P6? | ||
| svnbot6 | r12944 | audreyt++ | * Horrible hack #2 - instead of copying runcompiler to GHC land, | 15:42 | |
| r12944 | audreyt++ | instead copy ld.exe back into pugsland! | |||
| audreyt | aufrank: sorry, very much out of context | ||
| role is one kind of type | |||
| Limbic_Region | ooh, that is a horrible hack | ||
| aufrank | yeah, audreyt, sorry to ambush you ;) | ||
| audreyt | not more horrible than the old one | ||
| Limbic_Region | since that appears to fall within p5 space (from what I can tell), I can work on this myself later | 15:43 | |
| I think I need to go grocery shopping soonish though | |||
| nmake fast now | |||
| gaal | in ruleFormalParam, a 'canonical form' of params is mentioned. is it a "real" form, or just an internal normalization? | 15:44 | |
| eg :$foo! ==> !:$foo | |||
| audreyt | internormal | ||
| gaal | k thx | 15:45 | |
| audreyt | markstos: if you are interested in the Hs worldview and community etc | 15:46 | |
| research.microsoft.com/~simonpj/tmp...ory-v2.pdf is a great read | |||
| xerox | Yes it is! | ||
| :D | |||
| audreyt | and we have 12 more days to send patches to that State of The Lambda | ||
| on haskell.org/haskellwiki/Talk:Histor.../Version_2 | |||
| lambdabot | Title: Talk:History of Haskell/Version 2 - HaskellWiki, tinyurl.com/gxuqj | ||
| xerox | (SLPJ: done) Paulcc 23:53, 27 August 2006 (UTC) page 25 Mentions of FiniteMap - Data.FiniteMap is DEPRECATED, please use Data.Map instead. | 15:47 | |
| The paper mentioned FiniteMap? | |||
| This is funny, hehe. | |||
| Limbic_Region | audreyt - horrible hack worked | ||
| audreyt | I wonder if I should send a patch on how Hs has influenced p5, citing Scalar::Defer and friends | ||
| Limbic_Region: good. horrible hacks usually are that one | |||
| Limbic_Region | anyone wanting to build on Win32 using 6.6rc - let e know | ||
| audreyt | makeshift lasts longest etc :) | ||
| Limbic_Region | let me know even | ||
| gaal | I want a T-shirt saying "ferocious implementor" | ||
| Limbic_Region | well - I am looking into a fix now | 15:48 | |
| real fix that is | |||
| though you work the Cabal angle | |||
| audreyt | k. | ||
| gaal | if I specify two traits, does a comma separate them? | 15:50 | |
| $x is ref is moose | |||
|
15:51
araujo joined
|
|||
| audreyt | I don't think so | 15:51 | |
| ($x is ref, is moose) | |||
| would parse "is moose" as second param | 15:52 | ||
| araujo | hi hi | ||
| gaal | ok. asking two other Qs on p6-l. | 15:53 | |
| audreyt | araujo: heya | ||
| gaal | (vim's zf)++ | 15:54 | |
| araujo | hello there audreyt | 15:56 | |
| audreyt | araujo: heya. got some cycles to help out haskell hacking? :) | 16:01 | |
| svnbot6 | r12945 | audreyt++ | * Comment out the unused require_helper stuff from Prelude.pm to save space and maybe help malaire++ to build. | ||
| audreyt | depending on your interest area (FFI, Parsec, STM, Typeclass, etc), there's several tasks laying around... | 16:02 | |
| SamB | huh, Parsec... | 16:04 | |
| iirc someone needs to implement that for packed strings? | 16:05 | ||
| audreyt | xerox setup a repo for linspire's packed string parser | ||
| but it's not direct port of parsec | |||
| SamB | oh, that was linspire's was it? | 16:06 | |
| audreyt | and as such needs some tweaks; johnmeacham revived packrat parsing and that may be nice as well | ||
| sjanssen is supposed to do full parsec port on packed strings | |||
| ...but it may or may not have been fizzled. | |||
| SamB | the packrat parsing looks quite hard to use... | ||
| I started to write an XML parser in it and I was mostly struggling with it rather than with XML... | |||
| audreyt | in fact, I'm not sure what parts of sjanssen's work was completed... | 16:07 | |
| since pugs can use every bit of his SoC work, salvaging any part would be useful :) | |||
| SamB: it's useful when you need lots of backtracking | |||
| from what I recall, XML needs no backtracking at all | |||
| and as such using it may be asking for pain | 16:08 | ||
|
16:10
markstos left,
markstos joined
|
|||
| SamB | audreyt: mmhmm | 16:10 | |
| markstos | New Perl6 blogging on Perl5 embedding and YAML support: | ||
| </p> | |||
| <pre | |||
| Doh! Sorry. bad paste. | |||
| pugs.blogs.com/pugs/2006/09/perl_6_....html#more | 16:11 | ||
| SamB | even so, I was struggling with the interface! | ||
| audreyt | markstos: you want to pass a \$foo into p5 land for modification? | 16:12 | |
| markstos | Yes. | 16:13 | |
| HTML::Templat accepts a "scalarref" as a template. | |||
| If it already works, that's great, but it's low priority for me if it doesn't. | 16:14 | ||
| audreyt | indeed there's no easy way. | 16:16 | |
| clkao: pugs::guts didn't have a TIESCALAR instance | |||
| so other kinds of refs work but not SV | 16:17 | ||
| markstos | so it could happen eventually ? | ||
| audreyt | fixing | ||
| markstos | I better hurry up and write a test, then! | 16:18 | |
| clkao | audreyt: huh? | ||
|
16:18
Psyche^ joined
|
|||
| markstos | I guess I'll need to know what the syntax would be to pass it from one language to the other ,though. | 16:18 | |
| audreyt | well, \$foo should still work. | 16:19 | |
| markstos | Really? It won't form a P6 Capture instead ? | ||
| audreyt | clkao: p5func(\$p6val) | ||
| it will | |||
| gaal | audreyt: why? captures are xlated to refs in p5 bridge? ew! | ||
| audreyt | but P6 Capture in p5 land should overload ${} into an assignable thing | 16:20 | |
| and overload @{} and overload %{} | |||
| gaal | ah, a la XML::All | ||
| audreyt | right. | ||
| markstos proceeds with a test. | |||
| audreyt | clkao: nvm, trying to think about passing a pugscapt via p5embed bridge into a Data::Bind-ish Capture callconv object | ||
| clkao | audreyt: was talking about that to rgs and nick | 16:22 | |
| svnbot6 | r12946 | gaal++ | * Correct handling of required and optional parameters. These all work: | ||
| r12946 | gaal++ | :($x) :($x!) # required positional $x | |||
| r12946 | gaal++ | :($x?) :($x? = 42) :($x = 42) # optional w/o, w/, and w/default | |||
| clkao | uhm, not cap | ||
| svnbot6 | r12946 | gaal++ | :($x! = 42) # correctly raises an error | ||
| audreyt | clkao: D::B callconv natively? | 16:23 | |
| cool. I figure I don't have to fly to YAPC::EU because you're there :) | |||
| clkao | not callconv, just the bidning bit | ||
| audreyt | k. anything? | ||
| clkao | audreyt: your flattering skill has degraded | 16:24 | |
| nick tries to escape from me. rgs ponders | |||
| audreyt | I'm sleepy, so that's to be expected | ||
| gaal | hmm. should :($x! = 42) raise a special userfriendly error? | ||
| audreyt | would be nice. | ||
| clkao | something like what judy does, munging the potinter and stick a flag in it can be doable | ||
| markstos | I think I've got a test now. Will nopaste it. | 16:25 | |
| audreyt | markstos: btw, the :lang<yaml> bit in your blog post has disappeared | ||
|
16:25
ayrnieu_ joined
|
|||
| audreyt | oh, and you know you can eval with :lang<perl5> too? | 16:25 | |
| clkao: you mean using the lower 2 bits in a Ptr? | 16:26 | ||
| that seems to be a popular technique | |||
| pasteling | "markstos" at 12.176.101.89 pasted "Test for passing scalar ref to Perl5" (12 lines, 338B) at sial.org/pbot/19426 | ||
| gaal | aiiiii that's dirty | ||
| markstos | My test? | 16:27 | |
| gaal | now i know why people want 64 bit archs. an extra bit to mangle | ||
| markstos | I think I typo'ed scalar_ref vs. scalarref. | ||
| gaal | markstos: no, the pointer parasity | ||
| araujo | audreyt, Sounds fun :-) | ||
| markstos | audreyt: Yes, I knew about :lang<perl5>. | ||
| Limbic_Region | audreyt - I *think* I may have found the problem | ||
| gaal | hmm, looks like third-party/ is always compiled with optimizations, even in make fast? | 16:28 | |
| markstos | audreyt: Is there a :lang<yaml> replacement ? | ||
| Limbic_Region | and if I am correct, there is absolutely nothing we can do about it | ||
| though it won't affect that many people | |||
| araujo | audreyt, i have been glancing over the pugs code now , don't you have some Haskell-related TODO list or something? | ||
| Limbic_Region is testing hypothesis now | |||
| araujo | audreyt, probably it is a bit difficult for me, since i don't know perl5 at all. | ||
| markstos | Oh, it' s not gone from the language, just from my post. :) Fixing. | ||
| That's better. | |||
|
16:30
Psyche^ is now known as Patterner
|
|||
| markstos | Blog is fixed now. The blog software had a made a <yaml></yaml> tag pair out of it. :) | 16:30 | |
| clkao | audreyt: but valgrind would you it | 16:31 | |
| audreyt | araujo: oh, you don't have to know anything about perl5 :) | 16:32 | |
| markstos | Any hints on how, given a string, I can use it to call a method that may be in a parent class? This doesn't work: | 16:33 | |
| &::($meth)(self:); | |||
| audreyt | (a sec) | ||
| self.$meth() is canonical | 16:34 | ||
| araujo | audreyt, good then :-) | ||
| audreyt | but it's not yet parsed. I wonder why. | 16:35 | |
| markstos | I like self.$meth(). I thought I tested it before. Re-testing. | ||
| bug, most likely. | |||
| audreyt tries to think what was blocking self.$meth() | |||
| markstos | ;-) | ||
| I'll make sure there's a test for it. | 16:36 | ||
| audreyt | ah. right. reason is that our Exp was not expressive to distinguish $meth(1:) from 1.$meth. | 16:37 | |
| sadly, our newExp is still not! | 16:38 | ||
| audreyt ponders whether to introduce a new CCallLate node | |||
| or desugar that into | 16:39 | ||
| self.META.can($meth).(self:) | |||
| which looks ugly. | |||
| markstos | In Perl5, $self->$meth() worked. So self.$meth() feels natural and expected. | 16:40 | |
| audreyt | and ineed perl5 has special op for that | 16:41 | |
| markstos | Is there something ugly that I can use now, that works? | ||
| audreyt | $self->meth is method_named, and ->$meth is method | ||
| svnbot6 | r12947 | audreyt++ | * introduce CCallDyn node to Pugs.Exp, to stand for the | ||
| r12947 | audreyt++ | dynamic method case: | |||
| r12947 | audreyt++ | $obj.$meth() | |||
| r12948 | markstos++ | Add failing test for $self.$meth. | |||
| audreyt | don't; a fix is coming. | ||
| give me a few mins | 16:42 | ||
| markstos | And a test. :) | ||
| audreyt | right :) | ||
| markstos pets cat and waits. | |||
| audreyt | parsec. now to run it... | 16:43 | |
| s/parsec/parsed/ | |||
| gaal | how do I peek at the current char in parsec? | ||
| audreyt | getInput | ||
| gaal | since this can't work: try $ char '!' >> fail "required parameters cannot have default values" | ||
| markstos | That failing test is in t/oo/symbolic_refs.t, BTW. | ||
| audreyt | <- lookAhead anyChar | ||
| one of the two. | |||
| gaal | thanks | ||
| audreyt | np :) | 16:44 | |
| gaal: btw, is "make ghci" working for you? | 16:45 | ||
| gaal | no :( | ||
| audreyt | judy errors? | ||
| gaal | no, it's those linkage errors I never tracked down fully | 16:46 | |
| audreyt | oh. colinux | ||
| gaal | I think threaded/nonthreaded libs or something | ||
| yeah | |||
| rrr, why doesn't this work? | 16:47 | ||
| ch <- lookAhead anyChar ; when (ch == '!') $ fail "..." | |||
| this is not in an optional rule | |||
| ah: we're already at the next char for some reason. hmm. | 16:48 | ||
| svnbot6 | r12949 | audreyt++ | * "make ghci" needs Judy*.o for now. | ||
| gaal | oh, of course. heh. | 16:49 | |
| audreyt | getInput would work. | 16:50 | |
| gaal | yes yes, my cursor had moved. fixed, committing | ||
| audreyt | oh. I'm starting to use this style | ||
| Syn "CCallDyn" [...] | 16:51 | ||
| to denote newExp nodes in oldExp | |||
| instead of cramming new hacks on old reused nodes | |||
| gaal | sure, and since "EE" is already taken. :P | ||
| audreyt | Syn "CCall" and Syn "CApply" would follow I think | ||
| aufrank | markstos: you instigated something bigger than you expected! | 16:52 | |
| gaal | ah no! unexpected "=" expecting "::", end of input, "?" or "=" | ||
| audreyt | it's in. | ||
| gaal | dumb | ||
| svnbot6 | r12950 | audreyt++ | * Dynamic method calls: | ||
| r12950 | audreyt++ | my $meth = 'say'; | |||
| r12950 | audreyt++ | "Hello, World!".$meth; | |||
| r12950 | audreyt++ | Thanks to markstos++ for suggesting this to be implemented. | |||
| r12949 | audreyt++ | * "make ghci" needs Judy*.o for now. | |||
| gaal | unexpected moose, expecting moose | 16:53 | |
| wow, fast | 16:54 | ||
| audreyt | araujo: ok, back to business :) spec.pugscode.org/ can get you started on the thing we are supposed to implement | ||
| lambdabot | Title: Official Perl 6 Documentation | ||
| audreyt | araujo: do you have a working pugs built on your machine? | 16:55 | |
| araujo: one place to hack is to refactor src/Pugs/Type.hs | 16:56 | ||
| which is the oldest part of Pugs still surviving intact | |||
| markstos | audreyt: Cool! When will pugs on feather catch up ? (Or should I just rebuild my own? ) | ||
| audreyt | such that it can support multiple inheritance. | ||
| it will catch up when evalbot say s it is | |||
| ?eval 1 | |||
|
16:56
evalbot_12941 is now known as evalbot_12946
|
|||
| evalbot_12946 | 1 | 16:56 | |
| audreyt | it's still 4 revs behind | ||
| markstos | But that part is automated ? | ||
| audreyt | yup | 16:57 | |
| a full rebuild is perhaps 5mins | |||
| so have patience :) | |||
| markstos | Sure. | ||
| audreyt | araujo: currently we use "Tree ID" to denote inheritance; it should use Data.Graph.Inductive | ||
| araujo: you can ignore most things in that file | 16:59 | ||
| and simply change the rawTree (found in the bottom of Pugs.Type) | |||
| into a acyclic graph | |||
| and then fix all the type errors you encounter :) | 17:00 | ||
| currently our subtyping-based dispatch (also known as MMD) doesn't work well for user-defined types, largely because the multiple inherietance relationship is not reflected in the class tree; so making the tree a Graph will suddenly make several tests pass | |||
| which would be a good thing :) | 17:01 | ||
| araujo: another good task is to summarize the paragraphs above and put it as a comment above Pugs.Types.rawTree... | 17:02 | ||
| markstos: | |||
| my $test = ' &::($meth)(self:) should find method in parent class'; | |||
| that is not so | 17:03 | ||
| &foo(self:) does not do a method lookup | |||
| markstos | Ok. I'll remove the test. I wasn't sure. | ||
| audreyt | foo(self:) would do that | ||
| but &foo(self:) is moral equivalent of perl5 | |||
| (\&foo)->(...) | |||
| markstos | Should this work: ::($meth)(self:) ? | ||
| audreyt | I don't think so either | ||
| because ::() itself is not valid, iirc. | 17:04 | ||
| markstos | Because there's no sigil on the :: ? | ||
| audreyt | aye. | ||
| markstos | Anyway, self.$meth solves it, so I'll remove that other test. | ||
| &::($meth)(self:) is rather ugly anyway. | |||
| audreyt | k. | ||
| also you were misuing eval_is | 17:06 | ||
| simply is() would do | |||
| to protectagainst error, use | |||
| is(try{},) | |||
| eval_is takes first arg as string not expr. | 17:07 | ||
| as in | |||
| eval_is('code here') | |||
| which protects against parsefail | |||
| but you'd have to write | |||
| eval_is('$obj.$meth',..) | |||
| instead. | |||
| Limbic_Region | audreyt - where is Setup.exe created? | ||
| markstos | audreyt: thanks for the eval_is tip. | 17:08 | |
| audreyt | Limbic_Region: actually on ghc 6.6 we can simply use cabal-setup.exe | ||
| Limbic_Region | audreyt - well, the issue is with Setup.exe | ||
| audreyt | it's determined on line 147 and compiled on line 174 | ||
| wow | |||
| Limbic_Region | not that you probably didn't already know that | ||
| audreyt | actually I didn't. | ||
| so it tries to find relative to Setup.exe? | 17:09 | ||
| Limbic_Region | um, let me be more clear | ||
| audreyt | that's uhm, very broken | ||
| line 147 and line 174 of Makefile.PL is where you want to look | |||
| Limbic_Region | when $runsetup-.('build'); is run, that's when gcc-lib is not found | ||
| so I ran just that from the command line | |||
| and sure enough - gcc-lib not found | |||
| despite $ENV | |||
| er path being correct | |||
| so | |||
| I thought it was a mingw/msys problem | 17:10 | ||
| but that was a dead end | |||
| audreyt | what if instead of Setup.exe you run c:\ghc\bin\cabal-setup.exe ? | ||
| same build line, just with different .exe | |||
| Limbic_Region tries | |||
| markstos | ?eval 1 | ||
|
17:10
evalbot_12946 is now known as evalbot_12948
|
|||
| evalbot_12948 | 1 | 17:10 | |
| Limbic_Region | nope | 17:11 | |
| svnbot6 | r12951 | markstos++ | After talking with audreyt, Remove symbolic ref OO test, and move | ||
| r12951 | markstos++ | self.$meth test to a more logical location. | |||
| Limbic_Region | error - gcc-lib\\ld.exe doesn't exist | ||
| audreyt | ok. | ||
| Limbic_Region | that is when being run from the pugs build dir | ||
| markstos | feather question: Why does '/usr/bin/pugs --version' disagree with the evalbot? /usr/bin/pugs is recent, but older. | ||
| Limbic_Region assumes it is hardcode the $basedir into the executable or something | |||
| *shrug*, I am not sure I can track it down further but will look at lines 147 and 174 | 17:12 | ||
| svnbot6 | r12952 | gaal++ | * :($x! = 42) now gives a friendly error message | ||
| audreyt | Limbic_Region: er, no need to... I think I know why | 17:13 | |
|
17:13
Southen_ joined
|
|||
| Limbic_Region | line 174 of makefile.PL | 17:13 | |
| the compile ? | |||
| audreyt | that was where Setup.hs was produced | ||
| err Setup.exe | |||
| but that's probably dead end too. | |||
| Limbic_Region | ok - I assumed some of those other parameters might be worth looking into if it affected the way setup.exe functioned | 17:14 | |
| but I will defer to your better judgement | |||
| btw - my util/build_pugs.pl is now filled with warn statements ;-) | 17:15 | ||
| audreyt | oh. please make it less noisy | ||
| Limbic_Region | that was just tracking down where the problem was | ||
| markstos | ?eval 1 | ||
|
17:16
evalbot_12948 is now known as evalbot_12950
|
|||
| evalbot_12950 | 1 | 17:16 | |
| Limbic_Region | I will revert eventually | ||
| audreyt | k | ||
| gaal | markstos: 'say 42.yaml' is fine, but if you want to be more consistent: 42.yaml.say or: say yaml 42 | ||
| though 'say X.perl' comes naturally to me too :) | 17:17 | ||
| Limbic_Region | ok, so have I got you interested in investigating again or should I keep looking? | ||
| markstos | gaal: I see what you are saying. I'm mixing styles. | 17:18 | |
| gaal: Do you know where the binary corresponding to the evalbot lives on feather ? | 17:19 | ||
| audreyt | markstos: it's a Pugs.Version bug | 17:21 | |
| it's actually 12950 on feather | |||
| when evalbot builds a pugs, it didn't update the version as it should | |||
| fixing | |||
| markstos: i.e. you can effectively use the /usr/bin/pugs as r12950 | |||
|
17:22
turrepurre joined
|
|||
| markstos | gaal: I've updated the blog post. Thanks. | 17:22 | |
| Limbic_Region | audreyt - would running setup build -v be helpful at all? | 17:23 | |
| markstos | audrey: despite what /usr/bin/pugs --version reports ? | ||
| gaal | oops, back | ||
| audreyt | Limbic_Region: might be | ||
| markstos: aye | |||
| svnbot6 | r12953 | audreyt++ | * evalbot-look: unlink src/Pugs/pugs_version.h so that the version | ||
| r12953 | audreyt++ | is reflected in each build. | |||
| Limbic_Region | audreyt all it shows is gcc-lib\ld.exe being called without absolute path | 17:24 | |
| perhaps -v5 might show something more | |||
|
17:24
evalbot_12953 joined
|
|||
| audreyt | ?eval my $meth = 'say'; "Hello World".$meth | 17:25 | |
| evalbot_12953 | OUTPUT[Hello World ] Bool::True | ||
| gaal | kewl | ||
| audreyt | we're now VB9 compatible ;) | ||
| xerox | Crazy. | 17:26 | |
| ingy | audreyt: have you seen hlvm? | ||
| Limbic_Region | audreyt - these output files with -v5 are rather large, should I just email them to you | ||
| audreyt | ingy: the llvm upper proj? | ||
| Limbic_Region | I need to go grocery shopping anyway | ||
| ingy | I think so | 17:27 | |
| yeah | |||
| gaal | (prompt "what do you want to do today?").() | ||
| audreyt | saw it on LtU | ||
| havn't investigate too much | |||
| sounds very much parroty. | |||
| ingy | is Perl6 targeting hlvm? | ||
| svnbot6 | r12954 | markstos++ | Fix use of eval_is for self.$meth test. It's passing now. audreyt++. | ||
| ingy | ;) | ||
| Limbic_Region | large = 11,200 bytes for stdout and 234,270 bytes for stderr | ||
| audreyt | I thoughtabout targetting IO, actually | 17:28 | |
|
17:28
cm joined
|
|||
| audreyt | the object model very much in sync | 17:29 | |
| with p6's | |||
| ingy | IO? | ||
| audreyt | IO is the language inside javascript | ||
| that struggles to get out. | |||
| # www.iolanguage.com/about/ | |||
| lambdabot | Title: io - about | ||
| audreyt | highlight: fast. clean. small. | ||
| Limbic_Region | audreyt? | 17:30 | |
| ingy | oh, fyi... yaml.com | ||
| lambdabot | Title: The Official YAML Projects Information Site | ||
| audreyt | Limbic_Region: put it on feather? | ||
| Limbic_Region | ok - what dir? | 17:31 | |
| ingy heads off to run *15 miles* | |||
| :( | |||
| audreyt | Limbic_Region: your ~ | ||
| Limbic_Region | k | ||
|
17:31
ludan joined
|
|||
| Limbic_Region | I did C:\pugs> setup.exe build -v5 >build.out 2>build.error | 17:32 | |
| so those are the two files I will upload as soon as I install putty on this laptop | |||
| Patterner | hmmm... gentoo has "io-vm-20030923" | 17:33 | |
| gaal | what other auxillaries are relevant to signatures? $x does Swim is valid, right? | ||
| Limbic_Region | audreyt - uploaded | 17:34 | |
| and now that I know it is safely in ghc land | |||
| I am off to go grocery shopping | 17:35 | ||
| thanks for bearing with me | |||
| and thanks for making the ugly hack in the interim | |||
| Limbic_Region & # grocery shopping | |||
| audreyt | ingy: as re HLVM: | ||
| Parrot has an object model, just almost no reflection and no sane metamodel | |||
| HLVM doesn't even have an object model. | 17:36 | ||
| so, considering it vapourware until it hits the 0.4 milestone. | |||
|
17:37
kane-xs is now known as kane_,
cognominal left
|
|||
| audreyt | the design looks traditional enough, so once it has an object model, probably not that hard to target. | 17:38 | |
|
17:38
cognominal joined
17:39
onsen joined
|
|||
| audreyt | I like its choice of APR. | 17:41 | |
| cm | what's APR? | ||
| audreyt | apache portable runtime | ||
| cm | ah, right | ||
| audreyt | for a C-based project, it's a good way to avoid | ||
| XXX - unimplemented - Win32 hackers needed | 17:42 | ||
| parts in the source. | |||
| cm | hehe | 17:43 | |
| audreyt | hm, the actual from parrot source is "Win32 is not POSIX. Need win32 developer!" | ||
|
17:44
larsen joined
|
|||
| araujo back from lunch | 17:45 | ||
| audreyt, yes, i got a version of pugs installed | |||
| 6.2.12 | |||
| audreyt | cool. did larry send you a commit bit? | 17:46 | |
| araujo | yes audreyt | ||
| I still don't use it though | |||
| audreyt | svn co svn.openfoundry.org/pugs/ ; cd pugs ; sh confiure ; make | ||
| lambdabot | Title: Revision 12954: / | ||
| araujo | I have mainly looked (kind of randomly) at the pugs code | 17:47 | |
| audreyt | vim AUTHORS # add yourself | ||
| svn ci AUTHORS | |||
| araujo | audreyt, yeah, i am doing a big upgrade of my systems atm , next to compile pugs svn | ||
| audreyt | and then hack away at src/Pugs/Types.hs (see backlog) | ||
| araujo | yeah, reading | ||
| audreyt | or other places as you prefer :)) | ||
| I need to sleep now, unfortunately | |||
| nearly 2am here | 17:48 | ||
| so see you around tomorrow :) | |||
| *wave* & | |||
| araujo | audreyt, nice, no problem, jusy one more question | ||
| gaal | night | ||
| araujo | If i am nex to modify something, what is it a good place to notify? | ||
| audreyt | "nex"? | 17:49 | |
| araujo | next even | ||
| hah | |||
| araujo will check Types.hs and hack accordingly then | 17:50 | ||
| svnbot6 | r12955 | gaal++ | * Parse 'is ref' and 'is lazy' in Signatures | 17:52 | |
| gaal | @hoogle [a] -> (a -> b) -> b -> b | ||
| lambdabot | Prelude.foldr :: (a -> b -> b) -> b -> [a] -> b | ||
| Prelude.foldl :: (a -> b -> a) -> a -> [b] -> a | |||
| Data.List.foldl' :: (a -> b -> a) -> a -> [b] -> a | |||
| audreyt | araujo: as long as it compiles, you can try to "make test" | 17:53 | |
| if not all was failing, then simply commit it | |||
| araujo | thanks audreyt , and good night :-) | 17:54 | |
| audreyt | also you can talk about what you're going to commit here in#perl6 also | ||
| but remember to add yourself to AUTHROS first. welcome aboard! | |||
| audreyt waves & | |||
| araujo | Ok :-) | ||
|
17:54
elmex joined
18:05
chris2 joined
18:14
mdiep joined
|
|||
| [particle] | thanks to audreyt++'s link to iolanguage, i think i have a perl6 grammar for it now :) | 18:20 | |
| avar | does the perlvar.pod draft live in the pugs repos? | 18:25 | |
| markstos | avar: find . -name 'perlvar.pod' ... says no. | 18:26 | |
| gaal | I wasn't aware one existed | 18:30 | |
| avar | it's linked from the spec in the topic | ||
| anyway there's a typo in it, hence the question:) | |||
| gaal | well, then: yes it does live in docs/AES/S28draft.pod | 18:31 | |
| :-) | |||
| svnbot6 | r12956 | gaal++ | * golf trait handling in Signatures | 18:34 | |
| avar | I'll fix it!:) | ||
| I have commit access from way back apperently | |||
| gaal | avar++ | 18:35 | |
| oh it looks like it hasn't been updated in a while? HISTORY says 2005-04-11 | 18:36 | ||
| avar | maybe I should just leave it?:) | 18:37 | |
| I just saw in on spec.pugscode.org | |||
| Yeah, it looks out of date | |||
| gaal | svk log shows 2005-11-29 | ||
| well, a rehaul would be needed eventually.. so please fix away | |||
| and if you're in the mood, give it a scan viz. other synopses and update accordingly | 18:38 | ||
| avar | www.google.com/search?q=unambuous | 18:39 | |
| lambdabot | Title: unambuous - Google Search | ||
| gaal | that's an interesting word :) | 18:40 | |
| wolverian | hrm, could someone do s/builtin's/builtins/ on Perl6/Perl5/Differences.pod? I don't have access to a checkout currently and it's bugging me :) | 18:42 | |
| svnbot6 | r12957 | avar++ | * The 'ig' was missing in 'unambiguous' | ||
| wolverian | (it's under "Builtin Functions") | ||
| gaal | fixed | 18:43 | |
| wolverian | thanks! :) | 18:44 | |
| gaal | sure | ||
| wolverian | oh, on that note, the "references are gone" index link does not work, and should be capitalised probably. | ||
| gah. sorry, I should just do a fresh checkout | 18:45 | ||
| gaal | too tired to fix tonight :) | ||
| wolverian | no problem, I'll fix it when I get home | ||
| svnbot6 | r12958 | gaal++ | * Differences.pod: grammar fix, reported by wolveran++ | 18:48 | |
| avar | $foo ~~ Hash <= Yummie | ||
| avar reading Perl6 diff | 18:49 | ||
| my coworker does ref $hr =~ /HASH/i; a lot | |||
| integral | /i? they're superstitious? | 18:50 | |
| wolverian | and you probably won't be typing the ~~ explicitly either, but using multiple dispatch or 'when' | ||
| avar | integral: apperently:) | 18:51 | |
|
18:56
buetow joined
19:01
nwc10 joined
|
|||
| avar | woohoo | 19:02 | |
| nwc10 | Sorry if this is either an RTFM type question, or a "try it with pugs" (which I don't have to hand), but: if you take a continuation, where one (or more) of the lexical variables are references to deep data structures, does the continuation have a deep copy of those structures, or just a shallow copy? | ||
| gaal | nwc10: try p6-l? | 19:05 | |
| nwc10 | OK. SO it's not a trivial question? :-) | ||
| gaal | nobody for whom it's trivial seems to be around :) | ||
| integral | afaik it should be shallow | ||
| it's closing over the variables, not the stuff in them | 19:06 | ||
| nwc10 | Ah good. If conceptually it's "closing" then it's the same action as the existing closure implementation in Perl 5. Bad people have got me thinking about continuations and 6 on 5. I'm not promising that I will do anything more than think about them. | 19:07 | |
|
19:08
Limbic_Region joined
|
|||
| Limbic_Region returns to find the laptop in standby mode | 19:09 | ||
|
19:26
melite joined
19:27
melite left
19:43
traecer joined
19:48
penk joined
|
|||
| svnbot6 | r12959 | markstos++ | fix typo and add smart link for q:h test. | 20:00 | |
|
20:02
lectus joined
|
|||
| pasteling | "rindolf" at 88.153.53.7 pasted "Haskell Program with a compile error" (52 lines, 1.5K) at sial.org/pbot/19427 | 20:13 | |
| rindolf | Can anyone help with sial.org/pbot/19427 ? | ||
| lambdabot | Title: Paste #19427 from "rindolf" at 88.153.53.7 | ||
| rindolf | integral: ? | ||
|
20:27
justatheory joined
|
|||
| markstos | I keep getting "No compatible subroutine &exists" errors on valid hash syntax. By moving the problematic method to a test script, I can see that the whole method is in fact fine. This indicates a problem somewhere else in the class that's causing this problem indirectly, but I'm sure how to find it. | 20:29 | |
| s/sure/not sure/ :) | |||
| gaal | rindolf: I don't think you can override instances on type aliases, you need a newtype | 20:32 | |
| rindolf: newtype PhraseCounter = MkCounter{ unCounter :: Map PhraseCounterKey PhraseCounterValue } | 20:38 | ||
| rindolf | gaal: thanks. | ||
| gaal: never mind. | |||
| gaal | rindolf: instance Show PhraseCounter where show MkCounter x = ... | ||
| oops "show (MkCounter x)" | 20:40 | ||
|
20:40
nothingmuch_ joined
|
|||
| rindolf | gaal: thanks. | 20:40 | |
| gaal | no prob | ||
|
20:41
nothingmuch_ is now known as nothingmuch,
ruz_ joined
20:42
plisk joined
|
|||
| gaal | okay that's it for me for tonight | 20:43 | |
| bye everyone! | |||
| svnbot6 | r12960 | gaal++ | * Support for arbitrary traits in Signatures: | 20:46 | |
| r12960 | gaal++ | :($moose! is Beautiful is Fair) | |||
| r12960 | gaal++ | * Honor spelled-out 'is required' trait: | |||
| r12960 | gaal++ | :($x = 42 is required) # gives the error you'd expect | |||
| r12960 | gaal++ | * Along the way I broke implicit-optionality, so if you enter | |||
| r12960 | gaal++ | auxillaries, you need either a ?/! or a default value :-( | |||
| r12960 | gaal++ | * Open questions: | |||
| r12960 | gaal++ | - How does Pugs.Val.Code.Param express Dog ::T $fido? | |||
| r12960 | gaal++ | - What does it do with 'does' and other non-is auxillaries? | |||
|
20:48
miyagawa_ joined
21:10
crem_ joined
21:24
nothingmuch_ joined
21:32
nothingmuch_ is now known as nothingmuch
21:46
_SamB_ joined,
thomason joined
|
|||
| svnbot6 | r12961 | markstos++ | Updates to dispatch_quiz.pl: | 22:19 | |
| r12961 | markstos++ | - Run every scenerio as both subs and methods. (Sometimes the answers are different!) | |||
| r12961 | markstos++ | - Catch and report test compile failures. | |||
| r12961 | markstos++ | (%h, *%h) won't compile for subs, but passes for methods! | |||
| r12961 | markstos++ | Try it to see the surprising results! | |||
| r12961 | markstos++ | Currently 5 out of the 14 scenerios fail my expectations... | |||
| pasteling | "markstos" at 12.176.101.89 pasted ""interesting" results from dispatch_quiz.pl" (42 lines, 1K) at sial.org/pbot/19432 | 22:26 | |
|
22:28
ToniEisner joined
22:32
ToniEisner left
|
|||
| svnbot6 | r12962 | markstos++ | rename pipe operator to feed in test suite and remove that from t/TASKS | 22:40 | |
| r12963 | markstos++ | Actually move pipe.t to feed.t in a second operation, | 22:44 | ||
| r12963 | markstos++ | since svk can't handle moving a changed file, like darcs can. | |||
| r12964 | markstos++ | [t/oo/methods/multi.t] | 22:53 | ||
| r12964 | markstos++ | Add smart links to header | |||
|
23:11
larsen joined
23:20
ruz_ is now known as ruz
23:21
ruz joined
|
|||
| TreyHarris | gaal: from r12960 "* Along the way I broke implicit-optionality, so if you enter auxillaries, you need either a ?/! or a default value :-(" what does this refer to? i see 'auxiliary' mentioned a couple times in S06, but not defined AFAICT | 23:26 | |
| markstos: when you create lexical variables in a test, you should surround the tests using it in a block so the lexical will go out of scope after.... | 23:38 | ||
| svnbot6 | r12965 | markstos++ | [t/oo/methods/multi.t] | ||
| r12965 | markstos++ | Four new failing tests for multi method dispatch, based on dispatch_quiz.pl. | |||
| r12965 | markstos++ | The spec is not specific about multi method dispatch details, saying: | |||
| r12965 | markstos++ | "They are sorted into an order according to how close the run-time types of the | |||
| r12965 | markstos++ | arguments match up with the declared types of the parameters of each candidate. | |||
| r12965 | markstos++ | The best candidate is called..." | |||
| r12966 | markstos++ | one more failing MMD test. | 23:47 | ||
|
23:48
spoopithy joined
|
|||
| markstos | TreyHarris: I understand your point, but I'm not sure where I've made a mistake. Please go ahead and patch it yourself, or point it out to me. | 23:53 | |