Building NDP with latest GHC

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Building NDP with latest GHC

Austin Seipp
Hi,

After my last issue with GHC's HEAD, I tried checking it out again and
getting the patches for the libraries and lo and behold, it worked. So
now I'm up to date with the latest libraries and the compiler, but it
appears that building NDP itself is proving to be troublesome.

(This is on GHC 6.9.20080720, btw)

I've pulled the latest ndp package from
http://darcs.haskell.org/packages/ndp into ./libraries.

Instructions that are listed in [1]:

> % cd libraries
> % darcs get http://darcs.haskell.org/packages/ndp/
> % make make.library.ndp
> % cd ndp/examples
> % make

This fails on step 3; the Makefile in the libraries subdirectory
doesn't recognize 'make.library.ndp' as a valid target.

Instructions in the actual README that comes with package ndp:

> cd ndp
> make boot
> make
> cd examples
> make

This fails on the 'make boot' step, because if you look at the
Makefile, it thinks the top of the GHC source tree is at '..', when
it's actually '../..' in relation to ./libraries/ndp:

> TOP=..
> include $(TOP)/mk/boilerplate.mk
> include ndp.mk
> ... rest of makefile ...

No big deal in this case, just a fix of changing TOP to '../..'
Having done that, however, now it fails because it it cannot correctly
parse bootstrapping.conf which is located in ./libraries:

> $ make boot
> ../../mk/target.mk:454: warning: overriding commands for target `libHSndp'
> ../../mk/package.mk:249: warning: ignoring old commands for target `libHSndp'
> ../../mk/target.mk:454: warning: overriding commands for target `ghc-prim.a'
> ../../mk/package.mk:249: warning: ignoring old commands for target `ghc-prim.a'
> /Users/austinseipp/src/ghc-head/ghc/stage1-inplace/bin/ghc -M
> -optdep-f -optdep.depend  -osuf o -package-conf
> /Users/austinseipp/src/ghc-head/libraries/bootstrapping.conf    -H32m
> -O -fasm -Rghc-timing -package-name ndp ghc-prim-0.1 -O -fgenerics
> -package base -XGenerics -fglasgow-exts -fbang-patterns -O2
> -funbox-strict-fields -fdicts-cheap -fno-method-sharing
> -fno-spec-constr-threshold -fmax-simplifier-iterations20 -threaded
> -XTypeFamilies -fcpr-off
>
> ... lots of files trying to get compiled here ...
>
> <no location info>:
>     Warning: -fgenerics is deprecated: Use the Generics language
>     instead
>
> <no location info>:
>     Warning: -fbang-patterns is deprecated: Use the BangPatterns
>     language instead
> ghc:
> /Users/austinseipp/src/ghc-head/libraries/bootstrapping.conf:1:62:
>     parse error on input `"'
> <<ghc: 41436660 bytes, 4 GCs, 118784/118784 avg/max bytes residency (1
> samples), 31M in use, 0.00 INIT (0.00 elapsed), 0.08 MUT (0.12
> elapsed), 0.01 GC (0.02 elapsed) :ghc>>
> make: *** [depend] Error 1

For the record, the thing it fails on is the *first* occurance of a
quotation mark, and that's here in bootstrapping.conf:

> [InstalledPackageInfo {package = PackageIdentifier {pkgName =
> "filepath", pkgVersion = ...

So it's failing when it sees the quote at the start of "filepath"

I have also attempted to follow the instructions at the top
./libraries/Makefile, which are:

> # To do a fresh build:
> #
> #   make clean
> #   make boot
> #   make
> #
> # To rebuild a particular library <package>:
> #
> #   make clean.library.<package>
> #   make make.library.<package>
> #
> # or the following is equivalent:
> #
> #   make remake.library.<package>
> #
> # To add a new library to the tree, do
> #
> #   darcs get http://darcs.haskell.org/packages/foo
> #   [ -e foo/configure.ac ] && ( cd foo && autoreconf )
> #   make make.library.foo

As said above, 'make.library.ndp' does not work, doing a full clean,
boot and then make again doesn't pick up NDP either, and in the last
case (adding a new library,) it doesn't matter because there is no
configure.ac at the top level of ./libraries/ndp

I think I might simply have a *lot* of outdated information. For the
record, this is what I want to try and compile:

> {-# OPTIONS_GHC -fglasgow-exts -fparr -fvectorise #-}
> module Main where
> import GHC.PArr
>
> dotp :: Num a => [:a:] -> [:a:] -> a
> dotp xs ys = sumP [:x * y | x <- xs, y <- ys :]
>
> main = print $ dotp [:1..5:] [:6..10:]

Naturally when trying, it fails because DPH isn't there:

> $ ~/ghc-head/bin/ghc --make dotp.hs
>
> <no location info>:
>     Warning: -fparr is deprecated: Use the PArr language instead
> [1 of 1] Compiling Main             ( dotp.hs, dotp.o )
> GHC error in desugarer lookup in main:Main:
>   Failed to load interface for `Data.Array.Parallel.Lifted.PArray':
>     no package matching dph-par was found
> ghc: panic! (the 'impossible' happened)
>   (GHC version 6.9.20080720 for i386-apple-darwin):
>   initDs user error (IOEnv failure)
>
> Please report this as a GHC bug:
> http://www.haskell.org/ghc/reportabug

(This leads me to believe I actually want
http://darcs.haskell.org/packages/dph, but it's not mentioned. Anywhere.)

If I'm just doing everything wrong, I'd really appreciate knowing and
I'd be *more* than happy to update the wiki pages so that more people
can try it and have it build successfuly, because as it stands I'm
coming to the conclusion that basically all the information in [1] is
just old and flat-out wrong, and I'm completely of ideas on how to go
about this.

Thanks,
Austin

[1] http://haskell.org/haskellwiki/Data_Parallel_Haskell/PackageNDP
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Building NDP with latest GHC

Manuel M T Chakravarty
Austin Seipp:
> After my last issue with GHC's HEAD, I tried checking it out again and
> getting the patches for the libraries and lo and behold, it worked. So
> now I'm up to date with the latest libraries and the compiler, but it
> appears that building NDP itself is proving to be troublesome.

The NDP libraries are in a state of complete upheaval.  Instead of the  
one package ndp, there will be a set of dph packages with different  
backends to choose from (initially, there will be two backends, one  
for sequential code and one for multicore parallel code).

> If I'm just doing everything wrong, I'd really appreciate knowing and
> I'd be *more* than happy to update the wiki pages so that more people
> can try it and have it build successfuly, because as it stands I'm
> coming to the conclusion that basically all the information in [1] is
> just old and flat-out wrong, and I'm completely of ideas on how to go
> about this.
[..]
> [1] http://haskell.org/haskellwiki/Data_Parallel_Haskell/PackageNDP

Due to the completely different new set up, there was no point in  
trying to track incremental changes on the wiki page.  Once, the  
individual pieces fit together again, we'll update the documentation.

Due to a sequence of problems with GHC's build system and its  
increasing Cabal'isation, the library re-arrangement has taken much  
longer than originally anticipated.  Sorry about that.

Manuel

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe