[m-rev.] for review: add Back-ends section to web site

Fergus Henderson fjh at cs.mu.OZ.AU
Wed Mar 28 16:16:40 AEST 2001


It's probably easier to review the HTML rather than the diff.
I've put the HTML files for this in <http://www.cs.mu.oz.au/~fjh/tmp/merc1/>.

----------

Estimated hours taken: 5
Branches: main

Add descriptions of the different back-ends to the web site.

w3/include/menubar.inc:
	Add a new Back-ends menu.

w3/backends.php3:
w3/include/backends.inc:
w3/Makefile:
	Add a new page describing the different back-ends in the
	Mercury compiler.

w3/download/include/release-0.10.inc:
	Add an anchor for the high-level C back-end announcement,
	so we can link to it from backends.html.

w3/download/gcc-backend.php3:
w3/dotnet.php3:
	Set $menu="Back-ends", since these pages now occur on the Back-ends
	menu.

Workspace: /mnt/murlibobo/home/mercury0/fjh/mercury
Index: w3/Makefile
===================================================================
RCS file: /home/mercury1/repository/w3/Makefile,v
retrieving revision 1.13
diff -u -d -r1.13 Makefile
--- w3/Makefile	2000/10/22 22:22:05	1.13
+++ w3/Makefile	2001/03/24 03:30:52
@@ -8,6 +8,7 @@
 	mcorba.html		\
 	news.html 		\
 	information.html 	\
+	backends.html 		\
 	download.html 		\
 	contact.html 		\
 	dotnet.html 		\
Index: w3/backends.php3
===================================================================
RCS file: backends.php3
diff -N backends.php3
--- /dev/null	Fri Mar  2 14:16:41 2001
+++ backends.php3	Wed Mar 28 14:08:44 2001
@@ -0,0 +1,10 @@
+<HTML>
+<?
+    $menu="Back-ends";
+    $title="Back-ends";
+    $dir=".";
+    $root=".";
+    $include="backends.inc";
+    include "./include/template.inc"
+?>
+</HTML>
Index: w3/dotnet.php3
===================================================================
RCS file: /home/mercury1/repository/w3/dotnet.php3,v
retrieving revision 1.1
diff -u -d -r1.1 dotnet.php3
--- w3/dotnet.php3	2000/10/22 22:22:06	1.1
+++ w3/dotnet.php3	2001/03/28 05:27:46
@@ -1,6 +1,7 @@
 <HTML>
 <?
     $title=".NET";
+    $menu="Back-ends";
     $dir=".";
     $root=".";
     $include="dotnet.inc";
Index: w3/download/gcc-backend.php3
===================================================================
RCS file: /home/mercury1/repository/w3/download/gcc-backend.php3,v
retrieving revision 1.3
diff -u -d -r1.3 gcc-backend.php3
--- w3/download/gcc-backend.php3	2001/03/24 02:51:01	1.3
+++ w3/download/gcc-backend.php3	2001/03/28 05:30:37
@@ -1,6 +1,6 @@
 <HTML>
 <?
-    $menu="Download";
+    $menu="Back-ends";
     $title="Mercury front-end for GCC";
     $dir="download";
     $root="..";
Index: w3/download/include/release-0.10.inc
===================================================================
RCS file: /home/mercury1/repository/w3/download/include/release-0.10.inc,v
retrieving revision 1.2
diff -u -d -r1.2 release-0.10.inc
--- w3/download/include/release-0.10.inc	2001/03/11 08:43:11	1.2
+++ w3/download/include/release-0.10.inc	2001/03/28 05:35:30
@@ -228,7 +228,8 @@
 <h4>Changes to the Mercury implementation</h4>
 
 <ul>
-<li> We've implemented a new back-end for the Mercury compiler.<p>
+<li> We've implemented a
+  <a name="hlc">new back-end for the Mercury compiler.</a><p>
 
   The new back-end, which is enabled by using the `--high-level-code'
   (or `-H') option or the `hlc.gc' grade, generates much higher-level
