InterfaceSpecs.jl icon indicating copy to clipboard operation
InterfaceSpecs.jl copied to clipboard

Playground for formal specifications of interfaces in Julia

Results 6 InterfaceSpecs.jl issues
Sort by recently updated
recently updated
newest added

I can imagine wanting to use `check` in a programmatic way, handling the failure dynamically rather than throwing an error. For example a failure value `Err(TimeoutFailure(5s))` could be handled by...

Paper https://smallbone.se/papers/quickspec2.pdf Talk https://www.youtube.com/watch?v=eTcq_QqhFfM QuickSpec is a Haskell tool that given some functions searches for equational properties like commutativity, printed to the repl, which can then be copied into the...

Racket has contracts ([guide](https://docs.racket-lang.org/guide/contracts.html), [reference](https://docs.racket-lang.org/reference/contracts.html)). There are a lot of research papers on it, especially - ["Contracts for higher-order functions"](https://www2.ccs.neu.edu/racket/pubs/icfp2002-ff.pdf) - ["Correct blame for contracts"](https://www2.ccs.neu.edu/racket/pubs/popl11-dfff.pdf)

https://clojure.org/guides/spec Doesn't have for all support, but has nice things like being able to synthesize values that satisfy a spec.

https://github.com/Seelengrab/Supposition.jl/ is still new but is based on the excellent [hypothesis.py](https://hypothesis.readthedocs.io/en/latest/) and is shaping up to be very useful. Supposition is intended for testing within a module and it's great...

Defining `Sequence` in https://github.com/JuliaLang/julia/issues/53040#issue-2098937442 reinforced my desire for interface specification and validation.