Removal of #include <HsFFI.h> from template-hsc.h breaks largefile support on 32bit Linux

Eugene Crosser crosser at
Sat Feb 18 21:15:33 CET 2012

I don't know enough to understand if the "hard" troubles described by John
Meacham are real, but I think that even if they are not, the current situation
violates the "principle of least surprise" for the author of a module.

Such author may be unaware of the need to take special steps to make his module
use the same file API as the builtin language functions, and that will lead to
situations when the modules bundled with the compiler can deal with >4Gb files
but the new module cannot. It may be even worse for instance with respect to
reentrancy of the code: the author of the module may not realize that he needs
to take special steps or e.g. the handling of errno will be broken in
multithreaded environment.

In extreme case, even the opposite situation is possible: the module's autoconf
may detect some obscure incompatible feature of the system that the base build
did not know about (even if this is a pure theoretical danger).

I think it would be a right thing to provide the author of an external module
with "baseline" C environment by default, compatible with the environment under
which the modules bundled with the compiler where built. And on top of that,
allow them to use autoconf/whatever else to deviate from that if they need to.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the Glasgow-haskell-users mailing list