RE: Using packages in ghci

2004-10-05 Thread Simon Marlow
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

2004-10-02 Thread Adrian Hey
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

2004-10-01 Thread Adrian Hey
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