| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2018-01-29 | Look through let expressions when constructing nconstraints | Brian Campbell | |
| (needed for handling guards after atom-to-itself transformation in monomorphisation) | |||
| 2018-01-29 | Leave pure if-conditions in place instead of pulling out let-bindings | Brian Campbell | |
| 2018-01-29 | Set maximum split size to work with aarch64 no vector | Brian Campbell | |
| 2018-01-29 | Get typechecking to resolve overriding in remove numeral patterns rewrite | Brian Campbell | |
| 2018-01-29 | Move subst to ast_util, use for guarded clauses rewrite | Brian Campbell | |
| 2018-01-29 | Add some initial exception handling to the riscv execution loop. | Prashanth Mundkur | |
| 2018-01-29 | Merge branch 'sail2' of https://bitbucket.org/Peter_Sewell/sail into sail2 | Robert Norton | |
| 2018-01-29 | add tohost to value.ml | Robert Norton | |
| 2018-01-29 | implement shift primitives in sail_lib.ml | Robert Norton | |
| 2018-01-29 | Further updates to C backend | Alasdair Armstrong | |
| 2018-01-29 | Fix a bug where structs containing unions would generate bad to_string functions | Alasdair Armstrong | |
| Added a regression test in test/ocaml/string_of_struct | |||
| 2018-01-29 | Merge branch 'sail2' of https://bitbucket.org/Peter_Sewell/sail into sail2 | Alasdair Armstrong | |
| 2018-01-29 | Linksem does not use uint anymore | Shaked Flur | |
| 2018-01-29 | Turn off constraint substitution in mono | Brian Campbell | |
| (Type checker doesn't seem to use false aggressively enough for this) | |||
| 2018-01-29 | Use fresh variables when dealing with (multiple) literal patterns | Brian Campbell | |
| 2018-01-29 | Turn off warnings when rechecking after mono | Brian Campbell | |
| 2018-01-29 | Avoid generating (_ as n) in mono, broke atom type rewriting | Brian Campbell | |
| 2018-01-26 | Fixed loading ARM elf files | Alasdair Armstrong | |
| Also refactored the hand written ARM prelude and pulled out some common functionality into files in sail/lib | |||
| 2018-01-26 | One more mono rewrite | Brian Campbell | |
| 2018-01-26 | Missing -ocamlfind | Brian Campbell | |
| 2018-01-26 | Add replacement of complex nexp sizes by equivalent variables in mono | Brian Campbell | |
| 2018-01-26 | Preserve more typing info in monomorphisation for later stages | Brian Campbell | |
| 2018-01-26 | More work on C backend | Alasdair Armstrong | |
| 2018-01-25 | Add mli file for pattern completeness module | Alasdair Armstrong | |
| 2018-01-25 | Merge branch 'sail2' of https://bitbucket.org/Peter_Sewell/sail into sail2 | Alasdair Armstrong | |
| 2018-01-25 | Add pattern completness check for match statements | Alasdair Armstrong | |
| Gives warnings when pattern matches are incomplete, when matches are redundant (in certain cases), or when no unguarded patterns exist. For example the following file: enum Test = {A, C, D} val test1 : Test -> string function test1 x = match x { A => "match A", B => "this will match anything, because B is unbound!", C => "match C", D => "match D" } val test2 : Test -> string function test2 x = match x { A => "match A", C => "match C" /* No match for D */ } val test3 : Test -> string function test3 x = match x { A if false => "never match A", C => "match C", D => "match D" } val test4 : Test -> string function test4 x = match x { A if true => "match A", C if true => "match C", D if true => "match D" } will produce the following warnings Warning: Possible redundant pattern match at file "test.sail", line 10, character 5 to line 10, character 5 C => "match C", Warning: Possible redundant pattern match at file "test.sail", line 11, character 5 to line 11, character 5 D => "match D" Warning: Possible incomplete pattern match at file "test.sail", line 17, character 3 to line 17, character 7 match x { Most general matched pattern is A_|C_ Warning: Possible incomplete pattern match at file "test.sail", line 26, character 3 to line 26, character 7 match x { Most general matched pattern is C_|D_ Warning: No non-guarded patterns at file "test.sail", line 35, character 3 to line 35, character 7 match x { warnings can be turned of with the -no_warn flag. | |||
| 2018-01-25 | Use set asserts as case splits in monomorphisation | Brian Campbell | |
| 2018-01-25 | Missing type expansion | Brian Campbell | |
| 2018-01-25 | Handle bound variables properly with precise case splitting | Brian Campbell | |
| 2018-01-25 | Fix building bytecode sail | Brian Campbell | |
| 2018-01-25 | Basic support for match x[5 .. 2] with case splits | Brian Campbell | |
| 2018-01-25 | Implement basic case splitting based on found case expressions | Brian Campbell | |
| (makes some of the monomorphisation case splits smaller) | |||
| 2018-01-25 | Extend RISCV main loop with support for tohost interface used by test suite ↵ | Robert Norton | |
| for terminating the test. | |||
| 2018-01-25 | Omit redundant let-bindings when rewriting (bit-)vector patterns | Thomas Bauereiss | |
| Only add bindings for sub-patterns if they are actually used in the pattern guard or expression, respectively. | |||
| 2018-01-25 | Rewrite bitvector patterns for OCaml and C backends | Thomas Bauereiss | |
| Seems to increase compilation speed significantly for OCaml 4.05. | |||
| 2018-01-25 | Fix -ocaml_trace option | Alasdair Armstrong | |
| 2018-01-25 | Fix more type annotations in rewriter | Thomas Bauereiss | |
| Use consistent nesting of tuples when adding updated local mutable variables to expressions. Add test case. | |||
| 2018-01-25 | Add simple conditional processing and file include | Alasdair Armstrong | |
| Can now use C-style include declarations to include files within other sail files. This is done in such a way that all the location information is preserved in error messages. As an example: $include "aarch64/prelude.sail" $define SYM $ifndef SYM $include <../util.sail> $endif would include the file aarch64/prelude.sail relative to the file where the include is contained. It then defines a symbol SYM and includes another file if it is not defined. The <../util.sail> include will be accessed relative to $SAIL_DIR/lib, so $SAIL_DIR/lib/../util.sail in this case. This can be used with the standard C trick of $ifndef ONCE $define ONCE val f : unit -> unit $endif so no matter how many sail files include the above file, the valspec for f will only appear once. Currently we just have $include, $define, $ifdef and $ifndef (with $else and $endif). We're using $ rather than # because # is already used in internal identifiers, although this could be switched. | |||
| 2018-01-24 | Have some simple sail programs compiling to C | Alasdair Armstrong | |
| 2018-01-24 | Fixed riscv ocaml compilation | Alasdair Armstrong | |
| 2018-01-24 | More work on C compilation | Alasdair Armstrong | |
| 2018-01-24 | More work on experimental C backend | Alasdair Armstrong | |
| 2018-01-23 | Merge branch 'sail2' of https://bitbucket.org/Peter_Sewell/sail into sail2 | Alasdair Armstrong | |
| 2018-01-23 | Started working on C backend for sail | Alasdair Armstrong | |
| Also updated some of the documentation in the sail source code | |||
| 2018-01-23 | Run tests for Lem shallow embedding | Thomas Bauereiss | |
| Uses the typechecker tests for now. Also fix two minor bugs in pretty-printer and rewriter uncovered by the tests. | |||
| 2018-01-23 | Added additional tests, and fixed ocaml build of ARM tests | Alasdair Armstrong | |
| 2018-01-22 | Update Lem shallow embedding to Sail2 | Thomas Bauereiss | |
| - Remove vector start indices - Library refactoring: Definitions in sail_operators.lem now use Bitvector type class and work for both bit list and machine word representations - Add Lem bindings to AArch64 and RISC-V preludes TODO: Merge specialised machine word operations from sail_operators_mwords into sail_operators. | |||
| 2018-01-22 | Added rewriter that specializes all function calls in a specification. | Alasdair Armstrong | |
| This removes all type polymorphism, so we can generate optimized bitvector code and compile to languages without parametric polymorphism. | |||
| 2018-01-22 | Add regression test for type synonym with constraints inside existential ↵ | Alasdair Armstrong | |
| typechecking bug | |||
| 2018-01-22 | Update and fix test suite | Alasdair Armstrong | |
