Ptolemy II 5.0 is available for download from http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII5.0/
This release includes updated versions of the 3 volume Ptolemy Design Document, The HyVisual Manual and the VisualSense Manual. These documents may also be found at http://ptolemy.eecs.berkeley.edu/papers/05/ptIIDesignIntro http://ptolemy.eecs.berkeley.edu/publications/papers/05/hyvisual http://ptolemy.eecs.berkeley.edu/papers/05/visualsense There were surprisingly few bug fixes between 5.0-beta and this 5.0 release. The biggest bug fix is that the "Save Actor in Library" menu choice is now present. Another bug fix is that the backward compatibility filters now correctly mark a model as modified when the filter makes a compatibility change. Below is a text copy of the html release notes. The links are missing, but it will give you a rough idea of that is in the release. - --start-- Ptolemy II 5.0 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. * Volume 1: Introduction to Ptolemy II (Local PDF) * Volume 2: Ptolemy II Software Architecture (Local PDF) * Volume 3: Ptolemy II Domains (Local PDF) Complete List of Domains in Ptolemy II * CI: component interaction (experimental), * CSP: communicating sequential processes, * CT: continuous-time modeling, * DE: discrete-event modeling, * DDE: distributed discrete events (experimental), * DDF: dynamic dataflow * DT: discrete time, * FSM: finite state machines, * Giotto: periodic time-driven (experimental), * GR: 3-D graphics (experimental), * HDF: heterochronous dataflow * PN: process networks, * PSDF: parameterized synchronous dataflow (experimental), * SDF: synchronous dataflow, * SR: synchronous/reactive, * TM: timed multitasking (experimental), and * Wireless: wireless (experimental). Platforms The core of Ptolemy II 5.0 is 100% Java, so it should work on any platform that has JDK 1.4 or later. We developed Ptolemy II 5.0 under Solaris 8 and Windows XP sp2 and with JDK1.4.2_08. 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. There are various problems with Sun Java 1.5.0: Web Start does not work Caltrop does not work because of XML parser issues Ptolemy II has been compiled and run under IBM JDK 1.4.2_01-b06. There are the following limitations under IBM JDK 1.4.2: 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: * Highlights * Other Key New Capabilities * New and Enhanced Actor Libraries * New demonstrations * Additional features * Bug fixes Highlights * Dynamic Dataflow: HanoiTower (see also Eratosthenes, IfThenElse, Loop, OrderedMerge, RandomWalk) In dynamic dataflow (DDF) models, actors are fired in response to available input data. The schedule is dynamic and data dependent, and actors can change their production and consumption rates in each firing. Unlike synchronous dataflow, the DDF model of computation is Turing complete, and questions of deadlock and boundedness are undecidable. The HanoiTower example exploits this to give an algorithmic solution to the well-known towers of Hanoi problem. * Modeling of hybrid systems: NewtonsCradleComplicated. Hybrid systems are a special case of modal models where finite-state machines (FSMs) are combined with the continuous-time (CT) models to get mixed continuous-time and discrete-event models. The HyVisual package is a subset of Ptolemy II that includes the FSM and CT domains and libraries that support the design of hybrid systems. Version 5.0 introduces significant rework of the hybrid systems modeling infrastructure to have more complete and predictable semantics, as described in the paper "Operational Semantics of Hybrid Systems". The NewtonsCradleComplicated example illustrates this with a model of a physical system that has simultaneous events. * Stochastic hybrid systems: IncreasingRatePoisson (see also HysteresisWithRandomDelay, Brownian ). Stochastic hybrid systems add random behavior to continuous-time models mixed with discrete events. The IncreasingRatePoisson models spontaneous mode transitions governed by a Poisson process. The HysteresisWithRandomDelay example uses similar spontaneous mode transitions to model random delay in mode transitions. The Brownian example models a stochastic differential equation describing a random walk process. * Heterochronous Dataflow: Fibonacci (see also Merge). Heterochronous dataflow (HDF) is an extension of synchronous dataflow (SDF) that permits dynamically changing production and consumption patterns without sacrificing static scheduling. In SDF, the production and consumption patterns of an actor are constant. In HDF they are allowed to change between iterations of the HDF schedule. Modal models can be used to change these patterns. Although HDF can express many data-dependent computations that cannot be represented by SDF, it is not Turing complete. Consequently, deadlock and boundedness remain decidable. The Fibonacci example uses this mechanism in a clever way to extract a Fibonacci sequence from a counting sequence. Other Key New Capabilities * Unbounded model time: LongRuns Version 5.0 introduces a new Time class that represents model time in a manner that has a specified resolution and unbounded growth potential. Any two time values that are within the specified resolution are treated as equal. Moreover, time can increase forever without concern for loss of resolution or overflow. The LongRuns example is a discrete-event model that can be run forever, in principle, without (significant) growth of memory requirements and without loss of (internal) precision in model time. The precision of time representations is given by a director parameter whose value is shared across all directors in a model (see SharedParameter). * Synchronous Reactive Modeling: GuardedCount. The synchronous/reactive (SR) domain, which is inspired by the synchronous languages Esterel, Lustre, and Signal, realizes a concurrency model where actors react instantaneously and simultaneously at ticks of a logical clock. Version 5.0 introduces a richer set of actors for use with this domain, as well as a bug fix permitting SROptimizedScheduler to be used inside a composite actor. The GuardedCount example illustrates some of these new capabilities. The new actors are: + Current + Default + EnabledComposite + Pre + When * Nondeterministic merge in Process Networks (PN): NondeterministicMerge. The PN domain now supports a NondeterministicMerge actor, which merges two incoming streams nondeterministically. This new actor should be used with caution, since determinism is one of the key features of PN. Use of this actor is risky because any given execution is only representative of the possible executions. Nonetheless, this offers a considerable increment in expressiveness. * New Parameters: A number of new parameters have been introduced. The DoubleRangeParameter limits the range and precision of a double-valued parameter, and is supported in the user interface by providing a slider by default in parameter editing dialogs. The FilePortParameter is used by actors to specify a file or URL using both a parameter and a port. The user interface supports this by offering a file browser dialog by default when editing this parameter. The SharedParameter is a parameter whose value is constrained to be identical to a suite of other instances of SharedParameter in the same model. This parameter is used, for example, to handle seeds in random number generators, as illustrated for example in ColtRandom. * Higher Order Components: ExecDemos (see also IterateOverArray). The higher-order component capabilities of Ptolemy II continue to evolve. The ExecDemos model, when executed, starts a new Java virtual machine that then executes the RunDemos model, which runs all demos in a specified directory using full-screen mode. This illustrates how to use higher-order actors to control the lifecylcle of other Ptolemy II models. This example can be set up to automatically and repeatedly run demos unattended by following the instructions in the README.txt file. The new higher-order actors include: + ApplyFilterOverArray + ApplyFunction + ApplyFunctionOverSequence + IterateOverArray * Graphics domain: SolarSystem (see also Helen). The graphics (GR) domain has been extensively revised to take better advantage of underlying capabilities in the Java 3D package. For example, the SolarSystem model illustrates transparency (see the rings of Saturn), and the Helen model illustrates texture mapping and movable viewer positioning. The following capabilities are now supported: + transparency + texture mapping + shininess + colors use ColorAttribute + more colors can be set + settable resolution + wireframe option for shapes + flat facets option for shapes + run-time changes of parameter values + parameters in the Text3D actor + movable viewer position New and Enhanced Actor Libraries A number of new and enhanced actor libraries are included in version 5.0. You may also wish to refer to the ptolemy.actor.lib package, where most of the domain-polymorphic actors reside (domain-polymorphic actors are those that can be used in more than one domain). * New generic actors: + Sequence * Random number generators: ColtRandom. A new library of random number generators, developed jointly with David Bauer and Kostas Oikonomou from AT&T Research, is based on the popular Colt "Open Source Libraries for High Performance Scientific and Technical Computing in Java." Colt is described at http://hoschek.home.cern.ch/hoschek/colt/. The library supports many commonly used probability distributions and provides systematic management of seeds and random number generation techniques. * New discrete-event actors: + NonInterruptibleTimer + Register * Communications library: The communications library includes a number of new actors: + HuffmanBasic + HuffmanCoder + HuffmanDecoder + LempelZivCoder + LempelZivDecoder New Demonstrations * New Continuous Time demos: + Brownian + Continuous Clock + Hierarchical Execution + Hysteresis + HysteresisWithRandomDelay + HysteresisWithRandomLosses + IncreasingRatePoisson + Level Crossing Detector Detects Glitches + Level Crossing Detector with Different Detecting Directions + Newton's Cradle + Newton's Cradle with Complicated Dynamics + Newton's Cradle with Nondeterministic State Macine + Poisson + Sampled Clocks + Satellite + Sticky Point Masses Modified Version + Triggered Continuous Clock + Vehicle 2 Vehicle * New Discrete Event (DE) demos: + Assembly Line + Hierarchical Model * New Dynamic Dataflow (DDF) demos: + Eratosthenes + Factorial + HanoiTower + IfThenElse + Loop + OrderedMerge + RandomWalk + RijndaelEncryption * New Heterochronous Dataflow (HDF) demos: + AdaptiveCoding + Fibonacci + Hysteresis + Merge * New Giotto demos: + Multimode * New Graphics (GR) demos (requires Java 3D, see the GR domain): + Helen + SolarSystem * New Wireless demos: + SmartParking Additional Features * Java compatibility: Ptolemy II can be compiled under Java 1.5.0_01. Java 1.4.2_07 is preferred though. * Support changing the order of attributes, ports, etc., and support moving objects towards the foreground or background in the user interface. This is particularly helpful when editing icons, since the elements of the icon can now be sent to the background or brought to the foreground by right clicking and selecting the appropriate option. * Fractional math: A new library supporting arithmetic on fractions has been created. See: + FractionArrayMath + FractionMatrixMath * Added external source (URL) option to the Instantiate Entity command in the Graph menu. * Other New java files: + ptolemy/StateReceiver.java + ptolemy/actor/TypeOpaqueCompositeActor.java + ptolemy/actor/gui/CompositeActorSimpleApplication.java + ptolemy/actor/gui/PasswordAttribute.java + ptolemy/actor/gui/QueryUtilities.java + ptolemy/actor/lib/StringConst.java + ptolemy/actor/lib/UnaryMathFunction.java + ptolemy/actor/lib/image/ImageTableau.java + ptolemy/actor/util/DFUtilities.java + ptolemy/caltrop/actors/AbstractCalInterpreter.java + ptolemy/domains/ct/kernel/solver/ExplicitRK45Solver.java + ptolemy/domains/fsm/kernel/NonStrictFSMDirector.java + ptolemy/kernel/util/Moveable.java + ptolemy/moml/filter/GRColorChanges.java + ptolemy/vergil/kernel/attributes/AbstractTextAttribute.j ava + ptolemy/vergil/kernel/attributes/AttributeExpressionAttr ibute.java + ptolemy/vergil/kernel/attributes/AttributeValueAttribute .java + ptolemy/vergil/kernel/attributes/IDAttribute.java + ptolemy/vergil/toolbox/MoveAction.java Bug fixes * Fixed "Restore Defaults" when actors and directors use the three argument constructor for parameters. * Previously, if a class definition were to show the name of ports, there was no way to turn this off (the attribute _showName) could not be removed. Now, marker attributes such as _showName are boolean valued parameters, so they can be turned off by overriding their value. * Fixed long standing bug in copy where objects are represented in the wrong order in the exported MoML. * Fixed some subtle bugs in ModalModel, where changes to input/output status and ordering of ports were not properly reflected in the mirror ports. * A number of potential deadlocks have been fixed: + deadlock while dragging actors during a run. + deadlocks in PN when exceptions occur in the model. Backward Compatibility Most models developed under Ptolemy II 1.0.1, 2.0.1, 3.0.2, 4.01 or HyVisual 2.2-beta an Hyvisual 3.0 should run under Ptolemy II 5.0 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 Ptolemy II 3.0.2 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. - --end-- _Christopher Christopher Brooks (cxh at eecs berkeley edu) University of California Programmer/Analyst Chess/Ptolemy/Trust US Mail: 558 Cory Hall #1770 ph: 510.643.9841 fax:510.642.2739 Berkeley, CA 94720-1770 home: (F-Tu) 707.665.0131 (W-F) 510.655.5480 (office: 400A Cory) ---------------------------------------------------------------------------- Posted to the ptolemy-hackers mailing list. Please send administrative mail for this list to: [EMAIL PROTECTED]