Skip to content
Verification system for effectful programs
F* F# OCaml Forth Shell Python Other
Branch: master
Clone or download

Latest commit

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.ci restore fsdoc.sh Dec 16, 2017
.completion options: disable --n_cores, since it's broken Jun 13, 2019
.docker Revert "(TEST) Use Everest-CI taramana_ocaml_4_09" May 16, 2020
.github schedule MacOS builds weekly Mar 15, 2020
.hooks Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
.scripts Guaranteed ordered check for [let rec] May 11, 2020
bin benchmarking: keep .bench files unformatted May 14, 2020
contrib/CoreCrypto/fst copyright notice on all .fst and .fsti files that lacked them Nov 12, 2018
doc [CI] regenerate hints + ocaml snapshot May 26, 2020
examples [CI] regenerate hints + ocaml snapshot Jun 3, 2020
src snap Jun 1, 2020
tests adding a testcase for #2055 Jun 1, 2020
ucontrib some fixes to makefiles Mar 31, 2020
ulib [CI] regenerate hints + ocaml snapshot Jun 3, 2020
.common.mk move src/Makefil.common -> /.common.mk Apr 4, 2020
.gitattributes gitattributes Oct 15, 2019
.gitignore F# support library build issue #1780 Apr 27, 2020
.gitmodules removing openssl submodule Feb 15, 2018
.ignore Un-ignore some hand-written files Aug 17, 2017
.merlin First attempt at replacing OCaml prettyprinters with a single one May 15, 2018
.travis.yml Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
CHANGES.md recording the change in CHANGES.md Apr 27, 2020
CONTRIBUTING.md [INSTALL, CONTRIBUTING] Move out some advanced instrs Jul 26, 2019
INSTALL.md Add running 'opam update' to INSTALL.md Apr 18, 2020
LICENSE Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
LICENSE-fsharp.txt Revert "[CI] regenerate hints + ocaml snapshot" Jan 27, 2017
Makefile Makefile: add `make libs` Apr 20, 2020
README.md Mentioned VSCode support in README.md Jul 26, 2019
_tags fix _tags Mar 22, 2020
build_local.sh merging master in Jul 2, 2019
fsharp-development.md [INSTALL, fsharp-development] Modernize instructions May 6, 2019
version.txt merging master in Jul 2, 2019

README.md

F*: Verification system for effectful programs

F* website

More information on F* can be found at www.fstar-lang.org

Installation

See INSTALL.md

Tutorial

The F* tutorial provides a first taste of verified programming in F*, explaining things by example.

Wiki

The F* wiki contains additional, usually more in-depth, technical documentation on F*.

Editing F* code

You can edit F* code using your favourite text editor, but Emacs, Visual Studio Code, Atom, and Vim have extensions that add special support for F*, including for instance syntax highlighting, code completion, quick navigation, type hints, and interactive development. More details on editor support on the F* wiki.

You can also edit simple examples directly in your browser by using either the online F* editor that's part of the F* tutorial or our new even cooler online editor (experimental).

Extracting and executing F* code

By default F* only verifies the input code, it does not compile or execute it. To execute F* code one needs to translate it for instance to OCaml or F#, using F*'s code extraction facility---this is invoked using the command line argument --codegen OCaml or --codegen FSharp. More details on executing F* code via OCaml on the F* wiki.

Also, code written in a C-like shalowly embedded DSL can be extracted to C or WASM by the KreMLin tool, and code written in an ASM-like deeply embedded DSL can be extracted to ASM by the Vale tool.

Chatting about F* on Zulip

Users can chat about F* or ask questions at https://fstar.zulipchat.com (Zulip is a good open source alternative to Slack)

Community mailing list

The fstar-club mailing list is where various F* announcements are made to the general public (e.g. for releases, new papers, etc) and where users can ask questions, ask for help, discuss, provide feedback, announce jobs requiring at least 10 years of F* experience, etc. List archives are public and searchable, but only members can post. Join here!

Blog

The F* for the masses blog is also expected to become an important source of information and news on the F* project.

Reporting issues

Please report issues using the F* issue tracker on GitHub. Before filing please use search to make sure the issue doesn't already exist. We don't maintain old releases, so if possible please use the online F* editor or directly the GitHub sources to check that your problem still exists on the master branch.

Contributing

See CONTRIBUTING.md

License

F* is released under the Apache 2.0 license; for more details see LICENSE

You can’t perform that action at this time.