| 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 |