[m-dev.] for review: Mercury meeting minutes 15/12/00

Fergus Henderson fjh at cs.mu.OZ.AU
Fri Dec 15 19:32:06 AEDT 2000


Estimated hours taken: 1

w3/news/reportsdb.inc:
w3/information/reports/minutes_15_12_00.html:
        Minutes for the Mercury meeting on Friday December 15, 2000.

Workspace: /home/pgrad/fjh/ws/alpha
Index: w3/information/reports/minutes_15_12_00.html
===================================================================
RCS file: minutes_15_12_00.html
diff -N minutes_15_12_00.html
--- /dev/null	Thu Mar 30 14:06:13 2000
+++ minutes_15_12_00.html	Fri Dec 15 19:25:35 2000
@@ -0,0 +1,307 @@
+
+<html>
+
+<pre>
+We had a meeting of the Mercury group on Fri Dec 15,
+from 3:10pm to about 5:00pm.
+
+Attendees:
+	Adrian Pellas-Rice <apell>
+	Thomas Conway <conway>
+	David Jeffery <dgj>
+	Fergus Henderson <fjh>
+	Ina Cheng <inch>
+	Julien Fischer <juliensf>
+	Kevin Glynn <keving>
+	Levi Cameron <lpcam>
+	Sam Thurairatnam <sthur>
+	Tyson Dowd <trd>
+	Simon Mei <xcsm>
+	Zoltan Somogyi <zs>
+
+1. Progress reports.
+
+	We went around the table, with each person in turn discussing what
+	they had been working on recently and/or what they were planning
+	to work on.
+
+	Tyson Down <trd>:
+
+		- Helping summer students.
+
+		- Continuing work on the Managed C++ implementation of the
+		  standard library.  Progress is fairly slow.
+
+		- Got MCORBA working in hlc.par.gc grade.
+		  (This is particularly useful because the asm_fast.gc.par
+		  grade is broken, at least on Linux.)
+
+		- Fix a bug with printing of tuples.
+	
+		- Learnt about XML and SOAP.
+
+	Fergus Henderson <fjh>:
+
+		- Added trail support for the MLDS back-end.
+
+		- Fixed a problem with `:- external' in the MLDS back-end.
+
+		- Set up automated tests for the various MLDS grades
+		  (on the machine `roy').
+		
+		- Spent half a day working on the Java back-end with
+		  Julien Fischer.
+
+		- Spent some time talking with Simon Mei about RTTI
+		  and how to generate arbitrary user-defined data types.
+
+	At this point we digressed into a discussion about the RTTI
+	support.  Zoltan asked if DJ had some outstanding stuff with
+	regard to the RTTI interface, and DJ replied that he didn't.
+	There was some discussion about cleaning up the RTTI interface:
+	- moving the RTTI stuff from std_util.m into a separate module
+	- moving the stuff with a Prolog-like interface into prolog.m
+	- adding type class constraints on some of the RTTI operations
+	- improving the documentation
+	But no-one is currently working on this.  In any case it
+	should not be in the "Rudolph" release.
+
+	Levi Cameron <lpcam>:
+
+		- More work on the bytecode interpreter.
+
+		- Working on if-then-elses, disjunctions, and commits
+
+	Simon Mei <xcsm>:
+
+		- More work on the ``quickcheck''-style test generator.
+
+		- Had previously been using typeclasses and instance
+		  declarations, but was now instead using RTTI and nested
+		  if-then-elses with dynamic type checks (type_to_univ).
+
+		- Fergus mentioned that it would have been nice if
+		  we had dynamic type class casts so that these two
+		  techniques could be combined
+
+	Adrian Pellas-Rice <apell>:
+		
+		- Working on sequence quantification
+
+		Fergus gave a brief explanation of sequence quantification
+		for the rest of the Mercury group:
+
+			The problem that sequence quantification is aimed
+			at addressing is that there is no way of writing
+			loops in Mercury without using explicit recursion
+			or higher-order code, both of which are conceptually
+			somewhat complicated. 
+
+			Sequence quantification adds a new kind of goal:
+
+				forall Var1 in Seq1
+				    as Var2 in Seq2
+				    as Var3 in Seq3
+				    ...
+				    Goal
+
+			This essentially just univiersally quantifies the
+			sequence over all corresponding elements in the
+			given sequences.
+			The declarative semantics of this can be given by
+
+				all [I] (
+				    (Var1 = Seq1 ^ elem(I),
+				     Var2 = Seq2 ^ elem(I),
+				     Var3 = Seq3 ^ elem(I))
+				=>
+				    Goal
+				)
+
+			where `Seq ^ elem(I)' is field accessor syntax
+			for a type class method call; `elem' is a method
+			of some `sequence' type class that gets the `I'th
+			element of the sequence.
+
+			However, operationally, the idea is that the compiler
+			will instead transform this into a call to a
+			recursive predicate.
+
+			That's the simple version; there are also some more
+			complicated extensions possible, including in
+			particular `initially ... finally ...' sequences,
+			which are goals of the form
+
+				forall Var1 in Seq1
+				    as Var2 initially Initial finally Final
+				    ...
+				    Goal
+
+			where Goal can refer to `next Var2'.
+			The declarative semantics of this can be defined as
+
+				forall Var1 in Seq1
+				    as Var2 in [Initial] ++ Accs
+				    as NextVar2 in Accs ++ [Final]
+				    ...
+				    Goal [with `next Var2'
+				    replaced by `NextVar2']
+
+			where `NextVar2' and `Accs' are both fresh variables.
+			i.e.
+
+				all [I] (
+				    (Var1 = Seq1 ^ elem(I),
+				     Var2 = ([Initial] ++ Accs) ^ elem(I),
+				     NextVar2 = (Accs ++ [Final]) ^ elem(I))
+				=>
+				    Goal
+				)
+			
+			For example:
+
+				:- func sum(list(int)) = int.
+				sum(L) = Sum :-
+					forall X in L
+					    as Acc initially 0 finally Sum
+					    next Acc = Acc + X.
+
+			The modes allowed for sequence quantification
+			are more general than what is allowed for
+			universal quantification in Mercury.
+			Universal quantifications can't have any
+			outputs.  But for sequence quantification we
+			can handle the modes by using mode inference
+			for the generated recursive predicate, which
+			will allow `forall' goals to produce outputs.
+
+			Zoltan said it was not good to rely on mode
+			inference, since the modes would then depend
+			on the order of the conjuncts in <Goal>.
+
+			Tyson suggested that we could allow optional
+			explicit mode annotations on forall goals, i.e.
+
+				forall <Var1> in (<Seq1>::in)
+				    as <Var2> in (<Seq2>::in)
+				    as <Var3> in (<Seq3>::out)
+				    ...
+				    <Goal>
+
+		The general consensus was that this proposal for sequence
+		quantification seemed like a good idea.
+
+		- Adrian has been working on adding the new stuff needed
+		  to the parse tree representation (prog_data.m) and
+		  to the HLDS goal representation (hlds_goal.m).
+		  A new HLDS goal type is required because the transformation
+		  needs to know the non-local variables, which are computed
+		  by the quantification pass, which works on the HLDS.
+		  After quantification the transformation can be applied,
+		  so the later passes will not need to handle this goal;
+		  they can just call error/1, like they do for bi_implication.
+
+		  Fergus suggested that if someone adds a third such goal
+		  which gets syntactically expanded away after quantification,
+		  we should combine all three into a single alternative
+		  goal type called e.g. `syntactic_sugar/1', so that number
+		  of clauses calling error/1 remains small.  Someone
+		  (Zoltan?) said that it would be better and also
+		  easier to do this now.  Everyone agreed.
+
+	Thomas Conway <conway>:
+
+		- Back for a two-month "do or die" effort on his thesis.
+
+		- Spent some time chatting with summer students
+
+		- Asked about including the new namespace stuff for the XML
+		  package in the release.  Fergus said the deadline for new
+		  features expired a week ago, so unless it was completely
+		  ready, it should not go in the new release.  Tyson suggested
+		  making a release of the XML stuff as a separate package,
+		  sometime after the compiler release, and just making sure
+		  that it was compatible with the compiler release.
+
+		- Has been working with Zoltan on a paper on deep profiling.
+
+	Ina Cheng <inch>:
+
+		- working on sending SOAP messages through the web server
+
+		- looking at the XML package
+	
+		- started adding support for XML namespaces
+
+	Sam Thurairatnam <sthur>:
+
+		- Has been working on improving the pretty printer.
+
+		- Adding suppport for limiting size of printed terms
+		  based on the number of lines and characters (rather
+		  than the depth, etc.)
+		
+		- Zoltan has written some code which takes a term and
+		  returns a term annotated with size information,
+		  and Sam is writing some code which takes such an
+		  annotated term and produces a `pprint:doc' type.
+
+	Julien Fischer <juliensf>:
+		
+		- Working on the Java back-end
+
+		- Output arguments now work.  We've implemented those
+		  by returning an array of objects.
+
+		- User-defined types are not quite working
+
+		- Tyson asked about other features: exceptions, switches, RTTI?
+		  Julien was not sure whether they work.
+		  Fergus suggested that Julien should start making a list
+		  of which features work and which don't.
+
+	Kevin Glynn <keving>:
+
+		- Has applied for a six-month extension
+
+	David Jeffery <dgj>:
+
+		- Has been working on his thesis
+
+		- Did some work on MCORBA
+
+		- Anthony Senyard <anthls> has been working on a
+		  project involving using CORBA to connect some Mercury
+		  code which produces a graph with a package that does
+		  force feedback graph visualization.  Very cool ;-)
+
+	Zoltan Somogyi <zs>:
+
+		- Fixed four bugs in retry
+
+		- Has been working on a deep profiling paper with Tom.
+
+		- Has been dealing with exam students
+
+2. Hardware issues
+
+We discussed some issues about disk space, nightly bootchecks,
+the new file server, etc.
+
+We should schedule one night on which we don't run any bootchecks
+to ensure we can get a clean backup.
+
+3. Release plans
+
+Tyson's changes to add support for managed C++ version of the
+library will take some time.  Zoltan's retry fixes and changes to the
+configure options should be ready tonight.  There are no other changes
+outstanding (though there are a few bugs that should still be fixed).
+
+Fergus will fork off a release branch in the next day or so, once
+Zoltan's two outstanding changes have been committed.  Tyson will
+commit his stuff onto the release branch when it is ready.
+
+Minutes taken by Fergus Henderson <fjh at cs.mu.oz.au>.
+</pre>
+</html>
Index: w3/news/reportsdb.inc
===================================================================
RCS file: /home/mercury1/repository/w3/news/reportsdb.inc,v
retrieving revision 1.8
diff -u -d -r1.8 reportsdb.inc
--- w3/news/reportsdb.inc	2000/12/08 08:09:40	1.8
+++ w3/news/reportsdb.inc	2000/12/15 08:26:56
@@ -12,6 +12,8 @@
 */
 
 $reportsdb = array(
+	"15 Dec 2000" => 
+		array("minutes_08_15_00.html", "Mercury Meeting Minutes"),
 	"08 Dec 2000" => 
 		array("minutes_08_12_00.html", "Mercury Meeting Minutes"),
 	"01 Dec 2000" => 

-- 
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-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list