[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