Camelia, the Perl 6 bug

IRC log for #darcs, 2010-02-13

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

All times shown according to UTC.

Time S Nick Message
00:14 Ingmar joined #darcs
00:21 dleverton joined #darcs
00:40 kpreid_ joined #darcs
02:29 gwern joined #darcs
02:29 gwern joined #darcs
02:31 Gwern-away joined #darcs
02:43 gwern joined #darcs
03:48 vinc456` joined #darcs
04:04 gwern @seen zooko
04:04 lambdabot Unknown command, try @list
04:04 gwern bleh
04:05 gwern where's zooko when you want to ask him whether he legally changed his name to zooko or not?
04:05 gwern man!
04:38 kpreid_ zooko is certainly online and around, just not in this channel
07:42 lelit joined #darcs
07:55 balor joined #darcs
08:02 darcscommitbot joined #darcs
08:03 darcswikibot joined #darcs
08:34 gh_ joined #darcs
09:18 gh_ hi, i'm currently compiling patchwork
09:19 gh_ I see it requires Darcs.Ordered
09:19 gh_ cabal tells me it's part of the hidden package darcs-2.3.0
09:20 gh_ this module seems absent from the unstable darcs repos and branch-2.4, has it been replaced by another one ?
09:27 gh_ ah, it has been moved to Darcs.Witnesses.Ordered
09:28 gh_ currently building patchwork against 2.3.1, later I'll see if it works against 2.4
09:29 gh_ (darcs-beta 2.3.98.3)
09:48 gh_ darcs get http://patch-tag.com/r/gh/patchwork   for a usable version (I wrote to Wolfgang Jeltsch to tell him also)
12:22 * Heffalump starts making a zoo of interesting rebase problems
12:25 kpreid_ joined #darcs
12:47 Heffalump how well is the patch tracker backed up?
12:51 mornfall Heffalump: RIO ~ StateT Repository IO?
12:54 Heffalump not really, more like IO with witnesses
12:54 Heffalump it's an indexed monad, so you can't use the normal >>= and return with it, which is what makes it rather painful to use
12:54 mornfall Oh.
12:55 Heffalump the point is that the repo is changing state on disk, so you have to follow that in the type system if you're trying to get things right
12:55 mornfall Ok. From your repository' <- operation repository I have inferred that a StateT Repository IO would probably fittingly fix that. But I now see that this can't work since the Repository *type* changes.
12:56 mornfall It makes one wonder about the practicality of the witness approach though.
12:57 Heffalump yeah, I think it's definitely on the edge of being worth it in some parts of the code
12:57 mornfall Well, basically you have to work with repositories in a functional style.
12:57 Heffalump especially given the extra type signatures and other hoops
12:57 Heffalump but for direct patch handling, I think it's a real win in terms of just knowing you've got the code right
12:57 mornfall Which fits uniqueness types more than monads, I guess.
12:57 Heffalump yeah
12:57 Heffalump uniqueness types would work really nicely there
12:59 mornfall Well, at some point I started some work on a patch core which could work both with and without witnesses (but without cpp hacks), so that you could validate the witnesses for the basic operations but you could use the nonwitnessed variants in production code.
12:59 Heffalump how did that work?
13:00 mornfall I have seen that Camp has some witnesses as well.
13:01 mornfall Well, I didn't get very far. I had both witnessed and non-witnessed type classes and started working on basic operations.
13:01 Heffalump ah, I see
13:01 mornfall But I figured I needed coercion even in quite rudimentary building blocks and gave up.
13:01 mornfall (Thinking it's not really buying me enough safety to go into that much trouble.)
13:02 Heffalump I hadn't thought of using type classes, or if I had I forgot about it.
13:02 Heffalump perhaps I've just got lazy, but I really couldn't imagine writing anything complicated with commutes without the witnesses now.
13:02 mornfall I didn't have any time for that project since then.
13:03 mornfall factor :: forall a. (Commute a a, Show (a None None), Eq (Name a)) =>
13:03 mornfall forall from left right. Stack a from left -> Stack a from right -> Merge a from left right
13:03 mornfall I think this was the operation where I got fed up.
13:03 Heffalump I can see why :-)
13:04 mornfall It's also full of coerceFrom and coerceTo and otherwise ugly.
13:04 mornfall And I never quite learnt to read the GHC messages right.
13:04 mornfall So it doesn't buy me any extra confidence... :|
13:05 mornfall Maybe when I had more time working with other witnessed things..
13:05 mornfall It usually is a matter of practice (same thing with C++ templates). The downside is that people that can pick such code up are very rare.
13:06 mornfall So while I tended to write very baroque and template-heavy C++, I have switched to a more lightweight style that is more amenable to 3rd-party editing.
13:10 mornfall (I think my main issue with witnesses is that they compromise composability -- and of course, there's the thing with proofs in general that your inability to construct one doesn't mean that your code is not correct...)
13:11 mornfall (And as always when fighting a system you don't completely understand, even if you *have* a proof, it may be nigh to impossible to convince the tool about it...)
13:35 Heffalump yeah
14:24 Heffalump actually as far as composability goes, surely witnesses improve it by (mostly) restricting compositions to the valid ones?
14:39 mornfall Well, as long as you use witnesses *everywhere* and don't run into the (abundant, IMHO) cases where they are inadequate to describe valid cases (see all those unsafeCoerceP's that apparently we can't do without...)
14:39 mornfall But when combining with 3rd-party code, it's a pain. Just try to make a Show instance...
15:20 intripoon joined #darcs
16:07 vinc456 joined #darcs
16:11 arjanb joined #darcs
16:17 balor joined #darcs
17:28 Ingmar joined #darcs
18:49 mornfall Heffalump: Oh, as for my patchset, I don't have any further patches that depend on it, at least not yet.
18:50 mornfall And I'll probably hold off for a while, since there'll be some dust-settling and I have other stuff to work on I guess.
20:58 balor joined #darcs
21:07 zooko joined #darcs
21:07 zooko left #darcs
21:07 zooko joined #darcs
21:47 kowey joined #darcs
22:25 kowey I think we'll hit our fundraising target after all

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary