summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-05-01update for lazy evaluation of typechecker debugging after rebaseJon French
2018-05-01add type annotation patterns to mpatsJon French
2018-05-01it worksJon French
2018-05-01inferring is also requiredJon French
2018-05-01type-checking of calls to mappings, by synthing val-specs for the realised ↵Jon French
functions early and then mimicing the overload machinery
2018-05-01rewriting of builtin mappings e.g. intJon French
2018-05-01further progress but confounds the type checker?Jon French
2018-05-01progress on debugging string pattern matchingJon French
2018-05-01oops, not every pattern is in fact string_typ, remember to pass through the ↵Jon French
original type in rewrite_defs_pat_string_append when not doing anything
2018-05-01create a single funcl with a match, rather than converting mapcls to funcls, ↵Jon French
because OCaml among others doesn't allow top-level guards
2018-05-01further progressJon French
2018-05-01fv funcs for bidir typesJon French
2018-05-01mostly added mappings to type-checker and pretty-printerJon French
2018-05-01utils mapping over mpats/mpexpsJon French
2018-05-01conversion from parse_ast to astJon French
2018-05-01add to parserJon French
2018-05-01add mpats to astsJon French
2018-05-01re-indent Initial_check.to_ast_typJon French
2018-05-01starting to also do integer supportJon French
2018-05-01starting to also do integer supportJon French
2018-05-01start of string pattern matching: currently only literalsJon French
2018-05-01fix refactored rewrite_pexp_with_guards (where type information is and is ↵Jon French
not...)
2018-05-01add { ~~fieldname } sugar to record patterns, expanding to { fieldname = ↵Jon French
fieldname }\n\nCan't use ~ for this to be exactly like OCaml, as is used for 'not' and explicitly allowed as an identifier
2018-05-01more refactoring of pexp rewritersJon French
2018-05-01Type_check: factor rewrite_pexps_with_guards out of rewrite_defs_pat_litsJon French
2018-05-01tidyJon French
2018-05-01Use a naming scheme rather than random fresh ids for union anonymous recordsJon French
2018-05-01fix warningsJon French
2018-05-01Add anonymous record arms to unionsJon French
(Preprocessed into a real record type with a fresh id and a reference to that generated record type.)
2018-04-26Lem: Add Size class annotations for nested bitvector typesThomas Bauereiss
2018-04-26Fix bug in rewriting of loopsThomas Bauereiss
Take into account existential types when determining bounds for the loop variable
2018-04-26Avoid adding explicit type annotations with generated type variablesThomas Bauereiss
2018-04-26Make effect propagation in rewriter more efficientThomas Bauereiss
Use non-recursive fix_eff_exp instead of recursive propagate_exp_effect, assuming that the effects of subexpressions have already been fixed by the recursive calls of the rewriter.
2018-04-26Lazily evaluate debugging messagesThomas Bauereiss
This is meant to increase performance; for example, generating debug messages that include pretty-printed expressions can be very costly, if those expressions are complex (e.g. deeply nested E_internal_plet nodes representing a long sequence of monadic binds).
2018-04-26Add a new SHARE_DIR argument to use when doing opam build. For non-opam ↵Robert Norton
builds this defaults to git root.
2018-04-26Make ocamlbuild assume lem is in path instead of relative to current directory.Robert Norton
2018-04-26Opam packaging: add install and uninstall targets and code to find various ↵Robert Norton
files in installed location.
2018-04-26Remove obsolete mips/cheri rules from sail makefile. These are now built in ↵Robert Norton
their respective subdirectories.
2018-04-25Simplify subtyping checkAlasdair Armstrong
This should make subtyping work better for tuples containing constrained types. Removes the intermediate type-normal-form representation from the subtyping check, and replaces it with Env.canonicalize from the canonical branch.
2018-04-25Start working on documentationAlasdair Armstrong
2018-04-23Merge branch 'rmn30_latex' into sail2Robert Norton
2018-04-20Allow instantiation of type or order type variables without kind declarationBrian Campbell
2018-04-20Have sign_extend in common Sail Lem library, use it and zero_extend inBrian Campbell
mono rewrites
2018-04-19Gloss over UInt/unsigned name difference in monomorphisationBrian Campbell
2018-04-19Fix bug with function being applied to tuplesAlasdair Armstrong
For some reason there was a desugaring rule that mapped f((x, y)) to f(x, y) in initial_check.ml, this prevented functions and constructors from being applied to tuples.
2018-04-18Add first draft of Isabelle library documentationThomas Bauereiss
2018-04-18Fix bug in pretty-printing loops to LemThomas Bauereiss
2018-04-18Add some lemmas about bitvectorsThomas Bauereiss
Also clean up some library functions a bit, and add some missing failure handling variants of division operations on bitvectors.
2018-04-18Move a few printing functions to sail_values.lemThomas Bauereiss
They are used in various specs and test cases.
2018-04-18Fix another reference to BK_natAlastair Reid