User Tools

Site Tools


changelog:workcraft_2_series

Changelog for Workcraft 2 Series

20 June 2014

Usability improvements

  • Additional checks of file existence and readability before attempting to open or import it. If a file cannot be open an error message explains the reason for this.
  • Selected portion of a model can be copied as XML to system-wide clipboard for debug purposes. This feature can be switched on/off in Edit→Preferences..→Editor→Debug clipboard).

Model and tool plugins

  • Dataflow Structures plugin
    • Use of coloured tokens to distinguish between the pipelined bursts of activity. Source registers generate tokens of changing colours which mix-up while propagating through the pipiline.
    • Cycle column is populated with information in the cycle analysis table.
  • Signal Transition Graph plugin
    • Verification of consistency, output persistency, USC, CSC and normalcy by using specialised MPSat command line parameters.
    • Verification of conformation (interface conformance) property using a specially generated Reach expression for Mpsat.
    • Transformation tool for making selected places implicit or explicit. If selection is empty, then the transformation is applied to the whole model.
    • Transformation tool for mirroring signals - inputs become outputs and vice versa.
    • Signal names and types can be modified in the ProperyEditor as properties of a model when no nodes are selected.
  • Conditional Partial order graphs
    • Removal of a variable changes all associated conditions as if that variable was set to 0.
    • Variable state can be toggled through one-zero-unknown states by double-click.
  • Digital Circuit plugin
    • Verification of a circuit with the environment STG for conformation, deadlocks and hazards. The environment STG can be selected in the model property by pointing to a .g file or STG work.
  • Petri Net plugin
    • STG-specific verification tools are removed from Tools→Verification menu
    • Support for non-STG reachability analysis mode of MPSat is added

Fixes and technical stuff

  • The Show contacts global option is respected now by the Digital Circuit model. The “Show arrow” global option is removed as the same effect can be achieved by setting Arrow size to none on all connections.
  • Dot parser is extended with handling of NUMBER tokens, so both the old and new dot formats are recognised.
  • Fix for incorrect import of .g files - transition instances were forced into auto-generated values.
  • Allow connecting nodes on any levels (previously the nodes of the higher than the current level were not accessible).
  • Fix for inconsistent type of newly created STG transitions when the type of existing transitions with the same name was changed.
  • Forbid multiple arcs between transitions, thus avoiding implicit places with the same name.
  • RenderedText and RenderedFormula classes are extended with 2D offset property, independently for X and Y coordinates, to allow correct positioning of labels associated with oblong VisualComponents.
  • Support for copy-paste in nested groups.
  • Fix for drawing of arcs and labels in CPOG plugin.
  • The pattern for STG dummies is restricted to forbid + and - in their names.

16 Jan 2014

Usability improvements

  • We started implementing a help system. Currently only three HTML documents are included in the Help menu: Tips and Tricks, SCENCO plugin and REACH language. The latter is also available directly from the Tools→Verification→Check custom property (punf, MPSat) dialogue (a front-end to the Mpsat tool).
  • The scripts run.bat and run.sh are renamed to workcraft.bat and workcraft respectively. This is to enable running Workcraft by typing workcraft in the command line (provided its directory is added to the PATH environment variable).
  • Performance improvements for model rendering and Property Editor updates.
  • Visual improvements for group rendering
    • Group boundary calculation takes into account labels and names of children components.
    • Drawing of the arcs is postponed until all the children vertices of the same parent are visualised (useful for non-transparent groups).
    • Groups are made transparent in SON and CPOG plugins.

Model and tool plugins

  • Signal Transition Graph plugin
    • Clean up of transition properties.
    • Global settings for colours of input, output, internal and dummy transitions.
  • Digital Circuit plugin
    • Irrelevant properties are hidden in the Property Editor.
  • Dataflow Structures plugin
    • Cycle analysis tool for visualisation of causes for the limited throughput.
    • Wagging tool for improving the throughput.
    • Contraction tool for removal of selected components.
  • Conditional Partial Order graph plugin
    • Enable batch edit of conditions.
    • Graph statistics tool for the whole CPOG or its individual scenarios.
  • Signal Transition Graph plugin
    • Clean up of transition properties.
    • Global settings for colours of input, output, internal and dummy transitions.
  • Digital Circuit plugin
    • Irrelevant properties are hidden in the Property Editor.
    • Improved rendering of the circuit contacts.
  • Improvements of generic simulation tool
    • Possibility to merge the branch with the trace.
    • Generation of random traces.

