New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Usability issues with interfaces #959
Comments
Another interface/interactive problem: when loading the fst, fstar crashes with |
Overall, working with interfaces currently involves 4 windows: two in emacs, and two for getting command-line errors. |
@cpitclaudel would you know which of these are still valid? |
Does this mean that you have a
I think this is a core principle of F* interfaces.
I think this works nicely now.
That too.
Not sure what this refers to.
Same here
I think this is better now (we report the error in the main file, and use the |
Interfaces without interleavingIn conversations with @mtzguido, @aseemr @protz et al., we've been considering revising the way interfaces are typechecked by doing away with the interleaving semantics. Instead, we'd like to see the following behavior:
Put another way, we'd like to see the .fsti as just a prefix of the .fst and to relax the syntactic criterion on ordering of val/let that is currently imposed by the ToSyntax phase (desugaring). This should solve the issues 1, 2, and 5 in @fournet's original post. But, there are also some complications: -- While allowing out-of-order definitions, we should be careful to ensure that we do not introduce circularities in the SMT encoding (it's probably okay, but we should double check) -- Out of order definitions cannot be extracted to ML. So, after step 3 above (i.e., checking for the absence of cycles), it would be good to topologically sort the sigelts in a module so that they can be processed in order by the rest of the compiler pipeline. |
I wrote down a bunch of issues while writing Handshake.Log.fsti and Handshake.fsti; I don't have smaller repros, sorry.
val/let
to a single annotated let to migrate it to an interface.Found the interface Handshake.fsti but could not parse it first!
eT
andnext_fragment
inHandshake.fsti
).Failure("Bound term variable not found (after unmangling)")
.[([cl-struct-fstar-issue error "C:\\cygwin64\\home\\fournet\\everest\\FStar\\ulib\\prims.fst" 633 633 4 11 "assertion failed"])]
The text was updated successfully, but these errors were encountered: