[Haskell-cafe] Cabal: other-modules necessary?

石井大海 konn.jinro at gmail.com
Fri Sep 16 09:42:36 UTC 2022


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 <post at volker-wysk.de>:

> Am Freitag, dem 16.09.2022 um 10:23 +0100 schrieb Tom Ellis:
> > 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
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20220916/fd24a911/attachment.html>


More information about the Haskell-Cafe mailing list