Ptolemy II 8.1.devel Release Notes

Ptolemy II is a set of Java packages supporting heterogeneous, concurrent modeling and design. Its kernel package supports clustered hierarchical graphs, which are collections of entities and relations between those entities. Its actor package extends the kernel so that entities have functionality and can communicate via the relations. Its domains extend the actor package by imposing models of computation on the interaction between entities. Examples of models of computation include discrete-event systems, dataflow, process networks, synchronous/reactive systems, and communicating sequential processes.

Ptolemy II includes a number of support packages, such as
data, providing a type system, data encapsulation and an expression parser,
plot, providing visual display of data,
math, providing matrix and vector math and signal processing functions, and
graph, providing graph-theoretic manipulations.

The three volumes of the Ptolemy II Design Document describes the Ptolemy II design and the implementation of the Java classes.

The "Using Vergil" describes how to use Vergil.

Complete List of Domains in Ptolemy II

Platforms

The core of Ptolemy II 8.1.devel is 100% Java, so it should work on any platform that has JDK 1.6 or later.

We developed Ptolemy II 8.1.devel under Mac OS X and Windows and with JDK1.6.0_22

Ptolemy II 5.0 will not compile under Java 1.3 because we use the java.lang.URI class, which is present only in Java 1.4 and later. JDK 1.5 or later is required so that these packages can use generics: backtrack, ptalon and others. JDK 1.6 is required because ptdb uses javax.swing.GroupLayout.

Ptolemy II has been compiled and run under IBM JDK 1.6.0. There are the following limitations under IBM JDK 1.6.0

  • The Copernicus code generator does not work.
  • Caltrop does not work.
  • The IBM JDK seems to return directory contents in a different order than the Sun JDK. Thus actor.lib.io.DirectoryListing might return elements in a different order.
  • Contents:

    Ptolemy II 8.1.devel Highlights

    New demonstrations

    Continuous Time (CT)

    Discrete Event (DE)

    Process Network (PN)

    Synchronous Dataflow (SDF)

    Synchronous/Reactive (SR)

    User Interface Demonstrations

    Other Key New Capabilities

    New and Enhanced Actor Libraries

    Additional Features

    New Code Generation Actors

    Bug fixes

    Backward Compatibility

    Most models developed under Ptolemy II 1.0.1, 2.0.1, 3.0.2, 4.0.1, 5.0.2 or HyVisual 2.2-beta, 3.0, 4.0.1, 5.0.1, 6.0.2, 7.0.1 and 8.0.1 should run under Ptolemy II 8.1.devel

    The MoMLParser includes a list of backward compatibility filters that make certain changes on models when read, handling such issues as actors being moved or renamed and parameter names being changed. The filters themselves are defined in ptolemy.moml.filter. If you have developed your own actors under earlier versions of Ptolemy II by writing your own Java files, you should recompile all your java code with the new release. In theory, copying the .class files should work, but recompiling is safer.

    Features that were new in previous Ptolemy II releases

    Features that were new in previous Ptolemy II releases

    Limitations

    Version 8.1.devel has the following limitations:

    Release Limitations

    Limitations in the Class Mechanism

    The class mechanism is highly preliminary and is likely to change in future releases. There are several known problems:

    Limitations in the Actor Libraries

    Limitations in the PN Domain

    The PN domain documents that it locally handles mutations. However, this is currently not true in the implementation. For the basic PN model, this doesn't really matter, since mutations happen pretty much the same as they would otherwise. (i.e. they are non-deterministic in when they execute) However, for timed PN models, there is actually some expressiveness lost, since timed PN models can locally execute mutations deterministically.

    Embedding a PN typed composite actor inside a non-process top level such as DE does not work. In fact embedding a process domain inside a non-process domain is likely to have problems. Profess Lee wrote:

    Yes, it looks as if the code is designed so that process domains (PN, CSP) can only be used within process domains. I'm not sure to what extent this is a limitation of the process domains vs. a semantic problem. What would PN mean within DE? Since PN has no well-defined notion of a "firing", how would you assign time stamps to the outputs of a PN actor? By default in DE, the time stamps of the outputs of an actor match those of the inputs that triggered the firing. There is no such notion in PN.

    Limitations in the User Interface

    Below are some of the limitations of Vergil, the Ptolemy II Graphical User Interface.

    Limitations in JNI

  • The Interface to C actors using the Java Native Interface is not available via the Windows Installer (or Web Start). To use the JNI/Ptolemy II interface, you must download Ptolemy II as source files and compile.
  • The JNI user interface was removed between Ptolemy II 4.0 and Ptolemy II 7.0 because the UI stopped working.
  • Code Generation Limitations

    Code Generation limitations are covered on the Code Generation page.

    Missing Domains

    For limitations discovered after the release, see the Ptolemy II 8.1.devel website

    Last Updated: $Date: 2011-01-05 20:47:13 +0100 (Wed, 05 Jan 2011) $