summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-02-16A bit of cleanup, including checking for loops and overloading 0 and 1 to be ↵Kathy Gray
bits in patterns where detectable.
2014-02-15Full type checker. No constraint checking in place.Kathy Gray
2014-02-14Attempt multi-byte memory read and writeGabriel Kerneis
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.
2014-02-14Write slice to memoryGabriel Kerneis
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.
2014-02-14Fix infinite loop bug, and test1.sail type checking bugKathy Gray
2014-02-14update syntax of vector slicing.Kathy Gray
2014-02-14Infinite loop in interpreter for register slice writeGabriel Kerneis
I believe the issue is on the Lem side, but I might be doing something wrong on the OCaml side too.
2014-02-14Register slice writeGabriel Kerneis
2014-02-13Disable line which does not typecheck in test1Gabriel Kerneis
We need to fix that one, but I don't know if the bug is in test1 or in the type checker.
2014-02-13Add definition of ignore to make tests executableGabriel Kerneis
2014-02-13Index memory with big_ints in interpreterGabriel Kerneis
Also add support for sliced reads. Still need to implement sliced writes, as well as multi-word memory writes.
2014-02-13Missing default case for literal equality testGabriel Kerneis
2014-02-13Display backtrace when interpreter failsGabriel Kerneis
2014-02-13Implement equality for big_int literalsGabriel Kerneis
Lem does not infer instances for typeclasses, falling back to unsafe comparison which does not work for big_int in OCaml.
2014-02-12More library functions for interpreterGabriel Kerneis
There is now enough stuff to decode and execute a very basic Branch instruction (encoding everything as little-endian rather than big- endian among many other work-arounds).
2014-02-12Fix endianess issuesGabriel Kerneis
2014-02-12Checking assignment to a variableKathy Gray
2014-02-12Replace nat by natural in interpreterGabriel Kerneis
2014-02-12Remove spurious declarationGabriel Kerneis
2014-02-12Fix type errors in power.sailGabriel Kerneis
2014-02-12Change nat to natural in ottKathy Gray
Type checking now recurses through assign, but doesn’t do the proper checks yet
2014-02-11struct/record type checkingKathy Gray
2014-02-07type checking switch/case expressionsKathy Gray
2014-02-07Most of the vector expression type checkingKathy Gray
2014-02-07Fix a few stupid bugsGabriel Kerneis
2014-02-07Implement is_oneGabriel Kerneis
2014-02-07Report unimplemented function nameGabriel Kerneis
2014-02-07Correct variable-name bug that was throwing away type checking coercions and ↵Kathy Gray
type annotations
2014-02-07more checkingKathy Gray
2014-02-07Use bit->bool coercion for power.sailGabriel Kerneis
2014-02-06coerce bit to bool when not a literal bit. Note: this will only add a ↵Kathy Gray
conversion function for expressions of bit type, an explicit cast to bit would be needed to come from an enum or nat.
2014-02-06coercians for bits to bools for literalsKathy Gray
2014-02-06type check more vectorsKathy Gray
2014-02-06push effect information around while checking expressionsKathy Gray
2014-02-05Replace symbolic link by actual fileGabriel Kerneis
2014-02-05Test scattered typedef cross-referenceGabriel Kerneis
2014-02-05Fix type id parsing error ans associated type checking bugs in scatteredsKathy Gray
2014-02-05Fix pattern constructor bug in type checking (darn tuples/not tuples)Kathy Gray
2014-02-05Typechecking lets, concrete vectors, and function calls (minus effects)Kathy Gray
2014-02-05First bit of Power specGabriel Kerneis
Only chapter about branches (except system calls because of sail typechecking issue). Decoding seems to work. Execution typechecks currently, but is pretty surely broken otherwise.
2014-02-05Adding failing typechecking testGabriel Kerneis
File "test/test1.sail", line 27, character 22 to line 27, character 26 Type error: Type mismatch :(6() * ) , bit
2014-02-05Revert "Accept single bits as boolean values for if in interpreter"Gabriel Kerneis
This reverts commit 828f19828e41ced146f06e9a7eb4183cd9ef3ab4. It was a temporary workaround now fixed when we generate Sail code.
2014-02-05Deinfixable colonGabriel Kerneis
2014-02-03More type checking, including coercing 0 and 1 into bits when appropriate ↵Kathy Gray
(in limited circumstances at the moment due to which expressions are actually checked, so test files should not yet be changed)
2014-01-31More type checking and conversionsKathy Gray
(Temporarily turning off unbound identifier checks, until all variable-introducing forms are checked)
2014-01-30Expression type checking, not completeKathy Gray
2014-01-29Type check function headers and parametersKathy Gray
2014-01-17Type check through type definitions and val specifications, building ↵Kathy Gray
definition environment. Skipping function definition, let bind, and expression checking for this commit (to come).
2014-01-15Accept single bits as boolean values for if in interpreterGabriel Kerneis
2014-01-15Improve error messagesGabriel Kerneis