Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-03-05

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 CardinalNumber joined perl6
00:01 cognominal joined perl6
00:10 GabrielVieira2 joined perl6
00:15 ruz joined perl6
00:20 cj joined perl6
00:20 CardinalNumber is now known as ProperNoun
00:38 dduncan joined perl6
00:39 ruz joined perl6
00:39 theorb joined perl6
00:48 neonse left perl6
00:55 GabrielVieira2 is now known as GabrielVieira
00:55 autark joined perl6
01:04 offby joined perl6
01:12 kisu left perl6
01:29 ProperNoun joined perl6
01:29 awwaiid joined perl6
01:29 GeJ joined perl6
01:29 orafu joined perl6
01:29 _jcrigby joined perl6
01:29 devbot6 joined perl6
01:29 statico joined perl6
01:37 GabrielVieira2 joined perl6
01:53 explorer joined perl6
02:18 dmq joined perl6
02:28 vel joined perl6
02:29 meppl joined perl6
02:30 REPLeffect joined perl6
03:00 jisom joined perl6
03:01 GabrielVieira2 is now known as GabrielVieira
03:12 justatheory joined perl6
03:27 REPLeffect_ joined perl6
03:32 mako132_ joined perl6
03:34 scw_ is now known as scw
03:36 devbot6 dev: Ticket #3 (task updated): Capture fglock/putter interview info to kp6 faq. <http://dev.pugscode.org/ticket/3#comment:1>
03:43 REPLeffect_ is now known as REPLeffect
03:46 audreyt oh wow, our first trac spam
03:50 devbot6 dev: Ticket #21 (task closed): alarm-based timeout support for "make smoke" <http://dev.pugscode.org/ticket/21#comment:1>
03:59 b00t joined perl6
04:20 REPLeffect left perl6
04:28 mako132_ joined perl6
04:28 dec_ joined perl6
04:31 REPLeffect_ joined perl6
04:32 REPLeffect_ is now known as REPLeffect
04:39 amnesiac joined perl6
04:43 REPLeffect left perl6
04:58 nperez joined perl6
05:06 araujo joined perl6
05:09 offby is now known as offby1`
05:10 Khisanth joined perl6
05:10 offby1`` joined perl6
05:11 offby1`` is now known as offby1
05:17 Gothmog__ joined perl6
05:24 araujo joined perl6
05:28 araujo joined perl6
05:31 offby1 joined perl6
05:36 dec_ is now known as dec
05:38 quink joined perl6
05:40 quink left perl6
05:42 the_dormant joined perl6
05:45 TimToady make smoke still leaves a looping process.  strace alternates between lines of:
05:45 TimToady sigreturn()                             = ? (mask now [])
05:45 TimToady --- SIGALRM (Alarm clock) @ 0 (0) ---
05:47 dec SIGSMOKE
05:50 allbery_b whee
05:58 dec Or are smoke signals not cool any more?
06:07 dduncan left perl6
06:13 BooK joined perl6
06:20 gaal TimToady: are you running r15548 or newer?
06:20 gaal should have been fixed there
06:20 allbery_b ?eval 1
06:20 evalbot_r15444 is now known as evalbot_r15447
06:20 evalbot_r15447 1
06:21 allbery_b hrrrrrm
06:24 gaal not sure evalbot gets its number updated if there had only been non-haskell changes to the tree.
06:27 gaal rat on the keyboard could be a better condition than tar on the keyboard. more easily removed with cheese, for example.
06:28 gaal did I say r15548? sorry, meant r15446 (svk local number...)
06:28 the_dormant joined perl6
06:29 TimToady this is with 15447
06:31 gaal do you still have the terminal open? did the last several tasks all take 30 seconds?
06:37 TimToady can't really tell anything from what's left in the scrollbar
06:37 TimToady lots and lots of: Use of uninitialized value in subroutine entry at /usr/lib/perl5/site_perl/5.​8.8/Test/TAP/Model/File.pm line 89.
06:38 allbery_b sounds like the Test::TAP::Model bug which I think got fixed (at least mine no longer throws it)
06:38 allbery_b ...as of last night at least
06:43 gaal still trying to reproduce here; TimToady, is your Test::TAP::Model the latest one?
06:44 TimToady how should I know?
06:44 TimToady is this an external dependency?
06:45 baest joined perl6
06:45 rfordinal joined perl6
06:45 allbery_b yes, it's a perl5 dependency separate from pugs
06:48 gaal perl -MTest::TAP::Model -le 'print Test::TAP::Model->VERSION'
06:49 gaal 0.08 is the latest.
06:49 TimToady 0.06
06:50 gaal I'm not sure if the problem fixed in 0.7 is the one you're reported..
06:50 gaal allbery_b: that was actually a Test::Harness API incompatibility
06:50 TimToady well, updated to 0.08 in any event
06:54 TimToady bbl &
06:54 TimToady (thanks)
06:54 TimToady &
07:15 gaal oh, I reproduced the problem here. hmm.
07:16 gaal close SOME_FH isn't enough apparently...
07:16 gaal is there any way to get at the pid of a child started with open-|, without touching the open?
07:16 baest joined perl6
07:21 TimToady the return value of the open should be the pid
07:22 TimToady though if a shell got involved, the actual child you're interested in might be a grandkid
07:22 gaal the problem is that the open is in a library we don't really control...
07:23 gaal ...but I'm looking to see if changing it anyway is any help
07:23 idiocrash joined perl6
07:24 spinclad joined perl6
07:24 idiocrash hey guys - I'm new to this channel and just wanted to see if anyone yet had an idea of when it could be likely to see a Perl 6 release. Alpha, beta, whatever.
07:24 gaal I'm kinda hoping--but this is maybe futile--that leaving a block with a lexical filehandle on an open-| will kill the child?
07:24 b00t joined perl6
07:25 gaal er sorry: i meant leaving it because of a SIGALRM
07:25 gaal idiocrash: you can try out developement versions of pugs right away!
07:25 offby1 idiocrash: "when it's ready", I bet
07:25 gaal ?eval 40 + 2
07:26 evalbot_r15447 42
07:26 gaal see also http://run.pugscode.org/
07:26 lambdabot Title: Run Perl 6 Now -- in your browser!
07:27 idiocrash Yeah, everyone says it's done when it's done, but I just want a little smidgen of a timeframe. Randall seemed optimistic of a 12/06 alpha or beta release. But, well, we know how that went by now.
07:27 offby1 *shrug*
07:27 idiocrash Only because I'm excited though!
07:28 gaal idiocrash: want a commit bit?
07:29 idiocrash nah.
07:29 idiocrash I'm not a C hacker
07:29 gaal use your excitement to make it come sooner
07:29 gaal there's almost no C code in pugs
07:29 idiocrash Oh? Haskell?
07:29 gaal you can help with Haskell, sure, or with writing test (in Perl 6)
07:30 dolmans joined perl6
07:30 offby1 I'm toying with helping with parrot ... gotta learn git, tho'
07:30 gaal youch! hacking Straps.pm to use a lexical filehandle there just makes it hang again! I wonder if this is a Perl 5 bug...
07:31 gaal idiocrash: so for example you can look at http://svn.openfoundry.org/pugs/t which helps us generate things like http://smoke.pugscode.org/
07:31 lambdabot Title: Revision 15447: /t
07:32 gaal er, oops, did I say openfoundry? I meant http://svn.pugscode.org/pugs/t/
07:32 lambdabot Title: Revision 15447: /t
07:32 gaal (though the first url is a mirror, it's slow.)
07:33 idiocrash mkay.
07:33 gaal so, what's your email address? :) you can /msg me.
07:34 gaal (though not unless you're registered in freenode)
07:34 idiocrash I'm not
07:37 gaal idiocrash: /msg nickserv register SOMEPASSWORD
07:38 gaal idiocrash: /msg nickserv identify SOMEPASSWORD
07:42 baest joined perl6
07:45 svnbot6 r15448 | audreyt++ | * Pugs.Eval, Pugs.hs: In the interactive shell, statements are
07:45 svnbot6 r15448 | audreyt++ |   now executed in item context instead of void context, to catch
07:45 svnbot6 r15448 | audreyt++ |   some of the surprising return values.
07:46 svnbot6 r15449 | audreyt++ | * Pugs.Prim: The outermost context is Item, not Void.
07:47 gaal okay, I don't understand the hangs caused by alarm, so I'm inclined to revert those patches
07:47 svnbot6 r15450 | audreyt++ | Pugs.Prim.Keyed: Avoid import warnings.
07:47 iblechbot joined perl6
07:48 audreyt k, and unresolve the ticket
07:48 gaal I suspect a real solution will involve a Straps patch too, but I'm too fuzzy to work on that right now :(
07:48 svnbot6 r15451 | audreyt++ | * Pugs.AST: The ./ notation is (for now) invoking OldVal and
07:48 svnbot6 r15451 | audreyt++ |   returning OldVal; we'll switch en masse to NewVal eventually.
07:48 svnbot6 r15451 | audreyt++ | * Pugs.Class: Add instance for (obj ./ "string"); also add default
07:48 svnbot6 r15451 | audreyt++ |   ITEM/LIST methods to boxed pure classes.
07:50 audreyt that's fine :)
07:51 svnbot6 r15452 | audreyt++ | * Pugs.Meta.Perl5: Add HOW/WHAT/WHICH/ITEM/LIST stub declarations
07:51 svnbot6 r15452 | audreyt++ |   to boxed Perl 5 objects.
07:52 svnbot6 r15453 | gaal++ | * revert r15429 and r15446 as they seem to have more harm than good.
07:52 svnbot6 r15454 | audreyt++ | * Pugs.Eval.Var: Since the oldland (./) takes care of vvToVal,
07:52 svnbot6 r15454 | audreyt++ |   we simple invoke the VV dispatch with ./ now.
07:55 devbot6 dev: Ticket #21 (task reopened): alarm-based timeout support for "make smoke" <http://dev.pugscode.org/ticket/21#comment:2>
07:57 svnbot6 r15455 | audreyt++ | * Pugs.Eval: add .ITEM and .LIST for magic rvalue contexification
08:00 gaal what does 'iv' stand for in ivDispatch?
08:00 svnbot6 r15456 | audreyt++ | * Pugs.Monads: Support for rvalue contextification for newVals.
08:03 gaal how does "val ./ cxt" work? (where's the code eventually dispatched when invoking ./ with a context?)
08:05 audreyt bbiab
08:05 audreyt iv = invocant
08:05 audreyt see instance in .AST
08:05 audreyt ./ "ITEM" or "LIST"
08:08 gaal Is MO/ meant to be a pseudo-independent project? I want to change the accessors to pugsstyle
08:09 gaal sm_moose instead of smMoose etc.
08:17 marmic joined perl6
08:24 gaal what does MI stand for in MI m, defined in MO.Compile.Class?
08:25 gaal how is it distinct from MethodInvocation defined in MO.Run?
08:27 gaal (mi_name would clash and I want to know how to rename one of them)
08:27 gaal brb
08:43 gaal rehi. I still don't understand what MI stands for :)
08:47 aukjan|gone joined perl6
08:48 aukjan|gone is now known as aukjan
08:52 lisppaste3 joined perl6
08:53 dec_ joined perl6
08:53 Patterner Not MethodInvocation?
08:54 gaal then "how is it distinct from MethodInvocation defined in MO.Run?"
08:58 Patterner you're the expert
09:00 gaal cmarcelo is I think
09:08 TimToady_ joined perl6
09:08 forsaken joined perl6
09:16 drrho joined perl6
09:18 the_dormant joined perl6
09:25 dec_ is now known as dec
09:29 ofer0 joined perl6
09:35 aukjan is now known as aukjan|gone
09:37 audreyt gaal: MI? it's very bad name
09:37 audreyt MI stands for MultipleInheritance
09:38 agentzh joined perl6
09:38 audreyt so just call it PugsClass or something
09:40 gaal there's an alias PugsClass = MI Eval
09:40 gaal also, it's defined in MO, so "Pugs" is sorta verbotten there isn't it?
09:41 gaal MOClass perhaps?
09:41 gaal fixing.
09:48 audreyt MO is conceptuall independent
09:48 audreyt though it does use Pugs.Val.Capt
09:49 audreyt so it's of questionable independence
09:49 gaal okay, comitting in a bit
09:49 audreyt dunno. I'm fine about eventually move MO into Pugs-space
09:49 audreyt but there seems to be little reason to rush that
09:50 andara joined perl6
09:50 gaal and yet, if we're the only users, it's nice if it uses our conventions..
09:51 audreyt aye, so feel free to conventionalize it
09:53 svnbot6 r15457 | gaal++ | * MO and users: use Pugs::Doc::Hack::Style naming conventions
10:06 audreyt @pl \cls methods self -> fix . moose cls methods self
10:06 lambdabot (((fix .) .) .) . moose
10:06 audreyt I see, so _that_ is the answer
10:06 audreyt (if we're to refactor mkBoxPureClass to contain the "fix" itself)
10:07 gaal I was wondering how to do that!
10:07 gaal I've seen few moose as hairy
10:07 audreyt @pl \cls methods -> fix . moose cls methods
10:07 lambdabot ((fix .) .) . moose
10:08 audreyt feel free to moose it into place if you feel like
10:08 rindolf joined perl6
10:08 audreyt I'll commit first
10:08 gaal sure. probably rename mkBoxPureClass to mkPureClass too while I'm at it
10:08 rindolf Hi all.
10:08 rindolf Hi audreyt
10:08 rindolf Hi gaal
10:08 gaal hello rindolf
10:08 audreyt yup
10:08 rindolf gaal: what's up?
10:09 rindolf gaal: I didn't had a chance to make smoke the pugs build after your changes. Sorry.
10:09 gaal me, despite bronchitis. antibiotics++
10:09 jrockway_ joined perl6
10:10 gaal rindolf: i've reverted them, as they didn't work. if you want to look into this, it'd be grand!
10:11 moritz so what does "make smoke" do? loop?
10:11 rindolf gaal: I can try. I'm at work now. I'm not sure I have ghc here.\
10:11 rindolf Oh, I do. And version 6.6 too.
10:11 gaal moritz: what does it do now? loop when we have a looping test, but work correctly when we don't. :)
10:12 gaal as opposed to work incorrectly if a test takes more than 30 seconds to complete.
10:12 moritz gaal: I don't know, I'm just building a deb package
10:13 gaal hold on, are you saying that make smoke doesn't work for you?
10:13 moritz without smoking, so ;)
10:13 moritz no, I'm just asking...
10:14 moritz because there were two regex tests that looped previously
10:14 moritz and I don't know if these tests where commented out, or what their current status is
10:14 gaal I made one skipped; don't know about the other.
10:14 gaal do you remember what it was?
10:15 moritz no
10:17 audreyt one is capture and one is exhaust
10:19 svnbot6 r15458 | audreyt++ | * Make "Boxable" specific to the Eval monad, since Pugs.Class
10:19 svnbot6 r15458 | audreyt++ |   is within Pugs-space and not MO-space anyway.
10:19 svnbot6 r15458 | audreyt++ |   Eventually the class name will be renamed back to "Value".
10:19 audreyt gaal: feel free to fixfix now
10:19 gaal sure
10:20 audreyt newval is almost there :D
10:20 gaal yay :)
10:20 audreyt after VObject is gone
10:20 audreyt we'll deal with VRef
10:20 audreyt everything else should be Just Very Trivial
10:20 audreyt oh I guess I can just slash VOpaque
10:21 audreyt hm
10:21 audreyt I'm tempted to say
10:21 audreyt instance (Typeable a, Show a) => Boxable a
10:21 audreyt but that will be so wrong
10:22 audreyt instance (Typeable a, Show a) => Boxable (Maybe a) -- but this seems reasonable
10:22 audreyt and use Nothing as the prototype
10:22 audreyt then I don't have to write crazy number of stub instances
10:22 audreyt and all haskell types are automagically perl6 types
10:23 gaal !
10:23 * audreyt goes to do that
10:23 audreyt the "constructor" is just "Just"
10:23 audreyt and the "destructor" is just "fromJust"
10:23 audreyt let obj = mkVal (Just aboutAnything)
10:23 audreyt ;)
10:24 gaal !
10:26 * audreyt again feels a powerful ray of pure oleg
10:27 gaal I wanna see her meet the monadic oleg
10:28 clkao audreyt: hola
10:31 audreyt yo
10:31 gaal hm actually I don't see (the fix thing).
10:32 gaal we do need to give "self" some name
10:32 audreyt gaal: consider you currently have
10:33 audreyt foo self x = x + self
10:33 audreyt bar = fix $ foo xx
10:33 audreyt then you can refactor it into
10:33 audreyt bar = moose xx
10:33 audreyt moose = fix . foo
10:33 audreyt no?
10:33 audreyt or, to go pointful:
10:34 audreyt moose xx = fix (foo xx)
10:34 audreyt mkPureClass cls methods = fix (mkBoxPureClass cls methods)
10:34 audreyt should be sufficient?
10:35 audreyt (I'm not exactly sure, myself, but it seems reasonable)
10:35 gaal let me muster my antlers
10:35 audreyt anything that has anything to do with fix seems fixish
10:36 rindolf gaal: OK, built Pugs. Now I'll try to run make smoke.
10:38 audreyt rindolf: please svn up to r15459
10:38 aukjan|gone is now known as aukjan
10:38 svnbot6 r15459 | audreyt++ | * exhaustive.t - skip looping test.
10:38 rindolf audreyt: OK. Hmmppf.
10:38 gaal all right, I think I got it :)
10:39 audreyt moose :)
10:40 audreyt @pl fix (\self -> err self)
10:40 lambdabot fix err
10:43 gaal ok, comitting...
10:45 gaal for some reason mkBoxClass and mkPureClass want slightly different sigs now, moosin' it up
10:45 gaal sec :)
10:47 audreyt meanwhile I fixed my fix in keyed :)
10:47 gaal ~/~ Happiness is a warm gun ~/~
10:47 svnbot6 r15460 | audreyt++ | * Pugs.Prim.Keyed: Finally got the fixpoint trick right this time.
10:48 audreyt PIL^N -> Moose -> MO.pm -> MO.hs -> Pugs.Class
10:49 audreyt the road to 6.28.0 is full of quantum tunnels :)
10:51 gaal quantlers.
10:51 audreyt quantumoose
10:52 gaal caribous
10:52 moritz quantum mechanics is like functional programming: you can't really understand it, but after a while you learn how to cope with it ;)
10:53 Patterner infinite sisters have been bitten by a quantumoose
10:54 gaal in constant time
10:58 svnbot6 r15461 | gaal++ | * affix "fix" to mkPureClass (heretofore called "mkBoxPureClass")
10:58 svnbot6 r15461 | gaal++ |   freeing callers from worrying about wild Y combinators.
10:59 audreyt gaal++
10:59 IllvilJa joined perl6
11:01 gaal audreyt++ :)
11:01 gaal fix++
11:09 gaal unwords . map (join (liftM2 if' isMoose (++ "++"))) words
11:09 justatheory joined perl6
11:14 ofer1 joined perl6
11:16 ruoso joined perl6
11:16 svnbot6 r15462 | audreyt++ | * More Boxable reshuffling - migrate Pugs.Val.Base into Pugs.Class
11:16 svnbot6 r15462 | audreyt++ |   and start to work through an easier method/instance definition.
11:21 fglock joined perl6
11:33 DHGE joined perl6
11:35 rindolf gaal: can I run make test instead of make smoke?
11:36 rindolf Or make check
11:40 gaal make test should work. but why do you need it?
11:41 gaal what's make check? is it a standard target in perl?
11:43 rindolf gaal: no, it isn't.
11:43 rindolf gaal: well, because make smoke requires a bunch of modules that I don't have.
11:43 rindolf And they have their own dependencies.
11:43 rindolf I have them at home, but not here at work.
11:44 gaal oh, then sure, make test should work as usual.
11:51 gaal bbiab&
11:57 autark_ joined perl6
11:59 elmex joined perl6
12:08 chris2 joined perl6
12:09 drupek12 joined perl6
12:23 _Orco_ joined perl6
12:39 pasteling "rindolf" at 192.114.83.18 pasted "Pugs' "make test" results." (52 lines, 3.6K) at http://sial.org/pbot/23285
12:39 rindolf gaal: http://sial.org/pbot/23285
12:39 lambdabot Title: Paste #23285 from "rindolf" at 192.114.83.18
12:41 rindolf Well, at least it didn't get stuck this time. :-)
12:41 svnbot6 r15463 | audreyt++ | * MO: Remove (for now) the Codeable abstraction.
12:43 bernhard joined perl6
12:52 weinig is now known as weinig_
13:00 the_dormant joined perl6
13:07 rindolf audreyt: ping.
13:10 drbean joined perl6
13:12 cmarcelo joined perl6
13:14 _Orco_ joined perl6
13:15 gaal rehi
13:15 svnbot6 r15464 | audreyt++ | * It turned out that Typeable instances can be written manually
13:15 svnbot6 r15464 | audreyt++ |   (and rather trivially), so we proceed to do that instead of
13:15 svnbot6 r15464 | audreyt++ |   using kluges like *_Type or typeOf ().
13:15 gaal oh? interesting
13:17 rindolf gaal: who are you talking to?
13:17 gaal to r15464
13:18 cmarcelo moose!
13:18 gaal cmarcelo: moose indeed!
13:20 cmarcelo gaal: both SI and MI names were initially related to something named Class (or similar), so the context would make easier to understand. but then we drop SI because MI was a superset. (but I admit I usually give crappy names to things :o) )
13:21 gaal cmarcelo: are you ok with MOClass as a replacement?
13:22 gaal (it fits pugsstyle better too...)
13:22 cmarcelo np
13:22 gaal okay :)
13:23 gaal hmm, I wonder if there's a nicer way to write this (that isn't totally crazy):
13:23 gaal instance (Typeable1 m, Monad m) => Eq (MOClass m) where
13:23 gaal     x == y = moc_name x == moc_name y
13:24 gaal distributive composition or something
13:25 cmarcelo distributive composition meaning? somehow telling hs to delegate (==) to (moc_name x) equality in a declarative way?
13:25 gaal yeah. just a random wonder :)
13:26 gaal I mean in Perl you'd do something akin to (==) $ map moc_name
13:26 gaal but you can do that there because @_ is so flexible (read, weakly typed)
13:28 gaal if xerox were around I'd bet he'd find some crazy way to do it with (->) :-)
13:32 cmarcelo well, some "delegate" function typed: (a -> b) -> (b -> b -> c) -> a -> a -> c, could do the trick.. so MOClass' (==) = delegate moc_name (==)..
13:33 gaal @hoogle (a -> b) -> (b -> b -> c) -> a -> a -> c
13:33 lambdabot No matches, try a more general search
13:34 gaal @pl \tr bi x y -> tr x `bi` tr y
13:34 lambdabot flip =<< ((flip . ((.) .)) .) . flip (.)
13:34 gaal simple! :-P
13:34 cmarcelo . o O ( hoogle could be smarter sometimes and look for variants like (bbc) -> (ab) -> a -> a -> c instead.. or maybe it does )
13:35 cmarcelo hehe
13:35 gaal it does, yes
13:36 fglock joined perl6
13:36 gaal @type ((flip . ((.) .)) .) . flip (.)
13:36 lambdabot forall b c a b1 a1. (a1 -> b1) -> (b1 -> b -> c) -> (a -> b) -> a1 -> a -> c
13:36 gaal what monad is that bind in?
13:37 cmarcelo (identity?)
13:37 gaal hm then why use a monad at all?
13:37 gaal I'm guessing list or something to do with ->
13:38 gaal after all,
13:38 cmarcelo (=<<) w/ Identity probably is a shorthand to something "bigger and pointed"..
13:38 gaal @type flip
13:38 lambdabot forall a b c. (a -> b -> c) -> b -> a -> c
13:39 gaal say, where do I read up to understand ghc's strategy for naming type parameters? like, why a1 and not e?
13:41 cmarcelo maybe there are someplace in the GHC Commentary. You should look there... but heard people saying that there's a klingon comment passage explaining everything, somewhere in GHC source. :o)
13:41 gaal :)
13:41 cmarcelo (  http://www.scannedinavian.com/hope/entry/61  )
13:42 gaal hehehe
13:42 cmarcelo aren't the bots suppose to make a tinyurl and tell me the page title?
13:42 gaal they are. maybe shapr has a robots.txt?
13:43 gaal hmm. I'm wanting a version of @src that works on methods. (maybe there is one?)
13:43 gaal @help src
13:43 lambdabot src <id>. Display the implementation of a standard function
13:44 moritz and I guess the URL ist too short to automagically generate a tinyurl
13:45 gaal anyway, instance Monad Identity where ... m >>= k  = k (runIdentity m)
13:45 gaal which is basically a noop
13:46 iblechbot joined perl6
13:48 svnbot6 r15465 | audreyt++ | * Pugs.Class: Refactor out methodsOf and classNameOf as the
13:48 svnbot6 r15465 | audreyt++ |   two methods one would (normally) define.
13:50 cmarcelo @type flip =<< ((flip . ((.) .)) .) . flip (.)
13:50 lambdabot forall b c a. (a -> b) -> (b -> b -> c) -> a -> a -> c
13:51 audreyt @djinn (a -> b) -> (b -> b -> c) -> a -> a -> c
13:51 lambdabot f a b c _ = b (a c) (a c)
13:53 cmarcelo hmm, almost there, we wanted "b (a c) (a d)" (not that djinn cares).
13:53 gaal so what monad _is_ that bind in?
13:53 audreyt the ((->)a) monad
13:53 audreyt I think
13:53 audreyt aka, reader monad
13:53 gaal yeah, i thought -> must have had something to do with it
13:54 gaal because of the arity voodoo
13:54 sahadev joined perl6
13:54 gaal lessee:
13:55 gaal instance Monad ((->) r) where ... m >>= k = \r -> k (m r) r
13:55 audreyt instance Monad ((->) a) where return  = const m >>= k = \r -> (k (m r)) r
13:55 audreyt you beat me to it :)
13:56 gaal that's a first :)
13:56 audreyt :D
13:56 audreyt my excuse is that I'm half lost in Lost
13:56 jonh joined perl6
13:56 audreyt so I'm refactoring "..." so it can subsume "!!!"
13:57 audreyt and also represent n-ary (n>1) functions
13:57 * cmarcelo curious to see how..
13:57 audreyt oh, trivial
13:57 audreyt (...) x y = (cast x, cast y)
13:57 audreyt :D
13:57 gaal audreyt is susceptible to kate and sawyer, heh
13:58 audreyt dunno, I just started watching season 1 episode 1
13:58 audreyt may or may not be interesting
13:58 gaal S2xE1's really good but only if you endure S1 :)
13:59 audreyt ok...
13:59 gaal I don't get how that (...) thing works
13:59 gaal oh, again with the (->)?
13:59 audreyt type MethodPrim a = (a -> [:Val:] -> Eval Val)
13:59 audreyt (...) :: (Boxable b, ((:>:) (MethodPrim b)) a) => String -> a -> (ID, MethodPrim b)
14:00 audreyt yeah, basically you write cast instances from functions to the uniform MethodPrim
14:00 audreyt instance ((:>:) MethodPrim) Val where cast x = const . const . return -- constant function
14:00 gaal ooh I wonder if there's a way to dynamically moose pugstypes through lambdabot!
14:01 audreyt mm that's a thought
14:02 gaal let bardger = const in badger . badger . return
14:03 gaal s/r//
14:08 * fglock looks around for little things to do
14:08 lambdabot fglock: You have 2 new messages. '/msg lambdabot @messages' to read them.
14:09 audreyt fglock: fix the two regex breakage?
14:09 audreyt looping at capture.t and exhaustive.t (look for the one after skip_all)
14:10 fglock audreyt: looking
14:12 fglock does pugs use PERL5LIB when looking for PCR?
14:13 weinig_ is now known as weinig|away
14:14 audreyt fglock: no, it hardwires path
14:14 audreyt perl5/.../ when noninstalled
14:14 fglock ok
14:15 cmarcelo in Pugs.Internals.Cast: (a :>: b) or "((:>:) a) b" is intended to *mean* that b can be seen as "subtype" of a, right?
14:16 audreyt yes
14:16 audreyt as is the standard notation
14:16 audreyt "cast" is widening cast, or "upcast"
14:16 audreyt it must not lose information
14:18 cmarcelo k
14:18 aukjan is now known as aukjan|gone
14:18 aukjan|gone is now known as aukjan
14:21 svnbot6 r15466 | audreyt++ | * Pugs.Internals.Cast: The "cast = return . cast" instance is too
14:21 svnbot6 r15466 | audreyt++ |   dangerous as it crosses kinds (from (a -> b) to (a -> m b)),
14:21 svnbot6 r15466 | audreyt++ |   which can lead to surprising bugs, so we nix it for now.
14:24 svnbot6 r15467 | audreyt++ | * Adjust the "return . cast" as needed.
14:28 gaal huh:
14:28 gaal @kind m a
14:28 lambdabot Not in scope: type variable `m'
14:28 lambdabot
14:28 lambdabot <interactive>:1:2: Not in scope: type variable `a'
14:28 gaal hey, another labmdabot died when I tried that
14:28 cmarcelo @help kind
14:28 lambdabot kind <type>. Return the kind of a type
14:29 cmarcelo @kind a
14:29 lambdabot Not in scope: type variable `a'
14:29 cmarcelo @kind forall a. a
14:29 gaal @find forall a . a
14:29 lambdabot *
14:29 lambdabot *
14:29 gaal er
14:29 gaal hehe.
14:29 cmarcelo @kind forall a. (Monad m) => m a
14:29 lambdabot Not in scope: type variable `m'
14:29 lambdabot
14:29 lambdabot <interactive>:1:23: Not in scope: type variable `m'
14:30 cmarcelo @kind forall a m. (Monad m) => m a
14:30 gaal quanitfy m too
14:30 lambdabot *
14:30 cmarcelo @kind forall m. (Monad m) => m
14:30 lambdabot    `m' is not applied to enough type arguments
14:30 lambdabot    Expected kind `*', but `m' has kind `* -> *'
14:30 xerox gaal: check out `on` in GHC 6.7
14:30 gaal url?
14:31 cmarcelo @kind Monad
14:31 lambdabot Class `Monad' used as a type
14:31 xerox on f g x y -> g x `f` g y
14:31 xerox ?type let on f g x y -> g x `f` g y in comparing `on` fst
14:31 lambdabot parse error on input `->'
14:31 xerox ?type let on f g x y = g x `f` g y in comparing `on` fst
14:31 lambdabot    Occurs check: cannot construct the infinite type: b = b -> a
14:31 lambdabot    Probable cause: `comparing' is applied to too few arguments
14:31 xerox Auhm.
14:32 xerox ?type let on f g x y = g x `f` g y in compare `on` fst
14:32 lambdabot forall a b. (Ord a) => (a, b) -> (a, b) -> Ordering
14:32 gaal are the docs for 6.7 online?
14:32 gaal oh found them
14:32 gaal http://haskell.org/ghc/dist/current/docs/
14:33 xerox docs/latest ?
14:33 lambdabot Title: GHC Documentation
14:33 audreyt http://haskell.org/ghc/docs/la​test/html/libraries/index.html
14:33 xerox ah, current.
14:33 Psyche^ joined perl6
14:34 gaal oh! haha, all right, I understand what you were telling me now. :)
14:35 gaal thanks
14:35 xerox ^_^
14:35 cmarcelo gaal: on = delegate
14:35 fglock re regex breakage: it's an old bug, infinite loop on '<null><null>' - I'll try to fix it
14:35 audreyt fglock: but it only started croaking after your recent PCR checkin...
14:37 fglock mm - that was just a grammar update
14:37 gaal shower&
14:38 audreyt fg
14:38 audreyt oops
14:44 CardinalNumber joined perl6
14:44 svnbot6 r15468 | audreyt++ | * Pugs.Instead.Cast: Instead of allowing random Functors,
14:44 svnbot6 r15468 | audreyt++ |   explicitly list [a] and [:a:] as the things that can
14:44 svnbot6 r15468 | audreyt++ |   be implciitly mapcasted.
14:45 Psyche^ is now known as Patterner
14:46 vel joined perl6
14:46 svnbot6 r15469 | audreyt++ | * Adjust cast invocations as needed.
14:49 fglock what is the proper syntax to get a previous revision? I was trying: svk checkout -r 15450 perl5/Pugs-Compiler-Rule
14:49 clkao up -r
14:49 fglock thank
14:49 fglock thanks
14:50 jamessan probably better to use merge
14:50 jamessan I'm not sure if svn's up -r has the same problems as CVS'
14:50 statico joined perl6
14:53 audreyt svk's doesn't :)
14:53 jamessan does svn even have a concept of sticky tags?
14:54 jamessan I'd assume not, but I'm not as well versed in svn as I should be
14:55 args no, there are no sticky tags in sv[nk]
14:55 args that's a feature :)
14:56 allbery_b sticky tags make sticky messes :)
14:57 jamessan agreed
14:57 gaal remoose
14:59 gaal "Pugs.Instead.Cast"?
14:59 gaal Internals of allowing random Functors...
15:01 CardinalNumber is now known as ProperNoun
15:02 audreyt heh
15:14 rindolf joined perl6
15:23 thepler joined perl6
15:34 the_dormant joined perl6
15:34 fglock joined perl6
15:55 devbot6 dev: Ticket #3 (task updated): Capture fglock/putter interview info to kp6 faq. <http://dev.pugscode.org/ticket/3#comment:1>
16:00 svnbot6 r15470 | fglock++ | PCR - worked around a bug in regex backtracking, that prevented pugs tests capture.t and exhaustive.t from finishing
16:00 allbery_b yay
16:03 aukjan is now known as aukjan|gone
16:04 amnesiac joined perl6
16:05 audreyt hm, annoying comment spam again
16:05 * audreyt sighs and locks down ticket_comment priv
16:07 devbot6 dev: Ticket #21 (task reopened): alarm-based timeout support for "make smoke" <http://dev.pugscode.org/ticket/21#comment:2>
16:08 rindolf audreyt: my site got link-spammed, and it was static HTML pages.
16:08 rindolf So someone compromised it.
16:08 moritz pwnd
16:09 moritz rindolf: did you find out how it wwas done?
16:10 Psyche^ joined perl6
16:10 rindolf moritz: well, all the pages were changed roughly one after the other so it was a script.
16:10 rindolf moritz: but no, I don't know how the server was compromised.
16:11 rindolf moritz: I had a very long password there.
16:11 rindolf I also had autorised some SSH public keys.
16:11 moritz rindolf: do you have your own server? or hosted somewhere?
16:11 rindolf moritz: it's hosted.
16:11 audreyt s/t//
16:12 moritz rindolf: ok, so it might have been a leak at the hoster
16:12 rindolf moritz: possibly.
16:13 [particle] joined perl6
16:18 svnbot6 r15471 | audreyt++ | * Pugs.Class: Finish the Very Flexible (...) construction
16:18 svnbot6 r15471 | audreyt++ |   via the new IsPrim class, so all sorts of functions can
16:18 svnbot6 r15471 | audreyt++ |   be promoted to methods.
16:21 kanru joined perl6
16:21 Psyche^ is now known as Patterner
16:25 specbot6 r14309 | audreyt++ | * S05: Minor fixup for this sentence no verb.
16:28 gaal why is the type annotation needed in instanceMethods :: [(ID, MethodPrim a)] ?
16:29 audreyt it's a class method
16:29 audreyt the body is optional, the type not
16:30 audreyt I just reread (and recommitted) S12, and discoverd that HOW/WHAT/WHICH/ITEM/LIST etc are not actually methods
16:30 specbot6 r14310 | audreyt++ | * S12: Clarify that VAR(1) and VAR(@foo) are simply no-ops;
16:30 specbot6 r14310 | audreyt++ |        i.e., it applies to thiings other than Scalars, too.
16:30 specbot6 r14310 | audreyt++ |        Also fixed the postfix macro name and nomenclature
16:30 specbot6 r14310 | audreyt++ |        around .VAR.
16:30 audreyt so they need to become new Boxable clsmeths in Hs-land
16:30 audreyt this is good; I was worrying about Meta.Perl5's interception of .HOW calls to p5 land
16:31 gaal what does Is mean in IsMethodPrim ?
16:31 chris2 joined perl6
16:32 gaal about the type annotation, I was asking why doesn't the inferencer deduce it itself
16:32 audreyt TimToady++ # brilliant use of those interrogative adverbs
16:32 audreyt gaal: you can't omit type annotations in class methods!
16:32 audreyt class Foo a where f = []
16:32 audreyt is ill-formed :)
16:32 TimToady_ :D
16:33 TimToady_ it occurred to me this morning that longest-token matching is basically just transaction support for :ratchet.  :)
16:33 gaal oh, because a is parametric...
16:34 gaal okay... and abut that Is thing?
16:36 audreyt it means "is subtype of" and means "can be casted to"
16:37 gaal like the "able" in Boxable?
16:37 audreyt yeah
16:37 audreyt MethodPrimable?
16:38 audreyt Methodable?
16:38 gaal we used either C or I for classes earlier.. I forger
16:38 gaal s:last/r/t/
16:39 gaal I, in ICoercible
16:39 gaal but there was the -ible there too
16:40 gaal reason I don't like IsMethodPrim is that hey, if it *is* a Prim, why do you need to call *asPrim* on it?
16:40 gaal @index !:
16:40 lambdabot bzzt
16:40 gaal @index (!:)
16:40 lambdabot bzzt
16:41 gaal what's (args !: 0) ?
16:41 cmarcelo gaal: (!:) is like !! for pArrs, AFAIK there's no haddock in the web because haddock isn't ready for this syntax..
16:41 audreyt gaal: sure, please change to *able or something...
16:41 audreyt what cmarcelo said, yes
16:42 gaal oh right, ":" is a mnemonic for "..."
16:43 gaal as in, the docs fall short
16:43 audreyt heh
16:43 gaal Looking for an English expression meaning Prime-ready.
16:44 gaal or Prim-ready rather
16:44 cmarcelo what's the #ifdef to target 6.6 release (not targetting 6.7+)? (/me wants to include `on` combinator...)
16:44 TimToady_ Er, "Primready"?
16:45 audreyt cmarcelo: #if __GLASGOW_HASKELL__ == 606
16:45 GabrielVieira2 joined perl6
16:46 gaal #if __GLASGOW_HASKELL__
16:46 gaal primprime
16:46 gaal -d
16:48 gaal ok, simply Primable's probably best
16:49 Alias_ joined perl6
16:49 Alias_ audreyt: ping...
16:50 Alias_ When you read me email I just sent, poke me
16:50 audreyt pong
16:50 audreyt url to your svn?
16:52 Alias_ All of it or just M:I?
16:52 audreyt mi
16:52 Alias_ http://svn.phase-n.com/svn/​cpan/trunk/Module-Install/
16:53 audreyt and do I have a commit bit?
16:54 Alias_ I imagine so
16:54 audreyt k, syncing.
16:54 Alias_ checking...
16:54 Alias_ wow, actually, apparently you don't
16:54 Alias_ Wonder how you managed to go so long without one
16:55 Alias_ Adding [email@hidden.address]
16:55 audreyt thanks
16:55 Alias_ I finally realise why your module count has been dropping so much :)
16:56 Alias_ <-- thick
16:56 agentzh autrijus != audreyt?
16:56 cmarcelo the #if is causing a lexical error in 'make soon'... :P
16:57 Alias_ New user EMail sent to [email@hidden.address]
16:57 audreyt danke
16:57 Alias_ agentzh: http://www.thegestalt.org/​simon/perl/wholecpan.html
16:57 lambdabot Title: CPAN Leaderboard
16:57 audreyt agentzh: autrijus =:= audreyt
16:57 Alias_ Because the leaderboard doesn't fold the two
16:57 agentzh audreyt: :)
16:58 Alias_ So autrijus module count falling gradually as audreyt count rises
16:58 agentzh i gathered so :)
16:58 audreyt it's better that way :)
16:58 Alias_ audreyt: You probably should rerelease a bunch of modules to fix that (and mostly to upgrade Module::Install)
16:58 audreyt I'd hate to release things just because of name change
16:58 audreyt well, upgrade M::I is a good reason
16:58 * Alias_ nods
16:58 Alias_ Check with the CPANTS data to see which ones actually need it
16:59 audreyt actually since you have only one commit in your M-I
16:59 audreyt why don't you take the tarball I sent to tels and reapply the commit locally?
16:59 audreyt easiest that way
16:59 Alias_ uh
16:59 audreyt and then I'll nuke the openfoundry one and leave a note there to tell people to switch to phase-n
16:59 Alias_ OR... I could just use a merge tool to resolve it
17:00 Alias_ (Araxis Merge)++
17:00 audreyt yup. the best one so far I've seen
17:00 agentzh audreyt: any plan to add more POD to M::I?
17:00 Alias_ agentzh: Alas, that was kind of my job :(
17:00 audreyt agentzh: why, yes. meet Alias_, he'll hand you a commit bit to M::I
17:00 agentzh i've been learning M::I by real examples, such as Jifty's Makefile.PL and pugs'
17:00 audreyt and then you can add PODs into it :)
17:00 Alias_ Initially it was my job to document M:I
17:00 agentzh :D
17:00 Alias_ Unfortunately, that involved reading the source code
17:01 audreyt Alias_: meet agentzh, his cpan it is AGENT
17:01 audreyt *id
17:01 Alias_ New user EMail sent to [email@hidden.address]
17:01 Alias_ You now have commit to everything I've ever written on CPAN
17:02 Alias_ HAVE A NICE DAY :)
17:02 agentzh received :)
17:02 agentzh thanks!
17:02 agentzh Alias: wow
17:02 audreyt CPAN: The Trust Matrix
17:02 * agentzh needs to be very very careful :)
17:03 Alias_ Inspired by Audrey, but with a few more sanity checks before getting the bit, but much more power afterwards :)
17:04 agentzh i'll add some POD to M::I once I've got my own modules released. :)
17:04 agentzh err, that's Makefile::DOM which is based on PPI. :)
17:04 Alias_ suuure you will :)
17:05 Alias_ You'll try to, and then get annoyed at bugs and start hacking on M:I instead
17:05 cmarcelo (for the logs, I was missing a GHC_OPTION -cpp in the .hs file)
17:05 agentzh Alias: right
17:05 Alias_ audreyt: So what are the new commands?
17:06 audreyt Alias_: see ChangeLog
17:08 Alias_ I hate this installdirs concept
17:08 svnbot6 r15472 | cmarcelo++ | * MO: Added the `on` combinator to simplify delegation of functions
17:08 svnbot6 r15472 | cmarcelo++ | like (==) and `compare` to 'parts' of a datatype. Stoled the GHC 6.7
17:08 svnbot6 r15472 | cmarcelo++ | implementation pointed by xerox++ after an idea from gaal++.
17:08 Alias_ Never makes any sense
17:08 xerox ++ \o/
17:08 audreyt Alias_: at least we eliminated the string constant which I find very very annoying
17:09 Alias_ I'm not a huge fan of the replacement though
17:09 gaal what, flip =<< ((flip . ((.) .)) .) . flip (.) wasn't good enough for you?
17:09 audreyt but I agree, this whole core/site/vendor hack is not exactly intuitive
17:09 Alias_ install_dirs_site?
17:09 Alias_ Why not just install_site
17:09 audreyt becaus install_perl reads yucky
17:09 Alias_ huh?
17:10 Alias_ install_core, install_site, install_vendor
17:10 audreyt but the key was 'perl'
17:10 audreyt not 'core'
17:10 Alias_ oh
17:10 audreyt again, I wished it was "core"
17:10 Alias_ right, ew
17:10 Alias_ what does it do exactly
17:10 cmarcelo gaal: looked too much like lisp, so I dropped :)
17:10 Alias_ core means a cpan module installs over the top of existing core module
17:11 audreyt with install_site_perl it installs to C:\Perl\lib
17:11 Alias_ What's site vs vendor
17:11 audreyt er, install_dirs_perl
17:11 GabrielVieira2 is now known as GabrielVieira
17:11 audreyt there's no difference on win32
17:11 Alias_ Well, conceptually ...
17:11 Alias_ core == core, perl == cpan, vendor == darkpan?
17:12 audreyt perl = core, site = cpan, vendor = debian/freebsd/whatnot
17:12 gaal cmarcelo: yeah you could tell I was only kidding :)
17:14 audreyt TimToady_: currently, aside from the VAR macro which does absolutely nothing (it merely cancels rvaluization), we have:
17:14 svnbot6 r15473 | audreyt++ | * MO.Run: Drop the unused (and generally impossible to satisfy)
17:14 svnbot6 r15473 | audreyt++ |   toNameList for Responder before we go ahead and add several
17:14 svnbot6 r15473 | audreyt++ |   magical macros.
17:14 Alias_ hrm
17:14 Alias_ So could we make up our own scheme? :/
17:14 audreyt WHO/WHAT/WHICH/WHERE/HOW
17:14 Alias_ core_module
17:14 Alias_ cpan_module
17:14 Alias_ vendor_module
17:14 audreyt Alias_: but vendor_module doesn't quite make sense :/
17:14 * audreyt ponders
17:14 audreyt install_as_core
17:14 Alias_ core_distribution
17:14 Alias_ ya
17:15 Alias_ install_as_core
17:15 Alias_ install_as_cpan|site
17:15 Alias_ install_as_vendor
17:15 audreyt yeah. good enough
17:15 Alias_ ok
17:15 audreyt maybe simply expose install_as_core...
17:15 audreyt and install_as_vendor
17:15 audreyt site is default anyway
17:15 audreyt so install_as_cpan/install_as_site is redundant, maybe
17:15 Alias_ Well, that's IT's default
17:16 Alias_ I've been pondering the idea of fixing this license problem
17:16 cmarcelo gaal: yup, I was only joking on top of a joke (not a very translat_able_ fun sometimes)..
17:16 Alias_ By defaulting license to "proprietary"
17:16 audreyt TimToady_: anyway, I'm thinking about two more magicals, ITEM and LIST, for the two rvalue variants
17:16 Alias_ So that PAUSE can catch them
17:17 Alias_ Then M:I could catch that there's a clash between the license and the install_as
17:17 audreyt TimToady_: do you think we need more magical macros along that line? ruby has a magical to_s (would be spelled STR here)
17:18 Alias_ BTW, I dunno if that whole XX thing is hanging around, but it made be shudder a bit
17:18 Alias_ s/be/me/
17:18 audreyt TimToady_: or are there objects that just can't stringify, such that when you say "foo $obj bar" it dies?
17:18 agentzh Alias: why not default to the "perl" license?
17:19 Alias_ Because if we can't detect a license, it means the code probably has NO license
17:19 Alias_ And that's a big big problem on the CPAN
17:19 agentzh hmm
17:19 audreyt currently we warn...
17:20 audreyt bbiab food
17:20 agentzh i like such warnings
17:20 Alias_ I dislike code making it to CPAN without licenses
17:20 Alias_ Causes many many hours of pain for CPAN admins
17:20 Alias_ I'd like to warn "No license found, defaulting to 'proprietary'"
17:20 * agentzh wonders if it's 1:20 AM for audreyt's timezone.
17:20 Alias_ or hell, "none"
17:21 agentzh Alias_: agreed
17:21 Alias_ in which case it's perfectly sane for PAUSE to bitch "I'm not legally allowed to take that code"
17:21 agentzh lol
17:21 Alias_ Which is the ultimate point in the end
17:21 Alias_ Making the uploader do some non-stupid license-based rejections
17:22 agentzh that would be very interesting
17:22 Alias_ audreyt: I don't see a preop implementation in your code
17:23 Alias_ oh wait, yes I do
17:23 Alias_ Must have grabbed the code before you added the Changes entry
17:24 Alias_ agentzh: As it is I add C< license 'proprietary'; > to all my commercial modules
17:24 Alias_ That way it's quite clear it's not for use anywhere else
17:26 agentzh hey
17:27 * agentzh is hungry too.
17:27 Alias_ ?
17:27 Alias_ ya, me too
17:27 Alias_ Cue the Hunger Cascade
17:29 agentzh hehe. I can't follow Audrey time and have to go to sleep...
17:29 agentzh 1:30 AM already
17:30 Alias_ 4:28am here
17:30 Alias_ But then I got up at 7:30pm
17:30 agentzh wow...
17:30 gaal what Snn is context discussed in? S06 has this and I'm wondering if it's a fossil:
17:30 gaal much like an array would be, that is, as a scalar in scalar context, and as a
17:30 gaal list in list context.
17:31 gaal (is there still "scalar" context?)
17:32 agentzh left perl6
17:37 Alias_ agentzh: Oh man, I just discovered "Human and Machine"... you use Windows Live Space? :/
17:37 Alias_ aaaaand he's left
17:40 Alias_ heh, Makefile::DOM looks awfully familiar
17:43 audreyt xerox: wow, (*) can be used as identifier in patterns...
17:44 xerox > let x * 2 = 42 in 0 * 2
17:44 lambdabot 42
17:45 audreyt > let (*) + (/) = 1 * 2 / 3 in (-) + (-)
17:45 lambdabot -4
17:45 audreyt I was referring to this
17:45 Alias_ dear god that's scary
17:45 xerox :O
17:45 xerox It _is_.
17:46 audreyt consistency, when executed carefully and successfully, results in great horror...
17:47 macli joined perl6
17:48 Alias_ indeed
17:48 gaal what is that, some kind of argument against Kant?
17:49 * xerox chomps chili chocolate
17:50 moritz gaal: againts mathematics
17:50 moritz gaal: mathematics is scary as well ;)
17:51 gaal let enough = enough in enough
17:51 gaal > let enough = enough in enough
17:51 lambdabot Exception: <<loop>>
17:52 svnbot6 r15474 | audreyt++ | * MO.Util: `on` doesn't really need #ifdef, since we don't
17:52 svnbot6 r15474 | audreyt++ |   import Data.Function anyway. ;) unbreak 6.7
17:53 xerox ^_^
17:53 gaal oh, I'da thought it'd be  added to the prelude... *looks at Data.Function for sick ideas*
17:54 cmarcelo audreyt: 'fix' is in Data.Function, so I thought maybe we would need sometime.. 6.7 was broking even with #if ?
17:54 audreyt there's only fix and on
17:54 audreyt cmarcelo: the #if broke it
17:54 audreyt cmarcelo: we got fix from Control.Monad.Fix
17:54 audreyt so we can define on locally
17:54 audreyt at least till 6.8
17:55 cmarcelo how? __GLASGOW* == 606 for 607?
17:55 audreyt no
17:55 audreyt see, `on` is not in 607 prelude
17:55 cmarcelo oh, we didn't import D.Function
17:55 audreyt ayeaye
17:55 audreyt but we don't really need to
17:55 cmarcelo I see :)
17:55 audreyt local def is just as good :)
17:55 * audreyt avoids -cpp whenever possible
17:56 gaal -favoid-cpp
17:56 cmarcelo k
17:56 xerox > fix (\swim xs -> case xs of (x:[]) -> x; (_:ys) -> swim ys) [1..100]
17:56 lambdabot 100
17:57 Alias_ It scares me I have no idea what I'm looking at
17:57 Alias_ (with those lamdabot samples)
17:58 xerox One can go crazy with those.
17:58 Alias_ audreyt: ok, releasing M:I 0.65
17:58 gaal Alias_: xerox was providing an interesting implementation of @list[-1] using anonymous recursion
17:59 theorb is now known as theorbtwo
17:59 Alias_ now you've told me, I still don't see what it means :)
17:59 Alias_ but ok
17:59 Alias_ Module::Install is done
17:59 xerox Alias_: it's fun, because it's a direct reification of how you would write |last| toplevel
17:59 gaal Alias_: "fix" lets mooses a Code so that it gets an extra parameter -- its own coderef
17:59 Alias_ "lets mooses" ?
18:00 gaal s/lets//
18:00 Alias_ You realise that makes even less sense than the actual thing :)
18:00 gaal uh.. okok
18:00 gaal look at this p5 code:
18:00 xerox Alias_: you know how to define map?
18:00 xerox gaal: you explain Haskell with p5?! (:
18:00 xinming_ joined perl6
18:00 Alias_ sub map {&@} { ... } right
18:00 Alias_ er (..)
18:00 Alias_ but yes
18:00 audreyt Alias_: well... let's see
18:00 audreyt ?eval { (@$_ == 1) ?? $_[0] !! &?BLOCK($_[1..*]) }([1..100])
18:00 evalbot_r15447 is now known as evalbot_r15464
18:00 evalbot_r15464 \100
18:01 xerox :O
18:01 gaal my $closure; $closure = { blah..... ; $closure->(); .... }
18:01 audreyt see, we don't even _need_ fix
18:01 xerox ....wait it's simple.
18:01 xerox ?src map
18:01 lambdabot map _ []     = []
18:01 lambdabot map f (x:xs) = f x : map f xs
18:01 gaal interestingly the following does NOT work in p5:
18:01 gaal my $closure = { blah..... ; $closure->(); .... }
18:01 * Alias_ gets audrey's version
18:01 Alias_ So it's just a VERY inefficient way of doing it :)
18:01 audreyt yeah :)
18:02 xerox > fix (\map f xs -> case xs of [] -> []; (x:xs) -> f x : map f xs) (^2) [1..5]
18:02 lambdabot [1,4,9,16,25]
18:02 andara left perl6
18:02 xerox you see it's identical to the other definition?
18:02 gaal so now suppose you had a combinator -- that's "function that modifies functions and returns the modified version" --
18:02 gaal that wraps a closure in such a way that it has itself as a reference
18:03 gaal sure, you can say "&?BLOCK" in Perl 6, but not in p5
18:04 gaal so take audreyt's example: { (@$_ == 2) ?? $_[1] !! $_[0]($_[1..*]) }([1..100])
18:04 gaal I just unshifted this magical self thing
18:05 * [particle] considers using himself as a reference in a search for programming jobs
18:05 gaal actually I need to fix it up so that the inside call remains consistent: { (@$_ == 2) ?? $_[1] !! $_[0]($_[0], $_[1..*]) }([1..100])
18:06 audreyt [particle]: Circular, Inc. would hire you
18:06 * ingy dereferences [particle]
18:06 [particle] but i already work there!
18:06 gaal only problem they's ask you to pay your own salary
18:06 audreyt but that's a feature!
18:06 gaal so, "fix", aslo known as "the Y combinator" and other names, does that
18:07 gaal never mind its haskell implementation, which *is* kinda spooky
18:07 gaal in fact never mind its implementation at all
18:07 gaal or rather, sure, mind it, but not necessarily now
18:07 gaal because to use it effectively you don't need to necessarily know its implementation
18:08 fridim joined perl6
18:08 gaal Alias_: so audreyt and I both had occasion to use this recently in pugs
18:08 xerox ?src fix
18:08 lambdabot fix f = let x = f x in x
18:08 xerox yes?
18:09 gaal I wanted to refactor something that creates classes
18:09 gaal basically there was a function
18:09 audreyt sub Y (&) { my $rec = shift; my $sub; $sub = my $tmp = sub { $rec->($sub)->(@_) }; weaken($sub); $tmp }
18:09 svnbot6 r15475 | moritz++ | eval()ed test in t/builtins/math/sqrt.t that doesn't compile
18:09 audreyt is a p5 implementation that (should) work
18:10 gaal mkClass "Str" [ ("reverse", sub {....implementation of reverse}), ("split", sub {...}), ... ]
18:10 gaal Alias_: only thing is, that like any class, Str wants to have methods like HOW, WHAT, WHICH
18:11 gaal so mkClass needs to add these methods to the list at the caller site
18:12 gaal now, the implementations of WHAT and HOW are actually recursive!
18:12 gaal that is, Str's HOW should return the Str class (that's how the metamodel is accessed in Perl 6)
18:13 gaal but the Str (meta)class is precisely the thing being defined when I say C<< mkClass "Str" [...] >>
18:13 audreyt Alias_: for a nonhaskelly explanation see http://use.perl.org/~Aristotle/journal/30896
18:13 lambdabot Title: Journal of Aristotle (5147)
18:14 gaal MJD used to have a talk online about this, too, but I don't know if it's still accessible.
18:14 marmic joined perl6
18:17 dec_ joined perl6
18:21 mr_ank joined perl6
18:24 svnbot6 r15476 | moritz++ | replaced parsefails with flunk("FIXME parsefail") in smartmatch tests
18:26 svnbot6 r15477 | audreyt++ | * Instead of inventing a complicated "special dispatch" for
18:26 svnbot6 r15477 | audreyt++ |   super-magical pseudomethods like WHO/WHICH/ITEM/LIST, we
18:26 svnbot6 r15477 | audreyt++ |   for now use the very convenient, very pythonesque treatment
18:26 svnbot6 r15477 | audreyt++ |   of simply calling special method names like __WHO__, __WHICH__,
18:26 svnbot6 r15477 | audreyt++ |   etc and hope that nobody mucks with them. ;)
18:27 gaal is that need? S12 mentions $o."WHERE" if you really need a method of that name, and that the METAS are macros
18:27 gaal *needed
18:27 gaal but I'm zonked for today... see y'all tomorrow &
18:31 audreyt gaal: right, question is what does the macro translate to
18:31 svnbot6 r15478 | gaal++ | * rename IsMethodPrim to MethodPrimable
18:31 audreyt and I chose for now to translate it to ."__WHERE__"
18:31 audreyt because it's simplest :)
18:31 audreyt but it's just implementation detail...
18:31 zgh whoa... python flashback
18:31 zgh well no then it would be lower case...
18:32 dduncan joined perl6
18:32 audreyt see changelog: "very convenient, very pythonesque"
18:32 zgh hehe
18:32 audreyt but I need to sleep too :)
18:32 audreyt bbl, more tomorrow... &
18:32 gaal __HERE_BE_PYTHONS__WHERE__HERE_BE_PYTHONS__
18:32 audreyt lol
18:32 Alias_ :)
18:32 fglock re Y combinator: this makes me feel better about kp6 unreadability
18:37 zgh that explanation made my eyes glaze over...
18:37 _Orco_ joined perl6
18:38 Daveman WHENCE
18:44 justatheory joined perl6
18:51 offby1 hence, thence.
18:51 svnbot6 r15479 | cmarcelo++ | * MO: Some comments, a little overview (in MO.Run), and some
18:51 svnbot6 r15479 | cmarcelo++ | code reordering. Review and corrections are *very* welcome.
18:52 cmarcelo (bbiab &)
18:58 drupek12 joined perl6
19:14 larsen_ joined perl6
19:17 wilx joined perl6
19:19 araujo joined perl6
19:26 polettix joined perl6
19:39 rindolf joined perl6
19:39 rindolf Hi all.
19:39 rindolf Can you guys please svn checkout http://svn.perl.org/modules/XML-RSS/trunk/ and then do perl Makefile.PL; HARNESS_PERL_SWITCHES="-MDevel::Cover" make test; ?
19:39 lambdabot Title: Revision 9211: /XML-RSS/trunk
19:40 rindolf Devel::Cover reports coverage for the DateTime::Format modules.
19:40 rindolf For me at least.
19:40 * moritz is co'ing
19:41 rindolf perl-Devel-Cover-0.61-1mdv2007.1
19:41 rindolf moritz: thanks.
19:41 moritz rindolf: Warning: prerequisite DateTime::Format::Mail 0 not found.
19:42 moritz rindolf: should I ignore these?
19:42 rindolf moritz: you need to install it.
19:42 rindolf moritz: no, you need it.
19:43 moritz *installing*
19:45 rindolf moritz: thanks.
19:45 moritz at least the prerequisites are available as .debs ;)
19:46 IllvilJa joined perl6
19:46 moritz rindolf: any other dependencies that I should know of?
19:47 moritz rindolf: the tests can't find Devel::Cover and therefore fail
19:48 araujo joined perl6
19:51 moritz rindolf: and after installing Devel::Cover: All tests successful, 4 tests skipped
19:55 jrockway joined perl6
19:56 jrockway hey, what's the status of feed operators in pugs?
19:56 jrockway i was thinking about it a while ago, and it seems like they can be implemented in perl as infix operators
19:57 jrockway am i missing something?
19:57 allbery_b have you checked Perl-6.0.0-STD yet?
20:01 GabrielVieira2 joined perl6
20:06 jrockway nope, nor do i know what that is :(
20:06 jisom joined perl6
20:07 fridim joined perl6
20:08 jisom left perl6
20:08 jisom joined perl6
20:10 allbery_b lwall's been creating the formal description for perl6.0.0 in Perl-6.0.0-STD.pm, which you'll find in the pugs distribution tree.
20:10 allbery_b consider that the final word on how things are going to be parsed
20:11 moritz allbery_b: so will it be really used some day?
20:11 svnbot6 r15480 | fglock++ | PCR - added failing test (from pugs capture.t)
20:12 allbery_b I believe the intent is that that will be loaded in response to "use v6;" to define the "standard" perl 6.0.0 language, yes
20:12 allbery_b right now the implementations are all stubs, but the parse information should be there for most stuff
20:13 allbery_b i.e. what syntactic and/or semantic class things belong to
20:16 moritz I'll take a look ;)
20:16 rindolf moritz: I found out what my problem was - I had stale .pm files under site_perl.
20:19 moritz rindolf: ok ;)
21:00 GabrielVieira2 is now known as GabrielVieira
21:02 [particle] joined perl6
21:10 Minidin joined perl6
21:13 Aankhen`` joined perl6
21:23 marmic joined perl6
21:43 awwaiid_ joined perl6
21:47 Roman_ joined perl6
21:58 nwc10 joined perl6
22:17 gnuvince_ joined perl6
22:29 Minidin joined perl6
22:38 amnesiac joined perl6
22:38 Psyche^ joined perl6
22:44 the_dormant joined perl6
22:49 cognominal joined perl6
22:53 Psyche^ is now known as Patterner
22:55 explorer joined perl6
22:57 rodi joined perl6
23:06 weinig|away joined perl6
23:17 IllvilJa left perl6
23:21 Limbic_Region joined perl6
23:30 ayrnieu joined perl6
23:58 mdiep joined perl6

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

Perl 6 | Reference Documentation | Rakudo