Red Hat Bugzilla – Bug 434694
file-not-utf8 for an OCaml source file
Last modified: 2008-06-26 04:30:46 EDT
ocaml-odbc-devel.i386: W: file-not-utf8
The situation here is complicated. A standard OCaml source file
can usually be considered ISO-8859-1 encoded. More precisely:
Identifiers may contain ISO-8859-1 characters. In particular if
identifiers are converted to UTF-8 the program will no longer
$ echo -e 'let m\xe9 = 1' > test.ml
$ hexdump -C test.ml
00000000 6c 65 74 20 6d e9 20 3d 20 31 0a |let m. = 1.|
$ ocamlc test.ml
$ iconv -f iso-8859-1 -t utf-8 < test.ml > testu.ml
$ ocamlc testu.ml
File "testu.ml", line 1, characters 6-7:
Illegal character (\169)
Comments in the source can contain ISO-8859-1 characters (and
given that the primary developers are French, this not just a
Literal strings in OCaml programs are really byte arrays and
as such could contain just about anything.
Literal strings in, say, OCaml GTK2 programs might contain UTF-8
because GTK itself would be expecting UTF-8 for labels, messages, etc.
All of the above are (in my opinion) very bad practice -- one shouldn't
be using ISO-8859-1 for identifiers for example, and strings which
could contain foreign characters are better stored either as \escapes
or better still as external resources. And using ISO-8859-1 in
identifiers is just insane. Nevertheless, all of the above
So I think the best thing is to disable this warning for *.ml, *.mli,
*.mly and *.mll files, unless you can think of a better way of handling
I'm open to discussing changing Fedora OCaml policy to forbid this
sort of thing. Hopefully it's fairly rare outside comments.
Done upstream, will be in the next release:
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
rpmlint-0.83-1.fc9 has been submitted as an update for Fedora 9
rpmlint-0.83-1.fc8 has been submitted as an update for Fedora 8
rpmlint-0.83-1.fc8 has been pushed to the Fedora 8 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update rpmlint'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F8/FEDORA-2008-5185
rpmlint-0.83-1.fc9 has been pushed to the Fedora 9 stable repository. If problems still persist, please make note of it in this bug report.
rpmlint-0.83-1.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.