Ptolemy II 6.0.beta is available for download from http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII6.0
Ptolemy II 6.0.beta downloads include: - A Windows Installer - Source code in either Windows or Unix format - A Web Start version - An Applets version Changes between Ptolemy II 6.0.alpha and 6.0.beta: - Professor Lee made a number of performance improvements. In particular, when a model is run a second time, the run time is often much faster because type checking need not always occur. - CT now has a Brock/Ackerman demo - Wireless now has a Link Visualization demo - Code cleanups using the Eclipse cleaner - Typos have been fixed We intend to ship Ptolemy II 6.0 in early December. That release will include updated documentation. Ptolemy II 6.0 Highlights * Ptolemy II C Code Generation Primary Developers: Jackie Leung, Gang Zhou, Ye Zhou, Edward A. Lee, Christopher Brooks Ptolemy II can now generate C code for SDF, FSM and HDF models. This new code generator consists of actor templates (called helpers) that contain C code stubs that are stitched together. Only a subset of actors have helpers, so only a subset of models can be converted to C. Creating new helpers is fairly easy though. The code generator has been written to be easily extensible to languages other than C. * The Rendezvous domain: Primary Authors: Thomas Huining Feng, Edward A. Lee In the Rendezvous domain in Ptolemy II, each actor executes in its own thread of control, and communication between actors is by rendezvous. If an actor is ready to send a message, it blocks until the receiving actor is ready to receive it. Similarly if an actor is ready to receive a message, it blocks until the sending actor is ready to send it. This domain supports both conditional and multi-way rendezvous. In conditional rendezvous, an actor is willing to rendezvous with any one of several other actors. In multiway rendezvous, an actor requires rendezvous with multiple other actors at the same time. When using conditional rendezvous, the choice of which rendezvous occurs is nondeterministic, in general. The model of computation is based on the Communicating Sequential Processesmodel first proposed by Hoare in 1978. Rendezvous-based communication is also known as synchronous message passing, but we avoid this term to avoid confusion with the SR (synchronous/reactive) domain. * Viptos Visual editor, code generator, and simulator for TinyOS programs. Primary Author: Elaine Cheong Viptos is an interface between TinyOS and Ptolemy II that provides a graphical user interface for TinyOS developers. Users can create TinyOS programs as block diagrams and use Viptos to generate code for any TinyOS-supported target hardware. Users can also simulate heterogenous networks of TinyOS-based nodes within Viptos. Viptos includes a tool to make existing libraries of TinyOS/nesC components available as graphical blocks (nc2moml), and another tool to transform existing TinyOS/nesC applications into Viptos models (ncapp2moml). For Viptos only downloads, see http://ptolemy.eecs.berkeley.edu/viptos * Distributed SDF Domain using Jini Primary Author: Daniel Lazaro Cuadrado (Aalborg University). The Distributed-SDF domain is an extended version of the existing SDF Domain that performs the simulation in a distributed manner using Jini. New demonstrations * New Communicating Sequential Processes (CSP) demonstrations: + Barrier Synchronization + Resource Management + Write Regulator * New Continuous Time (CT) demonstrations: + Brock Ackerman + Cart with Pendulum (Requires Java 3D) + Newton's Cradle with Perfectly Inelastic Collisions (Requires Java 3D) + Newton's Cradle with Configurable Parameters (Requires Java 3D) + Newton's Cradle with Balls Having Different Masses (Requires Java 3D) + 3D Pendulum (Requires Java 3D) * New Discrete Event (DE)demonstration: + Queue and Server (M/M/1 Queues) * New Heterochronous Dataflow (HDF) demonstrations: + AdaptiveCoding (With codegen in Ptolemy II 6.0) + Hysteresis (With codegen in Ptolemy II 6.0) + Merge (With codegen in Ptolemy II 6.0) * New Rendezvous demonstrations: + Barrier Synchronization + Resource Management + Sequencing + Write Regulator * New Synchronous Dataflow (SDF) demonstrations: + Case (New in Ptolemy II 6.0) (with codegen) * New Process Network (PN) demonstrations: + Remove Nil Tokens Other Key New Capabilities * CaseDirector, Primary Author: Edward A. Lee The Case actor has been further developed so that it is easier to build models that execute one of several refinements. * A Token can now be "nil", which means that the data is missing. If Token.nil() is called, it indicates that a token is a nil or missing token, which contains no data. Nil or missing tokens are common in analytical systems like R and SAS where they are used to handle sparsely populated data sources. In database parlance, missing tokens are sometimes called null tokens. Since null is a Java keyword, we use the term "nil". The PN Remove Nil Tokens demo illustrates use of nil tokens. New and Enhanced Actor Libraries A number of new and enhanced actor libraries are included in version 6.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: * DelayStart * FireAccumulator * RemoveNilTokens * Triangular New Communicating Sequential Processes (CSP) actors: * Barrier * Buffer * ResourcePool New Discrete Event (DE) actors: * UnionMerge * Wire Additional Features * Actor and model documentation system Primary Authors: Edward A. Lee, Christopher Brooks. Actor and model documentation is now displayed using a custom widget. The documentation for an actor or model can be edited by the user. To view the documentation for an actor, right click on the actor and select Documentation -> Get Documentation. This functionality is implemented using DocTableau and other classes in vergil.actor and the PtDoclet doclet. * Relation Groups Relations mediate connections between ports. For flexibility, particularly with visual syntaxes, the Ptolemy II abstract syntax permits any number of relations to be involved in any one connection. Relations may be linked to other relations. Any two relations that are linked are said to be members of the same relation group. Specifically, a relation group is a maximal set of linked relations. Semantically, a relation group has the same meaning as a single relation. The API of the Relation class, support linking and unlinking relations, and also provides a method to obtain a list of all the relations in a relation group. In a relation group, there is no significance to the order in which relations are linked, unlike the order in which ports are linked to relations. Also, unlike links between relations and ports, there is no significance to multiple links between the same relations. Any two relations are either linked or not linked. * CheckModelSize: about:copyright facility has been extended so that model screen size and screen location are checked. * PtolemyPreferences: A preference system for UI related preferences, including: + preference to specify link bend radius + preference to specify relation size + preference to show parameters * WelcomeWindow, WelcomeWindowTableau: An alternative start up screen infrastructure. * AbstractCase, MultiCompositeActor, MultiCompositePort, Refinement, RefinementPort, CTCaseDirector, CTCase, CTRefinement, CaseGraphFrame, CaseGraphTableau, Case: Used by the Case facility. * TokenSentEvent, TokenSentListener: Two listeners created by Oscar Barney to help with Kepler. * DataflowWithRates, DDFFactory, DDF, DataflowWithRatesActorInterpreter: Caltrop work by Jörn W. Janneck, and Steve Neuendorffer * ASTPtUnionConstructNode, UnionType, UnionToken: Support for the Union type * Precision: + Provide support for unsigned FixPoint values + Modify the way Precision is represented internally (sign, bits, exponent offset) + Provide 4 String representations of a given precision (including ability to parse and recognize the appropriate precision format) "3.2" (integer.fraction) "5/3" (length/integer) "2:-2" (vhdl) "5e-2" (length e exponent) FixPoint: + Provide "lossless" arithmetic operators. These operators will generate FixPoint results that "grow" if overflow occurs. + Provide quantized versions of these operators. Quantization is a parameter for each operator. Fixpoint and Precision work by Mike Wirthlin (Brigham Young University) * AbstractBranchController, BranchActor, ConditionalBranchActor, MultiwayBranchController: Support for CSP changes * HSDirector * HSFSMDirector * CachedSDFScheduler * IllegalOutputException, UnknownTokenException: Synchronous/Reactive rework * LibraryBuilder: Support for Kepler, added by Chad Berkeley. * Haiyang Zheng just enriched the exception handling capabilities in Ptolemy II... Currently, if you create an actor that implements the ExceptionHandler interface and put it into a model, then any exception that occurs when the model is executes gets delegated to that actor. The first such actor is a test actor that can be used to make regression tests that ensure that an exception is thrown. * ExecuteCommands, StreamExec: Code that executes subprocesses * DocEffigy, DocManager, DocTableau, CustomizeDocumentationAction, DocAttribute, DocViewerFactory, GetDocumentationAction, RemoveCustomDocumentationAction, ActorIndex NamedObjClassesSeen: Support for actor and model documentation * LinkManhattanConnector, PortConnectSite, PortTerminal, ActorNameIcon, NameIcon, VisibleAttribute, RotateOrFlipPorts: Vergil features such as controllable port orientation. * VergilInitializer: A class that may be called during startup. * New deadlock detection mechanism in process domains supporting multi-threaded actors * SDFDirector has a period parameter now, making it timed. and a synchronizeToRealTime parameters. * SDF scheduler runs faster * Workspace has wait(object, timeout) method, and DE uses it (some deadlocks prevented when using synchronizeToRealTime). * Miscellaneous user interface enhancements: + Decorative attributes properly go to background or foreground + Display name for parameters (need not match the name) + Multiport connections show ordering + Bus relations displayed better + Custom Icons can have a "dashArray" parameter, which creates dashed lines * Java compatibility: Ptolemy II can be compiled under Java 1.5.0_06 and Java 1.4.2_11. Java 1.5.0_06 is preferred though. Bug fixes * Fixed memory leaks in MoMLParser * Create hierarchy didn't work with classes * Undo didn't always work with classes * Couldn't drop a director (or anything containing a SharedParameter) into a class that already had an instance. * Relation groups didn't always work with hierarchy. * Paste of hierarchical models would mess up locations on the inside. * The highlighting of classes and of inherited elements is now opaque. They used to be translucent so that the highlights could compose even though they overlapped. However, if you print a model to EPS or PDF, the presence of translucent elements forces the rendition to be rasterized. This results is a major loss of quality... * Paste of relations not properly offset. _Christopher Christopher Brooks (cxh at eecs berkeley edu) University of California Programmer/Analyst Chess/Ptolemy/Trust US Mail: 558 Cory Hall #1774 ph: 510.643.9841 fax:510.642.2718 Berkeley, CA 94720-1774 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]