[Distutils] setup.py sdist hangs on windows with 1.6 and 2.0b1

Greg Ward gward@python.net
Sun Sep 17 20:40:01 2000


On 13 September 2000, Thomas Heller said:
> This may not be directly related to distutils,
> it may also be a bug in 1.6 and 2.0b1 re implementation.
> 
> 'setup.py sdist' with the current distutils CVS version
> hangs while parsing MANIFEST.in,
> executing the re.sub command in these lines in text_file.py:
> 
>         # collapse internal whitespace (*after* joining lines!)
>         if self.collapse_ws:
>             line = re.sub (r'(\S)\s+(\S)', r'\1 \2', line)

That was a very suboptimal use of regex substitution; I discovered (and
fixed) this several months ago in the version of text_file.py we use at
work, but forgot to propagate the change to the distutils version.
Coincidentally, I finally got around to doing that this weekend:

  revision 1.10
  date: 2000/09/16 18:04:55;  author: gward;  state: Exp;  lines: +31 -27
  [change from 2000/04/17, propagating now to distutils copy]
  Dropped the 'collapse_ws' option and replaced it with 'collapse_join' --
  it's *much* faster (no 're.sub()') and this is the reason I really added
  'collapse_ws', ie. to remove leading whitespace from a line being joined
  to the previous line.

So this problem should no longer be there.

However, if the sre engine really did *hang* (whereas pcre was just
slow), that might be an sre bug.

[...a few moments pass...]

Yep, you're right: if I do this single, simple regex substitution with
Python 2.0, it hangs.  I've submitted a bug to SourceForge -- thanks!

        Greg