-
Notifications
You must be signed in to change notification settings - Fork 247
Recent backward incompatible changes
Please list any other breaking changes you notice here
-
17/01/09 breaking change for the interactive mode: F* no longer accepts
--fsiand now demands that the path to the file currently edited be passed as an argument to F* -- see https://github.com/FStarLang/fstar-mode.el/pull/41 for a sample diff for the emacs mode -
17/01/09 changes in the semantics of what gets extracted; see What is verified, what is extracted? for the new semantics and use
--extract_allto get the old semantics. -
The parser was rewritten using Menhir, which did introduce some changes: https://github.com/FStarLang/FStar/wiki/Moving-to-menhir
-
Pull request #772 introduces the following non-backward-compatible syntax changes:
-
Modul (term)now becomesModul.(term) -
Datacon.paramnow becomesDatacon?.param(e.g.Some.vnow becomesSome?.v) -
Effect.actionnow becomesEffect?.action, similarly (and the same forreflect, etc.) -
is_Dataconnow becomesDatacon?(e.g.is_Somenow becomesSome?) - Scopes are now honored in a more intuitive way: for instance, local opens and local definitions can be interleaved and shadow accordingly.
As a consequence of these changes,
Namespace.identcan now always be understood asidentbelonging to moduleNamespace(i.e.Namespaceis always a valid module name, not a data constructor or effect name) (except for module names or namespaces themselves) -
-
Backward-incompatible changes introduced by the new parser :
-
(| t |)is no longer accepted as a variant of( t )in particular the correct syntax for defining a dependent pair type is(x:a & b(x))(if the parens are necessary) - The focusing let has been slightly modified :
let ~> rec bidule = ...has been replaced bylet rec ~> bidule = ... - The stratified specific
=qualifier is not available anymore on binders i.e. the deprecatedfun (=x:t) -> ...must be changed tofun ($x:t) -> ...
-
-
ulib/ml/hyperheaphas been removed in favour of a unified implementation ofFStar_ST.mlinulib/ml. Targets which usemake -C ulib/ml hyperheapwill break. Usemake -C ulib/mlandulib/ml/fstarlib.cmxainstead ofulib/ml/fstarlib-hyperheap.cmxa. -
The assumed
Prims.qintroandPrims.ghost_lemmahave been removed. Use instead the lemmasFStar.Classical.forall_introandFStar.Classical.ghost_lemma, respectively, based onFStar.Squash. -
The command-line flag
--universeshas been removed; type checking using universes is now the default behavior. Use--stratifiedto switch to the stratified type checker (but beware that it will be soon deprecated).