
FWIW, You could use hpack (package.yaml) to automatically fill
exposed-module:
https://github.com/sol/hpack
In short, hpack is a YAML-encoded cabal format with some syntax sugars and
automatic module list generation.
Downside is that if you're using cabal-install as the package manager, you
should convert hpack to cabal each time you edit package.yaml or add new
modules (you could set up editor save hook and/or git pre-commit hook to
reduce such burden, though).
If you're using stack, however, stack will automatically generate .cabal
from package.yaml whenever it's needed, as hpack is integrated into stack.
2022年9月16日(金) 18:34 Volker Wysk
On Fri, Sep 16, 2022 at 10:47:47AM +0200, Volker Wysk wrote:
The cabal user guide says (in section 6.2.12): "Every module in the
Am Freitag, dem 16.09.2022 um 10:23 +0100 schrieb Tom Ellis: package
must be listed in one of other-modules, library:exposed-modules or executable:main-is fields."
However, I only get a warning message, when I comment out the other-modules field in my .cabal file. The program compiles. This is the message:
<no location info>: warning: [-Wmissing-home-modules] These modules are needed for compilation but not listed in your .cabal file's other-modules: Hsskripte Sicherung SicherungAktionen Text Wahl Zeit
Is it really necessary to specify all the imported modules? If so, why does the program compile? Can that warning message be turned off?
In response to all the sibling replies at once, is there a good reason for this behaviour? Succeeding but then failing later with obscure errors (once the original warning message is nowhere to be seen) seems like the worst of all worlds. Suppose cabal errored here and failed to proceed. What would be the downside of that (besides backward incompatibility)?
I've already changed my mind. It's a little bothersome to manually add all the modules, which could be determined automatically. But it's better than having linker errors later.
Regards, Volker _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.