| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2019-04-05 | Fix: Don't remove uncalled polymorphic constructors if they are matched upon | Alasdair Armstrong | |
| Previously the specialization would remove any polymorphic union constructor that was never created anywhere in the specification. While this wasn't usually problematic, it does leave an edge case where such a constructor could be matched upon in a pattern, and then the resulting match would fail to compile as it would be matching on a constructor kind that doesn't exists. This should fix that issue by chaging the V_ctor_kind value into an F_ctor_kind fragment. Previously a polymorphic constructor-kind would have been represented by its mangled name, e.g. V_ctor_kind "zSome_unit" would now be represented as V_ctor_kind ("Some", unifiers, ty) where ty is a monomorphic version of the original constructor's type such that ctyp_unify original_ty ty = unifiers and the mangled name we generate is zencode_string ("Some_" ^ string_of_list "_" string_of_ctyp unifiers) | |||
| 2018-07-09 | Changes for anonymisation. Ensure headers are in correct format. Remove some ↵ | Robert Norton | |
| redundant files. | |||
| 2018-06-29 | Constant folding improvements | Alasdair | |
| 2018-06-27 | Fix reading reals from strings in C lib | Alasdair Armstrong | |
| 2018-06-14 | rename all lem support files to sail2_foo to avoid conflict with sail1 in rmem | Jon French | |
| 2018-03-02 | Use sail_lib.lem values in C backend | Alasdair Armstrong | |
| Rather than just using strings to represent literals, now use value types from sail_lib.lem to represent them. This allows for expressions to be evaluated at compile time, which will be useful for future optimisations involving constant folding and propagation, and allows the intermediate bytecode to be interpreted using the same lem builtins that the shallow embedding uses. To get this to work I had to tweak the build process slightly to allow ml files to import lem files from gen_lib/. Hopefully this doesn't break anything! | |||
