package gospel
Install
Dune Dependency
Authors
Maintainers
Sources
md5=964e7cb82b4391c7ad0794c20adcc67f
sha512=15c5d3f48fac648ce0799c2664323d461f3792ae9477ba0fe8c499228a9faddda22e8ef66ef10733dce550dcf8ba2641fce2b5472005f649f28e5426d0631375
CHANGES.md.html
0.2
Added
Introduce a generic
pp_gen
pretty-printer for error messages, so that external tools can pretty-print errors in the same style #326Add ppx rewriter to display gospel contents as documentation with odoc #288
Add specific error message for patterns with guard on every clause. #220
Added
when
guards in pattern-matching #206Added a
with
construct to name a variable in type invariants referring to a value of the specified type. #218 and #187Added the
Failure
exception to the Stdlib. #154
Improved
Forbid
old
operator in precondition clauses (requires
andchecks
) #335Display a warning when encountering an
include
#334Allow patterns in arguments and return type annotation in anonymous functions #309
Propagate pattern locations to report errors to the precise patterns #308
Support partial application of functions and enforce OCaml syntax for constructor application #290
Add a pretty-printer for locations #294
Gospel preprocessor does not fail when the file is an implementation file #265
Rename standard library
Seq
and'a seq
toSequence
and'a sequence
. #253Allow unit result in function header #215
Highlight source locations when reporting errors. #214
Check for pattern-matching redundancy in terms. #213
Check for pattern-matching exhaustivity in terms. #170
Issue a warning when a function returns
unit
but has nomodifies
clause. #185Improved locations for syntax errors in specs. #164
Added sanity checks to type invariants: invariants are only allowed on private or abstract types. #117 and #116
Stdlib changes. #102
Removed
ref
operator.Removed
elements
forBag
andSet
.compare
functions returnsinteger
s instead ofint
s.
Fixed
Fix the performance issues in the preprocessor \353
Gospel preprocessor support documentation for ghost declaration #331
Consider comments as spaces while preprocessing (to ensure specification can be attached to a ghost function or type, for instance) #321
Fix source-location tracking (directives and overridden filename) #319
Set up location in parsing ghost specifications #310
Check that all patterns in a disjunction bind the same variables #300
Handle the special case of
MODULE_ALIASES
instdlib.mli
in the parser #306Take recursivity into account when typing type declarations #304
Support pattern with cast #301
Use payload location for specification text #299
Support patterns of one-parameter constructors with a tuple argument #297
Use correct location for arity mismatches in type applications #258
Avoid uncaught exception when displaying a warning for builtins (using
Location.none
) #283Gospel preprocessor no longer detach documentation below a declaration #281
Fixed pattern match analysis in exceptional postconditions #277
Avoid uncaught exception when displaying a warning on a dummy position #262
Constants can now be referenced in specifications. #211
Infix operators in specificaion headers are now accepted. #205
Fix inconsistencies in typing/parsing of exceptional postconditions patterns. #203
Fixed the type-checking of interfaces involving the OCaml Stdlib, which was not opened by default. GADTs are considered abstract types. #195
Fixed incorrectly rejected interfaces with absent\partial function contracts in the presence of tuples as return values. #193
Fixed support for types containing functions. #186
Fixed wrong syntax errors in patterns. #181
Fixed wrong invalid patterns over
unit
values. #174Fixed the error message for pattern type errors. #172
Internals
Display the backtrace of an error when
$GOSPELDEBUG
is set #295Fixed the order of exceptional postconditions in the AST. #200
Refactored the error handling: Gospel now only raises a single
Gospel.Error
exception. #189Fixed the representation for type variables in
ts_tuple
andfs_tuple
. #183Added
int
as a primitive type. #171Refactored
Tterm
andSymbols
. #85Redefined the
ghost
type. #155Removed the
Pty_open
type constructor #109
0.1.0 (11-03-2021)
Initial release