[Pkg-haskell-maintainers] Bug#571354: Package plugins and GHC 6.12
Don Stewart
dons at galois.com
Sat Mar 13 22:10:19 UTC 2010
hs-plugins is unmaintained. I'd recommend removing it from debian.
mascellani:
> Hi.
>
> I wrote this mail to you some time ago, but never got a reply. I don't
> want to bother you, but I'm resending it just in case the previous copy
> had got lost.
>
> I'm a member of the Debian Haskell Team. We recently migrated to GHC
> 6.12, but you're package seems not to be compilable with GHC 6.12 (the
> same happens also on hackage). Hackage failure log is here: [1].
>
> [1]
> http://hackage.haskell.org/packages/archive/plugins/1.4.1/logs/failure/ghc-6.12
>
> I've created a patch (attached) which should fix some of the problems.
> Anyway, now I'm facing two errors I'm not able to deal with:
>
> > [11 of 15] Compiling System.Plugins.Load ( src/System/Plugins/Load.hs, dist-ghc6/build/System/Plugins/Load.o )
> >
> > src/System/Plugins/Load.hs:98:4:
> > Couldn't match expected type `IO ModIface'
> > against inferred type `DynFlags.DynFlags -> b'
> > In a stmt of a 'do' expression: e <- newHscEnv undefined
> > In the expression:
> > do { e <- newHscEnv undefined;
> > initTcRnIf
> > 'r'
> > e
> > undefined
> > undefined
> > (readBinIface IgnoreHiWay QuietBinIFaceReading hi_path) }
> > In the definition of `readBinIface'':
> > readBinIface' hi_path
> > = do { e <- newHscEnv undefined;
> > initTcRnIf
> > 'r'
> > e
> > undefined
> > undefined
> > (readBinIface IgnoreHiWay QuietBinIFaceReading hi_path) }
> >
> > src/System/Plugins/Load.hs:441:13:
> > A lazy (~) pattern cannot contain unlifted types ~(Ptr addr)
> > In the pattern: ~(Ptr addr)
> > In a stmt of a 'do' expression:
> > (ptr@(~(Ptr addr))) <- withCString symbol c_lookupSymbol
> > In the expression:
> > do { let symbol = prefixUnderscore
> > ++ (maybe "" (\ p -> ...) pkg)
> > ++ encode m ++ "_" ++ (encode valsym) ++ "_closure";
> > (ptr@(~(Ptr addr))) <- withCString symbol c_lookupSymbol;
> > if (ptr == nullPtr) then
> > return Nothing
> > else
> > case addrToHValue# addr of { (# hval #) -> return (Just hval) } }
>
> Do you have any advices for me?
>
> I hope the attached patch can be helpful for you. :-)
>
> Thanks, Giovanni.
> --
> Giovanni Mascellani <mascellani at poisson.phc.unipi.it>
> Pisa, Italy
>
> Web: http://poisson.phc.unipi.it/~mascellani
> Jabber: g.mascellani at jabber.org / giovanni at elabor.homelinux.org
>
> diff -Nur -x '*.orig' -x '*~' hs-plugins-1.4.1//src/System/MkTemp.hs hs-plugins-1.4.1.new//src/System/MkTemp.hs
> --- hs-plugins-1.4.1//src/System/MkTemp.hs 2009-03-15 21:14:39.000000000 +0100
> +++ hs-plugins-1.4.1.new//src/System/MkTemp.hs 2010-02-21 02:11:20.000000000 +0100
> @@ -214,7 +214,7 @@
> if b then ioError err -- race
> else openFile f ReadWriteMode
> where
> - err = IOError Nothing AlreadyExists "open0600" "already exists" Nothing
> + err = IOError Nothing AlreadyExists "open0600" "already exists" Nothing (Just f)
>
> {-
> -- open(path, O_CREAT|O_EXCL|O_RDWR, 0600)
> diff -Nur -x '*.orig' -x '*~' hs-plugins-1.4.1//src/System/Plugins/Env.hs hs-plugins-1.4.1.new//src/System/Plugins/Env.hs
> --- hs-plugins-1.4.1//src/System/Plugins/Env.hs 2009-03-15 21:14:39.000000000 +0100
> +++ hs-plugins-1.4.1.new//src/System/Plugins/Env.hs 2010-02-21 02:11:08.000000000 +0100
> @@ -287,9 +287,9 @@
> union :: PkgEnvs -> [PackageConfig] -> PkgEnvs
> union ls ps' =
> let fm = emptyFM -- new FM for this package.conf
> - in foldr (\p fm' -> if (display $ package p) == "base" -- ghc doesn't supply a version with 'base'
> + in foldr (\p fm' -> if (display $ sourcePackageId p) == "base" -- ghc doesn't supply a version with 'base'
> -- for some reason.
> - then addToFM (addToFM fm' (display $ package p) p) (packageName p) p
> + then addToFM (addToFM fm' (display $ sourcePackageId p) p) (packageName p) p
> else addToFM fm' (packageName p) p) fm ps' : ls
>
> --
> @@ -312,7 +312,7 @@
> readPackageConf :: FilePath -> IO [PackageConfig]
> readPackageConf f = do
> pc <- configureAllKnownPrograms silent defaultProgramConfiguration
> - pkgIndex <- getInstalledPackages silent (SpecificPackageDB f) pc
> + pkgIndex <- getInstalledPackages silent [(SpecificPackageDB f)] pc
> return $ allPackages pkgIndex
>
> -- -----------------------------------------------------------
> diff -Nur -x '*.orig' -x '*~' hs-plugins-1.4.1//src/System/Plugins/PackageAPI.hs hs-plugins-1.4.1.new//src/System/Plugins/PackageAPI.hs
> --- hs-plugins-1.4.1//src/System/Plugins/PackageAPI.hs 2009-03-15 21:14:39.000000000 +0100
> +++ hs-plugins-1.4.1.new//src/System/Plugins/PackageAPI.hs 2010-02-21 02:12:20.000000000 +0100
> @@ -58,8 +58,8 @@
>
> type PackageConfig = InstalledPackageInfo
>
> -packageName = display . package
> -packageName_ = pkgName . package
> +packageName = display . sourcePackageId
> +packageName_ = pkgName . sourcePackageId
> packageDeps = (map display) . depends
>
> updImportDirs f pk@(InstalledPackageInfo { importDirs = idirs }) =
>
More information about the Pkg-haskell-maintainers
mailing list