[darcs-users] [PATCH, RESEND] Eliminate HopefullyPrivate (rename over Hopefully)

Nathaniel W Filardo nwf at cs.jhu.edu
Sat Aug 9 21:26:15 UTC 2008


On Sat, Aug 09, 2008 at 06:51:24PM +0200, Nicolas Pouillard wrote:
> Excerpts from Simon Michael's message of Sat Aug 09 18:41:33 +0200 2008:
> > Second thoughts!
> > 
> > I had trouble understanding and applying this patch. It complained about 
> > removing an non-empty file, but then did it anyway. I obliterated the 
> > patch and then noticed my my repo was inconsistent, with Hopefully.lhs 
> > containing 0 bytes. darcs check confirmed, darcs repair fixed it. That's 
> > a bad patch.
> 
> Nathaniel did you use the --look-for-adds option? If so, you've probably it a
> known bug (to lazy to look at the tracker). I traditionally workaround this
> by killing some/all parts of the _darcs/patches/pending: DO IT CAREFULLY, or
> by using darcs repair.

I don't think so, but just in case, I've regenerated the patch (attached) --
this one passes the visual smoke test.

Thinking more about it, though, I don't really understand why Hopefully
exists.  The data type,

> data Hopefully a C(x y) = Hopefully (SimpleHopefully a C(x y))
>                         | Hashed  String (SimpleHopefully a C(x y))

seems equivalent to

> SimpleHopefully a C(x y) * Maybe String

which should be

> Maybe (a C(x y)) * Maybe String

But, AFAICT, the only reason for the Maybe String seems to be because
PatchInfo structures don't store the hashed-repository ("new") hash value --
the root complication with issue861.

Is it silly to think that PatchInfos should, even for old repositories,
store (potentially unevaluated thunks -- hooray laziness) their new hash
value?  Am I missing something obvious?

--nwf;
-------------- next part --------------
Sat Aug  9 16:57:59 EDT 2008  nwf at cs.jhu.edu
  * Eliminate HopefullyPrivate (fixed patch edition)

New patches:

