|
user package blocks standard ones: msg#00036lang.haskell.glasgow.bugs
Please, what is the matter with the packages in ghc-6.0.1 ? (ghc-6.0.1 installed from RPM on Red Hat Linux release 7.3 (Valhalla), i-386 unknown ) It does not find the library items, say List.sort, when it `makes' under the user package in the user project importing standard library. This package is called docon, and it is for a contrived project of a single small module. Similarly, ghci -package-conf docon.conf reports Loading package docon ... linking ... /home/mechvel/test/export/HSdocon.o: unknown symbol `__stginit_List_' ghc-6.0.1: panic! (the `impossible' happened, GHC version 6.0.1): can't load package `docon' Please report it as a compiler bug to glasgow-haskell-bugs@xxxxxxxxxxx, or http://sourceforge.net/projects/ghc/. Either it loads the packages of GHC itself, or, if it deals with the user package, the packages of GHC are somehow blocked out. When the user project does not import List and the such, then ghc --make -package-conf docon.conf works but ghci -package-conf docon.conf still does not (probably, it still needs to load some ghc packages). The user package is Package {name = "docon", import_dirs = [$e], source_dirs = [], library_dirs = [$e], hs_libraries = ["HSdocon"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = [], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [] } , $e is the the path to user package .hi, .o, and library directory. I struggled with it for two days. Then, occasionally, tried to set package_deps = ["data"] , even though my contrived user package does not use "data". And it started to work, to load everything needed! Then I try package_deps = ["base"] And here ghci -package-conf docon.conf reports again the `panic'. Here follows the precise data. The file Head.hs in the `root' directory $(s) contains module Head where import List (sort) f = sort [1,2] :: [Int] The file Makefile in the same directory is for creating the package and `making' the project. So that the command make docon does the following in succession. * creates a directory $(e) = $(s)/export * makes a project by $(ghc) $(HCFlags) --make Head -package-name docon * creates the libraries $(e)/libHSdocon.a $(e)/HSdocon.o with ar and ld * creates a package docon referring to these libraries: echo $(pack) | ghc-pkg -f $(s)/docon.conf -u , where $(pack) is a string for the package which Makefile sets earlier. The command make clear is for un-doing of all this. Here is the precise Makefile: ---------------------------------------------------------------- ghc = /usr/bin/ghc # edit these two *** s = /home/mechvel/test e = $(s)/export RANLIB = ar -s HCFlags = -odir $(e) -hidir $(e) pack = Package {name = "\"docon\"", \ import_dirs = ["\"$(e)\""], \ source_dirs = [], \ library_dirs = ["\"$(e)\""], \ hs_libraries = ["\"HSdocon\""], \ extra_libraries = [], \ include_dirs = [], \ c_includes = [], \ package_deps = [], \ extra_ghc_opts = [], \ extra_cc_opts = [], \ extra_ld_opts = [] } obj: if [ ! -d $(e) ]; then mkdir $(e); fi $(ghc) $(HCFlags) --make Head -package-name docon docon: obj rm -f $(e)/libHSdocon.a $(e)/HSdocon.o ar -qc $(e)/libHSdocon.a $(wildcard $(e)/*.o) $(RANLIB) $(e)/libHSdocon.a ld -r -x --whole-archive $(e)/libHSdocon.a -o $(e)/HSdocon.o ghc-pkg -f $(s)/docon.conf -l echo $(pack) | ghc-pkg -f $(s)/docon.conf -u ghc-pkg -f $(s)/docon.conf -l clear: ghc-pkg -f $(s)/docon.conf -r docon rm -f $(s)/docon.conf.old rm -rf $(e) rm -f $(s)/log ---------------------------------------------------------------- To exclude the List library, comment out the line `import ..' and replace the line `f = ...' with `f = True'. Question on ghc-pkg -g ======================= User guide for packages does not explain this precisely. I suspect that ghc-pkg -g may help to replace the messy line ld -r -x --whole-archive $(e)/libHSdocon.a -o $(e)/HSdocon.o in the above Makefile, but cannot guess how to use here this ghc-pkg -g. Is it clear from the guide paragraph 4.10.4 ... `--auto-ghci-libs, -g' ? Answer, please, to mechvel@xxxxxxxx With kind regards, ----------------- Serge Mechveliani mechvel@xxxxxxxx
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: ghc 6.0.1 win98 System.system too successful?, Claus Reinke |
|---|---|
| Next by Date: | "<interactive>: internal error: scavenge:", Serge D. Mechveliani |
| Previous by Thread: | ghc 6.0.1 win98 System.system too successful?, Claus Reinke |
| Next by Thread: | Re: user package blocks standard ones, Sven Panne |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |