summaryrefslogtreecommitdiff
path: root/src/lem_interp
AgeCommit message (Collapse)Author
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-12Replace nat by natural in interpreterGabriel Kerneis
2014-02-07Fix a few stupid bugsGabriel Kerneis
2014-02-07Implement is_oneGabriel Kerneis
2014-02-07Report unimplemented function nameGabriel Kerneis
2014-02-05Replace symbolic link by actual fileGabriel Kerneis
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-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-01-15Accept single bits as boolean values for if in interpreterGabriel Kerneis
2014-01-15Improve error messagesGabriel Kerneis
2014-01-14Fix vector concat pattern matchingGabriel Kerneis
The concatenation list was reversed.
2014-01-09Fixed pattern concatenation bugKathy Gray
2014-01-09Fixed a single-argument tuple bug on function callsKathy Gray
2014-01-09Fixed bug in resuming after an action (which was manifesting as an apparent ↵Kathy Gray
pattern match bug, which was actually working fine).
2014-01-08Fixed literal vectors for binary vectors (pattern matching and as ↵Kathy Gray
expressions), hex vectors will only produce 0 length vectors.
2014-01-08Baby step to seeing a literal vector as a vector (ie. testing string support ↵Kathy Gray
from Lem)
2014-01-08Add support for letbound toplevel defs in interpreterKathy Gray
2014-01-07interp: recover identifiers in error messagesGabriel Kerneis
Not displayed currently because of new-lem's lack of string concatenation.
2013-12-16test: catch and print exceptionsGabriel Kerneis
2013-12-10Fixed bug in interpreterKathy Gray
2013-12-06Output test name on startGabriel Kerneis
2013-12-03Syntax changes per discussion with Peter, as well as L2.ott document clean up.Kathy Gray
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.
2013-11-28Updated syntax with working examplesKathy Gray
2013-11-22Syntax changes per discussions on Thursday.Kathy Gray
First pass parser to identify type names is in progress (current test files fail, will correct once pre-parser is in place)
2013-11-12Define and test addition in libraryGabriel Kerneis
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.).
2013-11-11Remove workaround for a bug fixed in LemGabriel Kerneis
2013-11-07Port L2 to new LemGabriel Kerneis
Tests compile and run properly. There is a lot of hackery going on to workaround the rough edges of new Lem. Use at your own risk (you need the "library-format" branch of lem).
2013-11-07Stub for external callsGabriel Kerneis
2013-11-05De-infix operator before looking it up in the interpreterGabriel Kerneis
2013-11-05Support parsing for extern callsGabriel Kerneis
2013-11-05Clean-up build-related filesGabriel Kerneis
2013-11-01Moved metatheory grammars into l2_rules.ottKathy Gray
Added val extern specification to language, parser, printer, and interpreter Added various def level type system support, expressions type system in place Except for assignment
2013-10-16Basic MEM and register implementation for interpreterGabriel Kerneis
This is extremely naive, and does not support slices.
2013-10-16Clean up action pretty-printingGabriel Kerneis
2013-10-15Resume interpreter after actionsGabriel Kerneis
At the moment, writes are ignored and reads always return unit.
2013-10-15Add id to register actionsGabriel Kerneis
2013-10-15Add returning value to blockKathy Gray
2013-10-14Run main() to execute testsGabriel Kerneis
Tests do not pass because of weird pattern-matching errors in the interpreter.
2013-10-14interp: report function name on pattern-matching errorGabriel Kerneis
2013-10-14Pretty-print interpeter valuesGabriel Kerneis
2013-10-11Supporting all expressions, although vector cacentation pattern matching can ↵Kathy Gray
only match simple patterns (until type information is available).
2013-10-10Run interpreterGabriel Kerneis
Forgotten because of a wrong .gitignore.
2013-10-10Interpreting all expressions except field assignment; pattern matching all ↵Kathy Gray
expressions except vector concatenation pattern; added ability to specify writes to smaller pieces of memory in actions. Also fixed bugs in pretty printer to lem
2013-10-10Rename Ast to Interp_ast for the interpreterGabriel Kerneis
2013-10-09Memory reading (small change to signature for memory writes).Kathy Gray
Also fixed parser to accept id ( )