[Haskell-cafe] Re: darcs 2.4 release candidate 2

2010-02-20 Thread Petr Rockai
Hi,

Ben Franksen benjamin.frank...@bessy.de writes:
 This rc release is still notably slower on some operations than older
 releases. My test case is a large project named RTEMS (a real-time OS),
 that we wish to import into darcs (at work) to better track our own
 additions and modifications.

 To repeat, download two adjacent releases, e.g.

 wget http://www.rtems.org/ftp/pub/rtems/4.9.0/rtems-4.8.1.tar.bz2
 wget http://www.rtems.org/ftp/pub/rtems/4.9.0/rtems-4.9.0.tar.bz2

 unpack, initialize darcs and record in the 4.8.1 tree, then copy _darcs to
 the 4.9.0 version and try to record -l or whatsnew -l.
[snip]

I am not sure about 2.4, but if this is an important usecase for you, I
might have some good news. I have cobbled together a simple replacement
for the current summary code in darcs whatsnew (right now it does not
handle moves, but that should be relatively easy to add that without
much performance impact).

The code in this form never looks *into* files, it just looks at their
hashes (which are cached in the index), and for the look-for-adds case,
for their presence in the unrecorded state (i.e. if they'd be there
without look-for-adds). In your rtems example, I get following: with
totally cold cache and no index (rm -f _darcs/index ; echo 3 
/proc/sys/vm/drop_caches) about 12 seconds, hot cache  up-to-date
index, less than one second. The reported list looks vaguely correct.

Unfortunately, this is not going to help you for record -lam new
release -- which will still need to construct the whole huge patch in
memory (and fail). I will eventually look into that problem as well, but
this is likely going to be much harder.

 I think this regression should be fixed before 2.4 is released.

Either way, I am not sure how serious this is wrt 2.4. I guess we could
manage a rewrite of the summary code, but that would probably require
another full beta cycle. I would be willing to list this under known
issues, advising people that really need this to stick with 2.3.1 for
now and upgrade to 2.5 which will hopefully improve matters in this
respect (also for rec -lam).

Yours,
   Petr.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Anyone up for Google SoC 2010?

2010-02-04 Thread Petr Rockai
Hello!

[snip]
 We're particularly interested in three things:
  (i) making Darcs faster
  (ii) building nice GUI tools and
  (iii) working seamlessly with SVN/Git repositories
[snip]
 Both of these roles are called mentor in the Google system.  Putting  
 together a good team of mentors before applying as an organisation is  
 helpful towards us being accepted into the programme.

 I'll volunteer as a mentor if it helps.

 Darcs users: if you have a few spare hours this summer, this would be
 a most excellent way to participate.  Stick your hand up :-)

I am volunteering as a mentor as well. My schedule is too crammed to go
the student way this year (and, probably, any future year).

I am particularly interested in mentoring (i) kinds of projects
mentioned by Eric above, but other will do, depending on what
prospective students come up with.

Yours,
   Petr.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Darcs and NFS Resolution

2009-09-12 Thread Petr Rockai
trentb...@gmail.com (Trent W. Buck) writes:

 I'm also puzzled as to why this works -- surely mv(1) assumes POSIX
 semantics, too?  I would be interested in seeing the exact error
 transcript, preferably as an issue on bugs.d.n.  I'm not sure the
 problem has been diagnosed correctly.
Well, not really: mv will try harder than just calling rename(2). E.g. mv also
works across mount points, where it'll go as far as doing a copy and unlink.

 I definitely think this SHOULD NOT be enabled by default, unless you're
 going to ONLY enable it in the specific scenario of CIFS on Linux.
Well, we can always catch the rename(2) error and try unlinking and renaming
again (carefully, unlike current Workaround's renameFile which just does that
on any error).

Yours,
   Petr.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: ANN: darcs 2.3.0

2009-07-24 Thread Petr Rockai
Salvatore Insalaco kirb...@gmail.com writes:
 Great! Just a little note: MSYS isn't required to install Darcs with
 cabal on Windows, just to develop or run tests.
Oh, good to know. I had no idea you could use cmd.exe to run cabal and darcs
and that it would work.

