Changes compared to version 1.5.0:
-
Upgrading an existing (pre v1.6-)ACT component to use v1.6.0 does not require a major version increment of that component:
- The binaries created with ACT-v1.6.0 are binary compatible to binaries that have been created with ACT-v1.5.0. Since v1.6.0 requires to provide an
acquiremethod
(see below), the minor version of the ACT-v1.6.0-binary must be increased compared to the ACT-v1.5.0-component.
- The binaries created with ACT-v1.6.0 are binary compatible to binaries that have been created with ACT-v1.5.0. Since v1.6.0 requires to provide an
-
ACT now supports shared ownership of class instances between implementation and bindings:
Components now MUST define anacquiremethod
, which acquires shared ownership of an instance.See the Injection-example for details.
-
ACT now allows components to be injected at runtime into other components.
This is specified via theimportcomponent
-element andinjectionmethod
-attribute in the outer component and thesymbollookupmethod
-attribute in the inner (injected) component. These features are OPTIONAL.
See the Injection-example for details. -
ACT now offers the
optionalclass
-parameter type:
Theoptionalclass
-type for parameters behaves just likeclass
, however, this instance may be empty, or null. A use case foroptionalclass
is e.g. a "findElementByName"-method of a list, which might or might not return a class instance.See the example of
optionalclass
for details. -
Minor improvements and bugfixes:
- Go-bindings have been substantially improved
- Fix C#-return values
- Fix go-out-strings
- ACT now avoids warnings (size_t and C4250)
- The memory footprint of C++-error-handling has been reduced to 8 byte per class instance (vs. 32 byte before)
- C++: strings are now passed through the interface explicitly as null-terminated strings.
- C++-types are used more consistently
- ACT now checks special method signatures early in the generation-process
- Autogenerated C++-Bindings+Implementations now also work if
BaseName != NameSpace
Hint: the tutorial has been updated to work with v1.6.0.