[m-rev.] diff: three new papers

Zoltan Somogyi zs at cs.mu.OZ.AU
Mon Jul 15 15:58:38 AEST 2002


news/newsdb.inc:
information/include/papers.inc:
	Add two soon-to-be-presented papers, as well as one presented in June.

information/papers/p33-overton.ps.gz:
information/papers/p81-somogyi.ps.gz:
	Two papers that will appear in PPDP in October.

information/papers/high_level_gc.ps.gz:
	Fergus's paper in ISMM in June.

Zoltan.

cvs diff: Diffing .
cvs diff: Diffing bin
cvs diff: Diffing contact
cvs diff: Diffing contact/include
cvs diff: Diffing download
cvs diff: Diffing download/include
cvs diff: Diffing download/patches
cvs diff: Diffing htdig
cvs diff: Diffing htdig/include
cvs diff: Diffing images
cvs diff: Diffing include
cvs diff: Diffing information
cvs diff: Diffing information/bench
cvs diff: Diffing information/deep_demo
cvs diff: Diffing information/developers
cvs diff: Diffing information/dotnet
cvs diff: Diffing information/events
cvs diff: Diffing information/events/images
cvs diff: Diffing information/include
Index: information/include/papers.inc
===================================================================
RCS file: /home/mercury1/repository/w3/information/include/papers.inc,v
retrieving revision 1.29
diff -u -b -r1.29 papers.inc
--- information/include/papers.inc	2002/04/02 08:07:10	1.29
+++ information/include/papers.inc	2002/07/15 05:42:20
@@ -17,6 +17,104 @@
 
 <li>
 <strong>
+Constraint-Based mode analysis of Mercury
+</strong>
+<br>
+David Overton, Zoltan Somogyi and Peter Stuckey
+<br>
+<em>
+to appear in the Proceedings of the Fourth International Conference on
+Principles and Practice of Declarative Programming,
+</em>
+Pittsburgh, Pennsylvania, October 2002.
+<a href = "papers/p33-overton.ps.gz">
+Available here (188K).
+</a>
+<p>
+Recent logic programming languages, such as Mercury and HAL,
+require type, mode and determinism
+declarations for predicates. This information allows the generation of
+efficient target code and the detection of many errors at compile-time.
+Unfortunately, mode checking in such languages is difficult. One of the main
+reasons is that, for each predicate mode declaration,
+the compiler is required to decide
+which parts of the procedure bind which variables,
+and how conjuncts in the predicate definition should be re-ordered
+to enforce this behaviour.
+Current mode checking systems limit the possible modes that may be used
+because they do not keep track of aliasing information,
+and have only a limited ability to infer modes,
+since inference does not perform reordering.
+In this paper we develop a mode inference system for Mercury
+based on mapping each predicate to a system of Boolean constraints
+that describe where its variables can be produced.
+This allows us handle programs that are not supported by the existing system.
+<p>
+
+<li>
+<strong>
+Using the heap to eliminate stack accesses
+</strong>
+<br>
+Zoltan Somogyi and Peter Stuckey
+<br>
+<em>
+to appear in the Proceedings of the Fourth International Conference on
+Principles and Practice of Declarative Programming,
+</em>
+Pittsburgh, Pennsylvania, October 2002.
+<a href = "papers/p81-somogyi.ps.gz">
+Available here (190K).
+</a>
+<p>
+The value of a variable is often given by a field of a heap cell,
+and frequently the program will pick up the values of several variables
+from different fields of the same heap cell.
+By keeping some of these variables out of the stack frame,
+and accessing them in their original locations on the heap instead,
+we can reduce the number of loads from and stores to the stack
+at the cost of introducing a smaller number of loads from the heap.
+We present an algorithm that finds the optimal set of variables
+to access via a heap cell instead of a stack slot,
+and transforms the code of the program accordingly.
+We have implemented this optimization in the Mercury compiler,
+and our measurements show that it can reduce program runtimes by up to 12%
+while at the same time reducing program size.
+The optimization is straightforward to apply to Mercury
+and to other languages with immutable data structures;
+its adaptation to languages with destructive assignment
+would require the compiler to perform mutability analysis.
+<p>
+
+<li>
+<strong>
+Accurate garbage collection in an uncooperative environment
+</strong>
+<br>
+Fergus Henderson
+<br>
+<em>
+Proceedings of the 2002 International Symposium on Memory Management
+</em>
+Berlin, Germany, June 2002, pages 150-156.
+<a href = "papers/high_level_gc.ps.gz">
+Available here (83K).
+</a>
+<p>
+Previous attempts at garbage collection in uncooperative environments
+have generally used conservative or mostly-conservative approaches.
+We describe a technique for doing fully type-accurate
+garbage collection in an uncooperative environment,
+using a ``shadow stack'' to link structs of pointer-containing variables,
+together with the data or code needed to trace them.
+We have implemented this in the Mercury compiler, which generates C code,
+and present preliminary performance data on the overheads of this technique.
+We also show how this technique can be extended to handle multithreaded
+applications.
+<p>
+
+<li>
+<strong>
 Compiling Mercury to the .NET Common Language Runtime
 </strong>
 <br>