Yours,
   Petr.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANN: darcs 2.3.0

2009-07-23 Thread Petr Rockai
Hello!

I'd like to announce immediate availability of a new stable release of darcs,
2.3.0. There is a number of improvements and bugfixes over the previous stable
release, 2.2. Moreover, work has been done to improve performance of darcs
whatsnew for large repositories.

As in the past, there are two source tarballs available. As of this release,
the cabal-based build is preferred, and the autoconf build is deprecated. You
can obtain the source tarballs at these addresses:

 * http://repos.mornfall.net/darcs/darcs-2.3.0.tar.gz
 * http://repos.mornfall.net/darcs/darcs-2.3.0_autoconf.tar.gz

The build instructions are available in the enclosed README file in those
tarballs.

Moreover, if you have cabal-install available, you can install latest stable
release of darcs by issuing the following commands (no tarballs needed):

$ cabal update  
$ cabal install darcs

This should give you a darcs binary in `~/.cabal/bin` -- you should probably
add this to your PATH. More detailed instructions for installing on Windows are
available near the end of this announcement.

What's New
--

This is a summary of important changes since the last stable release (2.2):

 * Lots and lots of documentation changes (Trent).
 * Haskeline improvements (Judah).
 * Cabal as default buildsystem (many contributors).
 * Fixes in darcs check/repair memory usage (Bertram, David).
 * Performance improvement in subtree record (Reinier).
 * New option: --summary --xml (Florian Gilcher).
 * New option: changes --max-count (Eric and Petr).
 * Fix changes --only-to-files for renames (Dmitry).
 * Performance fix in darcs changes (Benedikt).
 * Hardlinks on NTFS (Salvatore).
 * Coalesce more changes when creating rollbacks (David).
 * New unit test runner (Reinier).
 * Inclusion of darcs-shell in contrib (László, Trent).
 * Author name/address canonisation: .authorspellings (Simon).
 * Working directory index and substantial darcs wh optimisation (Petr).
 * New command: darcs show index (Petr).
 * Gzip CRC check and repair feature (Ganesh).

A number of issues has been resolved since 2.2 as well. See
http://bugs.darcs.net/issueN for details on bug number N.

 *  948 darcsman (Trent)
 * 1206 countable nouns (Trent)
 * 1285 cabal test v. cabal clean (Trent)
 * 1302 use resolved, not resolved-in-unstable (Trent)
 * 1235 obliterate --summary (Rob)
 * 1270 no MOTD for --xml-output (Lele)
 * 1311 cover more timezones (Dave)
 * 1292 re-encoding haskeline input (Judah)
 * 1313 clickable ToC and refs in PDF manual Trent)
 * 1310 create merged \darcsCommand{add} (Trent)
 * 1333 better cannot push to current repository warning (Petr)
 * 1347 (autoconf) check for unsafeMMapFile if mmap use enabled (Dave)
 * 1361 specify required includes for curl in cabal file (Reinier)
 * 1379 remove libwww support (Trent)
 * 1366 remove unreachable code for direct ncurses use (Trent)
 * 1271 do not install two copies of darcs.pdf (Trent)
 * 1358 encode non-ASCII characters in mail headers (Reinier)
 * 1393 swap darcs mv and darcs move (Trent)
 * 1405 improve discoverability of global author file (Trent)
 * 1402 don't phone home about bugs (Trent)
 * 1301 remove obsolete zsh completion scripts (Trent)
 * 1162 makeAbsolute is now a total function (Ben F)
 * 1269 setpref predist - exitcode ignored bug (Ben M)
 * 1415 --edit-long-comment, not --edit-description, in help (Trent)
 * 1413 remove duplicate documentation (Trent)
 * 1423 complain about empty add/remove (Trent)
 * 1437 Implement darcs changes --max-count (Eric)
 * 1430 lazy pattern matching in (-:-) from Changes command module (Dmitry)
 * 1434 refactor example test (Trent)
 * 1432 refer to %APPDATA%, not %USERPROFILE% (Trent)
 * 1186 give a chance to abort if user did not edit description file (Dmitry)
 * 1446 make amend-record -m foo replace only the patch name (Dmitry)
 * 1435 default to get --hashed from a darcs-1.0 source (Trent)
 * 1312 update and reduce build notes (Trent)
 * 1351 fix repository path handling on Windows (Salvatore)
 * 1173 support hard links on NTFS (Salvatore)
 * 1248 support compressed inventories for darcs-1 repos (Ganesh)
 * 1455 implement darcs help environment (Trent)

