Documentation ¶
Overview ¶
Command dingo-hunter is a tool for analysing Go code to extract the communication patterns for deadlock analysis.
The deadlock analysis approach is based on multiparty session types and global graph synthesis POPL'15 (Lange, Tuosto, Yoshida) and CC'16 (Ng, Yoshida).
Directories ¶
Path | Synopsis |
---|---|
sesstype
Package sesstype encapsulates representation of session types As opposed to role-based session types, this representation is channel-based.
|
Package sesstype encapsulates representation of session types As opposed to role-based session types, this representation is channel-based. |
examples
|
|
cond-recur
Command conditional-recur has a recursion with conditional on one goroutine and another receiving until a done message is received.
|
Command conditional-recur has a recursion with conditional on one goroutine and another receiving until a done message is received. |
forselect
Command nodet-for-select is a for-select pattern between two compatible recursive select.
|
Command nodet-for-select is a for-select pattern between two compatible recursive select. |
golang-blog-prime-sieve
Command golang-blog-prime-sieve is an example from Golang blog.
|
Command golang-blog-prime-sieve is an example from Golang blog. |
infinite-prime-sieve
Command infinite-primesieve is a modified primesieve example from Golang blog.
|
Command infinite-primesieve is a modified primesieve example from Golang blog. |
multiple-timeout
Command multiple-timeout is an example which uses multiple branches of time.After.
|
Command multiple-timeout is an example which uses multiple branches of time.After. |
parallel-buffered-recursive-fibonacci
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call.
|
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call. |
parallel-recursive-fibonacci
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call.
|
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call. |
parallel-twoprocess-fibonacci
Command parallel-twoprocess-fibonacci is an improved version of parallel fibonacci which limits to only spawning 2 goroutines.
|
Command parallel-twoprocess-fibonacci is an improved version of parallel fibonacci which limits to only spawning 2 goroutines. |
popl17/cond-recur
Command conditional-recur has a recursion with conditional on one goroutine and another receiving until a done message is received.
|
Command conditional-recur has a recursion with conditional on one goroutine and another receiving until a done message is received. |
popl17/fib
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call.
|
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call. |
popl17/fib-async
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call.
|
Command parallel-recursive-fibonacci is a recursive fibonacci which spawns a new goroutine per fib call. |
popl17/forselect
Command nodet-for-select is a for-select pattern between two compatible recursive select.
|
Command nodet-for-select is a for-select pattern between two compatible recursive select. |
popl17/sieve
Command infinite-primesieve is a modified primesieve example from Golang blog.
|
Command infinite-primesieve is a modified primesieve example from Golang blog. |
squaring-cancellation
Command squaring-cancellation comes from Golang blog to demonstrate fan-in and explicit cancellation.
|
Command squaring-cancellation comes from Golang blog to demonstrate fan-in and explicit cancellation. |
squaring-fanin
Command squaring-fainin comes from Golang blog to demonstrate fan-in and explicit cancellation.
|
Command squaring-fainin comes from Golang blog to demonstrate fan-in and explicit cancellation. |
squaring-fanin-bad
Command squaring-fanin-bad comes from Golang blog to demonstrate fan-in and explicit cancellation.
|
Command squaring-fanin-bad comes from Golang blog to demonstrate fan-in and explicit cancellation. |
squaring-pipeline
Command squaring-pipeline comes from Golang blog to demonstrate fan-in and explicit cancellation.
|
Command squaring-pipeline comes from Golang blog to demonstrate fan-in and explicit cancellation. |
Package fairness runs a fairness analysis.
|
Package fairness runs a fairness analysis. |
Package logwriter wraps a io.Writer for dingo-hunter logging.
|
Package logwriter wraps a io.Writer for dingo-hunter logging. |
Package migoextract provides session type inference from Go code.
|
Package migoextract provides session type inference from Go code. |
Package ssabuilder provides a wrapper for building SSA IR from Go source code.
|
Package ssabuilder provides a wrapper for building SSA IR from Go source code. |
callgraph
Package callgraph represents function call graph.
|
Package callgraph represents function call graph. |
Click to show internal directories.
Click to hide internal directories.