summaryrefslogtreecommitdiff
path: root/src/lem_interp
AgeCommit message (Collapse)Author
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 ( )
2013-10-09add lem->ml in MakefileGabriel Kerneis
2013-10-09Adding memory writes. Cleaning up the let in the ott file to reflect what ↵Kathy Gray
actually parses
2013-10-08More makefile infrastructureGabriel Kerneis
You need the latest version of Lem for this to work (requires lem/ocaml-lib/META.lem).
2013-10-04Clean up build systemGabriel Kerneis
2013-10-04More support for expression forms including let and vector slicing. And ↵Kathy Gray
writing to a vector range (with one value repeated or with a vector of appropriate size)
2013-10-02Clean up and fixup vector writesKathy Gray
2013-10-02Writing to vectorsKathy Gray
2013-09-26Adding undefinedKathy Gray
Also interpreter now supports reading and writing of basic registers (i.e with no subranges yet)
2013-09-25Interpreter support for reading from registers and local memory, support for ↵Kathy Gray
writing to simple local memory and support for resuming a computation paused for register or memory activity.
2013-09-22Interpreter with function calls, pattern matching, and reading local boxesKathy Gray