The question of GHC 6.8
---

Using GHC 6.10.3 or newer is *strongly recommended*. You may compile darcs with
GHC 6.8, but there are several caveats. If you are using 6.8.2 or older, please
disable mmap support (pass -f-mmap to cabal install or runghc Setup
configure). Note that the GHC 6.8.2 that ships with Debian Lenny is not
affected and it should be safe to keep mmap enabled. It is also recommended to
disable use of Hackage zlib when compiling with GHC 6.8.2 (including the Debian
Lenny version): pass -f-zlib to cabal. When using zlib, we have seen occasional
crashes with error messages like openBinaryFile: file locked -- this is a
known GHC 6.8.2 bug (and is fixed in GHC 6.8.3). Last, if you are using a
64-bit system, darcs may hang when you exit a pager when compiled with GHC
older 

[Haskell-cafe] Re: cheap in-repo local branches (just needs implementation)

2009-07-22 Thread Petr Rockai
Hi,

Grant Husbands darcsus...@grant.x43.net writes:
 1. When you unpull old patches or reorder patches, Darcs alters
 existing patch files. This will break other branches that share the
 same files.
Not true, since the filenames are fully determined by the file content. Hashed
repositories will just create a new file for the modified patch.

 2. Similarly, when you pull patches in different contexts, you end up
 with slightly-different patches with the same name.
Same as above.

 3. With enough unpulling on one branch, you probably break the root
 for another branch, by removing the shared inventory behind the head.
This can be addressed by a GC policy. It's probably not feasible with current
darcs, but keeping around root pointers to inventories is not much different
from keeping extra roots for pristine.

 4. Pushing and pulling between branches would be very hard to
 implement without heavy Darcs involvement. The method in the proposal
 will not work, as Darcs in either branch can't necessarily understand
 the context produced by the other branch.
I'm not sure I follow your argument here. The proposed thing is the exact
mechanism behind darcs push -- grab context of remote repository, commute
patches you have to a common point and create a bundle, then use apply on that
bundle...

 5. Updating the working copy correctly for many branch operations
 entails knowing how to handle all of the darcs patches that are
 different between the branches. Even if you force the user to have no
 working copy changes, what about the unversioned extra files,
 especially in renamed folders?
The switch problem wouldn't be any easier whether implemented inside or
outside of darcs. This basically entails unapplying patches up to a common
point and then applying missing ones. This may or may not work, depending on
how much changed the working copy is. I presume we would abort without doing
any changes may this break.

 6. As noted in the proposal, it's not known how to make it play nicely
 with lazy fetching.
I don't expect any problems here. I also don't see the original note?

 7. The branch-knowledge synchronisation requires almost as much
 knowledge about how to handle remote Darcs repos as Darcs has.
This is likely true.

Yours,
   Petr.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: cheap in-repo local branches (just needs implementation)

2009-07-22 Thread Petr Rockai
Grant Husbands darcsus...@grant.x43.net writes:
 The original note that I should have quoted was from Max Battcher:
 : Additionally, there would be other useful management tools
 : (``darcs-branch list``, ``darcs-branch remove`` (or unfreeze)). I think
 : that these four commands could be done with no darcs interaction at all
 : (unless the branch being switched to has an incomplete/lazy pristine).
Ah, OK. This is mistake on Max's part, since there's no such thing as
incomplete/lazy pristine. I.e. this is a non-issue.

 Overall, I'd say this just feeds back into my original point, though;
 I fully expected that many points could be answered, and I think I can
 raise more, given a bit of thought. (I won't unless I'm asked to,
 though, as I'm trying to raise a useful point, not trying to wield
 pedantry to kill a project.)
