On Dec 5, 2005, at 10:31 PM, Isaac Jones wrote:
"Robert" <[EMAIL PROTECTED]> writes:
On Dec 1, 2005, at 10:18 AM, Duncan Coutts wrote:
On Wed, 2005-11-30 at 22:48 -0500, Robert Dockins wrote:
I've just run across a problem with my cabal build system -- I'm
not yet sure
if this is a cabal problem or a system configuration problem.
Is this a public darcs repository so I can try this out on my own?
I'ts semi-public. Its avaliable, but I don't consider it ready for
alpha release so its not been announced. You can find it at
http://www.eecs.tufts.edu/~rdocki0/cmm
So I guess its announced now :)
(snip)
$ runhaskell Setup.hs build -v
Preprocessing library Cmm-0.1...
/usr/bin/alex -g -o src/Language/Cmm/Parser/CmmLex.hs
src/Language/Cmm/Parser/CmmLex.x
/usr/bin/happy -agc -o src/Language/Cmm/Parser/CmmParser.hs
src/Language/Cmm/Parser/CmmParser.y
Preprocessing executables for Cmm-0.1...
Building Cmm-0.1...
/usr/bin/ghc -package-name Cmm -odir dist/build -hidir dist/build
-hide-all-packages --make -i -isrc Language.Cmm.Frontend
It looks like you're not listing CPP as an extension, and therefore
Cabal is not doing anything whatsoever wrt cpp. It's not adding the
-cpp argument to ghc, and it's not preprocessing the sources
beforehand...
OK. The only files that request CPP are the Alex and Happy files, so
I didn't think to add it. However, it seems to be doing the
preprocessing, otherwise I'm not sure how it would generate an error
telling me it can't find a header file. I'll try that as a first
step and see what happens.
(snip)
Chasing modules from:
Language.Cmm.Frontend,Language.Cmm.Datatypes,Language.Cmm.Parser,Lang
uage.Cmm.Lint,Language.Cmm.Messages,Language.Cmm.Messages.EN,Language
.Cmm.Parser.CmmLex,Language.Cmm.Parser.CmmParser,Language.Cmm.Parser.
PPrSyntax,Language.Cmm.Parser.Syntax,Language.Cmm.Parser.Tokens,Langu
age.Cmm.Parser.ParseMonad,Language.Cmm.Parser.ParserUtils,Language.Cm
m.Parser.LexUtils,Language.Cmm.Lint.SymbolTable,Language.Cmm.Lint.Bui
ldTables,Language.Cmm.Lint.LintMonad,Language.Cmm.Lint.Typecheck,Lang
uage.Cmm.Lint.LintProc,Language.Cmm.Lint.LintConstants,Language.Cmm.L
int.LintTop
src/Language/Cmm/Parser/CmmLex.hs:19: ghcconfig.h: No such file or
directory
There's the error...
The offending file has the same opening, which looks like:
---------------------------------------------------------------------
----------------
{-# OPTIONS -fglasgow-exts -cpp #-}
So you are listing extensions in the source files rather than the
.cabal file, which should be OK (except that it's non-portable, of
course).
Actually, alex is adding that. Cabal adds the -g option to the Alex
call, so Alex emits GHC specific constructs.
So cabal really shouldn't have anything to do with it. So
it _should_ be all about how cabal is calling GHC... The question is,
if the cpp flag is getting to ghc, why isn't ghc itself looking for
the ghcconfig.h file?
Right; this is what doesn't make sense to me. I'd expect GHC to know
where to find its own supporting files.
Looks like the difference is here:
WORKING VERSION:
/opt/local/bin/ghc -package-name Cmm -odir dist/build/src -hidir
dist/build/src --make -isrc Language.Cmm.Frontend
Language.Cmm.Datatypes
(...)
BROKEN VERSION:
/usr/bin/ghc -package-name Cmm -odir dist/build -hidir dist/build
-hide-all-packages --make -i -isrc Language.Cmm.Frontend
(...)
But either way, it seems to work for me on my simple test cases, so I
can't reproduce it with cabal-head (1.1.4) or 1.1.3. Can you either
let me see your code or create a small test case that fails?
Another option is to try to construct a ghc command line which will
work on both machines. If you paste the working version onto the
command line on the broken machine, does it still not work?
If you can't reproduce from the repository I'll try to trim down a
test case.
Same versions of alex?
I believe so, but I'll check when I get home. A visual inspection
showed at least the beginning of the output files to be identical.
BTW, does cpphs do anything with ghcconfig.h? Should cabal be adding
that include path somewhere in the cases where it uses cpphs?
peace,
isaac
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell