Guillaume Hoffmann | 18 Nov 04:36 2014

Darcs News #109

# News and discussions

1. We are in the feature freeze period of darcs 2.10:

    - <>

2. Our two Summer of Code projects ended up two months ago. Marcio and Ale's
   code will be part of the upcoming new stable version of darcs. In case you
   missed them, here are the latest posts of Marcio for his project:

    - <>
    - <>
    - <>

   Ale's posts:

    - <>
    - <>
    - <>
    - <>

# Issues resolved (7)

issue1514 Guillaume Hoffmann
  ~ -   send --minimize-context flag for send
    -   <>

issue1624 Marcio Diaz
  ~ -   bucketed cache.
    -   <>
(Continue reading)

Ben Franksen | 16 Nov 02:40 2014

Latin vs. Unicode

This came up when re-factoring the options system and is of wider interest, 
I think, so I send it to darcs-users.

The issue is, I should say, limited to stuff we get from the command line, 
or from the environment, that is, patch meta-data like author, patch name, 
etc. Here, Darcs has currently built in extra support for handling 8-bit 
encodings like iso latin1. This works by casting the unicode characters in 
the Strings to Word8, which effectively calculates their value modulo 256. 
This is not noticeable as long as you use only languages with characters 
whose code points are below 256, which is the case for most European 
languages; but for Asian ones, not to speak of the other continents, this 
breaks as soon as they enter data in their native languages.

Over the last years, unicode has established itself world-wide and firmly 
and is well supported by all the major operating systems. This is why I vote 
for dropping support for older 8-bit encodings that are not unicode 
compatible, thereby allowing e.g. Chinese users to use Darcs with their 
native languages.


"Make it so they have to reboot after every typo." -- Scott Adams
Eric Kow | 1 Nov 09:24 2014

hcar 2014 november draft

Hi all,

Attached is my latest draft for our 2014-11 HCAR report.
The deadline is today (sorry for the late notice), so if you spot
anything I should add, do shout :-)



Eric Kow <>
Attachment (darcs-hcar.pdf): application/pdf, 100 KiB
Attachment (Darcs.tex): application/x-tex, 3849 bytes
darcs-users mailing list
darcs-users <at>
Guillaume Hoffmann | 29 Oct 18:24 2014

memory consuption of patch index in darcs 2.10


the patch index data structure will be present in darcs 2.10. It is
currently enabled by default in the development version of darcs
(since now 2 years).

We still have a problematic issue with it, that is, when cloning big
repositories, patch index creation consumes lots of memory. In some
cases (on my computer, when darcs is built without optimizations), it
ends up with a "stack overflow" error. See
<> for more details.

If someone is interested in investigating this issue please look at:

