Date of Release: Mar 6, 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:
- There was a problem with a routine in the file sys_unix.c
that exposed a bug in glibc. The bug has been reported and
the code has been changed to avoid the bug.
- There was a problem parsing the final keyword in project
files that could cause spurious syntax errors.
- It was possible to access a project state while via CGL when the
project file was being parsed. This caused the database package to
be called before it was initialized.
Access during parsing is still allowed, but the database file is
opened as soon as the name is stated in the project file. In addition,
AMC now checks to see that the database has been initialized before
accessing it.
- Fixed a bug in sys_flock.c. I incorrectly interpreted the
POSIX.1 standard as saying the l_start field of the
flock structure did not have to be initialized if
l_len was set to 0. I was wrong and it is now initialized.
- Fixed a bug in the routine that empties out object directories when
doing a "clean build." It was deleting empty directories
which is not what the user expects.
The following new features have been added to AMC v3.6:
- CGL enhancements:
- Added dynamic call capability to CGL (similar to C function
pointers).
- Added a function to check if a variable is bound.
- Added local variable scoping.
- Optimizations that improve the speed of CGL.
- Improved error messages for OS system call failures.
- Added the ability to enumerate a projects roots via CGL.
- Added routines for structuring the project state file namespace
(quote_str and unquote_str).
- Project files can now execute arbitrary chunks of CGL code with
the do keyword. Although, not all facilities are available
during the parsing of the project file.
- Changed the syntax of the set statement in the project file
slightly. To be more consistent with similar statements, it no
longer requires (and will actually complain about) a trailing
semicolon when CGL code is used to initialize an environment variable.
- When a location is tagged with the make keyword only the
last directory in the path was being constructed. AMC now walks
the path specifier constructing each directory that doesn't exist.
- It is now possible to specify that a set of modules be automatically
included on a per module-type basis. This is useful for including
a standard set of libraries that a module type may need.