Fixes and technical stuff

  • Run-scripts are corrected to better support white-spaces in the path to Workcraft directory.
  • log4j.properties default configuration is added to avoid warning messages from log4j logger.
  • Cp1252 encoding is removed form the run-scripts as it was breaking the UTF8 compatibility.
  • The GatePlugin project is removed as it is superseded by the CircuitPlugin project.
  • The Workflow project is removed as the workflow idea did not get developed.
  • The Workcraft project is renamed into WorkcraftCore to avoid a conflict with the workcraft shell script.

8 Nov 2013

Usability improvements

  • The view can be panned in tree ways now (the last two are particularly convenient for Macbooks):
    • middle mouse button
    • Ctrl + right mouse button
    • Ctrl + arrow keys
  • Warning messages in node generation and connection tools
    • A warning message is issued when a new node is attempted on top of just created one without moving the mouse.
    • A warning message is issued if a self-loops is attempted without moving the mouse out of the node first.

Model and tool plugins

  • Initial support for Xmas circuits

Fixes and technical stuff

  • The scripts run.sh and run.bat are tided up.

31 Oct 2013

Usability improvements

  • Group navigation and selection improvements (thanks to Ashur for advise)
    • Double click inside a group to enter it (same action as Page Up key)
    • Double-click outside a group/outside the current group to go one level up (same action as Page Down key)
    • Press Esc to resets selection
    • Choose Edit→Select all (or press Ctrl+A) to select all components
    • Choose Edit→Inverse selection (or exclamation mark) to inverse the selection
    • In node generator tools only left-click is allowed now (right-click and middle-click are masked)
  • Four small toggle-buttons are added in the top-left corner (between the horizontal and vertical rulers). These buttons provide a quick control for visibility of the grid, the rulers, components names and labels. They are shortcuts to corresponding properties of the Edit→Preferences dialogue.
  • Escape and Enter keys work in New work dialogue now as alternatives to OK and Cancel buttons respectively.

Model and tool plugins

  • Improvements of the Policy Net plugin.
    • New tool for automatic bundling of maximal steps.
    • New tools for deadlock checking taking the bundles into account.
    • Improved visualisation of bundles by filling the bundled transitions with the same colour (generated in Lab colour space for similar intensity of different bundles) and by connecting the bundled transitions with a minimal spanning tree (thanks to Arseniy for inspiration!)
    • Improved consistency between visual and mathematical bundles and localities.
  • New global tool for copying unique node names into their labels (useful for debugging).

Fixes and technical stuff

  • Fix for visualisation of inverting arcs in Dataflow Structures plugin.
  • Fix for editing Set and Reset functions of Digital Circuit plugin in the Property Editor.
  • CPOGs plugin returns an informative error message if there is fewer than 2 scenarios to merge (thanks to Andrey!).
  • Restored the set and reset properties of function components in Digital Circuit plugin.

15 Oct 2013

Usability improvements

  • Improved property editing (thanks to Arseniy for all the help!) Now the Property Editor has three mods:
    1. One item is selected - its properties are displayed. This was the standard behaviour of the previous Workcraft versions.
    2. A group of items is selected - a “combined” list of properties is displayed. Those properties which have the same name and class are combined under one editor item and its modification will propagate too all selected components of relevant class. If the initial value of the combined property cannot be agreed between the selected components an empty grey box is shown.
    3. No elements is selected - a model-specific properties are displayed. This can be seen in the Policy Net plugin where a list of bundles is shown with a possibility to edit their names, colours and the list of bundled transitions.
  • Selection-related operations (grouping-ungrouping, current group change, rotation and flipping, etc) are moved from the Object menu into the Tool controls panel. This decision was made because those operations are only meaningful while the selection tool is active, and the menu had to be disabled in all other tools.
  • Improved global settings (Edit→Preferences)
    • Show/hide rulers, grid (under Common/Editor)
    • Default label and name visibility, position and colour (under Common/Visual)
    • Default colours for textual notes (under Common/Comment)

Model and tool plugins

  • Structural Occurrence Net plugin is added (thanks to Bowen!) It is still in very initial development stage, but already supports the following features: capturing and simulating SON models with sync/async communication, SON-groups and super-groups, and checking for few structural properties.
  • Conditional Partial Order Graphs plugin is improved (thanks to Stan and Andrey!) Now the Tool control panel of the Selection too has a text editor for entering the graphs in algebraic form. The parser accepts C-style names for the vertices and supports parallel composition (+ or space) and sequential composition (→). Parenthesis can be used for grouping sub-graphs, e.g. (a b)→(c d). See http://workcraft.org/scenco for details.
  • PolicyNet plugin is added. It is an initial attempt to model Petri nets with bundled execution semantics. Currently plugin supports the following features: bundling transitions (visualised by different colours) and forming localities (groups); extraction of underlying Petri net; simulation and deadlock checking (using the underlying Petri net).

