On 17 Oct 2009, at 05:25, Jason Dagit wrote:
On Fri, Oct 16, 2009 at 6:31 PM, Dan Pascu <[email protected]> wrote:

Is it normal to see this error, when running a darcs 2.2.0 binary on a OSX system (case insensitive filesystem) and with a hashed repository?

$ darcs wh -sl

darcs failed: Text.Regex.Posix.String died: (ReturnCode 14,"empty (sub)expression")


This is speculation that requires investigation, but I bet you're experiencing some sort of problem with regular expressions from either the boring file or the binary file.

After some investigation it turned out to be something from the boring file indeed. See below.


Have you set either of those files to reside outside of _darcs?

Yes. The boring file is set to .boring at the project top level and is put under version control. The binaries file was not set, so it uses _darcs/prefs/binaries.

If so, is it possible your other steps (such as the svn checkout) is writing over those files with regular expressions that darcs doesn't like? Really, it would be an expression that regex-posix doesn't like.

No. As I said, the boring file is at top level, while the svn checkout is done 2 directory levels below under build/temp.macosx-10.5-i386-2.5 (.boring and build/ are at the same level as _darcs). So whatever is checked out from svn and built, cannot affect any of the toplevel files.

If you haven't changed the default boring and binaries files to reside outside of _darcs, does anything change them in _darcs

No.


Can you do a diff between a repo where you get the error and an repo where you do not? I'm thinking of the unix command diff, like:
diff -u good/_darcs/prefs/binaries bad/_darcs/prefs/binaries

The diff showed that there was a generated file that was present even after running clean (a leftover it appears). This file was sipsimple/ core.c and as soon as it was removed the problem went away. Now I can reproduce the problem by simply getting a fresh repository, then running:

touch sisimple/core.c
darcs wh -sl


Also, it's possible that the regexes to match against .svn directories is bad. I wonder how often they get tested. Those regexes would be in the boring file, by the way.

Given that the core.c seem to give me troubles, I do not think it's the .svn regexp, but the regexp for corefiles. My .boring file looks like this:

# Boring file regexps:
(^|/)_darcs($|/)
(^|/)CVS($|/)
(^|/)\.svn($|/)
(^|/)\.DS_Store$
(^|/)Thumbs\.db$
\#
~$
(^|/)core(\.[0-9]+|)$
\.(pyc|pyo|o|so|orig|bak|BAK|prof|wpu|cvsignore)$
(^|/)build($|/)
(^|/)dist($|/)
^MANIFEST$

Does anyone spot anything wrong with then corefile regexp? As I read it it should never match core.c, only core or core.NNNN with NNNN being digits.

--
Dan



_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to