Index: w3/include/backends.inc
===================================================================
RCS file: backends.inc
diff -N backends.inc
--- /dev/null	Fri Mar  2 14:16:41 2001
+++ backends.inc	Wed Mar 28 15:53:12 2001
@@ -0,0 +1,100 @@
+<h2> Back-ends </h2>
+
+The Mercury implementation compiles to a wide variety of target
+languages on a wide variety of platforms.
+
+<p>
+
+Several of these back-ends are quite mature, other have been
+released but are still immature, while others are under development.
+
+<p>
+
+<ul>
+<li><i>Mature:</i>
+<p>
+<dl>
+        <dt><a name=low_level_c><b>Low level C.</b></a></dt>
+	<dd>
+	Our original back-end.  This one compiles
+	Mercury source to low-level C code.  It works by converting
+	Mercury source into code for an abstract machine, and then
+	converting the abstract machine instructions into C code
+	with macros for the abstract machine registers and instructions.
+	We use C's conditional compilation (<code>#ifdef</code>)
+	to define these macros as either standard ANSI/ISO C code, or as
+	GNU C code that makes uses of GNU C extensions such as
+	global register variables, computed gotos, and inline assembler.
+	<p>
+	For more information on the low-level C back-end, see the
+	<a href="<?echo $root?>/information/papers.html">papers</a>
+	section of the web site, in particular the papers titled "The
+	execution algorithm of Mercury: an efficient purely declarative
+	logic programming language", "Code generation for Mercury",
+	and "Compiling logic programs to C using GNU C as a portable
+	assembler".
+	</dd>
+<p>
+        <dt><a name="high_level_c"><b>High level C.</b></a></dt>
+	<dd>
+	This back-end compiles Mercury code to fairly high-level C
+	code, more like the kind that a C programmer might write.
+	<p>
+	For details, see the
+        <a href="<?echo $root?>/download/release-0.10.html#hlc">
+	announcement of Mercury release 0.10</a>.
+	</dd>
+</dl>
+<p>
+<li><i>Released, but still alpha- or beta-release quality:</i>
+<p>
+<dl>
+        <dt>
+        <a name="dotnet" href="<?echo $root?>/dotnet.html">
+	<b>Microsoft's .NET</b></a>
+	</dt>
+	<dd>
+	This back-end generates IL, the Intermediate Language
+	used by Microsoft's .NET Common Language Runtime.
+	</dd>
+<p>
+        <dt>
+        <a name="gcc" href="<?echo $root?>/download/gcc-backend.html">
+	<b>Native code</b></a>
+	</dt>
+	<dd>
+	This back-end compiles to assembler, using the GCC back-end.
+	</dd>
+</dl>
+<p>
+<li><i>Under development:</i>
+<p>
+<dl>
+        <dt><a name="aditi" href="http://www.cs.mu.oz.au/research/aditi/">
+	<b>Aditi.</b></a></dt>
+	<dd>
+	Mercury is the source language for version 2 of the Aditi
+	deductive database system.  The Mercury compiler has a back-end
+	that generates Aditi's RL (Relational Language) bytecodes.
+	</dd>
+<p>
+        <dt><a name="java"><b>Java.</b></a></dt>
+	<dd>
+	This one still needs a lot of work.
+	For more information, read the source code.
+	</dd>
+<p>
+	<dt><a name="bytecode"><b>Mercury byte-code.</b></a></dt>
+	<dd>
+	We have our own bytecode format,
+	a back-end which generates it, and an interpreter
+	which runs it.  This is designed to interoperate
+	with our low-level C back-end.  The main aim here
+	is to get better turn-around time for debugging.
+	<p>
+	This one still needs quite a bit of work to integrate it
+	with the rest of the Mercury implementation.
+	Read the source.
+	</dd>
+</dl>
+</ul>
Index: w3/include/menubar.inc
===================================================================
RCS file: /home/mercury1/repository/w3/include/menubar.inc,v
retrieving revision 1.11
diff -u -d -r1.11 menubar.inc
--- w3/include/menubar.inc	2001/03/23 23:35:35	1.11
+++ w3/include/menubar.inc	2001/03/28 05:47:36
@@ -69,7 +69,28 @@
 <?
 }
 ?>
+
 <P>
+
+<B><a href="<?echo $root?>/backends.html">Back-ends</a></B><BR>
+<?
+if($menu == "Back-ends") {
+?>
+<SMALL>
+    <a href="<?echo $root?>/backends.html#low_level_c">Low-level C</a><BR>
+    <a href="<?echo $root?>/download/release-0.10.html#hlc">High-level C</a><BR>
+    <a href="<?echo $root?>/dotnet.html">Microsoft .NET</a><BR>
+    <a href="<?echo $root?>/download/gcc-backend.html">Native code</a><BR>
+    <a href="http://www.cs.mu.oz.au/research/aditi/">Aditi</a><BR>
+    <a href="<?echo $root?>/backends.html#java">Java</a><BR>
+    <a href="<?echo $root?>/backends.html#bytecode">Mercury Bytecode</a><BR>
+</SMALL>
+<?
+}
+?>
+
+<P>
+
 <B><a href="<?echo $root?>/download.html">Download</a></B><BR>
 <?
 if($menu == "Download") {
@@ -84,7 +105,9 @@
 <?
 }
 ?>
+
 <P>
+
 <B><a href="<?echo $root?>/information/related.html">Related</a></B><BR>
 <?
 if($menu == "Related") {
@@ -97,7 +120,11 @@
 <?
 }
 ?>
+
 <P>
+
 <B><a href="<?echo $root?>/contact.html">Contact</a></B>
+
 <P>
+
 <B><a href="<?echo $root?>/search.html">Search</a></B><BR>

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
                                    |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list