pgo icon indicating copy to clipboard operation
pgo copied to clipboard

PGo is a source to source compiler from Modular PlusCal specs into Go programs.

Results 29 pgo issues
Sort by recently updated
recently updated
newest added

Currently, most systems are in the `test/files/general/` and some of them are in the `benchmark/` folder. I think the large systems are not test cases anymore and they should have...

Currently, this is the persistent resource interface: ```go type PersistableResource interface { distsys.ArchetypeResource GetState() ([]byte, error) } ``` And it just supports persisting the state. Reading and recovery from the...

So far, PGo has been developed blissfully ignorant of TLA+ 2, and it had not caused problems. When discussing how to implement the sum of a set of integers, however,...

enhancement

I suggest changing API of `Read` and `Write` methods of `ArchetypeInterface`. Current API: ```go func (iface ArchetypeInterface) Write(handle ArchetypeResourceHandle, indices []tla.TLAValue, value tla.TLAValue) (err error) func (iface ArchetypeInterface) Read(handle ArchetypeResourceHandle,...

enhancement

Currently, PGo will crash with `NotImplementedError` if a TLA+ module it's compiling references external definitions. Anything involving `EXTENDS`, `INSTANCE` and a module that is not built-in will cause this problem....

enhancement

PlusCal and MPCal don't accept labels as macros' arguments. Input labels in macros can be used in `goto` statements. For example, by having this we can define the following macro,...

enhancement

https://github.com/UBC-NSS/pgo/blob/master/manual.pdf still mentions ant but the build has apparently been migrated to gradle.

Related to #122, this is an idea about how to verify that PGo-generated code actually does what the model says it does. Key idea: encoded into an MPCal model, there...

enhancement

It would be much easier to argue PGo's soundness, if generated programs could check themselves. This issue suggests adding a flag to PGo, such that it attempts to extract safety...

enhancement

```tla archetype A(ref network) { a: network[LEADER] := [type |-> HELLO, messages |-> [log |-> ]]; } ``` An archetype like defined above leads messages failing to be sent across...