Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tla2dot

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tla2dot

  • 0.0.6
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source
[Up](../index.php) [Readme](README.html) [Releases](RELEASES.html) [Todo](TODO.html)

tladot - Utility to convert tlc/tlaplus state space to graphviz - $Release:0.0.6$

A utility to convert state space dump created by patched tlaplus TLC in TLA toolbox to graphviz dot format.

Usage

Obtain the patched TLC version

Clone github model

 git clone https://github.com/jarjuk/tla2dot

and change the working directory

cd tla2dot

Run Ruby bundler

The tool uses Ruby 2, and to have the required Gems installed run

bundle install

Running the patced TLC version to create state dump

The example below uses TLA model in files DieHard.tla, and DieHard.cfg under directory model.

Set up an environment variable CP to poinnt the patched tla2tools.jar found in directory java

export CP=$(pwd)/java/org.lamport.tlatools-1.0.1-SNAPSHOT.jar

Run TLA model, and generate a dump file ../examples/DieHard-patched.dump using the command

 (cd model; java -cp $CP tlc2.TLC -dump ../examples/DieHard-patched.dump DieHard)

The patched TLC command adds fingerprint and transition information to the dump file. For example, to show the difference of non-patched dump file, and the patched dump file use the command

diff examples/DieHard-orig.dump examples/DieHard-patched.dump

and observe diff output starting

1c1
< State 1:
---
> State 1/1721042995228635026:
5c5
< State 2:
---
> State 2/8981770525750446274:
9c9,11
< State 3:
---
> Transition 1721042995228635026 --> 8981770525750446274
> 
> State 3/-7007095103426876375:
13c15,27
< State 4:
---
> Transition 1721042995228635026 --> -7007095103426876375
> 
> Transition 1721042995228635026 --> 1721042995228635026
> 
> Transition 1721042995228635026 --> 1721042995228635026

Create dot file

To create a dot file for a patched state-dump in examples/customer1-patched.dump, run

bin/tla2dot.rb graph examples/DieHard-patched.dump >tmp/dump.dot

and to convert it to a svg picture, run

dot -T svg tmp/dump.dot >tmp/dump.svg

Command graph accepts optionally a list of variables to show in state nodes. For example, to show model variables big,small in the DieHard example, use the command

bin/tla2dot.rb graph examples/DieHard-patched.dump  big,small >tmp/dump.dot

State identity may be included a pseudo variable ID:

bin/tla2dot.rb graph examples/DieHard-patched.dump  ID,big,small  >tmp/dump.dot

and all variables can be included in the graph using value TRUE for the variable list

bin/tla2dot.rb graph examples/DieHard-patched.dump  TRUE  >tmp/dump.dot

Installation

Add following the lines to Gemfile

source 'https://rubygems.org'
gem 'tla2dot'

and run

bundle install

To validate that installation was successful, and to get help on using tla2dot.rb run

bundle exec tla2dot.rb help

Development

See RELEASES

License

MIT

FAQs

Package last updated on 26 Jan 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc