|
Hi all,
I'm looking for a build system for my projects which will correctly handle all of ghc's dependencies. I.e. every time I ask it to rebuild an output file, it will only do the minimum amount of compilation necessary. This is important to me because "ghc --make" and cabal currently (AFAICT) will always relink an executable even when it is not necessary to do so; thus if I have a project with a bunch of libraries and executables, the cost of making a small modification and recompiling is very high, and it becomes hard to maintain focus on my projects after the initial design phase. I've just been playing around with GNU coreutils and was impressed with how well the build system works, and how fast the recompilation goes. Anyway, the system that darcs uses seems to work pretty well, should I copy that, or do people recommend other alternatives? Frederik _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
Frederik Eaton <[hidden email]> writes:
> I'm looking for a build system for my projects which will correctly > handle all of ghc's dependencies. I.e. every time I ask it to rebuild > an output file, it will only do the minimum amount of compilation > necessary. 'hmake' is pretty good at what you want. http://haskell.org/hmake Regards, Malcolm _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
In reply to this post by Frederik Eaton-3
Simon fixed this recently. The GHC HEAD build will not re-link with
--make if none of the object files have changed. Simon | -----Original Message----- | From: [hidden email] [mailto:glasgow-haskell-users- | [hidden email]] On Behalf Of Frederik Eaton | Sent: 04 December 2005 00:46 | To: [hidden email] | Subject: recommended build system | | Hi all, | | I'm looking for a build system for my projects which will correctly | handle all of ghc's dependencies. I.e. every time I ask it to rebuild | an output file, it will only do the minimum amount of compilation | necessary. This is important to me because "ghc --make" and cabal | currently (AFAICT) will always relink an executable even when it is | not necessary to do so; thus if I have a project with a bunch of | libraries and executables, the cost of making a small modification and | recompiling is very high, and it becomes hard to maintain focus on my | projects after the initial design phase. I've just been playing around | with GNU coreutils and was impressed with how well the build system | works, and how fast the recompilation goes. | | Anyway, the system that darcs uses seems to work pretty well, should I | copy that, or do people recommend other alternatives? | | Frederik | _______________________________________________ | Glasgow-haskell-users mailing list | [hidden email] | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
Go figure...
I suppose that fixes Cabal too, now. Thanks, Frederik On Mon, Dec 05, 2005 at 10:51:19AM -0000, Simon Peyton-Jones wrote: > Simon fixed this recently. The GHC HEAD build will not re-link with > --make if none of the object files have changed. > > Simon _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
In reply to this post by Simon Peyton-Jones
Does this depend on a certain version of gcc?
$ ghc -M --make Matrix.hs -o matrix Chasing modules from: Matrix.hs [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) ghc-6.5.20051207: could not execute: gcc-3.4.3 I'm wondering why it is trying to execute something which isn't in my path... Frederik On Mon, Dec 05, 2005 at 10:51:19AM -0000, Simon Peyton-Jones wrote: > Simon fixed this recently. The GHC HEAD build will not re-link with > --make if none of the object files have changed. > > Simon > > | -----Original Message----- > | From: [hidden email] > [mailto:glasgow-haskell-users- > | [hidden email]] On Behalf Of Frederik Eaton > | Sent: 04 December 2005 00:46 > | To: [hidden email] > | Subject: recommended build system > | > | Hi all, > | > | I'm looking for a build system for my projects which will correctly > | handle all of ghc's dependencies. I.e. every time I ask it to rebuild > | an output file, it will only do the minimum amount of compilation > | necessary. This is important to me because "ghc --make" and cabal > | currently (AFAICT) will always relink an executable even when it is > | not necessary to do so; thus if I have a project with a bunch of > | libraries and executables, the cost of making a small modification and > | recompiling is very high, and it becomes hard to maintain focus on my > | projects after the initial design phase. I've just been playing around > | with GNU coreutils and was impressed with how well the build system > | works, and how fast the recompilation goes. > | > | Anyway, the system that darcs uses seems to work pretty well, should I > | copy that, or do people recommend other alternatives? > | > | Frederik > | _______________________________________________ > | Glasgow-haskell-users mailing list > | [hidden email] > | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > _______________________________________________ > Glasgow-haskell-users mailing list > [hidden email] > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
In reply to this post by Frederik Eaton-3
The nightly binary snapshots for x86/Linux are currently hard-wired to
use gcc-3.4.3, because I occasionally change gcc versions to make sure things are still working. I'll change it back to gcc. To workaround it you can add '-pgmc gcc' to the command line. Cheers, Simon On 09 December 2005 03:26, Frederik Eaton wrote: > Does this depend on a certain version of gcc? > > $ ghc -M --make Matrix.hs -o matrix > Chasing modules from: Matrix.hs > [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > ghc-6.5.20051207: could not execute: gcc-3.4.3 > > I'm wondering why it is trying to execute something which isn't in my > path... > > Frederik > > On Mon, Dec 05, 2005 at 10:51:19AM -0000, Simon Peyton-Jones wrote: >> Simon fixed this recently. The GHC HEAD build will not re-link with >> --make if none of the object files have changed. >> >> Simon >> >>> -----Original Message----- >>> From: [hidden email] >>> [mailto:glasgow-haskell-users- [hidden email]] On Behalf Of >>> Frederik Eaton >>> Sent: 04 December 2005 00:46 >>> To: [hidden email] >>> Subject: recommended build system >>> >>> Hi all, >>> >>> I'm looking for a build system for my projects which will correctly >>> handle all of ghc's dependencies. I.e. every time I ask it to >>> rebuild an output file, it will only do the minimum amount of >>> compilation necessary. This is important to me because "ghc --make" >>> and cabal currently (AFAICT) will always relink an executable even >>> when it is not necessary to do so; thus if I have a project with a >>> bunch of libraries and executables, the cost of making a small >>> modification and recompiling is very high, and it becomes hard to >>> maintain focus on my projects after the initial design phase. I've >>> just been playing around with GNU coreutils and was impressed with >>> how well the build system works, and how fast the recompilation >>> goes. >>> >>> Anyway, the system that darcs uses seems to work pretty well, >>> should I copy that, or do people recommend other alternatives? >>> >>> Frederik >>> _______________________________________________ >>> Glasgow-haskell-users mailing list >>> [hidden email] >>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users >> _______________________________________________ >> Glasgow-haskell-users mailing list >> [hidden email] >> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users >> > _______________________________________________ > Glasgow-haskell-users mailing list > [hidden email] > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
Would I be the only user of the nightly binary snapshots?
Frederik On Fri, Dec 09, 2005 at 09:23:16AM -0000, Simon Marlow wrote: > The nightly binary snapshots for x86/Linux are currently hard-wired to > use gcc-3.4.3, because I occasionally change gcc versions to make sure > things are still working. I'll change it back to gcc. To workaround it > you can add '-pgmc gcc' to the command line. > > Cheers, > Simon > > On 09 December 2005 03:26, Frederik Eaton wrote: > > > Does this depend on a certain version of gcc? > > > > $ ghc -M --make Matrix.hs -o matrix > > Chasing modules from: Matrix.hs > > [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > > ghc-6.5.20051207: could not execute: gcc-3.4.3 > > > > I'm wondering why it is trying to execute something which isn't in my > > path... > > > > Frederik > > > > On Mon, Dec 05, 2005 at 10:51:19AM -0000, Simon Peyton-Jones wrote: > >> Simon fixed this recently. The GHC HEAD build will not re-link with > >> --make if none of the object files have changed. > >> > >> Simon > >> > >>> -----Original Message----- > >>> From: [hidden email] > >>> [mailto:glasgow-haskell-users- [hidden email]] On Behalf Of > >>> Frederik Eaton > >>> Sent: 04 December 2005 00:46 > >>> To: [hidden email] > >>> Subject: recommended build system > >>> > >>> Hi all, > >>> > >>> I'm looking for a build system for my projects which will correctly > >>> handle all of ghc's dependencies. I.e. every time I ask it to > >>> rebuild an output file, it will only do the minimum amount of > >>> compilation necessary. This is important to me because "ghc --make" > >>> and cabal currently (AFAICT) will always relink an executable even > >>> when it is not necessary to do so; thus if I have a project with a > >>> bunch of libraries and executables, the cost of making a small > >>> modification and recompiling is very high, and it becomes hard to > >>> maintain focus on my projects after the initial design phase. I've > >>> just been playing around with GNU coreutils and was impressed with > >>> how well the build system works, and how fast the recompilation > >>> goes. > >>> > >>> Anyway, the system that darcs uses seems to work pretty well, > >>> should I copy that, or do people recommend other alternatives? > >>> > >>> Frederik > >>> _______________________________________________ > >>> Glasgow-haskell-users mailing list > >>> [hidden email] > >>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > >> _______________________________________________ > >> Glasgow-haskell-users mailing list > >> [hidden email] > >> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > >> > > _______________________________________________ > > Glasgow-haskell-users mailing list > > [hidden email] > > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
In reply to this post by Frederik Eaton-3
This doesn't affect the source snapshots, only the Linux/x86 binaries.
I think there are more people using the sources and the Linux/x86_64 binaries. Cheers, Simon On 09 December 2005 10:26, Frederik Eaton wrote: > Would I be the only user of the nightly binary snapshots? > > Frederik > > On Fri, Dec 09, 2005 at 09:23:16AM -0000, Simon Marlow wrote: >> The nightly binary snapshots for x86/Linux are currently hard-wired >> to use gcc-3.4.3, because I occasionally change gcc versions to make >> sure things are still working. I'll change it back to gcc. To >> workaround it you can add '-pgmc gcc' to the command line. >> >> Cheers, >> Simon >> >> On 09 December 2005 03:26, Frederik Eaton wrote: >> >>> Does this depend on a certain version of gcc? >>> >>> $ ghc -M --make Matrix.hs -o matrix >>> Chasing modules from: Matrix.hs >>> [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) >>> ghc-6.5.20051207: could not execute: gcc-3.4.3 >>> >>> I'm wondering why it is trying to execute something which isn't in >>> my path... >>> >>> Frederik >>> >>> On Mon, Dec 05, 2005 at 10:51:19AM -0000, Simon Peyton-Jones wrote: >>>> Simon fixed this recently. The GHC HEAD build will not re-link >>>> with --make if none of the object files have changed. >>>> >>>> Simon >>>> >>>>> -----Original Message----- >>>>> From: [hidden email] >>>>> [mailto:glasgow-haskell-users- [hidden email]] On Behalf Of >>>>> Frederik Eaton Sent: 04 December 2005 00:46 >>>>> To: [hidden email] >>>>> Subject: recommended build system >>>>> >>>>> Hi all, >>>>> >>>>> I'm looking for a build system for my projects which will >>>>> correctly handle all of ghc's dependencies. I.e. every time I ask >>>>> it to rebuild an output file, it will only do the minimum amount >>>>> of compilation necessary. This is important to me because "ghc >>>>> --make" and cabal currently (AFAICT) will always relink an >>>>> executable even when it is not necessary to do so; thus if I have >>>>> a project with a bunch of libraries and executables, the cost of >>>>> making a small modification and recompiling is very high, and it >>>>> becomes hard to maintain focus on my projects after the initial >>>>> design phase. I've just been playing around with GNU coreutils >>>>> and was impressed with how well the build system works, and how >>>>> fast the recompilation goes. >>>>> >>>>> Anyway, the system that darcs uses seems to work pretty well, >>>>> should I copy that, or do people recommend other alternatives? >>>>> >>>>> Frederik >>>>> _______________________________________________ >>>>> Glasgow-haskell-users mailing list >>>>> [hidden email] >>>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users >>>> _______________________________________________ >>>> Glasgow-haskell-users mailing list >>>> [hidden email] >>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users >>>> >>> _______________________________________________ >>> Glasgow-haskell-users mailing list >>> [hidden email] >>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
In reply to this post by Simon Marlow
$ ghc -pgmc gcc --make Matrix.hs -o matrix
Chasing modules from: Matrix.hs [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) ghc-6.5.20051208: could not execute: gcc-3.4.3 Hard-coding things is ... not ... nice ... Frederik On Fri, Dec 09, 2005 at 09:23:16AM -0000, Simon Marlow wrote: > The nightly binary snapshots for x86/Linux are currently hard-wired to > use gcc-3.4.3, because I occasionally change gcc versions to make sure > things are still working. I'll change it back to gcc. To workaround it > you can add '-pgmc gcc' to the command line. > > Cheers, > Simon > > On 09 December 2005 03:26, Frederik Eaton wrote: > > > Does this depend on a certain version of gcc? > > > > $ ghc -M --make Matrix.hs -o matrix > > Chasing modules from: Matrix.hs > > [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > > ghc-6.5.20051207: could not execute: gcc-3.4.3 > > > > I'm wondering why it is trying to execute something which isn't in my > > path... > > > > Frederik > > > > On Mon, Dec 05, 2005 at 10:51:19AM -0000, Simon Peyton-Jones wrote: > >> Simon fixed this recently. The GHC HEAD build will not re-link with > >> --make if none of the object files have changed. > >> > >> Simon > >> > >>> -----Original Message----- > >>> From: [hidden email] > >>> [mailto:glasgow-haskell-users- [hidden email]] On Behalf Of > >>> Frederik Eaton > >>> Sent: 04 December 2005 00:46 > >>> To: [hidden email] > >>> Subject: recommended build system > >>> > >>> Hi all, > >>> > >>> I'm looking for a build system for my projects which will correctly > >>> handle all of ghc's dependencies. I.e. every time I ask it to > >>> rebuild an output file, it will only do the minimum amount of > >>> compilation necessary. This is important to me because "ghc --make" > >>> and cabal currently (AFAICT) will always relink an executable even > >>> when it is not necessary to do so; thus if I have a project with a > >>> bunch of libraries and executables, the cost of making a small > >>> modification and recompiling is very high, and it becomes hard to > >>> maintain focus on my projects after the initial design phase. I've > >>> just been playing around with GNU coreutils and was impressed with > >>> how well the build system works, and how fast the recompilation > >>> goes. > >>> > >>> Anyway, the system that darcs uses seems to work pretty well, > >>> should I copy that, or do people recommend other alternatives? > >>> > >>> Frederik > >>> _______________________________________________ > >>> Glasgow-haskell-users mailing list > >>> [hidden email] > >>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > >> _______________________________________________ > >> Glasgow-haskell-users mailing list > >> [hidden email] > >> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > >> > > _______________________________________________ > > Glasgow-haskell-users mailing list > > [hidden email] > > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
In reply to this post by Frederik Eaton-3
On 10 December 2005 05:08, Frederik Eaton wrote:
> $ ghc -pgmc gcc --make Matrix.hs -o matrix > Chasing modules from: Matrix.hs > [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > ghc-6.5.20051208: could not execute: gcc-3.4.3 > > Hard-coding things is ... not ... nice ... You also need -pgml gcc, and probably -pgmP "gcc -E -undef -traditional". Cheers, Simon _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
$ ghc -pgml gcc -pgmP "gcc -E -undef -traditional" -pgmc gcc --make Matrix.hs -o matrix
Chasing modules from: Matrix.hs [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) ghc-6.5.20051208: could not execute: gcc-3.4.3 Maybe a more informative error message would be a useful feature as well. Frederik On Mon, Dec 12, 2005 at 02:28:34PM -0000, Simon Marlow wrote: > On 10 December 2005 05:08, Frederik Eaton wrote: > > > $ ghc -pgmc gcc --make Matrix.hs -o matrix > > Chasing modules from: Matrix.hs > > [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > > ghc-6.5.20051208: could not execute: gcc-3.4.3 > > > > Hard-coding things is ... not ... nice ... > > You also need -pgml gcc, and probably -pgmP "gcc -E -undef > -traditional". > > Cheers, > Simon > Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
In reply to this post by Frederik Eaton-3
On 12 December 2005 18:49, Frederik Eaton wrote:
> $ ghc -pgml gcc -pgmP "gcc -E -undef -traditional" -pgmc gcc --make > Matrix.hs -o matrix Chasing modules from: Matrix.hs > [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > ghc-6.5.20051208: could not execute: gcc-3.4.3 > > Maybe a more informative error message would be a useful feature as > well. Sorry, also add -pgma gcc. (or wait for tonight's build, which won't have gcc-3.4.3 hardwired). If it still complains, send us the -v output. Cheers, Simon > Frederik > > On Mon, Dec 12, 2005 at 02:28:34PM -0000, Simon Marlow wrote: >> On 10 December 2005 05:08, Frederik Eaton wrote: >> >>> $ ghc -pgmc gcc --make Matrix.hs -o matrix >>> Chasing modules from: Matrix.hs >>> [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) >>> ghc-6.5.20051208: could not execute: gcc-3.4.3 >>> >>> Hard-coding things is ... not ... nice ... >> >> You also need -pgml gcc, and probably -pgmP "gcc -E -undef >> -traditional". >> >> Cheers, >> Simon _______________________________________________ Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
|
That made it work, thanks.
Frederik On Mon, Dec 12, 2005 at 07:01:42PM -0000, Simon Marlow wrote: > On 12 December 2005 18:49, Frederik Eaton wrote: > > > $ ghc -pgml gcc -pgmP "gcc -E -undef -traditional" -pgmc gcc --make > > Matrix.hs -o matrix Chasing modules from: Matrix.hs > > [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > > ghc-6.5.20051208: could not execute: gcc-3.4.3 > > > > Maybe a more informative error message would be a useful feature as > > well. > > Sorry, also add -pgma gcc. (or wait for tonight's build, which won't > have gcc-3.4.3 hardwired). > > If it still complains, send us the -v output. > > Cheers, > Simon > > > Frederik > > > > On Mon, Dec 12, 2005 at 02:28:34PM -0000, Simon Marlow wrote: > >> On 10 December 2005 05:08, Frederik Eaton wrote: > >> > >>> $ ghc -pgmc gcc --make Matrix.hs -o matrix > >>> Chasing modules from: Matrix.hs > >>> [1 of 2] Compiling Fu.Prepose ( Fu/Prepose.hs, Fu/Prepose.o ) > >>> ghc-6.5.20051208: could not execute: gcc-3.4.3 > >>> > >>> Hard-coding things is ... not ... nice ... > >> > >> You also need -pgml gcc, and probably -pgmP "gcc -E -undef > >> -traditional". > >> > >> Cheers, > >> Simon > Glasgow-haskell-users mailing list [hidden email] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users |
| Powered by Nabble | Edit this page |
