If I want to write part of the code for my program as a library, and so put those modules into a hierarchical module structure (with the non-library code in no module), do I have to structure the directories in a special way to get the module search to work? -- Colin Adams Preston Lancashire
On Fri, Feb 27, 2009 at 5:36 PM, Colin Paul Adams <colin@colina.demon.co.uk> wrote:
If I want to write part of the code for my program as a library, and so put those modules into a hierarchical module structure (with the non-library code in no module), do I have to structure the directories in a special way to get the module search to work?
Yes, module My.Pretty.Little.Module must be in file "My/Pretty/Little/Module.hs" in one of the root directories (which can be specified on the command line to ghc, or in the .cabal file if you use an unusual directory structure). Note that this only apply before compiling, the executable is independent. -- Jedaï
"Chaddaï" == Chaddaï Fouché <chaddai.fouche@gmail.com> writes:
Chaddaï> On Fri, Feb 27, 2009 at 5:36 PM, Colin Paul Adams Chaddaï> <colin@colina.demon.co.uk> wrote: >> If I want to write part of the code for my program as a >> library, and so put those modules into a hierarchical module >> structure (with the non-library code in no module), do I have >> to structure the directories in a special way to get the module >> search to work? Chaddaï> Yes, module My.Pretty.Little.Module must be in file Chaddaï> "My/Pretty/Little/Module.hs" in one of the root Chaddaï> directories (which can be specified on the command line Chaddaï> to ghc, or in the .cabal file if you use an unusual Chaddaï> directory structure). Note that this only apply before Chaddaï> compiling, the executable is independent. Thank you. Where do I find out what the root directories are? Is mt project directory one of them? -- Colin Adams Preston Lancashire
On Fri, 27 Feb 2009 18:26:51 +0100, Chaddaï Fouché <chaddai.fouche@gmail.com> wrote:
On Fri, Feb 27, 2009 at 5:36 PM, Colin Paul Adams <colin@colina.demon.co.uk> wrote:
If I want to write part of the code for my program as a library, and so put those modules into a hierarchical module structure (with the non-library code in no module), do I have to structure the directories in a special way to get the module search to work?
Yes, module My.Pretty.Little.Module must be in file "My/Pretty/Little/Module.hs" in one of the root directories (which can be specified on the command line to ghc, or in the .cabal file if you use an unusual directory structure). Note that this only apply before compiling, the executable is independent.
This last line sounds a bit fishy to me. I think what would happen here is that you would create a separate module, but when your application is linked, any code that is used from that module would be compiled and included into your binary. I suspect that what Colin may have been looking for are instructions on how to create a standalone library that his application can dynamically link to. I'm curious about this as well.
"David" == David Frey <dpfrey@shaw.ca> writes:
David> I suspect that what Colin may have been David> looking for are instructions on how to create a standalone David> library that his application can dynamically link to. I'm David> curious about this as well. No, I was only interested in how to structure the library on disk. -- Colin Adams Preston Lancashire
participants (3)
-
Chaddaï Fouché -
Colin Paul Adams -
David Frey