Aug 30 1993: Struct 0.95 released to beta testers.

Sep 18 1993: Made Zeroloop work properly with LONG variables. The
way to do this was explained by Joakim Rosqvist.

Jan 03 1994: The Lib Call command originally had two limitations:
you couldn't use math expressions as parameters and it didn't
automatically sign-extend parameters to LONG for you. The former was
caused by a lack of scratch registers. The latter was just dumb.
Making library calls under these limitations proved unbearable, and
so they were removed. Struct now uses 12 bytes of stack space as
scratch during a library call if you supply a parameter list.

Jan 06 1994: Allowed procedures to return a value. This would have
been done a long time ago, but I couldn't decide how it should
appear to the programmer.

Jan 12 1994: Made the Load Address command more powerful. It can now
load the addresses of labels, procedures, and variables. In order to
make this work, compiler output is now directed to two separate
files which are combined at the end of processing. The AmigaDOS Join
command must be in your C: directory (the compiler will use it
automatically). This modification effectively makes Struct a
"1 & 1/2 pass" compiler.
  The compiler now distinguishes between local and global labels.

Jan 15 1994: Added the ability to recognize the IFND directive to
the Include Constant command. This seems to make it work properly
with the include files I have. It's real slow though.
  Made the Goto command use the double output file system. Forward
Gotos no longer require a resolution subroutine at the end of the
procedure.

Jan 21 1994: No more annoying warnings from the Print command.

Jan 22 1994: Variables can now be given an initial value.

Jan 25 1994: Procedures can now have "default parameters" for each
of their input variables. The default parameter will be used if no
value is passed to that variable. This permits a limited form of
function overloading.
  STACK data type added. This is EXPERIMENTAL and may be removed
from the language at a later date. See the Q & A section of the main
documentation for more information.

Jan 27 1994: Indenter and UOut example programs updated to make use
of Struct's new features.
  REALLY DUMB bug discovered in the Exit command and eliminated. I
must have been brain-dead the night I wrote the code for that
command.
  Lbrary base tracking fixed. Struct tries to keep track of which
library's base pointer is on A6, but isn't as rigorous as it is with
normal register variables. This was part of the language from the
beginning, but didn't work. It should, now.

Jan 29 1994: Library definitions file updated. It now contains the
five major libraries (Exec, Dos, Graphics, Layers, and Intuition) up
to version 1.2. My references are not the most complete, so there
may be some functions missing. It would be nice if some kind soul
could send me the function information for 2.0+...

Jan 30 1994: Increased the compiler's working buffer size and raised
some of its internal limits. See the Theoretical Limits appendix for
specifics. Struct now requires approximately 600k to compile a
program.

Jan 31 1994: Documentation for the Indenter example program written.

Feb 02 1994: Documentation for the UOut example program written.

Feb 13 1994: Struct main documentation updated to reflect recent
changes. New chapter added on optimization.
  Struct 0.99 released to beta testers.

Feb 21 1994: Any constants which end with "@" will now be ignored by
Include Constant if they're already defined. (The "@" sign indicates
a redefinable constant in assembly)
  Library bases are now stored in global variables which are
directly accessible to the programmer.
  Various bugs fixed - local and global labels with the same name
weren't being allowed, forward Gotos were bringing up false errors
in some situations, constants weren't always working with the Poke
and Peek set of commands.

Mar 14 1994: Despite my efforts to fix the Include Constant command,
one of my beta testers still has problems with it. If you can't get
this command to work, and you only need a few magic numbers, you
might try finding out the values of those numbers and then just
inlining them with the Constant command.
  Struct 1.0 released to the public. My great thanks to those beta
testers who sent advice and comments during the testing process:
David Benn, Sean Conner, and Joakim Rosqvist.