cvs diff: Diffing information/papers
Index: information/papers/high_level_gc.ps.gz
===================================================================
RCS file: high_level_gc.ps.gz
diff -N high_level_gc.ps.gz
Binary files /dev/null and high_level_gc.ps.gz differ
Index: information/papers/p33-overton.ps.gz
===================================================================
RCS file: p33-overton.ps.gz
diff -N p33-overton.ps.gz
Binary files /dev/null and p33-overton.ps.gz differ
Index: information/papers/p81-somogyi.ps.gz
===================================================================
RCS file: p81-somogyi.ps.gz
diff -N p81-somogyi.ps.gz
Binary files /dev/null and p81-somogyi.ps.gz differ
cvs diff: Diffing information/reports
cvs diff: Diffing mailing-lists
cvs diff: Diffing mailing-lists/include
cvs diff: Diffing mailing-lists/mercury-ads
cvs diff: Diffing mailing-lists/mercury-ads/include
cvs diff: Diffing mailing-lists/mercury-developers
cvs diff: Diffing mailing-lists/mercury-developers/include
cvs diff: Diffing mailing-lists/mercury-reviews
cvs diff: Diffing mailing-lists/mercury-reviews/include
cvs diff: Diffing mailing-lists/mercury-users
cvs diff: Diffing mailing-lists/mercury-users/include
cvs diff: Diffing news
Index: news/newsdb.inc
===================================================================
RCS file: /home/mercury1/repository/w3/news/newsdb.inc,v
retrieving revision 1.66
diff -u -b -r1.66 newsdb.inc
--- news/newsdb.inc	2002/07/12 03:45:32	1.66
+++ news/newsdb.inc	2002/07/15 05:57:57
@@ -21,7 +21,22 @@
 */
 
 $newsdb = array(
-"10 July 2001" => array("State Variables",
+"15 July 2001" => array("Three papers",
+
+"Three papers on Mercury are now available from our
+<A HREF=\"information/papers.html\">papers page</A>.
+Two will be presented at PPDP '02 in October:
+<em>Constraint-Based Mode Analysis of Mercury</em>
+by David Overton, Zoltan Somogyi and Peter Stuckey, and
+<em>Using the Heap to Eliminate Stack Accesses</em>
+by Zoltan Somogyi and Peter Stuckey.
+The third was presented at ISMM '02 in June:
+<em>Accurate garbage collection in an uncooperative environment</em>
+by Fergus Henderson."
+),
+
+$newsdb = array(
+"10 July 2001" => array("State variables",
 
 "We've added some extra syntax to the language to support programming
 with `state variables'.  State variables are intended to make it easier
cvs diff: Diffing tutorial
cvs diff: Diffing tutorial/src
--------------------------------------------------------------------------
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