| Age | Commit message (Collapse) | Author |
|
Fix a few other bugs as well
|
|
Also allows register writing functions to be on the left hand side of an assignment in the same way.
The last parameter to a writing function is the value to be written, and should appear on the right hand side of an assignment expression.
|
|
than it should have
|
|
Reduce the number of implicit coercions we're doing, expanding overloading and fixing up types of functions.
Warning: test_power does not run as not all overloaded funcitons are implemented
Warning: vector concatenation does not pretty print to sail source yet
|
|
constraints. Clean up Lem output a little for readability while debugging.
|
|
Changes syntax of tuple type from * to , so that nexps of the form 8 * 'n can be supported in the parser, which was apparently not true before.
|
|
my changes in the conflict resolution but oops.
|
|
|
|
The last test added in vectors.sail fails.
|
|
|
|
|
|
Test seems to fail for some reason, probably endianess and off-by-one
bugs all over the place. Needs debugging code to monitor memory
updates and display bitvectors in a compact way.
|
|
I'm not sure whether this is useful at all. It is currently a bit
broken when subrange is not in the "correct" order. Presumably the
typechecker should catch this? I'm not quite sure what the intended
semantics should be. Probably the same bug occurs with register slices
too.
|
|
|
|
(Temporarily turning off unbound identifier checks, until all variable-introducing forms are checked)
|
|
Could not at this time return lists to [| |] from [|| ||] as the parser cannot distinguish a cast with enum’s syntactic sugar from the start of a parenthesised list (i.e. ( [|3|] ) And there are still conflicts with moving enums to [3], so those changes can’t be pushed in with current parser technology.
|
|
|
|
|
|
|
|
Notice the need for double parentheses in test/test3.sail, because the
interpreter does not perform curryfication automatically (only the first
parameter in kept with List_extra.head):
add ((1, 3)) (* works *)
add (1, 3) (* fails, equivalent to: add (1) *)
Fortunately enough, infix functions work correctly by default. A dirty
quickfix would be easy, but I'm not sure at which level this should be
addressed properly (interpreter? typing? etc.).
|
|
|
|
The interpreter is broken for infix calls (fails to find the relevant
function, either internal or external).
|
|
|
|
This is extremely naive, and does not support slices.
|
|
At the moment, writes are ignored and reads always return unit.
|
|
|