Sat Mar 09 12:00:00 2013 Andrew Makhorin <mao@gnu.org>

        * MARST 2.7 has been released

        * configure, Makefile
        The configure script and Makefile were regenerated with a new
        version of GNU autotools (autoconf 2.69 and automake 1.12.5) to
        avoid vulnerabilities related to older versions of automake.

        * doc/*
        The MARST User's Guide in pdf format was regenerated with a new
        version of GNU texinfo (2013-02-01.11).

        * marst.c, macvt.c
        The version number and copyright year numbers were changed.

Fri Nov 16 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>

        * MARST 2.6 has been released

        * marst.c
        Two bugs were fixed.

        The first bug was detected due to a test program provided by
        Leif Harcke <lharcke@stanford.edu>. It appeared in a context
        like follows:

           a[i] := i

        where identifier i was considered as the left part of the
        assignment statement (i.e. as if there were a[i] := i := ...)
        while it is a final expression in the right part.

        The second bug appeared if a switch designator was used before
        corresponding switch declaration.

        * tests/*.*
        A set of Algol 60 validation tests were added. These tests were
        kindly provided by Mr Brian Wichmann, one of the authors of the
        Modified Report on Algol 60. For more details about these tests
        see file tests/README.

Sat Jun 30 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>

        * MARST 2.5 has been released

        The principal change is upgrading to GPLv3.

Mon Sep 09 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>

        * Version 2.4 released.

        * marst.c
        Four serious bugs were fixed due to a test program provided by
        Jan van Katwijk <J.vanKatwijk@ITS.TUDelft.NL>. Because of these
        bugs references to wrong procedure DSAs were generated.

        The first three bugs appeared in a context like follows:

        ...
        procedure a(x);
        <specification of x>;
        begin
          ...
          procedure b(...);
          begin
            ...
            c(x);
            ...

        for which, in the cases when x was a simple formal parameter
        called by name, or a formal switch, or a formal procedure, the
        code was generated as if the parameter x were specified in the
        procedure b, not in a.

        To fix these bugs the context 'current_level()' was replaced by
        the correct context 'dsa_level(id)' in the lines 1738, 1826 and
        1917 within the routine 'actual_parameter'.

        The fourth bug appeared in a context like follows:

        ...
        <type> procedure a(...);
        begin
          ...
          procedure b(...);
          begin
            ...
            a := ...
            ...

        for which the code was generated as if assignment were made to
        the procedure identifier b, not to a.

        To fix this bug the context 'current_level()' was replaced by
        the correct context 'dsa_level(id)+1' in the line 3158 within
        the routine 'assignment_statement'.

        * alglib1.alg
        All standard functions and procedures written in Algol 60 were
        merged into one file.

        * alglib2.c, alglib3.c
        Other two files containing run-time routines written in C were
        renamed.

Mon Nov 19 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>

        * Version 2.3 released.

        The copyright notice was changed, because the copyright was
        transferred to the Free Software Foundation, Inc.

Mon Jan 22 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>

        * Version 2.2 released.

        * marst.c
        Serious bug was fixed due to bug report provided by Paulo
        Barreto <paulo.barreto@terra.com.br>.

        The error occurred because of incorrect passing a formal
        parameter called by name to other procedure. The MARST
        translator *incorrectly* treated a procedure statement like
        foo(..., bar, ...), where `bar' is a formal parameter called
        by name, as if it would be foo(..., (bar), ...), i.e. as if
        the value of `bar' would be passed, not the name. Therefore
        assignment to the corresponding formal parameter inside the
        procedure `foo' was impossible. In order to fix this bug a
        program fragment was added to the `actual_parameter' routine.

        * ex/a232.alg, ex/tennent.alg
        These two additional examples were added to the package. Due
        to the first example program a serious bug (see notice above)
        was found in MARST 2.1.

Fri Dec 01 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>

        * Version 2.1 released.

        * macvt.c
        Minor bug was fixed due to bug report provided by Bernhard
        Treutwein <Bernhard.Treutwein@Verwaltung.Uni-Muenchen.DE>
        (because of this bug the macvt converter incorrectly processed
        --ignore-case command line option)

        GNU MARST User's Guide is included into the distribution in
        texinfo (source), info, ps, pdf, and html formats.

Tue Aug 01 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>

        * Version 2.0 released.

        * marst.c
        Parsing implemented in the translator was fully re-programmed
        to continue translation in spite of syntax and semantic errors.
        In version 1.0 the translator had got an inborn defect (not a
        bug): it stopped on the first error found.

        * macvt.c
        Minor changes were made.

        * configure.in, Makefile.in
        Minor changes were made due to patches provided by Alexandre
        Oliva <oliva@lsd.ic.unicamp.br>.

Tue Jul 18 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>

        * Version 1.0 released under GNU Coding Standards.
