AFTER YOU, ALFONSE: A MUTUAL EXCLUSION TOOLKIT
-- Updates to the BACI System

Jan 17, 2008:
JavaBACI is now available.
It will be discussed in the 6th edition of the Operating Systems
book by William Stallings.

Nov 27, 2007:
We have completed our work on a version of BACI that is
implemented in Java (i.e.,
it's not Java syntax for BACI). During the implementation of Java BACI,
Bill Bynum (main developer of BACI) found a minor error in the original
BACI system, i.e., the omission of the preposition "for" in the
error output of the bainterp program.
JavaBACI is now available.
It will be discussed in the 6th edition of the Operating Systems
book by William Stallings.

June 2nd, 2007:
We are currently working on a version of BACI that is
implemented in Java (i.e.,
it's not Java syntax for BACI). During the implementation of Java BACI,
Bill Bynum (main developer of BACI) found a minor error that everyone had
been fortunate to avoid in the past.
Updates were also made to C-BACI in order to have its output as identical
as possible to JavaBACI. We expect to release JavaBACI by end of 2007.
It will also be discussed in the 6th edition of the Operating Systems
book by William Stallings.

April 20th, 2004:
We thank Jim Howatt (Southeastern Louisiana University) for informing us
of errors in the way the bacc compiler handled logical expressions.
We also thank Moti Ben-Ari (Weizmann Institute of Science)
for notifying us of several problems, many of which were related to
how BACI handled access to arrays.

May 15th, 2003:
Thanks to Moti Ben-Ari for notifying us of two problems (i.e.,
boolean initializers and nesting) with the
Pascal compiler. New versions of all the BACI executables
have been placed on the BACI website.

May 7th, 2002:
Thanks to Phil Pidgeon for notifying us of a problem with the
C-- compiler. During the fix of this problem, Bill Bynum found
a related problem with the interpreter.
New versions of all the BACI executables (i.e., baaixxe.tar.gz,
bacisrc.tar.gz, badosxe.zip, balnxxe.tar.gz, and basunxe.tar.gz)
have been placed on the BACI website.

March 27th, 2002:
Thanks to Eric Gamess for notifying us of a problem with cin.
New versions of all the BACI executables (i.e., baaixxe.tar.gz,
bacisrc.tar.gz, badosxe.zip, balnxxe.tar.gz, and basunxe.tar.gz)
have been placed on the BACI website.

March 1st, 2002:
New versions of all the BACI executables (i.e., baaixxe.tar.gz,
bacisrc.tar.gz, badosxe.zip, balnxxe.tar.gz, and basunxe.tar.gz)
have been placed on the BACI website. These new executables update
a typedef problem with the C-- compiler. Thanks to Roland Untch at
Middle Tennessee for discovering this problem.

Nov. 21st, 2001:
New versions of all the BACI executables (i.e., baaixxe.tar.gz,
bacisrc.tar.gz, badosxe.zip, balnxxe.tar.gz, and basunxe.tar.gz)
have been placed on the BACI website. Thanks to Linda Null at
Penn State Harrisburg for discovering that the C-- compiler called
a non-void function as a void function.

Nov. 14th, 2001:
Linux, AIX, and Sun versions of BACI (i.e.,
files balnxxe.tar.gz, baaixxe.tar.gz, and basunxe.tar.gz)
have changed. This version of BACI fixes a problem with
the COEND statement of the interpreter. Thanks to
Donnie Fecko from the Colorado School of Mines for
discovering this problem.

Nov. 14th, 2001:
New versions of all the BACI documents are now available.
LaTeX versions of the BACI documents can also be downloaded.

June 5, 2001:
A new version of the following files exist: basunxe.tar.gz,
balnxxe.tar.gz, baaixxe.tar.gz, and bacisrc.tar.gz. This version
of BACI fixes a problem that would occur in the bacc compiler
when a second switch statement was encountered.
Thanks to Luca Bertapelle in Information Technology at Venice
University in Italy for notifying us of this problem.

March 15, 2001:
A new version of the following files exist: bacisrc.tar.gz, balnxxe.tar.gz,
basunxe.tar.gz, badosxe.zip, and baaixxe.tar.gz. This version of BACI
fixes an elusive bug in the BACI interpreter that has never been
noticed before. Specifically, a call to the random number generator
in the previous BACI version would sometimes
return a value that it should NOT be returning!
Thanks to William Slough at Eastern Illinois University
for notifying us of this problem.

Sept. 17, 1999:
A new version of bacisrc.tar.gz exists to ease the compilation of
BACI for those that do not have "." in their path
variables. Thanks to Wade Mealing at Central Queensland University
for notifying us of this problem.

Sept. 1, 1999:
New versions of all BACI files are available. The "make"
process in the source code has been simplified. In
addition, a SGI IRIX executable has been added.

July 20, 1999:
A new version of BACI is now available that corrects the following
two problems.
- Marcello Pelillo from the Universita' Ca' Foscari di Venezia
notified us that stochastic behavior occurred when a suspend()
statement is placed inside of an atomic procedure. In the new
version of BACI, the interpreter will stop with a deadlock exception
in this situation.
- Brad Taylor, a graduate student at George Washington
University, notified us that the disassembler was jumbling its output
in the DOS BACI version. We have since discovered that a problem
also existed with the Linux BACI version. Both disassemblers have
been updated in the new version of BACI.
We thank both Marcello and Brad
for notifying us of these problems.

November 27, 1998:
Another new version of BACI is now available that corrects a problem
in the way expressions are handled in the Pascal FOR loop limits.
We thank Linda Null from Penn State Harrisburg for notifying us
of this problem.
We also fixed a minor problem with the C-- typedef statement
(declaration of a complex array type would fail) and
a problem with how both the Pascal and C-- compilers handled
comments that span multiple lines.
Lastly, we changed both compilers to allow initialization of
semaphore and binarysem variables at declaration time. (Thanks
to Hassan Abdel-Rahman, an undergraduate student at the Colorado
School of Mines, for the suggestion.) We also
changed both compilers to allow users to determine whether
to enter the source file suffix of the file they are compiling.
Both user's guides have been modified to reflect
these changes.

August 27, 1998: Switch Statement Problem
A new version of BACI is now available that corrects a problem
in how BACI interprets the switch statement. We thank George A.
Benjamin from Muhlenberg College, and the students in his OS class,
for notifying us of this problem.

August 12, 1998: Global Variable Problem
A new version of BACI is now available that corrects a problem
in how global variables are modified. We thank Lourdes Tajes Martinez
from the Universidad de Oviedo in Spain for notifying us of this
problem.
Questions regarding the BACI updates can be sent to
"bynum AT cs DOT wm DOT edu"
or "tcamp AT mines DOT edu".