Change History
- Release 2.0.0 on November 18, 2008 -- corresponds to SVN revision 112.
- Release 2.0.1 on June 9, 2009 -- corresponds to SVN revision 166.
- Minor correction to release 2.0.1 on June 22, 2009 (no new release) correponds to SVN revision 168.
Note: although this is numbered as a maintenance release, there are
some minor functional changes.
- Eliminated the "by reference" connection mode, which requires a
runtime check and hence violates Flexotask philosophy. Renamed the
remaining two connection modes: use "CloneAlways" (the default,
formerly "deepclone") or "CloneIfNeeded" (formerly "hybrid"). The old
names are still accepted from existing templates but are deprecated.
Note that for cases where "by reference" did not throw an exception,
then "CloneIfNeeded" will give the same result at the same cost.
- Better diagnostics for failing scheduler, and earlier and more
precise detection when schedulers violate rules. Requires a
cooperating VM provider. For the IBM VM provider, this is version
2.0.2, expected to be available on IBM alphaWorks soon. With the old
VM provider, there should be no improvement and no regression.
- Support priority differentiation in threads used by schedulers.
Requires a cooperating VM provider. For the IBM VM provider, this is
version 2.0.2, expected to be available on IBM alphaWorks soon. With
the old VM provider you may see messages saying that priorities could
not be set but the configuration should still work.
- Establish separate versioning for runtime providers so that the
Flexotask core system and those providers can evolve
semi-independently.
- Added a reactive scheduler to serve as an example for building
schedulers that react to external events.
- In the editor, give timing grammars more ability to inspect the
entire graph, check global consistency, and propagate changes related
to their annotations.
- In NativeIO add the ability to dynamically vary between blocking
and non-blocking operations on an individual socket. Add
NonBlockingBuffer class to aid in managing partial reads and writes in
Flexotask execute methods.
- Enable peeking on ports by Flexotasks.
- Improve the ability for projects that extend flexotask extension
points to contribute directly to the classpaths of flexotask
application projects without having to be installed as plugins.
- Added checking that deep copy connections have stable types.
- Added check to ensure that class defined in flexotask task
template is indeed a flexotask
- Limit the depth of search for reasons when reporting an error to
avoid OutOfMemory in some cases.
- Refinements to the list of JDK classes known a priori to be
immutable or reference immutable.
- Fixed problems related to unexpected errors in the builder (such
as class loading errors). Builder will stop hereafter and report an
error in the IDE.
- Fixed bug in generating the name of a connection.
- Fixed bug that caused the 'types' function test to fail with WebSphere Real Time 2.0, SR1.
- Changed default isolation mode for tasks to 'weak' to match what is said in Flexotask papers (was 'strong', which
reflects the concept's origin in the Exotask system).
- Builder is less zealous about reporting parse failures on templates ... usually these are harmless resulting from
incomplete editing.