diff: compiler/notes/compiler_design.html & pragma export
Fergus Henderson
fjh at cs.mu.oz.au
Thu Jan 8 17:12:42 AEDT 1998
compiler/notes/compiler_design.html:
Document where `pragma export' is handled.
Index: compiler_design.html
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/notes/compiler_design.html,v
retrieving revision 1.13
diff -u -u -r1.13 compiler_design.html
--- compiler_design.html 1998/01/02 00:11:10 1.13
+++ compiler_design.html 1998/01/06 06:13:31
@@ -444,7 +444,7 @@
<p>
<dl>
- <dt> pre-passes to annotate the HLDS
+<dt> pre-passes to annotate the HLDS
<dd>
Before code generation there are a few more passes which
@@ -542,13 +542,19 @@
and saves information about procedures.
</dl>
+<dt> code generation for `pragma export' declarations (export.m)
+<dd> This is handled seperately from the other parts of code generation.
+ mercury_compile.m calls the procedures `export__produce_header_file'
+ and `export__get_pragma_exported_procs' to produce C code fragments
+ which declare/define the C functions which are the interface stubs
+ for procedures exported to C.
</dl>
<p>
The result of code generation is the Low Level Data Structure (llds.m).
-The code is generated as a tree of code fragments which is then
-flattened (tree.m).
+The code for each procedure is generated as a tree of code fragments
+which is then flattened (tree.m).
<p>
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh> | of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3 | -- the last words of T. S. Garp.
More information about the developers
mailing list