RE: Using packages in ghci
I think what's happening here is that you essentially have overlapping .hi files: the interface for Data.Tree.AVL.List is found along the search path, and also in a package (because the search path . and the import_dirs for the package point to the same place). This is apparently confusing GHC, but I don't know exactly how. We could fix the problem by checking whether a given module can be found in more than one place, but that would involve searching every package for every module, which might slow things down. When we store the list of visible modules with a package we'll be able to do this much more easily. Cheers, Simon On 02 October 2004 08:42, Adrian Hey wrote: On Friday 01 Oct 2004 9:36 pm, Simon Marlow wrote: Looks fine - GHCi is supposed to look in the directories in import_dirs for .hi files. What does ghci -v tell you? Quite a lot :-), but nothing very surprising. I think I've found what causes the problem. It does actually seem to work as expected, provided the current directory is not what it usually is when I'm working on the library. I.E. /home/adrian/HaskellLibs/Data.Tree.AVL This is what I get Prelude :m Data.Tree.AVL Prelude Data.Tree.AVL asTreeL ABCD interactive:1: tcLookup: `asTreeL' is not in scope In the definition of `it': it = asTreeL ABCD Failed to load interface for `Data.Tree.AVL.List': Bad interface file: ./Data/Tree/AVL/List.hi ./Data/Tree/AVL/List.hi: openBinaryFile: does not exist (No such file or directory) Failed to find interface decl for `asTreeL' from module `Data.Tree.AVL.List' But if I cd to.. I.E. /home/adrian/HaskellLibs/Data.Tree.AVL/pkg ..it works fine. I've since discovered it also seems to work fine from from any other directory too. So it seems to something peculiar about the one particular directory that upsets it. This is with version 6.2.20040915, but 6.2.1 did the same thing IIRC. Regards ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Re: Using packages in ghci
On Friday 01 Oct 2004 9:36 pm, Simon Marlow wrote: Looks fine - GHCi is supposed to look in the directories in import_dirs for .hi files. What does ghci -v tell you? Quite a lot :-), but nothing very surprising. I think I've found what causes the problem. It does actually seem to work as expected, provided the current directory is not what it usually is when I'm working on the library. I.E. /home/adrian/HaskellLibs/Data.Tree.AVL This is what I get Prelude :m Data.Tree.AVL Prelude Data.Tree.AVL asTreeL ABCD interactive:1: tcLookup: `asTreeL' is not in scope In the definition of `it': it = asTreeL ABCD Failed to load interface for `Data.Tree.AVL.List': Bad interface file: ./Data/Tree/AVL/List.hi ./Data/Tree/AVL/List.hi: openBinaryFile: does not exist (No such file or directory) Failed to find interface decl for `asTreeL' from module `Data.Tree.AVL.List' But if I cd to.. I.E. /home/adrian/HaskellLibs/Data.Tree.AVL/pkg ..it works fine. I've since discovered it also seems to work fine from from any other directory too. So it seems to something peculiar about the one particular directory that upsets it. This is with version 6.2.20040915, but 6.2.1 did the same thing IIRC. Regards -- Adrian Hey ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Using packages in ghci
Hello, Where does ghci look for .hi files from packages? (I doesn't seem to be the same place as ghc). AFAICT it expects to find them relative to the current directory, and I can only get it to work by cding to the appropriate directory *before* invoking ghci (doing this from within ghci seems to really mess things up). But I guess this isn't what's supposed to happen because this solution will only work with one package. My package entry looks like this.. Package {name = Data.Tree.AVL, auto = True, import_dirs = [/home/adrian/HaskellLibs/Data.Tree.AVL/pkg], source_dirs = [], library_dirs = [/home/adrian/HaskellLibs/Data.Tree.AVL/pkg], hs_libraries = [Data.Tree.AVL], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = [base, Data.COrdering], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Is there something missing here? Thanks -- Adrian Hey ___ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users