Well, the problem with that point is that maybe half of your points were
trivially untrue, which sort of puts a dent into the argument itself. :)

 However, take even just the above into account and things are now more
 complicated. We're no longer simply switching a pristine and an
 inventory here and there, we're applying and unapplying patches for
 the working copy (which is non-trivial if you want to get the contexts
 correct), and rolling back on failure (something even Darcs has
 historically had trouble with). We're extending the added GC roots to
 include the full inventory chain (and whatever else comes up). We're
 doing something interesting with a new kind of context to make patch
 migration between branches work. I think it will become at least as
 much work as it would take to implement the right mechanisms in Darcs
 itself.
No-one says it is going to be less or more work to do this within or outside of
darcs. No doubt, some darcslib usage is quite likely (for patch application and
unapplication, eg.). However, it is still relatively manageable, and in a
limited form also relatively easy (but that's true of almost anything, the
80/20 rule).

 There's also the strong possibility that the system would get mostly
 implemented, with a few gotchas here and there and a few incomplete
 features, and then there'd less impetus for writing a good, integral
 branching system.
You are probably overdoing the integral part of the equation, given that the
only difference is administrative. You can import parts of darcs from outside
of darcs just fine, these days. Anyway, the 80/20 problem is equivalently
applicable to in-darcs as it is to out-of-darcs implementation.

Yours,
   Petr.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANN: darcs 2.3 beta 4

2009-07-15 Thread Petr Rockai
Hi again!

We have decided to delay the release cycle slightly for 2.3 and release another
beta. The primary reason for this is our Windows support -- I would like to
invite all Windows users to install darcs-beta and give it a ride. If you have
a working cabal-install, all you need to do is run:

$ cabal update
$ cabal install darcs-beta

(this works on all platforms; you may need to use -f-curl, if you don't have
the cURL headers available -- this is often the case on Windows). If you do not
have cabal-install, please follow the instructions near the end of this
message, Installing on Windows.

In addition to using cabal-install, you can also download a tarball from
http://repos.mornfall.net/darcs/darcs-2.2.98.4.tar.gz and build manually (see
the build instructions in README inside the tarball).

Feedback


To make the darcs 2.3 release a good one, we still need testing feedback:
please drop a note to darcs-users@ if you have installed darcs-beta, or failed
to install it. If you run into any bugs, we need to know about them.

Thanks!

The question of GHC 6.8
---

Using GHC 6.10.3 or newer is *strongly recommended*. You may compile darcs with
GHC 6.8, but there are several caveats. If you are using 6.8.2 or older, please
disable mmap support (pass -f-mmap to cabal install or runghc Setup configure
below). Note that the GHC 6.8.2 that ships with Debian Lenny is not affected
and it should be safe to keep mmap enabled. It is also recommended to disable
use of Hackage zlib when compiling with GHC 6.8.2 (including the Debian Lenny
version): pass -f-zlib to cabal. When using zlib, we have seen occasional
crashes with error messages like openBinaryFile: file locked -- this is a
known GHC 6.8.2 bug (and is fixed in GHC 6.8.3). Last, if you are using a
64-bit system, darcs may hang when you exit a pager when compiled with GHC
older than 6.10.3. Although this is harmless, it is quite inconvenient.

Overall, the status of GHC 6.8 is semi-supported: for many cases, things will
work just fine, especially if you take a little extra caution with compilation
flags.

Installing on Windows
-

To install darcs on Windows systems from scratch, please download the Haskell
Platform and MSYS:

 * 
http://hackage.haskell.org/platform/2009.2.0.1/HaskellPlatform-2009.2.0.1-setup.exe
 * 
http://sourceforge.net/projects/mingw/files/MSYS+Base+System/MSYS-1.0.11-rc-1.exe/download

After installing both, you should have an MSYS icon: run MSYS and in the
terminal window type:

$ cabal update  
$ cabal install darcs-beta -f-curl

This should download, compile and install all required dependencies and
darcs-beta itself. The resulting darcs executable will be placed into the
Haskell Platform executables folder, and should be accessible from the MSYS
shell (just type darcs --version to check).

Yours,
   Petr.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANN: darcs 2.3 beta 2

2009-07-09 Thread Petr Rockai
Hello!

