We had a meeting of the Mercury group on Fri Jan 5, 2001, from 3:20pm to 4:45pm. Attendees: Zoltan Somogyi (zs) David Jeffery (dgj) Mark Brown (dougl) Simon Taylor (stayl) Ina Cheng (inch) Kevin Glynn (keving) Levi Cameron (lpcam) Sam Thurairatnam (sthur) Simon Mei (xcsm) Julien Fischer (juliensf) Tyson Dowd (trd) Fergus Henderson (fjh) Thomas Conway (conway) 1. Microsoft grant. Zoltan was pleased to be able to bring us the news that we have been successful in getting the Microsoft grant we applied for. Well done, everyone! 2. Mercury on SourceForge. Peter Ross has given some feedback on accessing the Mercury site from outside Australia---it can be fairly bad. One solution that has been suggested is to place some of the Mercury material on SourceForge (http://sourceforge.net/), which provides a range of services to support developers of Open Source projects. These would also help improve some aspects of our development process, such as bug tracking and task management for releases, which are currently done in an ad-hoc fashion. We discussed which services we are most interested in putting to use. These include: - mailing lists - web page hosting - bug tracking - task management. We are not, however, considering moving our entire CVS repository to SourceForge. We would want to do regular uploads of the release of the day, but daily uploads are likely to get expensive so it was suggested that weekly uploads would be better. Further discussion is deferred until more developers have had a look at what SourceForge has (or hasn't) to offer. 3. 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. Zoltan Somogyi (zs): - Has ready for review a change which delays the death of named variables as long as possible, so they are accessible in the debugger for as many events as possible. This is now the default behaviour if the trace level is `deep' or greater. This increases the executable size, mainly due to more static data, but does not increase execution time significantly. We debated whether this should be the default when tracing optimized code. It should: the point of tracing optimized code is not to debug using less memory/execution time than normal, but rather to understand how the code has been optimized. So we want to make more information available even at the expense of code size. - Is working on a change to generate proc layouts as C structs instead of rvals. This will allow pseudotypeinfos for a procedure to be stored in a single proc layout instead of multiple label layouts. This change will mitigate the code size increase due to the previous change. David Jeffery (dgj): - Is working on HAL. - In particular, is removing dependencies on Mercury's `HAL' branch from code generated by HAL. The code is getting close to standard Mercury. Mark Brown (dougl): - Is continuing to implement term dependency tracking in the declarative debugger. Due to some complexities in the way this interacts with depth limited EDTs, this change will be broken down into two (or more) changes: at first the dependencies will only be tracked one step at a time, later the search strategy will be developed to make better use of the available information. Simon Taylor (stayl): - Has been away recently, but otherwise working on ADITI. - ADITI will reportedly be released real soon now. Ina Cheng (inch): - Is working on generating namespace aware XML documents. The work has gone through an initial round of review, and is now ready for the next. - Has been looking at the Quicksilver webserver by Peter Ross. Aside: should Quicksilver go in the extras distribution? It doesn't perform brilliantly at the moment, but there may be an easy fix. This should be discussed with Peter. Kevin Glynn (keving): - Has not been working on Mercury. Levi Cameron (lpcam): - Has largely implemented the bytecode stuff. Outstanding issues include: - complex (partially instantiated) modes of unify; - boxed vs unboxed floats; - preds vs functions. There are also issues with higher order code, but these will be left for later. Sam Thurairatnam (sthur): - Is integrating his pretty printing work with the term browser code. This will involve adding a new portray format, and probably also adding extra fields to the format params. Simon Mei (xcsm): - Is working on Quickcheck-style testing. Currently, generating values of user types and function types. - There is a problem with higher order values, because they cannot be built using "construct". There are no semantic problems, it's just that the implementation is a bit tricky. The details will need to be discussed later. Julien Fischer (juliensf): - Is working on support for foreign code in the Java backend. - Support for enumerations, discriminated unions, and RTTI. There is a Java class for each enumeration/discriminated union. Tyson Dowd (trd): - Has committed the support for managed C++. There are still a few bugs, mainly related to Cygwin. - Is working on documentation. - Has been supervising. - Talked with Peter Schachte about rewriting the purity paper. Potential targets were discussed: PPDP is a possibility, but a more specifically logic programming workshop would be preferable. Fergus Henderson (fjh): - Is on the program committee for BABEL'01. Can PC members submit? - Has been working on the gcc back-end (or "middle-end") interface. Features: - binary compatibility with hlc; - should improve compile time for code generation; - code duplication (eg RTTI) could be a problem, but Fergus doesn't think it will be major; - doesn't have mmake support. Thomas Conway (conway): - Has been working on a deep profiling paper (with Zoltan). - Is reimplementing deep profiling as a source-to-source transformation. One problem is that multiple moded predicates may be transformed into code that constructs existentially typed values in one mode (thus requiring a `new' operator), but deconstructs them in another (where the operator would be incorrect). Once again, we discussed the possibility of different code for different modes. No firm conclusions were drawn. 4. Release plans Aside from dealing with one or two bugs, there are no further changes planned before the upcoming release. Minutes taken by Mark Brown (dougl@cs.mu.oz.au).