- Add test cases for some unsupported constructs #466
- Adapt to cmdliner.2.0.0 #470
- Add support for mutually recursive ghost types #403
- Add syntax for building sets #476
- Add
optionas an OCaml primitive type constructor #464 - Check for repeated name of module and module types #444
- Fix bug in creation of fresh type variables #435
- Fix typing of pattern with inlined record #429
- Remove support for the record update syntax #428
- Rewrote the Gospel standard library to focus on the definition of mathematical objects. #423
- Fix typing of expression with inlined record #420
- Improve error message for unbound record fields #419
- Collect all the missing fields in a record definition and don't accept incomplete record pattern syntax that OCaml consider incorrect #418
- Display proper error message for a number of unsupported construction #406
- Display an error message when encountering a Functor application #404
- Changed the gospel typechecker to use bool as the type of logical formulae #391
- Add nested exceptional specifications #452
- More expressive let pattern matching #457
- Warning for invalid header name states expected name #471
- Better error message for unbound modules #473
- Fix bug regarding location of top level variables #474
- Fix bug where non-functional values could not be specified. #475
- Extract and document typing environment #447
- Add documentation to Symbols and Ttypes modules #445
- Add documentation and refactor Tmodule #442
- Gospel type checker rewrite #449
- Fixity now appears in the identifier object #453
- Fix bug in building constraints for lambdas #455
- Fix print function for tagged identifiers #458
- Refactor name lookup #473
- Created a gallery of Gospel examples that might serve as a working ground to experiment with Gospel syntax and future extensions of the language. #361
- Make the type-checker save type information in a file #376
- Make the
withnecessary when declaring type invariants #372 and #374
- Fix premature parsing of specification keywords in the preprocessor. #394
- Fix
ls_nameofunitlogical symbol to be()#387 - Fix the
is_ts_tuplefunction so that it doesn't takeunitto be a tuple #386 - Use unique identifiers rather than physical equality for
Symbols.ls_equal#380 - Remove the
gospel_expectedprologue at the end of successful tests #363
- Introduce a generic
pp_genpretty-printer for error messages, so that external tools can pretty-print errors in the same style #326 - Add ppx rewriter to display gospel contents as documentation with odoc #288
- Add specific error message for patterns with guard on every clause. #220
- Added
whenguards in pattern-matching #206 - Added a
withconstruct to name a variable in type invariants referring to a value of the specified type. #218 and #187 - Added support for
intliterals. #175 and #177 and #223 - Added the
Failureexception to the Stdlib. #154 - Added a
gospel dumpastcommand. #98 and #184
- Forbid
oldoperator in precondition clauses (requiresandchecks) #335 - Display a warning when encountering an
include#334 - Allow 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
Seqand'a seqtoSequenceand'a sequence. #253 - Allow 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
unitbut has nomodifiesclause. #185 - Improved locations for syntax errors in specs. #164
- Documentation improvements. #108 and #110 and #149
- Added sanity checks to type invariants: invariants are only allowed on private or abstract types. #117 and #116
- Stdlib changes. #102
- Removed
refoperator. - Removed
elementsforBagandSet. comparefunctions returnsintegers instead ofints.
- Removed
- 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_ALIASESinstdlib.mliin the parser #306 - Take 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) #283 - Gospel 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
unitvalues. #174 - Fixed the error message for pattern type errors. #172
- Display the backtrace of an error when
$GOSPELDEBUGis set #295 - Fixed the order of exceptional postconditions in the AST. #200
- Refactored the error handling: Gospel now only raises a single
Gospel.Errorexception. #189 - Fixed the representation for type variables in
ts_tupleandfs_tuple. #183 - Added
intas a primitive type. #171 - Refactored
TtermandSymbols. #85 - Redefined the
ghosttype. #155 - Removed the
Pty_opentype constructor #109 - Added paths to gospel identifiers. #396
- Initial release