forked from plexil-group/plexil
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVersions
More file actions
457 lines (363 loc) · 18.7 KB
/
Versions
File metadata and controls
457 lines (363 loc) · 18.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
This file is a compendium of past release notes for PLEXIL distributions.
4.5 (in progress, plexil-4 branch)
This is a major evolutionary update, featuring improvements and fixes
throughout.
Packaging:
- Top-level Makefile's 'all' target builds most of what the default
target did previously. New target 'essentials' builds only
executables, translators, standard adapters and listeners, Plexil
Simulator, and Checker. New target 'tools' builds executables,
translators, adapters and listeners, Plexil Simulator, checker, and
Plexil Viewer. Default target is now 'tools'.
- Top-level Makefile no longer assumes gcc and g++ are the C and C++
compilers. Like most Makefile-based packages, the values of
environment variables CC and CXX are used. If these are not bound,
'cc' and 'c++' are used by default. The development team routinely
builds PLEXIL with a variety of gcc and clang (llvm) versions.
- Most, if not all, GNU autotools-generated files have been removed
from the Subversion repository. Likewise, most .plx files have been
deleted from the examples directories. Both are easily regenerated
when needed. Distribution tarballs will include the required
autotools files.
- This release incorporates pugixml version 1.7 and saxon9he release
9.7.0.8.
Core PLEXIL (XML) language and schema:
- New Any type, optional AnyParameters element in command and state
declarations
- New command handle value COMMAND_INTERFACE_ERROR, returned when an
interface adapter causes an error while processing a command
- Schema files now have DTD
Extended PLEXIL (XML) language and translator:
- Tolerance for the Wait operator now defaults to the requested delay
time (was 1 second)
- Translator now generates Core PLEXIL XML output without additional
formatting. This dramatically reduces the bulk of large plans. The
'xmllint' utility on most platforms generates formatted output
should it be required:
xmllint --format myPlan.plx > myPlan-formatted.plx
Standard PLEXIL (C-like) language and compiler:
- The compiler itself is now compiled to Java 1.6 bytecodes, to allow
use on legacy platforms
- Output now incorporates the <Any> type and <AnyParameters>
declarations added to the schema. We recommend you recompile any
Standard Plexil plans.
- Node-reachable semantics made consistent with executive's
- Optimization phase performs more optimizations
Executive core and Universal Executive:
- More potential "crasher" bugs and memory leaks fixed
- Many non-fatal errors that used to halt the executive now warn
- Run-time type errors now reported with "expected type X, but got
type Y" messages
- More plan errors detected at plan load time, so they won't crash
the executive
- Executive now parses and checks against global command and state
declarations at plan load time
- LibraryNodeCall nodes can now reference the called node in
conditions
- Executive working memory and plan parser stack usage reduced
Standard interfaces:
- Commanding via UdpAdapter made more robust
- Native time adapter made more robust - fixes missed-wakeup bug on
macOS
- New Launcher adapter allows plans to load and run other plans,
and query their status. See examples/launcher for a simple
demonstration.
TestExec:
- Initial states are no longer ignored when a LookupOnChange
references them.
Executive internals and user-defined interfaces:
- LookupNames interface configuration element adds TelemetryOnly
attribute; LookupNow for these names will not call the adapter's
lookupNow() method, but instead get values from the state cache.
- State cache now stores all values received via
InterfaceManager::handleValueChange(), whether or not the supplied
state has ever been looked up before. This helps support
TelemetryOnly.
- Typedefs Boolean, Integer, Real, and String have been defined in
the PLEXIL namespace. Interface code should use these in preference
to bool, int, int32_t, double, and std::string.
- Serialization and deserialization for PLEXIL data types has been
implemented. This will be the basis of a new inter-application
communication package in the next major release.
Other tools:
- There is a new 'analyzePlan' command line executable. It reads in a
plan file (and any referenced libraries), and prints a number of
statistics about that plan.
Plexil Viewer:
- The Viewer has been rewritten to support multiple plan windows at
once, consistent with the Universal Exec's ability to run multiple
plans simultaneously. As this is a work-in-progress, we appreciate
any reports of problems in the Viewer.
Examples:
- New Launcher adapter example in examples/launcher
- The RoboSim GoalSearch1 plan now actually reaches its goal!
4.0.1 (17 June 2015; SVN revision 4357 of the plexil-4 branch)
- The PLEXIL suite now builds "out of the box" on FreeBSD. Most tools
work correctly, however IPC is not yet working on FreeBSD.
4.0.0 (15 June 2015; SVN revision 4336 of the plexil-4 branch)
- Please see the README file for up-to-date build instructions.
- Executive core has been reimplemented for speed and memory safety.
- Real-to-Integer conversion functions added.
- Interfacing API has changed.
- Standard PLEXIL compiler now has optimization phase, performs 'peephole'
optimizations where possible.
- Extended PLEXIL now translates to smaller Core PLEXIL plans in many instances.
- Shell scripts plexil, plexilexec, plexiltest, plexilsim revised, with improved
checking for free TCP ports for Viewer.
- Plexil Viewer significantly improved.
- Plexil Viewer requires Java 8.
- Plexil Checker updated and significantly improved.
- Tests and examples updated, cleaned up.
3.0 (March 14, 2014; SVN revision 3336 of the plexil-3 branch)
- NOTE:
- Please see the README file for up-to-date build instructions.
- Please see the CAVEATS file, as this release has a bunch!
- Significant improvement of PLEXIL executive's performance (memory usage and speed).
- Revamped build system, now based GNU's autoconf/automake, to better support
cross-platform builds.
- Revamped directory structure of distribution
- Significant improvements to the Gantt Temporal Viewer
- Numerous miscellaneous bug fixes and enhancements.
2.5 (July 16, 2012; SVN revision 2851)
- Added ExitCondition to PLEXIL nodes. This provides a clean way to
deliberately terminate a plan. New outcome and failure type
variables were added to support ExitCondition. The new user syntax
and Plexilisp have been updated to match.
- Additional performance enhancements to the executive.
- Completely revised node state transition diagrams. The diagrams now
accurately reflect the exact behavior of the executive, which is also
its specified semantics.
- Assignment node execution and failure are better behaved. Failure
of an Assignment node causes the variable's previous value to be
restored (the old behavior was to assign UNKNOWN). Failing
Assignment nodes always take priority over any eligible Assignment
nodes on the same variable.
- Minor improvements to the InterfaceAdapter API.
- The PLEXIL_OPTIMIZED build flag is confirmed working. This flag
can be used to improve runtime performance for time-critical
applications. PLEXIL_DEBUG and PLEXIL_OPTIMIZED can be used
together for debugging purposes. See:
makeinclude/standard-defs.make
- Cleaned up a number of compiler warnings in the C++ source code.
2.0 (May 4, 2012; SVN revision 2762)
IMPORTANT NOTE: This release has several features that are not
compatible with 1.x based PLEXIL applications. 1.7.1 is the latest
version of PLEXIL available prior to 2.0. It reflects the state of
PLEXIL's SVN trunk prior to February 6, 2012, and is available on this
SVN branch:
https://plexil.svn.sourceforge.net/svnroot/plexil/branches/plexil-1.7.1
Please note that the Core Plexil XML representation has not changed. Old
.plx files will continue to work unmodified in Plexil 2.0.
- Completely revised user syntax: simpler, much more compact. The old
syntax is no longer supported, however, at present you can compile
your Plexil code using Plexil version 1.x and run the output (.plx
files) in 2.0.
- Significantly faster Plexil executive, with major speedups in XML
parsing (see below), construction of internal representations, and
execution proper.
- The TinyXML parser has been replaced by pugixml, which proved 20x
faster in our testing. This was a major contributor to the improved
performance of the executive.
- New, simpler interfacing APIs.
- The Plexil executive's behavior conforms more closely to its
formal specification.
- New arithmetic functions: MOD, MAX, MIN
- Numerous bug fixes and enhancements throughout system.
=================================================================================
1.7 (September 14, 2011; SVN revision 2471)
- Added support for Android operating system
- refactored README file, added Versions file
- new Gantt-style temporal viewer for executed plans
- new UDP-based adapter for external communication
- signficant code refactoring and performance enhancement
- numerous bug fixes, minor enhancements, and better
robustness throughout system
1.6 (December 2010, SVN revision 1959)
- Plexil executive and interface
* New "utility" interface adapter, which introduces built-in commands to
PLEXIL. The first such commands are for printing from a plan (print, pprint).
* Variable updates from command return values are now published (e.g. display
in Plexil Viewer)
- Plexil Viewer:
* fixed and enhanced the Configuration Dialog
* added an interface for selecting library plans
* misc fixes and enhancements
- Plexilisp:
* added the SynchronousCommand (synchronous-command) form
* revised the Wait form, adding a tolerance parameter
* fixed bug in handling of newlines in strings
- Plexil XML schemas
* Added Wait and SynchronousCommand (user syntax to come in next release)
* fixed XSD schemas to work with xmllint
* added file locator attributes to aid in source debugging
* added Relax NG versions of some schemas
- Plexil syntax
* A major revision of Plexil's user syntax is largely implemented in this
release, though is still in a refinement and testing phase and not yet
documented or officially supported.
1.5 (October 2010)
- Extensively revised user manual
* PLEXIL is now presented as a language of high level Actions, of which Core
PLEXIL (nodes) is the executable subset. I.e. PLEXIL is now Core PLEXIL
plus syntactic extensions (formerly called Extended Plexil). There are no
changes to Core PLEXIL, and existing Plexil plans are fully compatible.
* Changes to long-standing PLEXIL nomenclature:
"Universal Executive" is now "Plexil Executive"
"Extended PLEXIL" is now just "PLEXIL"
"LUV" is now "Plexil Viewer"
"Standalone Simulator" is now "Plexil Simulator"
* Reorganized; many chapters expanded and corrected
- New and refactored set of commands for Plexil related applications:
* plexilexec starts the Plexil Executive, replacing run-ue
* plexiltest starts the Test Executive, replacing run-te
* plexilsim runs the Plexil Simulator in one step
* plexil (formerly the Plexil translator) replaces luv
* plexilc replaces the former plexil and is an all-purpose translator:
- translates (standard) Plexil into XML
- translates Test Executive simulation scripts into XML
- translates Plexilisp files into XML
- Enhancements to the Plexil Viewer
* new Configuration Dialog to select Plexil application and its parameters
* new Plexil logo
- Plexil syntax improvements:
* all-purpose Lookup form obviates need for LookupNow, LookupOnChange
* OnCommand, OnMessage forms more consistent with other actions
* uniform usage of colons in action bodies
- Rewrote Plexil Simulator internals, fixing Mac OS issues
- Plexilisp improvements:
* Sequence forms can now contain any attributes, and also structured comments.
* In command-with-return, reversed order of state name and return variable.
- Greatly revised examples
* New small, complete Plexil Executive application in src/apps/sample
* new multiple-executive plan examples in plexil/examples/multi-exec
* existing examples revised to use high-level actions where possible
- New file extension requirements for Test Executive simulation scripts
* Source files: .pst
* Translated (XML) files: .psx
- Numerous misc. fixes and enhancements throughout system
1.2.1 (August 2010)
- IPC-related applications (Robosim, Standalone Simulator, and any
user-created applications that use IPC) now work in Mac OS
- Enhanced PLEXIL viewer (LUV):
* Array variable assignments now shown; dynamic and expandable views
* Current port displays in bottom right corner
* Misc. minor redesigns and internal refactorings
- Performance enhancements yielding a much faster executive
- Revised startup scripts (new command line options)
- 'Try' form will no longer hang if no child succeeds
- New 'summarize-plexil' utility for producing a compact
textual representation of a Plexil XML file
- Misc enhancements, fixes, and refactorings throughout system
1.2 (June 2010)
- Support for Ubuntu Linux
- LUV (execution viewer) enhancements
- multiple instances possible, one for each executive
- automatically started, when requested, from run-ue and run-te scripts
- Extended PLEXIL:
- new all-purpose "Lookup" form
- Skip Condition now handled correctly in sequences
- OnCommand, OnMessage fully integrated
- Allow string expressions, and arrays, as command arguments
- Cleanup of TestExec regression tests
- Cleanup of XML schemas
- Revision of DriveToSchool example
- Miscellaneous fixes throughout system
- Reference manual revision
1.1 (April 2010)
- Added signficant support and language features for inter-executive
communication, with a new chapter on this feature. In particular, executives
can send (and respond to) messages, commands, and state lookups amongst each
other.
- Greatly simplified the interfacing of the PLEXIL executive with external
systems, with a new chapter on this. In particular:
* universalExec executable replaces most UE application executables.
* Interface adapters and exec listeners can be loaded dynamically from shared
libraries at runtime, and no longer need to be built into the executable.
* Interface manager now has getProperty() and setProperty() to allow
communication of arbitrary data between the application, adapters, and
listeners.
* Exec listeners and exec listener filters' constructors are now called with
a 2nd argument, a reference to the interface manager.
- The LCM (Lightweight Communications and Marshalling) package has been
completely replaced by CMU's IPC (Inter-Process Communication). The
applications that used LCM (standalone simulator, Robosim) now use IPC.
- The 'run-ue' script now runs 'universalExec' and a new 'run-te' runs the Test
Executive. Both can optionally run the PLEXIL static checker first.
- LUV can run either the TestExecutive (default) or UniversalExec.
- New Plexilisp Emacs menus (courtesy of Robert Goldman at SIFT).
- Numerous miscellaneous fixes, enhancements, and code refactorings across the
entire system.
- Much revision of the reference manual.
1.0
- Revamped source code directory structure.
- Replaced 'jam' with 'make' as the system's build tool.
- Added a new application IpcExec, allowing multiple communicating executives.
- Added CMU's "IPC" system to support IpcExec, and future planned applications.
- Numerous small fixes and enhancements throughout the system.
CAVEATS:
- Standalone Simulator may not work in Mac OS and some
versions of Linux, due to errors in the LCM library. LCM
is in the process of being replaced by IPC.
- A PDF version of the user manual, normally included in the distribution,
is not available; we are seeking a means to create one from the new wiki
system used by Sourceforge.
0.91
- Deprecated Function Call node.
- Added 'jam' executables in plexil/bin
- Added support for testing node iteration outcome.
- Extended Plexil: added Concurrence form; bug fixes
- Plexilisp: added Wait, Concurrence; action forms can now contain
nodes or node bodies; empty sequences are properly supported
- XML schema updates
CAVEATS:
- Standalone Simulator may not work in Mac OS and some versions of
Linux, due to errors in the LCM library. The problem is being worked on.
0.90
- New application framework, revised external interfaces, and simple
test application using both. See the app-framework directory. The
existing external interfaces are unchanged from the previous release,
but are deprecated.
- Standard Plexil no longer supports hyphenated variable names. Hyphenated
variables may be supported in a future release.
- Standalone simulator now supports telemetry and has a test executive.
- New Extended Plexil language: schema, translator, examples.
- Plexilisp has several new constructs and generates Extended Plexil
- Refactoring of Plexil schemas.
- New enhancements and bug fixes to the Luv Viewer.
- Top level Makefile and simplified build and installation instructions.
- Numerous small enhancements and bug fixes throughout code base.
0.84
- new component: a standalone simulator for PLEXIL.
- new component: static checker for PLEXIL.
- added global declarations (for static plan checking) to schemas and
Plexilisp
- additional workshop slides
- easier setup for Plexilisp
- misc bug fixes and enhancements
0.83
- critical bug fix for event processing
- the Node Priority clause has been deprecated. It had semantic
issues, and is not used in any known PLEXIL applications. Multiple
assignments to the same variable occuring simultaneously results in a
runtime error. At this stage, the Priority clause has only been
removed from documentation and tests. It is still implemented, as an
undocumented and unsupported feature. It may someday be removed from
the implementation without notice. A better solution may be designed.
- more documentation regarding concurrency in list nodes
- added PLEXIL workshop presentations
- significant revision of several UE reference manual chapters
- PDF manuals now included in distribution
0.82
- refactored universal-exec/Exec/test,
creating new 'bin' and 'apps' directories
- slightly simplified installation
- added RoboSim example application and plans
- reduced response time to external world events
- support for 64-bit architectures
- numerous minor fixes and enhancements
0.81
- new syntax and translator for simulation scripts
(standard-plexil/plexilscript)
- numerous minor fixes and enhancements
0.80
- first Sourceforge release