Two weeks passed and it is about time to release darcs 2.3 beta 2 (it's already
a day late, sorry about that).

As with beta 1, there is only a single installation package for this release of
darcs: cabalised source. (Please note that the final version with also come
with the legacy autoconf-based buildsystem, for the last time.)

You can either download a tarball from
http://repos.mornfall.net/darcs/darcs-2.2.98.2.tar.gz and build manually (see
the build instructions in README inside the tarball), or, alternatively, you
can use cabal-install to obtain a copy (the beta release is now available on
Hackage):

$ cabal update
$ cabal install darcs-beta

This, if successful, will give you a darcs binary in `~/.cabal/bin` -- you
should probably add that to your PATH.

What's new since beta 1
---

There are basically two relatively intrusive changes since beta 1. First, I
have added index upgrade functionality to hashed-storage and this is now used
by darcs, so that any bad or incompatible indexes are recreated transparently
by darcs. Moreover, the index format is now architecture-independent, meaning
that repositories shared across multiple architectures should not suffer from
excessive index rebuilding.

Second, Ganesh has done further work on his gzip CRC correction code. There is
a very slight risk of regressions, so if you have around any repositories with
broken CRCs in them, please test this functionality. Moreover, there is now an
option to limit the repair to current repository, avoiding changes in related
branches or caches.

Trent, Thorkil and Eric have done cleanup work and a number of minor fixes for
this release, improving overall quality and polish. One bug in the new indexing
code has been found and reported by Eric and Guillaume independently, and is
fixed in hashed-storage 0.3.4 (which required by this beta).

You can track the release plan and progress at our wiki:
http://wiki.darcs.net/development.

The question of GHC 6.8
---

Using GHC 6.10.3 or newer is *strongly recommended*. You may compile darcs with
GHC 6.8, but there are several caveats. If you are using 6.8.2 or older, please
disable mmap support (pass -f-mmap to cabal install or runghc Setup configure
below). Note that the GHC 6.8.2 that ships with Debian Lenny is not affected
and it should be safe to keep mmap enabled. It is also recommended to disable
use of Hackage zlib when compiling with GHC 6.8.2 (including the Debian Lenny
version): pass -f-zlib to cabal. When using zlib, we have seen occasional
crashes with error messages like openBinaryFile: file locked -- this is a
known GHC 6.8.2 bug (and is fixed in GHC 6.8.3). Last, if you are using a
64-bit system, darcs may hang when you exit a pager when compiled with GHC
older than 6.10.3. Although this is harmless, it is quite inconvenient.

Overall, the status of GHC 6.8 is semi-supported: for many cases, things will
work just fine, especially if you take a little extra caution with compilation
flags.

Yours,
   Petr.

-- 
Petr Ročkai | http://web.mornfall.net
A physicist is an atom's way of knowing about atoms. (George Wald)
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANN: darcs 2.3 beta 1

2009-06-24 Thread Petr Rockai
Hi!

I'd like to announce immediate availability of a first beta release of darcs
2.3. There is a number of improvements and bugfixes over the last stable
release (2.2). Moreover, work has been done on performance of darcs whatsnew
for large repositories. This has also introduced a slight risk of regressions,
but please note that all of the disruptive changes are in read-only code
paths: the new code will never touch your repository, so it is unable to cause
permanent harm. The worst that could happen is that you get no or bad diff from
darcs whatsnew. (This is also a reason why we need your testing!)

There is only a single installation package for this release of darcs:
cabalised source. (Please note that the final version with also come with the
legacy autoconf-based buildsystem, for the last time.)

You can either download a tarball from
http://repos.mornfall.net/darcs/darcs-2.2.98.1.tar.gz and build manually (see
the build instructions in README inside the tarball), or, alternatively, you
can use cabal-install to obtain a copy (the beta release is now available on
Hackage):

$ cabal update
$ cabal install darcs-beta

This should give you a darcs binary in `~/.cabal/bin` -- you should probably
add that to your PATH.

(Note: The package name on Hackage is different, since people installing darcs
from Hackage are expecting a stable version. The name change means that you
cannot use the Hackage version to build other packages that depend on the darcs
library: you either need the tarball for this, or you can use the stable
version from Hackage.)

