Git Product home page Git Product logo

actoverse's Introduction

๐Ÿ›ฐ๏ธ Actoverse

Screenshot

Actoverse is an online debugger suite for the Actor model, which provides a graphical visualization for message timeline, causal-consistent reverse debugging, and some useful features for debugging actors.

๐Ÿ“บ Movie โ†’ย https://youtu.be/2x6KXKDG1jw

NOTE: This is a client interface of Actoverse protocol and this repository does not include libraries for debugging targets or demo applications. Check a target API implementation for Scala and its examples.

Citation

Kazuhiro Shibanai and Takuo Watanabe. 2017. Actoverse: a reversible debugger for actors. In Proceedings of the 7th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE 2017). Association for Computing Machinery, New York, NY, USA, 50โ€“57. DOI:https://doi.org/10.1145/3141834.3141840

Features

  • Live inspecting states inside actors
  • Visualizing the causal flow of messages between actors
  • Restore any point of the past state of actors ( Reverse Debugging ) while keeping the causal relationship
  • Making breakpoints by the attributes or contents of messages such as:
    • sender / receiver actor's name
    • partial / perfect pattern matching of message data

Downloading Binary

See the release page

Executing from Source Repository

Requirements

  • node.js environment (latest)
  • npm

How to run

npm install
npm start

Quick start with Scala

Using Actoverse-Scala for a target.

  1. Install scala and sbt. For example in macOS,
brew install scala
brew install sbt
  1. Clone the repository of the demo source. โ†’ git clone https://github.com/45deg/Actoverse-Scala-Demos
  2. Execute sbt run.
  3. Select a example script to run by entering the index of it.
  4. Start the Actoverse debugger and input the address localhost:2000 into the form and push the Connect button.
  5. Then a time-space diagram will show up.

Internals

API Specifications

The API through which communicates with a client program is handled with the JSON format over the WebSocket connection.

API Specification: https://github.com/45deg/Actoverse/wiki/API-Specification

License

MIT

actoverse's People

Contributors

45deg avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

smarr ktoso

actoverse's Issues

Censorship String

Currently, censorship condition accepts the JSON format. However, it is a troublesome that quote the string even a single string object. It should accept loose-styled inputs.

Sbt run: unresolved dependencies

I would like to study Actoverse and its behaviour. I want to get a quick start as proposed in its readme file.
I don't know scala language. Thus I did all steps of readme of Actoverse that linked me to Actoverse-Scala-Demos.
Then I cloned Actoverse-Scala-Demos in my machine but it doesn't work.

I'm following the steps of readme file and when i type 'sbt run' using as target Actoverse-Scala-Demo directory, it generate a compilation error of unresolved dependencies.

The Error is the following:

[warn] ==== Akka Snapshot Repository: tried
[warn]   http://repo.akka.io/snapshots/com/typesafe/akka/akka-testkit_2.11/2.4-SNAPSHOT/akka-testkit_2.11-2.4-SNAPSHOT.pom
[info] Resolving jline#jline;2.12.1 ...
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	::          UNRESOLVED DEPENDENCIES         ::
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 	:: com.typesafe.akka#akka-actor_2.11;2.4-SNAPSHOT: not found
[warn] 	:: com.typesafe.akka#akka-contrib_2.11;2.4-SNAPSHOT: not found
[warn] 	:: com.typesafe.akka#akka-testkit_2.11;2.4-SNAPSHOT: not found
[warn] 	::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn] 	Note: Unresolved dependencies path:
[warn] 		com.typesafe.akka:akka-contrib_2.11:2.4-SNAPSHOT (/Users/myusername/.sbt/0.13/staging/37c68d5979975b2c113c/actoverse-scala/build.sbt#L7-15)
[warn] 		  +- actoverse-for-akka:actoverse-for-akka_2.11:1.0
[warn] 		com.typesafe.akka:akka-testkit_2.11:2.4-SNAPSHOT (/Users/myusername/.sbt/0.13/staging/37c68d5979975b2c113c/actoverse-scala/build.sbt#L7-15)
[warn] 		  +- actoverse-for-akka:actoverse-for-akka_2.11:1.0
sbt.ResolveException: unresolved dependency: com.typesafe.akka#akka-actor_2.11;2.4-SNAPSHOT: not found
unresolved dependency: com.typesafe.akka#akka-contrib_2.11;2.4-SNAPSHOT: not found
unresolved dependency: com.typesafe.akka#akka-testkit_2.11;2.4-SNAPSHOT: not found
	at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:313)
	at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:191)
	at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:168)
	at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:156)
	at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:156)
	at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:133)
	at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:57)
	at sbt.IvySbt$$anon$4.call(Ivy.scala:65)
	at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:95)
	at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:80)
	at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:99)
	at xsbt.boot.Using$.withResource(Using.scala:10)
	at xsbt.boot.Using$.apply(Using.scala:9)
	at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:60)
	at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:50)
	at xsbt.boot.Locks$.apply0(Locks.scala:31)
	at xsbt.boot.Locks$.apply(Locks.scala:28)
	at sbt.IvySbt.withDefaultLogger(Ivy.scala:65)
	at sbt.IvySbt.withIvy(Ivy.scala:128)
	at sbt.IvySbt.withIvy(Ivy.scala:125)
	at sbt.IvySbt$Module.withModule(Ivy.scala:156)
	at sbt.IvyActions$.updateEither(IvyActions.scala:168)
	at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1488)
	at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1484)
	at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$121.apply(Defaults.scala:1519)
	at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$121.apply(Defaults.scala:1517)
	at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:37)
	at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1522)
	at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1516)
	at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:60)
	at sbt.Classpaths$.cachedUpdate(Defaults.scala:1539)
	at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1466)
	at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1418)
	at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
	at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
	at sbt.std.Transform$$anon$4.work(System.scala:63)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
	at sbt.Execute.work(Execute.scala:237)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
	at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
[error] ({https://github.com/45deg/Actoverse-Scala.git}actoverse-scala/*:update) sbt.ResolveException: unresolved dependency: com.typesafe.akka#akka-actor_2.11;2.4-SNAPSHOT: not found
[error] unresolved dependency: com.typesafe.akka#akka-contrib_2.11;2.4-SNAPSHOT: not found
[error] unresolved dependency: com.typesafe.akka#akka-testkit_2.11;2.4-SNAPSHOT: not found
[error] Total time: 5 s, completed 25-gen-2018 19.00.38

If I focused the problem, Sbt tries to download 3 Snapshots (actor,contrib,testkit) that looks like exist if I check on download's website http://repo.akka.io/snapshots/.

I changed the number version of snapshots in file Users/myusername/.sbt/0.13/staging/37c68d5979975b2c113c/actoverse-scala/build.sbt but it give me the same problem with the new snapshot version.

I also tryed to delete cache directories "/Users/myusername/.sbt/0.13/staging/37c68d5979975b2c113c/actoverse-scala" or in "/Users/myusername/.ivy2/cache"
and typed again "sbt run" but I got the same problem.

What can i do ?

Thank a lot.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.