Fixes and technical stuff

  • Property declaration has been changed to a safer way. Instead of passing the names of get and set methods as strings we added abstract getter and setter methods to the PropertyDeclaration (abstract) class. When creating a new property you need to implement these two methods (e.g. by explicitly calling those set and get methods). All existing property declarations have been modified (found two types in the names of previously used get and set methods!).
  • The PropertyDescriptor interface has a new method “boolean isCombinable()” which determines if the property should be shown when a group of visual components is selected.
  • Textual properties of VisualComponents (user-defined label and unique name) are generalised in RenderedText class. Visualisation of labels and names is implemented in drawLabelInLocalSpace and drawNameInLocalSpace methods- use them in the inherited classes.

17 Sep 2013

Usability improvements

  • Configuration of the SCENCO tool for optimal CPOG encoding under Edit→Preferences
  • Improved copy-paste, especially in STG plugin (now the instances of transitions are changing rather than the name of the whole transition; all the other plugins use old conflict resolution mechanism and add unique suffix to conflicting node names).
  • Informative error handling for deadlock and semimodularity checking in Digital Circuit and Dataflow Structures plugins.
  • Newly generated workspace entries are automatically opened in the editor.

13 Sep 2013

Usability improvements

  • Long awaited support for copy-paste between the models of the same type (many thanks to Arseniy for all the help!).
  • Added possibility to merge a work file into the current model (File→Merge work).
  • Main menu is populated with copy-paste (see Edit menu) and object modification (see Object menu) actions.
  • Minor changes in hotkeys: ungrouping is Ctrl+Shift+G (was Ctrl+U) and redo is Ctrl+Shift+Z (was Ctrl+Y). Hotkeys for some rarely used actions (such as selection rotation and flipping) are also changed - see Object menu for new shortcuts.
  • Selection state and current group level are being saved into the work files and restored on loading a work.
  • Visual settings are cleaned up from unused and common settings.

New models and tools

  • Dataflow Structures plugin is implemented with the following features:
  • Spreadtoken registers and logic with possibility to model early evaluation.
  • Control registers with AND, OR and C-element synchronisation semantics between the “true” and “false” tokens.
  • Special arcs for inversion of the control tokens (property of the connection - depicted with bubbles).
  • Push and pop registers for modelling dynamic behaviour (controlled by “true” and “false” tokens).
  • Counterflow registers and logic elements with optional early evaluation and early cancellation.
  • Implicit conversion between spreadtoken and counterflow semantics.
  • Both simulation and verification are through the underlying circuit Petri nets.
  • Tools are added to Dataflow Structures and Digital Circuit models for separate deadlock and semimodularity checks.

Fixes and technical stuff

  • Fix for broken import of .g files (affected the parallel composition and dummy contraction with Petrify, as well as CSC conflict resolution using MPSAT).
  • Correct positioning of new polyline control points inside a group.
  • Improved undo-redo granularity (grouping and ungrouping, flipping and rotation, copy-cut-paste, etc).
  • All the broken unit tests are corrected.

1 Aug 2013

Usability improvements

  • Undo/redo functionality (still buggy in Circuit plugin).
  • Table of signal states in STG and Circuit simulation tool.
  • Visual improvements of the simulation tools (buttons layout and pictograms).
  • Comment tool to leave textual notes in the workspace (press N to activate the tool, double-click the dotted box to leave a note).
  • Separate tools for complex gate, generalised C-element, and technology mapping synthesis with Petrify.
  • Tool for untoggle the signal transitions (may be useful for interface to Mpsat which does not support signal~ notation).
  • Tool for CSC conflict resolution with Petrify.
  • Deadlock checking and reachability analysis tools made available in PetriNet plugin.
  • Fixed capacity property of Petri net and STG places.
  • Negative number of tokens is forbidden.
  • Improvements on STG plugin for creation of signal transitions (Shift modifier for input/output signals and Ctrl modifier for rising/falling transitions).
  • Library selection dialogue is removed and library parameter can be set Petrify preferences (Edit→Preferences…→External tools→Petrify→Additional petrify command line arguments). The path can be either absolute (e.g. -lib /usr/lib/petrify.lib) or relative to the workcraft2 directory (e.g. -lib tools/petrify.lib). The default value of this option is “-nosi -lib tools/petrify.lib” - it seems to work fine for my benchmarks.
  • Property editor updates its state with change of active editor.
  • Tab title refreshes after work renaming operation.
  • Workspace/External branch is expanded by default.
  • Dialogue closure (e.g. by pressing Esc) is handled properly.

Fixes and technical stuff

  • @VisualClass annotation is of Class<?> type instead of String - you will need to update your plugin source code to comply.