From ed1703f0decbe5dc01a3c90c698dc72a946bc4fd Mon Sep 17 00:00:00 2001 From: sof Date: Mon, 28 Jun 2004 16:35:08 +0000 Subject: [PATCH] [project @ 2004-06-28 16:35:08 by sof] sec-makefile-dependencies: -o option is no longer supported. Merge to STABLE. --- ghc/docs/users_guide/separate_compilation.sgml | 41 ++++++++++++------------ 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/ghc/docs/users_guide/separate_compilation.sgml b/ghc/docs/users_guide/separate_compilation.sgml index ee49819..6595b88 100644 --- a/ghc/docs/users_guide/separate_compilation.sgml +++ b/ghc/docs/users_guide/separate_compilation.sgml @@ -1,10 +1,10 @@ Filenames and separate compilation - + separate compilation recompilation checker make and recompilation - + This section describes what files GHC expects to find, what files it creates, where these files are stored, and what options affect this behaviour. @@ -28,7 +28,7 @@ Haskell source files - + Each Haskell source module should be placed in a file on its own. @@ -48,7 +48,7 @@ .hi files object files .o files - + When asked to compile a source file, GHC normally generates two files: an object file, and an interface file. @@ -305,7 +305,7 @@ $ ghc -c parse/Foo.hs parse/Bar.hs gurgle/Bumble.hs -odir `arch` example. - + dir @@ -552,7 +552,7 @@ $ ghc -c parse/Foo.hs parse/Bar.hs gurgle/Bumble.hs -odir `arch` - + In the olden days, GHC compared the newly-generated .hi file with the previous version; if they were identical, it left the old one alone and didn't change its @@ -751,9 +751,9 @@ A.o : B.hi-boot ghc -M -optdep-f -optdep.depend ... - + The options which affect dependency generation are: - + @@ -761,7 +761,7 @@ ghc -M -optdep-f -optdep.depend ... Turn off warnings about interface file shadowing. - + file @@ -778,6 +778,7 @@ ghc -M -optdep-f -optdep.depend ... + @@ -965,17 +966,17 @@ module A where This is the most common form of data type declaration, because it's easy to get right. You can also write out the constructors but, if you do so, you must write - it out precisely as in its real definition. - It is especially delicate if you use a strictness annotation "!", + it out precisely as in its real definition. + It is especially delicate if you use a strictness annotation "!", with or without an {-# UNPACK #-} pragma. In a source file GHC may or may not choose to unbox the argument, but in an hi-boot file it's - assumed that you express the outcome of this decision. + assumed that you express the outcome of this decision. (So in the cases where GHC decided not to unpack, you must not use the pragma.) Tread with care. - Regardless of whether you write the constructors, you must write all the type parameters, - including their kinds - if they are not '*'. (You can give explicit kinds in source files too (), + Regardless of whether you write the constructors, you must write all the type parameters, + including their kinds + if they are not '*'. (You can give explicit kinds in source files too (), but you must do so in hi-boot files.) @@ -1024,18 +1025,18 @@ Here, neither D nor T is declared in module Orphan. We call such modules ``orphan modules'', defined thus: - An orphan module + An orphan module orphan module - contains at least one orphan instance or at + contains at least one orphan instance or at least one orphan rule. An instance declaration in a module M is an orphan instance if orphan instance none of the type constructors or classes mentioned in the instance head (the part after the ``=>'') are declared - in M. + in M. - Only the instance head counts. In the example above, it is not good enough for C's declaration + Only the instance head counts. In the example above, it is not good enough for C's declaration to be in module A; it must be the declaration of D or T. -- 1.7.10.4