gospal
gospal copied to clipboard
Go static program analyser
There's quite a few things in there, including: - a (somewhat hacky) way of not printing functions that are part of the go runtime and not the inferred program (in...
[Inferer](https://github.com/nickng/gospal/blob/master/migoinfer/inferer.go#L18) cannot be used concurrently. It may lead to runtime crash concurrent map read/write for constant storage and others. Potential source: `callctx.Toplevel()` uses a shared storage.
The following program will generate unparsable MiGo types because of importing the ```net``` package. Moreover, the generated ```os.NewFile#``` functions degenerate to an empty channel operation (```tau```). ```go package main import...
`_unexported_` channels sometimes appear in inferred types by `migoinfer`. This should not happen.
The MiGo types extracted for this program [twobuyers.go](https://pastebin.com/TQPYp8tR) have an issue. For the buyer1 goroutine migoinfer gets the order and type of operations right, but the operations are presented as...
In the program [examplewithstruct.go](https://pastebin.com/KyTw7tbA) the channels are encapsulated in a struct which is passed as a pointer to the two goroutines. endChannel is used to signal to main that a...