| Age | Commit message (Collapse) | Author |
|
|
|
Not working yet
|
|
just an id (hopefully fixes Christopher issue).
|
|
TODO: add an event for a return so that rewriters can find and remove them as needed for OCaml and Lem
|
|
|
|
well as items of kind Type.
Syntax for the feature is:
def Nat id = nexp
Note: some useful nexps may not parse properly.
All typedef forms can also be used as def Type ... if desired, but this is not required.
|
|
Improve printing for asl to sail readability;
Add -o option for selecting the name of file generation;
Add additional initial check module for turning generated ast nodes into ready-to-type-check ast nodes
|
|
This splits the former functionality of exit into errors, which should now use assert(bool,option<string>), and a means of signalling actions such as instruction-level exceptions, interrupts, or other features that impact the ISA. The latter will now be tracked with an effect escape, and so any function containing exit and declared pure will generate a type error.
WARNING: ARM spec will not build with this commit until I modify it. MIPS spec will not build with this commit until modified.
|
|
Events are eamem to signal the memory address to write to and wmv to pass the value to write
|
|
declared return type when consistent instead of using the derived one.
|
|
Also fix type checker bug in not reporting modifications to parameter values
|
|
Fix up parsing on 2** precedence
Fix errors on type variables in function definition
|
|
Fix bug allowing function types in too many places
|
|
function-clause
|
|
|
|
will be reflected in short hand type syntax, inc is still the default if undeclared
So:
default order dec
register bit[32] t (* Declares t as a decreasing vector, starting at 31 on the left and decreasing to 0 *)
default order inc
register bit[32] o (* Declares o as an increasing vector, starting at 0 on the left and increasing to 31 *)
It is presently possible to change the default mid-file; this is almost certainly bad and I will turn it into an error soon.
|
|
|
|
interpreter.
An alias can be read within the interpreter, but not written to. Exits aren't yet taken in the interpreter.
|
|
Also begining to add support for nondeterministic blocks and cleaning up some of the Many warnings on pattern matches
|
|
|
|
|
|
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
|
|
functions for connecting the interpreter to a memory model)
Also adding default values to index vectors for supporting sparse vectors/maps
|
|
number of coercions
|
|
uses appropriate information gleaned from pattern matching
|
|
|
|
from 0 to 32 etc, doesn't change order yet.).
|
|
assigned to in assignments.
|
|
|
|
ast, and extending the interpreter to expect annotations.
Annotations and locations are still not used by the interpreter.
|
|
|
|
|
|
definition environment. Skipping function definition, let bind, and expression checking for this commit (to come).
|
|
|
|
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.
|
|
|
|
First pass parser to identify type names is in progress (current test files fail, will correct once pre-parser is in place)
|
|
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
|
|
|
|
actually parses
|
|
Also interpreter now supports reading and writing of basic registers (i.e with no subranges yet)
|
|
|
|
|
|
pulling scattered defintiions together, with checking on name overlap and not "ending" definitions
|
|
|
|
to support type casts; syntax changes not yet reflected in ott file
|
|
|
|
homs for terms that only need locations and not full annotations
|
|
representation of types to support unification; importing support modules from Lem including pp and util
|