Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Shayne Fletcher
Glasgow Haskell Compiler
Commits
9942fd14
Commit
9942fd14
authored
Mar 07, 2005
by
simonmar
Browse files
[project @ 2005-03-07 13:18:19 by simonmar]
Fix validate bug
parent
04e294bd
Changes
1
Hide whitespace changes
Inline
Side-by-side
ghc/docs/users_guide/separate_compilation.xml
View file @
9942fd14
...
...
@@ -369,7 +369,7 @@ $ ghc -c parse/Foo.hs parse/Bar.hs gurgle/Bumble.hs -odir `arch`
</varlistentry>
</variablelist>
</sect2>
<sect2
id=
"keeping-intermediates"
>
<title>
Keeping Intermediate Files
</title>
<indexterm><primary>
intermediate files, saving
</primary>
...
...
@@ -682,28 +682,36 @@ When a hs-boot file <filename>A.hs-boot</filename>
an error is reported if the two are inconsistent.
</para></listitem>
<listitem><para>
Just as compiling
<filename>
A.hs
</filename>
produces an
interface file
<filename>
A.hi
</filename>
, and an object file
<filename>
A.o
</filename>
, so compiling
<filename>
A.hs-boot
</filename>
produces an interface file
<filename>
A.hi-boot
</filename>
, and an pseudo-object file
<filename>
A.o-boot
</filename>
:
<itemizedlist>
<listitem><para>
The pseudo-object file
<filename>
A.o-boot
</filename>
is empty (don't link it!), but it is
very useful when using a Makefile, to record when the
<filename>
A.hi-boot
</filename>
was
last brought up to date (see
<xref
linkend=
"using-make"
/>
).
</para>
</listitem>
<listitem><para>
The
<filename>
hi-boot
</filename>
generated by compiling a
<filename>
hs-boot
</filename>
file is in the same machine-generated binary format as any other
GHC-generated interface file (e.g.
<filename>
B.hi
</filename>
).
You can display its contents with
<command>
ghc --show-iface
</command>
. If you
specify a directory for interface files, the
<option>
-ohidir
</option>
flag, then that affects
<filename>
hi-boot
</filename>
files too.
</para></listitem>
b
</itemizedlist>
</para></listitem>
<listitem>
<para>
Just as compiling
<filename>
A.hs
</filename>
produces an
interface file
<filename>
A.hi
</filename>
, and an object file
<filename>
A.o
</filename>
, so compiling
<filename>
A.hs-boot
</filename>
produces an interface file
<filename>
A.hi-boot
</filename>
, and an pseudo-object file
<filename>
A.o-boot
</filename>
:
</para>
<itemizedlist>
<listitem>
<para>
The pseudo-object file
<filename>
A.o-boot
</filename>
is
empty (don't link it!), but it is very useful when using a
Makefile, to record when the
<filename>
A.hi-boot
</filename>
was
last brought up to date (see
<xref
linkend=
"using-make"
/>
).
</para>
</listitem>
<listitem>
<para>
The
<filename>
hi-boot
</filename>
generated by compiling a
<filename>
hs-boot
</filename>
file is in the same
machine-generated binary format as any other GHC-generated
interface file (e.g.
<filename>
B.hi
</filename>
). You can
display its contents with
<command>
ghc
--show-iface
</command>
. If you specify a directory for
interface files, the
<option>
-ohidir
</option>
flag, then that
affects
<filename>
hi-boot
</filename>
files
too.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem><para>
If hs-boot files are considered distinct from their parent source
files, and if a
<literal>
{-# SOURCE #-}
</literal>
import is considered to refer to the
...
...
@@ -850,6 +858,7 @@ Foo.o Foo.hc Foo.s : Baz.hi # Foo imports Baz
<xref
linkend=
"sec-makefile-dependencies"
/></para>
</sect2>
<sect2
id=
"sec-makefile-dependencies"
>
<title>
Dependency generation
</title>
<indexterm><primary>
dependencies in Makefiles
</primary></indexterm>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment