Ptolemy II 6.0.1 is available for download from
http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII6.0
Ptolemy II 6.0.1 downloads include:
- A Windows Installer
- Source code in either Windows or Unix format
- A Web Start version
- An Applets version
Major Changes between Ptolemy II 6.0.beta and 6.0.1:
- The design document has been updated (The Ptolemy Pteam)
- Codegen has been updated to reflect bug fixes and new work
(Gang Zhou, Man-kit Leung, Vinayak Nagpal)
- Viptos has had a few bug fixes and documentation updated.
We expect to do a separate Viptos release shortly. (Elaine Cheong)
- The FSM GUI has been updated (Edward A. Lee)
Bug Fixes between Ptolemy II 6.0.beta and 6.0.1:
- On the Mac, connecting to relations and FSM states works
(Many thanks to Dan Higgins)
- IterateOverArray: problem with empty arrays
(Many thanks to J.S. Senecal)
- RecordUpdater: Fix bug with type constraints when input port type is
fixed.
- SubscriptionAggregator: problem when changing relation names
(Many thanks to Ray Cardillo and his team)
- Some tweaks of the nil token facility
- SDFScheduler now has a clone() method, making it safer in a
multithreaded environment (Gang Zhou, Ray Cardillo and his team)
- BasicGraphController no longer throws a NullPointerException
(Elaine Cheong)
- BasicGraphFrame: GUI cut and paste issue solved.
- RunnableGraphController: set the message handler context properly
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.
_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]