There is a quick (possibly incomplete) list of important changes:

 * lots and lots of documentation changes (Trent)
 * haskeline improvements (Judah)
 * cabal as default buildsystem (many contributors)
 * fixes in darcs check/repair memory usage (Bertram, David)
 * performance improvement in subtree record (Reinier)
 * --summary --xml (Florian Gilcher)
 * changes --max-count (Eric and myself)
 * fix changes --only-to-files for renames (Dmitry)
 * performance fix in darcs changes (Benedikt)
 * hardlinks on NTFS (Salvatore)
 * coalesce more changes when creating rollbacks (David)
 * new unit test runner (Reinier)
 * darcs-shell in contrib (László, Trent)
 * .authorspellings (Simon) -- I find this to be controversial though
 * working directory index and substantial darcs wh optimisation (myself)
 * gzip CRC checking and repair feature (Ganesh)

and there is a number of issues that has been resolved since 2.2:

 *  948: darcsman (Trent)
 * 1206: countable nouns (Trent)
 * 1285: cabal test v. cabal clean (Trent)
 * 1302: use resolved, not resolved-in-unstable (Trent)
 * 1235: obliterate --summary (Rob)
 * 1270: no MOTD for --xml-output (Lele)
 * 1311: cover more timezones (Dave)
 * 1292: re-encoding haskeline input (Judah)
 * 1313: clickable ToC and refs in PDF manual Trent)
 * 1310: create merged \darcsCommand{add} (Trent)
 * 1333: better cannot push to current repository warning (Petr)
 * 1347: (autoconf) check for unsafeMMapFile if mmap use enabled (Dave)
 * 1361: specify required includes for curl in cabal file (Reinier)
 * 1379: remove libwww support (Trent)
 * 1366: remove unreachable code for direct ncurses use (Trent)
 * 1271: do not install two copies of darcs.pdf (Trent)
 * 1358: encode non-ASCII characters in mail headers (Reinier)
 * 1393: swap darcs mv and darcs move (Trent)
 * 1405: improve discoverability of global author file (Trent)
 * 1402: don't phone home about bugs (Trent)
 * 1301: remove obsolete zsh completion scripts (Trent)
 * 1162: makeAbsolute is now a total function (Ben F)
 * 1269: setpref predist - exitcode ignored bug (Ben M)
 * 1415: --edit-long-comment, not --edit-description, in help (Trent)
 * 1413: remove duplicate documentation (Trent)
 * 1423: complain about empty add/remove (Trent)
 * 1437: Implement darcs changes --max-count (Eric)
 * 1430: lazy pattern matching in (-:-) from Changes command module (Dmitry)
 * 1434: refactor example test (Trent)
 * 1432: refer to %APPDATA%, not %USERPROFILE% (Trent)
 * 1186: give a chance to abort if user did not edit description file (Dmitry)
 * 1446: make amend-record -m foo replace only the patch name (Dmitry)
 * 1435: default to get --hashed from a darcs-1.0 source (Trent)
 * 1312: update and reduce build notes (Trent)
 * 1351: fix repository path handling on Windows (Salvatore)
 * 1173: support hard links on NTFS (Salvatore)
 * 1248: support compressed inventories for darcs-1 repos (Ganesh)
 * 1455: implement darcs help environment (Trent)

Yours,
   Petr.

-- 
Petr Ročkai | http://web.mornfall.net
A physicist is an atom's way of knowing about atoms. (George Wald)
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] [ANNOUNCE] Darcs 2.2.0.

2009-01-16 Thread Petr Rockai
Hi all!

I am happy to announce general availability of darcs 2.2.0.

Getting the release
---

For this release, we have decided to provide two flavours, depending on the
build system used:

1) The source tarball, http://www.darcs.net/darcs-2.2.0.tar.gz, which can be
   built using the traditional autoconf-based system. This is the fully
   supported version. After downloading and unpacking, you can issue:

$ ./configure
$ make

   and possibly

# make install

   More detailed instructions inside the tarball (file README).

   Please note that we had at least one report of build failure, with
   quickcheck-related message. The currently best workaround, if this happens
   to you, is to use the cabal version of the package instead, see below.

