summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-08-10Add support for early return to Lem backendThomas Bauereiss
Implemented using the exception monad, by throwing and catching the return value
2017-08-09Pretty-print some more type annotationsThomas Bauereiss
2017-08-08Fix Lem bindings in test casesThomas Bauereiss
Add a test case with the MIPS spec using the TLB stub. Use the sequential monad for Lem testing for now; the free monad (in "prompt.lem") has not been updated for machine words yet.
2017-08-08Glue together Sail prelude and Lem libraryThomas Bauereiss
2017-08-08Various fixes and improvements for the Lem pretty-printingThomas Bauereiss
- Add some missing "wreg" effect annotations in the type checker - Improve pretty-printing of register type definitions: In addition to a "build" function, output an actual type definition, and some getter/setter functions for register fields - Fix a bug in sizeof rewriting that caused it to fail when rewriting nested calls of functions that contained sizeof expressions - Fix pretty-printing of user-defined union types with type variables (cf. test case option_either.sail) - Simplify nexps, e.g. "(8 * 8) - 1" becomes "63", in order to be able to output more type annotations with bitvector lengths - Add (back) some support for specifying Lem bindings in val specs using "val extern ... foo = bar" - Misc bug fixes
2017-08-08Add x86 decoder.Anthony Fox
2017-08-08Add add_typ_var to mli fileAlastair Reid
This function is used by asl_to_sail2.ml
2017-08-07Fixed pretty printing of E_consAlasdair Armstrong
2017-08-07Merge branch 'sail_new_tc' of https://bitbucket.org/Peter_Sewell/sail into ↵Alasdair Armstrong
sail_new_tc
2017-08-07Fixed various issues regarding typechecking lists.Alasdair Armstrong
2017-08-07Merged in acjf3/sail/sail_new_tc (pull request #2)Anthony Fox
Initial commit of x86 model (ported from L3).
2017-08-07Initial commit of x86 model (ported from L3).Anthony Fox
2017-08-02Fix run_tests.sh so it cleans up generated ml files when testing ocaml backendAlasdair Armstrong
2017-08-02Improve pretty-printing of register declaration and assignmentThomas Bauereiss
2017-08-02Tune vector_subrangeThomas Bauereiss
2017-08-02Add debugging option to dump AST after rewriting stepsThomas Bauereiss
2017-08-01Add missing lexp case to Ocaml pretty-printerThomas Bauereiss
2017-08-01Added ocaml generation to run_tests.shAlasdair Armstrong
2017-08-01Fixed a bug where type_synonyms were not being expanded properly when ↵Alasdair Armstrong
considering possible casts
2017-08-01Fixed a bug where as patterns weren't binding their variable correctlyAlasdair Armstrong
2017-08-01Added more patterns to ast_util and improved type checking of patternsAlasdair Armstrong
2017-08-01Remove some hardcoded calls to obsolete Lem library functionsThomas Bauereiss
2017-08-01Fix some effect propagation bugs in rewriterThomas Bauereiss
2017-07-28Add true and false to n_constraint language. Also small tweaks for ASL ↵Alasdair Armstrong
generation.
2017-07-27Rewrite guarded patterns for Lem backendThomas Bauereiss
2017-07-27Add cons patterns to pretty-printersThomas Bauereiss
2017-07-27Merge branch 'sail_new_tc' of https://bitbucket.org/Peter_Sewell/sail into ↵Alasdair Armstrong
sail_new_tc
2017-07-27Merge branch 'master' into sail_new_tcAlasdair Armstrong
2017-07-27Some more test casesAlasdair Armstrong
2017-07-27Parameterise convert_ast by the bitvector orderAlasdair Armstrong
2017-07-27Fixed a bug where sail would run out of file descriptors when passed a large ↵Alasdair Armstrong
number of files
2017-07-27P_cons in monomorphisationBrian Campbell
2017-07-27Fix up constructor handling in monomorphisationBrian Campbell
2017-07-27Mirror AST changeBrian Campbell
2017-07-27Add test cases for overlapping record field namesAlasdair Armstrong
2017-07-27Allow local mutable records, and fix bugs with overlapping record field names.Alasdair Armstrong
2017-07-27Fixed bug with pattern synonyms in Cons and List patternsAlasdair Armstrong
2017-07-27implement RV64I based on version 2.0 user spec.Robert Norton
2017-07-26Add right shift to lib/prelude.sail, and add case for E_exit in ↵Alasdair Armstrong
Ast_util.string_of_exp
2017-07-26Allow arbitrary identifiers in nexp expressionsAlasdair Armstrong
Fixed some bugs in the initial check that caused valid code to fail to parse Add a nid utility function that creates an id n-expression, similar to nvar, nconstant etc
2017-07-26mips_extras.lem: fix references to Interp.V_fooJon French
2017-07-26Interpreter doesn't build with new typechecker + changes from masterAlasdair Armstrong
Makes it so that the jenkins buildserver will only try to build sail and not the interpreter for sail_new_tc
2017-07-26Merge remote-tracking branch 'origin/master' into sail_new_tcAlasdair Armstrong
2017-07-26Merged in ojno/sail (pull request #1)Jonathan French
Footprint exhaustive evaluation fixes Approved-by: Jonathan French <me@jonathanfrench.net>
2017-07-26Improve rewriting of sizeof expressionsThomas Bauereiss
If some type-level variables in a sizeof expression in a function body cannot be directly extracted from the parameters of the function, add a new parameter for each unresolved parameter, and rewrite calls to the function accordingly
2017-07-26MergeThomas Bauereiss
2017-07-25Fixed bug where strings were not escaped correctly within stringAlasdair Armstrong
literals when pretty printing sail.
2017-07-25Add instantiation_of helper function to type_check.mli that returnsAlasdair Armstrong
the instantiated type variables in a function application
2017-07-25Improved l-expressionsAlasdair Armstrong
- Fixed a bug where some l-expressions which wrote registers wern't picking up register writes. - Can now write to registers with record types. e.g. ARM's ProcState record from ASL.
2017-07-25Add partial support for rewriting of sizeof expressionsThomas Bauereiss
Tries to extract values of nexps from the (type annotations of) parameters passed to the function. This seems to correspond to the behaviour of the previous typechecker.