[Haskell-cafe] Help debugging code broken after upgrading debian
to GHC 6.12: "invalid argument"
Daniel Fischer
daniel.is.fischer at web.de
Sat May 15 09:25:34 EDT 2010
On Saturday 15 May 2010 15:18:28, Brandon Simmons wrote:
> >On May 14, 2010, at 20:24 , Brandon Simmons wrote:
> >> The other baffling thing is this: if the debugging line 426 is
> >> uncommented, then even running:
> >>
> >> $> runghc Befunge.hs --quiet mycology.b98
> >>
> >> ...will fail. But all we're doing is a call to `putStr`! Why would
> >> that trigger an error?! Maybe there was a bug in my code that was
> >
> > GHC 6.12's runtime handles input and output encoding, instead of
> > simply truncating Chars; my guess is it's locale-related. And sure
> > enough, I see several non-ASCII characters in mycology.b98 which are
> > likely to do the wrong thing if the runtime doesn't know which
> > character set to use.
>
> Thanks, that makes a lot of sense. Is there something I can read to
> enlighten myself as to how I would go about getting my program to be
> liberal about non-ascii characters in a file?
Non-ASCII characters aren't a problem per se. The problem is that by
default, GHC reads files as encoded by the system locale. If the file is
encoded in a different way - boom.
You can set the encoding of a handle, so that the file's contents are
interpreted e.g. as latin1 encoded (or cp1252 or utf-16, ...).
Or you can iconv your files to your system's locale (probably utf-8).
>
> Also, I noticed yesterday that
>
> $> cabal list --installed
>
> shows the 'old-locale' package:
>
> * old-locale
> Synopsis: locale library
> Latest version available: 1.0.0.2
> Latest version installed: 1.0.0.2
> License: BSD3
>
> I'm not sure if that could be part of the issue, or whether that is
> normal.
That's normal. old-locale comes with GHC.
>
> Thanks again,
> Brandon Simmons
> http://coder.bsimmons.name/
More information about the Haskell-Cafe
mailing list