summaryrefslogtreecommitdiff
path: root/language/l2_typ.ott
AgeCommit message (Collapse)Author
2018-07-10remove obsolete files from language directory.Robert Norton
2016-09-25Catch formal type system up to reality, in progressKathy Gray
2016-08-17tuple assignment now implemented so (a,b) := foo() will now workKathy Gray
2015-09-30Alias support for ocaml modeKathy Gray
2015-08-06Update analysis to merge states and values after branches taken due to ↵Kathy Gray
unknown conditions. Does not merge if one path has resulted in an exit
2015-07-24Begin doing better analysis on case splits over unknownsKathy Gray
2015-06-02Fix errors around ARM not being able to decode due to instruction_extractor ↵Kathy Gray
being very power-specific. Note: slight interface change to instruction_extractor
2015-03-26Add subtraction to nexp grammar (removing the need to do a + (-1 * b))Kathy Gray
Fix up parsing on 2** precedence Fix errors on type variables in function definition
2015-02-24Overloading formal relationKathy Gray
2015-02-18All existing type rules in line with implementation (and no more red)Kathy Gray
Still to do: type rules for register aliases and relation for overloading selection
2015-02-18expression type checking inline with rules, lexp still out of date; ↵Kathy Gray
overloading resolution not modelled
2015-02-17Bring type rules more into modern state of type checkerKathy Gray
2015-01-12Add specialised support for numeric singleton types (i.e. what used to be ↵Kathy Gray
range<'N,'N>) Non-sugar syntax is -- forall Nat 'N. atom<'N> Sugar syntax is -- [: 'N :] Also begin adding pp support for generating ocaml from ast types.
2014-12-09Some of the type rules for expressionsKathy Gray
2014-12-04ott rules for type checking pattern matchKathy Gray
2014-12-03Type rules unto coercion now represented in ottKathy Gray
2014-07-14Initial support for aliases and exit through the type system and the ↵Kathy Gray
interpreter. An alias can be read within the interpreter, but not written to. Exits aren't yet taken in the interpreter.
2014-06-12Interpret when an unknown is inserted into the program by interp_exhaustiveKathy Gray
Short version of below; ready to hook interp_exhaustive up to something to test, but haven't yet. If an unknown value influences a pattern match within an expression, each passing pattern is found and the bodies strung together into a block with let expressions to bind the variables. In a function call, the cases are all collected but the support is not in place at the moment to evaluate them. If an unknown is the result of the cond expression in an if, the then and else case become a block. Unknowns within the interpreter propagate to more Unknowns; also for some but not all library functions yet.
2014-05-29Check constraints in power.sail; this required using big_int instead of int ↵Kathy Gray
to support 2**64. Note: now nat (short hand for range<0,infinity>) should only be used if you really mean a nat instead of a bounded number (i.e. range<0,2**32>)
2014-04-02Solve more constraints; fix up test suite bugs uncovered by solving more ↵Kathy Gray
constraints. Clean up Lem output a little for readability while debugging.
2014-03-11Change treatment of type abbreviations so that name and full type are ↵Kathy Gray
available for field lookups of registers; this feature still not fully working.
2014-02-21Add type annotations to lem grammar, including printing out the annotated ↵Kathy Gray
ast, and extending the interpreter to expect annotations. Annotations and locations are still not used by the interpreter.