* the function [Darcs.Repository.PatchIndex.createOrUpdatePatchIndexDisk](

It would be nice to fix this by the 2.10 release, otherwise I would be
in favor of disabling it by default.

Guillaume Hoffmann | 23 Oct 23:01 2014

incoming darcs 2.10 feature freeze


not before next november 3th, I'm kicking off the release process of
darcs 2.10 ( ). That
is, I will clone our reviewed repository into a release-2.10
repository, and from then on the only stuff that will go in will be
bugfixes, optimizations and helpstrings.

A description about what's already in 2.10 (new features, etc.) can be
found at

Ganesh Sittampalam | 23 Oct 20:28 2014

skeptical review requested: darcs tag --ask-deps


I'm thinking of adding a new flag to 'darcs tag', and I'm looking for a 
"skeptical review" (

So - anyone want to play the skeptic?

The basic idea is that it should be possible to make a tag that doesn't 
include all the patches currently in a repository. You can do that by 
pulling the relevant ones into a fresh repository, but that's not very 

My proposal is to add a flag --ask-deps to 'darcs tag', similar to the 
existing flag for 'darcs record', that asks the user about which 
explicit dependencies to include in the tag.

I've written a preview implementation at

The subtle difference between tag and record is that a normal patch by 
default has no explicit dependencies, but a tag by default has 
everything as an explicit dependency.

This leads to a slight UI anomaly: when selecting the dependencies for a 
tag, the 'd' key for saying "no" to all remaining patches is disabled. 
This is because it's unlikely to be what the user actually wants, and in 
the current implementation it would run very slowly. The user is 
expected to press 'a' instead once she has finished saying 'n' to 
patches that should be omitted from the tag.
(Continue reading)

Ganesh Sittampalam | 25 Aug 22:45 2014

darcs 2.8.5 release

The darcs team is pleased to announce the release of darcs 2.8.5:


The main purpose of this release is to add support for GHC 7.8. It's
been tested with GHC 7.8.3.

The new 64 bit version of GHC for Windows is not supported; 64 bit
is supported on other platforms as before.

Various dependencies on hackage packages have also been bumped: base,
network, unix, process, array, mtl, text.

The following problems have also been fixed:

 - Resolve issue2364 <> :
   Download problems with GHC 7.8

 - Resolve issue2345 <> :
   Erroneous message about libiconv when libcurl is missing


The easiest way to install darcs 2.8.5 from source is by first
installing the Haskell Platform ( If
you have installed the Haskell Platform or cabal-install, you can
install this release by doing:

(Continue reading)

Gian Piero Carrubba | 17 Aug 11:26 2014

Whatsnew on a rolled back repo

Use case:

I've a repo with patches A and B that are mutually exclusive. They 
aren't conflicting, but both define a same-named function, so the sw 
won't compile if both are applied. The simple solution is to rollback 
the undesired one before compiling, then revert the repo afterwards. Now 
I've discovered that last time I've forgotten to do the revert step. If 
I do a revert now, I'll lose any change I could have done in the repo 
while in the rolled-back status, so I need a way for displaying the 
changes in the working dir other than the ones generated by the rollback 

Any hint ? I think it could be done with some scripting, but this seems 
a bit too heavy task and probably there should be some simpler method 
for obtaining this. What am I missing ?

Gian Piero.
Gian Piero Carrubba | 14 Aug 21:42 2014

Using hash(es) for selecting one or more patches

Hi all,

now that `log` shows the hash of the patches, I would like to use it for 
selecting patches as `log (or whatever) -p` is not much handy where 
there are similar- or same-named patches. On the other hand, typing 
`--match 'hash` is boring, so I've added a `-H/--hash`[0] option that 
aliases to `--match 'hash ...'`.

Then I've changed idea and instead thought that I would prefer to 
continue using `-p` and darcs should discriminate if I've provided a 
regex or a hash. So I've modified `-p` (and the related `--from-patch` 
and `--to-patch`) in order to consider its argument as a hash if it's 40 
chars long and only composed by hex digits.

- much shorter patch
- no options inflating

1. no hash prefix matches: too many chances for false positives.
2. lack of correctness if your regex happens to be a 40 digits long hex.  
In this case you would have to resort to `--match 'name ...'`

If we had (or will have in the future) a short-id like other VCSs, we 
could use both full and short versions for alleviate 1, but this would 
OTOH aggravate 2.

While I consider the chances for 2. pretty limited, the drawbacks seem 
serious: user's surprise, breakage of sw that automatically names 
patches using hashes, possible kittens injuries, ...
(Continue reading)

Ganesh Sittampalam | 30 Jul 07:23 2014

planning a 2.8.5


I'm planning a 2.8.5 release primarily to support GHC 7.8.

The things I intend to include are:

 - GHC 7.8 support
 - The fixes from HEAD for the problems with downloading that GHC 7.8
 - The configuration fix from HEAD so that a missing libcurl is
correctly reported rather than as a missing iconv

Please shout if there's anything else important.


Xan xan | 26 Jul 23:26 2014

darcs serve


Is there any way of having embeded web server in darcs like "hg serve" in mercurial? Is there any bug against that? I think it were useful for seeing more comfortably what's changed, the files in every revision, etc.

Is there a planning for implementing that?

darcs-users mailing list
darcs-users <at>