Date of Release: Oct 19, 2000
NOTE: The ATOM object-oriented toolkit has now
been separated out from the AMC distribution. If you wish to use ATOM
you must download an additional package and install it.
The following bugs have been fixed in AMC v3.6.4:
- If the getcwd system call failed AMC would abort because a
path name could not be normalized. In some cases (NFS or strict
permissions on parent directories), the getcwd function
can fail. Because this is non-fatal, the un-normalized name is used
instead.
- A portability problem with struct utsname existed where the
code assumed that there was space in the structure that could be
written to. This assumption is not guaranteed by POSIX and may break
on some architectures that just have pointers in the structure to
constant areas.
- If there was an error processing an include file the depth counter was
not properly re-balanced. This could cause problems later on if
project files were ever parsed on the fly.
- Duplicate CGL procedures were not flagged as errors. Rather, the newer
definition overshadowed the old one. This was intentional to allow
circular recursion before the dynamic_call built-in was
added. Now that it is there, there is no reason to be silent about
this kind of error.
- An off-by-one index into the internationalization table that caused
some messages to be generated incorrectly.
- During the processing of a module, the header keyword
list was active, thus modules could not consist of syntax that had
keywords the same as the module header. The keyword list is now
re-set.
- There was a bug in the substr built-in that would have allowed
negative numbers as indicies to cause problems.
The following new features have been added to AMC v3.6.3:
- A new variable is defined during the processing of a project file
that allows projects written using AMC to be "directory
independant" - their location in the file system can be
automatically determined.
- Added a new CGL built-in, mkdir to ensure that a directory
exists.
- A new directive allows idempotent inclusion (only include a file
once) in the project files.
- Added a new CGL built-in, fn_normalize to compute an
absolute file name.
- CGL code can now insert and process custom records in the interface
files. It used to be that only chunks of output text were allowed, now
user-defined record type are allowed.
- CGL maps have been improved (with a small syntax change). It is now
possible for more than one value to share the same piece of code.
- Added a generic, efficient sorting mechanism to CGL.
- A new CGL built-in called strcmp provides a way to decide
if a string is less than, greater than, or equal to another string.