Thursday, March 1, 2007

Archived News: 2007-03

I have eliminated my "corrections" to the Mercury
extras xml library (I had an outdated
version of the library as outlined in the
2007-03-18 news post, so
my corrections were redundant the the Mercury team's).
At the same time, I have moved my XML enhancements
into the utils library and promoted
the doug_graph module from alpha; it is
now also included in utils.


A new library and several improvements can be found in
the shared repository:

  • The xml library provided in the Mercury
    extras distribution is out-of-date; it no
    longer compiles. I have fixed the compile errors and added
    several modules (to assist in XML transformations and
    pretty-printing) and tests.

    Update 2007-03-28:

    I was in error in the above item: my
    of the xml library provided by the
    Mercury team was out of date; the version
    supplied with the extras
    distribution by the Mercury team is
    working correctly.

    This means my fixes to the xml library are
    redundant, so I withdraw them. The extended
    functionality, however, I do continue to find
    (very) useful, so I am moving these
    enhancements as an xml library under
    the utils umbrella.

  • Several improvements are available for

    1. I have modified the qcheck2 library so
      that it now uses the RNG protocol as proposed in the
      Mercury users' maillist. I have also modified the
      reporting feature to accept a polymorphic type for
      module.predicate unit tests ... this improvement
      'upgrades' qcheck2 to be an independent
      library (qcheck was also an independent

    2. The program qcpt that generates the
      module.predicate test points for a system has also
      been updated to use the new qcheck2
      reporting protocol. qcpt is bundled
      with ltq.

  • I have entirely changed the utils library:

    1. Although useful for a small number of repetitions,
      the peano module becomes unweildly for
      large cycles (1,000,000 is represented as 1,000,001
      cons cells!). So, I have discarded it in favor of a
      slightly more sophisticated counting algorithm (where
      1,000,000 is represented by 7 cons cells) in the
      utils.series module that now also includes
      loop abstraction with func unfold/3 and
      pred svunfold/6 (the latter being used when
      one must also update a dependent state variable).

    2. Julian Fondrant on the Mercury Users maillist
      proposed a RNG typeclass and protocol, and published a
      module implementation using the tausworthe3 algorithm.
      I have incorporated this module (as
      utils.random) with a simplified
      fa├žade and other minor corrections.

Copyright © 2006, 2007, Logical Types, LLC.
All rights reserved.