2) Cabalised source. You can either download a tarball from
   http://hackage.haskell.org/packages/archive/darcs/2.2.0/darcs-2.2.0.tar.gz
   and build manually (see the build instructions in README inside the
   tarball), or, alternatively, you can use cabal-install to obtain a copy:

$ cabal update
$ cabal install darcs

   This will give you a darcs binary in ~/.cabal/bin -- you should probably add
   that to your PATH.

In addition to source tarballs, we expect binary packages for various UNIX
platforms will be available in due time.

For Windows users, Salvatore Insalaco has prepared a binary build, available
from http://homepage.mac.com/kirby81_it/darcs/darcs-2.2.0-win1.zip. You just
need to unpack the directory somewhere and add it to your path (if you like).

Moreover, an experimental TortoiseDarcs release for darcs 2 has been made
available by Kari Hoijarvi hoijarvi-at-seas-dot-wustl-dot-edu and is looking
for home. It can be found at http://datafed.net/darcs (unfortunately, at the
time of this writing, the site seemed unreachable... If you can help with
hosting, please mail Kari.)

What's New
--

The summary of changes since version 2.1.2 (released last November) follows:

  * In interactive record, it is now possible to get a list of
currently selected hunks (command 'l'). (Christian Kellermann)
  * It is now possible to specify --in-reply-to when using darcs send, to
generate correct references in the mail header.  (Pavel Shramov)
  * New repositories with --no-pristine-tree can no longer be
created. This only has effect on legacy darcs-1 repositories.
  * Improvements in Windows support. (Salvatore Insalaco)
  * Performance improvements in `darcs repair` and robustness improvements in
`darcs check`. (Petr Ročkai)
  * Extensive manual and online help improvements. (Trent W. Buck)
  * Support for GHC 6.10.
  * Overhaul of the make-based build system. (Trent W. Buck)
  * Cabal is now supported as a build method for darcs. (Duncan Coutts, Petr
Ročkai, Gwern Branwen)
  * First stab at libdarcs -- when building through Cabal, all of darcs
implementation is now exposed in modules. No API guarantees
whatsoever. (Eric Kow)
  * Additions to Haddock documentation of the existing darcs modules for
improved development experience.
  * Improvements in the testing infrastructure. (Christian Kellermann, Gwern
Branwen)
  * Low-level optimisations in filesystem code. (Ganesh Sittampalam)
  * Numerous major and minor bug fixes, refactorings and cleanups by David
Roundy, Eric Kow, Jason Dagit, Dmitry Kurochkin, Thorkil Naur, Salvatore
Insalaco, Christian Kellerman, Florent Becker, Duncan Coutts, Reinier
Lamers, Ganesh Sittampalam, Petr Ročkai.

And a summary of issues that have been fixed in darcs since version 2.1.2
(compiled by Thorkil Naur):

525 amend-record = darcs patches show duplicate additions
971 darcs check fails (case sensitivity on filenames)
1006darcs check and repair do not look for adds
1043pull = mergeAfterConflicting failed in geteff (2.0.2+)
1101darcs send --cc recipient not included in success message
1117Whatsnew should warn on non-recorded files
1144Add darcs send --in-reply-to or --header In-Reply-To: x...@y.z
1165get should print last gotten tag
1196Asking for changes in /. of directory that doesn't exist gives changes 
in entire repo
1198Reproducible mergeConflictingNons failed in geteff with ix
1199Backup files darcs added after external merge
1223sporadic init.sh test failure (2.1.1rc2+472)
1238wish: darcs help setpref should list all prefs
1247make TAGS is broken
12492.1.2 (+ 342 patches) local drive detection on Windows error
1272amend-record not the same as unrecord + record
1273renameFile: does not exist (No such file or directory)
1223sporadic init.sh test failure (2.1.1rc2+472)

I would like to thank all contributors for making this release possible.

Future
--

The next release will be 2.2.1, fixing low-risk issues found in 2.2.0, or those
that have been excluded for 2.2.0 due to freeze. This release will appear in
two or three weeks time, depending on