| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2018-01-29 | Further updates to C backend | Alasdair Armstrong | |
| 2018-01-29 | Added ecall/mret and exception support. | Prashanth Mundkur | |
| 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 | Shaked removing generation of now-uncessary uint dependency | Peter Sewell | |
| 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-27 | Add Makefile for RISC-V | Thomas Bauereiss | |
| 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-26 | Give LEM test suite a more useful name for benefit of jenkins. | Robert Norton | |
| 2018-01-26 | Shebang must be first line of file. Fixes RISCV test failing on jenkins due ↵ | Robert Norton | |
| to non-bash default shell. | |||
| 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 | Merge branch 'sail2' of https://bitbucket.org/Peter_Sewell/sail into sail2 | Alasdair Armstrong | |
| 2018-01-25 | Fix -ocaml_trace option | Alasdair Armstrong | |
| 2018-01-25 | riscv: remove case for non-existent constructor in match that was being ↵ | Robert Norton | |
| treated as pattern making _ never match :-( | |||
| 2018-01-25 | work in progress riscv CSR implementation. | Robert Norton | |
| 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 | |
| 2018-01-19 | Added RISCV test case to test suite | Alasdair Armstrong | |