[Eliminate HopefullyPrivate (fixed patch edition)
nwf at cs.jhu.edu**20080809205759] hunk ./src/Darcs/Hopefully.lhs 1
-%  Copyright (C) 2006 David Roundy
-%
-%  This program is free software; you can redistribute it and/or modify
-%  it under the terms of the GNU General Public License as published by
-%  the Free Software Foundation; either version 2, or (at your option)
-%  any later version.
-%
-%  This program is distributed in the hope that it will be useful,
-%  but WITHOUT ANY WARRANTY; without even the implied warranty of
-%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-%  GNU General Public License for more details.
-%
-%  You should have received a copy of the GNU General Public License
-%  along with this program; see the file COPYING.  If not, write to
-%  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-%  Boston, MA 02110-1301, USA.
-
-
-\begin{code}
-module Darcs.Hopefully ( Hopefully, PatchInfoAnd, returnH, (>>>=), (>>>), fmapH, failH,
-                         piap, n2pia, patchInfoAndPatch,
-                         conscientiously, hopefully, info,
-                         hopefullyM, extractHash, createHashed,
-                         actually, unavailable ) where
-
-import Darcs.HopefullyPrivate -- ratify HopefullyPrivate: this is the one place
-                        -- we should import this!
-\end{code}
-
rmfile ./src/Darcs/Hopefully.lhs
move ./src/Darcs/HopefullyPrivate.lhs ./src/Darcs/Hopefully.lhs
hunk ./GNUmakefile 68
-	Hopefully.lhs HopefullyPrivate.lhs \
+	Hopefully.lhs \
hunk ./src/Darcs/Hopefully.lhs 22
-module Darcs.HopefullyPrivate ( -- ratify HopefullyPrivate: obvously we need it here...
+module Darcs.Hopefully (
hunk ./tests/haskell_policy.sh 33
-lookfor HopefullyPrivate \
-    "HopefullyPrivate should not be imported anywhere but Hopefully.  It's private!"
-

Context:

[UF8.lhs: remove unusued functions/imports/docs
gwern0 at gmail.com**20080807221826] 
[Resolve issue974 : do not pass both -optc-g and -opta-g to GHC
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080807073620] 
[make this test more cross-platform
Simon Michael <simon at joyful.com>**20080807103433] 
[document how to run unit tests
Simon Michael <simon at joyful.com>**20080807030416] 
[move (most) failing tests to bugs for clean test output
Simon Michael <simon at joyful.com>**20080806191336] 
[fix an old spelling error
Simon Michael <simon at joyful.com>**20080806170432] 
[make searching for "test:" in makefile work
Simon Michael <simon at joyful.com>**20080805222241] 
[run only normal (expected to pass) tests by default
Simon Michael <simon at joyful.com>**20080805222108] 
[Downplay quantum mechanics link.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080806124109
 Besides, darcs has far more than 3 users by now.
] 
[Make patch theory intro more inviting to math people.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080806123411] 
[cleanup and slight rewrite of the test docs
Simon Michael <simon at joyful.com>**20080806165949] 
[make order of running tests consistent
Simon Michael <simon at joyful.com>**20080806172123] 
[small makefile refactoring: allow just the normal tests to be run, without bugs/*
Simon Michael <simon at joyful.com>**20080805203242] 
[Rectify dist help
lele at nautilus.homeip.net**20080804080322
 Removed the "make dist" suggestion, the manual is a better place for that.
 Instead, make clear that it operates on a clean copy of the tree, and
 mention the "predist" functionality.
] 
[website: explain that darcs 2 is required to get the darcs source.
Simon Michael <simon at joyful.com>**20080803181216] 
[Canonize Gaetan Lehmann and Daniel Buenzli.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080730104357
 (for Daniel B, avoid an accent in his name)
] 
[configure: check for packages needed with split base.
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080730103840
 Now that all packages must be used explicitly.
] 
[fix type witness compile errors specific to ghc 6.8
Jason Dagit <dagit at codersbase.com>**20080722182729] 
[avoid import of unused function fromMaybe.
David Roundy <droundy at darcs.net>**20080729172825] 
[configure: suggest regex-compat before text
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080725095336] 
[configure: mention Haskell in 'try installing' suggestion
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080725095015] 
[Typo (Text.Regex)
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080715121708] 
[Use haskeline to have a readline-like behavior when asking something to the user
gaetan.lehmann at jouy.inra.fr**20080719065033
 Unlike the implementations using readline or editline packages, this code
 code doesn't break the Ctrl-C behavior.
] 
[Improve generic rules for English plurals. 
Eric Kow <E.Y.Kow at brighton.ac.uk>**20080604123728] 
[add configure check for Network.URI.
David Roundy <droundy at darcs.net>**20080711011914] 
[add -hide-all-packages to default GHCFLAGS.
David Roundy <droundy at darcs.net>**20080711010952] 
[add support for outputting patch numbers in darcs changes.
David Roundy <droundy at darcs.net>**20080710011211] 
[add support for matching single patches by index.
David Roundy <droundy at darcs.net>**20080710004512] 
[add support for matching ranges of patches (counting back from present).
David Roundy <droundy at darcs.net>**20080710003225] 
[Better avoid silly manpage error.
Trent W. Buck <trentbuck at gmail.com>**20080704024920
 
 It turned out only initialize's help string used 'quotes', so just
 remove them.  This makes init's docstring consistent with the others.
] 
[Missing period at end of sentence.
Trent W. Buck <trentbuck at gmail.com>**20080704024232] 
[darcs --overview no longer works, so don't document it.
Trent W. Buck <trentbuck at gmail.com>**20080704030804] 
[Avoid silly manpage error.
Trent W. Buck <trentbuck at gmail.com>**20080703010733
 man (nroff) treats an apostrophe in the first column specially,
 resulting in a syntax error without this patch.
 
 Ideally, all cases of 'foo' in the manpage (i.e. docstrings) should
 become `foo', since man -Tps turns ` and ' into left and right single
 quotes respectively.
] 
[obliterate whitespace in Darcs.Commands.Get
gwern0 at gmail.com**20080627192026
 'twas causing lhs/haddock difficulties where a \end{code} wasn't getting recognized.
] 
[rm haddock CPP business
gwern0 at gmail.com**20080627191413
 Try as I might, I can't see any reason to special-case some Haddock CPP logic to deal with some *commented-out guards*, unless CPP magically restores and uncomments the code if Haddock isn't being run.
] 
[make pull less verbose when --verbose flag is given.
David Roundy <droundy at darcs.net>**20080624170035] 
[fix makefile to remember to regenerate version information after running configure.
David Roundy <droundy at darcs.net>**20080624170001] 
[TAG 2.0.2
David Roundy <droundy at darcs.net>**20080624012041] 
Patch bundle hash:
123cd24fcb00130592afd76459069a9fedc61829
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.osuosl.org/pipermail/darcs-users/attachments/20080809/684b4ea7/attachment-0001.pgp 


More information about the darcs-users mailing list