On Tue, Apr 19, 2005 at 11:12:55AM +0100, Ross Paterson wrote:
> Ian Lynagh <[EMAIL PROTECTED]> writes:
> > We're not sure the new hugs should go into sarge without matching new
> > ghc/nhc98 due to library changes. We also need to check these changes
> > don't cause any breakage elsewhere.
> 
> What incompatibilities with GHC 6.2 and nhc98 1.16 have you discovered
> that weren't present in 200311?  I know of:
> 
> Library changes (also present in GHC 6.4 and nhc98 1.18):
> * instance Integral CTime removed (#299568):
>       avoid fromIntegral on this type.
> * Show andFunctor instances added for FiniteMap:
>       can be worked around using cpp.
> * System.IO no longer re-exports System.IO.Error:
>       need to tweak imports a little.
> 
> Hugs only:
> * locale-based encoding of character I/O (#299570):
>       use binary I/O for binary data.
> * locale-based encoding of filenames and environment variables in H98 libs:
>       a loss when these are binary or in an unknown encoding,
>       but a gain for users who use their locale's encoding
>       (and H98 specifies these as String, not [Word8]).

Given you suggest workarounds I'm going to assume this really means "why
isn't the new hugs in sarge?" and answer accordingly, but FWIW I don't
remember anything not on your lists above.

First a bit of context: When I opened this bug we'd just had the
announcement from the release team that the infrastructure holding up
the release process "will be fully operational in the space of two
weeks", along with a request to avoid uploads of new upstream versions
of software; this is even more important in things like libraries and
compilers as regressions can affect other packages too.

We also had concensus that it was better to ship consistent libraries
with each of the implementations, so sarge would at least be consistent
with itself even if not the state of the art (and given the state of the
art is likely to have additional differences over sarge's lifespan,
keeping it compatible is an impossible task).

We could have tried to get all the new versions in, together with hmake,
darcs and probably more packages that either needed patches backported
or new versions uploaded to make them coexist with the changes in the
implementations. However, at the time, it seemed better not to rush
everything in at the last minute, but rather to stick with the
well-tested packages we already had. Having a chronic bug slip through
and sarge stuck with it for its whole lifetime would be really annoying!

Unfortuantely, more than a month on I believe we're still waiting on the
infrastructure. I can appreciate that you are frustrated to not have the
latest hugs in the upcoming Debian release, but rest assured that I am
equally annoyed by the many missed deadlines and seeming inability of
Debian to make progress on the release that means that this is still an
open issue.


The locale based filename thing in hugs is also a concern, though, in my
opinion. Currently two packages build-depend on hugs: haskell-utils and
cpphs. I think haskell-utils currently only uses filenames containing
a-zA-Z0-9./_ so we could wrap that in a script that sets the locale to C
(or maybe do that at the start of main?). cpphs currently accepts 8-bit
chars in filenames being #included, as does cpp; maybe you will argue
that making use of that is foolish, but nevertheless I think I would
rather drop the ability to "compile" with hugs in order to keep its
behaviour consistent.

We'll also have to go over any packages that stay using hugs to make
sure they are opening files in binary mode when appropriate etc. (In
principle this should be done regardless, but within the systems Debian
currently supports it's not been an issue thus far).

Finally, it also means that if everything /did/ go into sarge then the
implementations would be less consistent with each other. In terms of
non-binary-IO this is probably a good thing, as we shouldn't be
encouraging people to use readFile etc as if they did binary IO. But for
filenames we just have 2 incompatible designs. I think I've said this
before, but while I applaud the efforts to put unicode support into
Haskell implementations I would have prefered a suitable replacement of
the IO libraries to have been designed first so that the problems with
unrepresentable filenames would never have come up.


Thanks
Ian

[1] http://lists.debian.org/debian-devel-announce/2005/03/msg00012.html



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to