Fri Nov 16 12:00:00 2007 Andrew Makhorin * 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 . 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 * MARST 2.5 has been released The principal change is upgrading to GPLv3. Mon Sep 09 12:00:00 2002 Andrew Makhorin * Version 2.4 released. * marst.c Four serious bugs were fixed due to a test program provided by Jan van Katwijk . Because of these bugs references to wrong procedure DSAs were generated. The first three bugs appeared in a context like follows: ... procedure a(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: ... 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 * 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 * Version 2.2 released. * marst.c Serious bug was fixed due to bug report provided by Paulo Barreto . 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 * Version 2.1 released. * macvt.c Minor bug was fixed due to bug report provided by Bernhard Treutwein (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 * 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 . Tue Jul 18 12:00:00 2000 Andrew Makhorin * Version 1.0 released under GNU Coding Standards.