summaryrefslogtreecommitdiff
path: root/src/lem_interp
AgeCommit message (Collapse)Author
2014-06-18Add definition of mod to libKathy Gray
2014-06-18Make hex constants work; improve utility of casts for selecting overloaded ↵Kathy Gray
functions
2014-06-12Interpret when an unknown is inserted into the program by interp_exhaustiveKathy Gray
Short version of below; ready to hook interp_exhaustive up to something to test, but haven't yet. If an unknown value influences a pattern match within an expression, each passing pattern is found and the bodies strung together into a block with let expressions to bind the variables. In a function call, the cases are all collected but the support is not in place at the moment to evaluate them. If an unknown is the result of the cond expression in an if, the then and else case become a block. Unknowns within the interpreter propagate to more Unknowns; also for some but not all library functions yet.
2014-06-11Equality between range and bit vectorGabriel Kerneis
The type-constraints are inspired from those for (+). They seem to work but I am not sure they make sense. The vector is interpreted as unsigned.
2014-06-11Improve error message for missing library functionsGabriel Kerneis
2014-06-10Minor color and build tweaksGabriel Kerneis
2014-06-10More colorsGabriel Kerneis
2014-06-09Better, colored holeGabriel Kerneis
2014-06-09Improve interaction after chat with PeterGabriel Kerneis
- remember mode (run, step or next) between instructions - display continuation by default in step mode - start in step mode by default - incompatible change: the shorthand for stack is now bt (=backtrace), since s becomes the shorthand for step - incompatible change: pressing enter now repeats the current mode, instead of "step"
2014-06-09Support deinfix pretty-printingGabriel Kerneis
2014-06-09Add more stops in interpreter (stopping just at the point of each internal ↵Kathy Gray
function call) Also turning off an annoying printf I left in.
2014-06-09Working towards evaluating with interp_exhaustiveKathy Gray
2014-06-09Add "continuation" command in interpreterGabriel Kerneis
This displays the full continuation of the current breakpoint, which is basically the closest that we have from the "context" requested by Peter. Especially using it after the "execute" breakpoint shows the code of the instruction to be executed.
2014-06-09Add switch to show/hide casts in interpreterGabriel Kerneis
Use "show_casts" and "hide_casts" in interactive interpreter to display or show casts in expressions. Hidden by default (makes things much less readable otherwise).
2014-06-09Merge branch 'for-dagstuhl' into masterGabriel Kerneis
Conflicts: src/lem_interp/interp_lib.lem src/lem_interp/run_interp.ml Remove "to_vec_safe" work-around
2014-06-07Add optional overloading on expected return type to fix bug in constraint ↵Kathy Gray
solving; get test_power running again by supporting the correct operations and bit operations
2014-06-07exts returns bit[64] instead of natGabriel Kerneis
Update power.sail to new, pretty-printer-based version
2014-06-07Improve help messageGabriel Kerneis
2014-06-07Print mem and envGabriel Kerneis
2014-06-07Stack printingGabriel Kerneis
2014-06-07Print holes as [x]Gabriel Kerneis
2014-06-07Fix E_vector_append in interp pretty-printerGabriel Kerneis
2014-06-06Compact debug output and first draft of interactive loopGabriel Kerneis
2014-06-06Improve work-aroundGabriel Kerneis
Default to 64 bit for vec + range
2014-06-06Add a pretty-printer for Interp_astGabriel Kerneis
Copy-pasted with a few tweaks from Pretty_printer. Should really make a functor instead, but not sure how to deal with E_internal_cast yet. Note that Interp_ast and Ast are *not* generated from the same ott file (resp. l2.ott and l2_type.ott), but they are close enough that the code almost "just works".
2014-06-05Enable single-stepping for test/power.sailGabriel Kerneis
2014-06-05Refactor to_vec and add work-around to avoid truncationGabriel Kerneis
2014-06-04Fixup type coercions and overloadingKathy Gray
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
2014-05-29Check constraints in power.sail; this required using big_int instead of int ↵Kathy Gray
to support 2**64. Note: now nat (short hand for range<0,infinity>) should only be used if you really mean a nat instead of a bounded number (i.e. range<0,2**32>)
2014-05-28correct mismatched parens didn't mean to commit...Kathy Gray
2014-05-28Support stepped interpreting, and use normalisation instead of eval_nexp in ↵Kathy Gray
constraints
2014-05-22A (hopefully) sufficient interface and implementation between memory and the ↵Kathy Gray
interpreter
2014-05-21correct accidental capitalization of Interp in file nameKathy Gray
2014-05-21More interface support; interp_inter_imp now compilingKathy Gray
2014-05-20Fix interp compiling bugKathy Gray
2014-05-20yet more interfaceKathy Gray
2014-05-20More interfaceKathy Gray
2014-05-14More interface update for connecting externally (interp_interface provides ↵Kathy Gray
functions for connecting the interpreter to a memory model) Also adding default values to index vectors for supporting sparse vectors/maps
2014-05-12More interface supportKathy Gray
2014-05-08more interface changesKathy Gray
2014-05-06Begin tie to ppcmem style actions/outcomesKathy Gray
Change type of + on vectors to (bit vector,bit vector) -> bit vector
2014-05-01Make an overloading type decision (all + operations return ranges, never ↵Kathy Gray
vectors) and make the test suite pass again
2014-04-30More support for overloading functions; primarily focusing on +Kathy Gray
WARNING: vector test breaks due to not having implemented the full range of different + functions In general, we need to decide whether vector + vector, vector + range and range + vector should all return ranges, vectors or a mixture
2014-04-25rename interpreter's local memory type to reflect that it's all local memoryKathy Gray
2014-04-21Remove unsoundness of pattern match in interpreterKathy Gray
2014-04-15Use type information in vector concatenation pattern matching in interpreter.Kathy Gray
Does not properly bind variables (i.e. in the pattern 0b01:(bit[3]) a: 0b0001 subsequent uses of a will not be bound in the interpreter, though they are in the type checker), so until bug is fixed, treat all such identifiers as _
2014-04-08Reduce redundant information in ASTKathy Gray
2014-04-04Cosmetic improvements (statistics, --quiet)Gabriel Kerneis
2014-04-04Improve Power executionGabriel Kerneis
- Move FDE loop to the OCaml side of the Power model (avoid leaking memory due to lack of TCO in interpreter) - Display cycle count - Check the value of CIA at the end of each cycle and stop if it is equal to the initial value of LR, returning the value in GPR3.
2014-04-03Implement some arithmetic operationsGabriel Kerneis