1. 07 Mar, 2017 1 commit
    • Adam Nelson's avatar
      Parser improvements, comminst support · dea983cd
      Adam Nelson authored
      Removed a special case in the parser for FuncRefV constants, which
      required every SSA variable to have a known type. This required
      BundleParser to be rearranged to parse everything else before function
      bodies, making functions available to functions defined above them
      (something the spec requires, so that's progress!)
      
      Also added support for COMMINST in the parser.
      dea983cd
  2. 02 Mar, 2017 1 commit
    • Adam Nelson's avatar
      Split up uvmThreadSemantics, add 'ok' predicates · ff7ff016
      Adam Nelson authored
      uvmThreadSemantics was becoming a huge file that took several minutes
      to compile, so it's been split into uvmThreadsStacks and
      uvmInstructionSemantics.
      
      In uvmThreadsStacks, new 'thread_ok' and 'stack_ok' predicates define
      basic consistency requirements for thread and stack data structures.
      All functions in this file have also been proven to produce valid
      thread/stack structures when given valid input. This is a prerequisite
      for proving execution state homomorphisms.
      
      'thread_state' has been renamed to 'thread', and 'state_follows' has
      been renamed to 'thread_follows'.
      ff7ff016
  3. 24 Feb, 2017 1 commit
    • Adam Nelson's avatar
      Clean up exec_terminst, remove $-variables · d4b31059
      Adam Nelson authored
      The current version of the Mu specification does not use $-variables to
      pass return values from terminsts to the normal destination of an EXC
      clause, instead allowing terminsts to have normal SSA return values
      that may be referenced in the EXC clause. This commit updates the
      formalism to match.
      
      Several other refactorings are included, such as making exec_terminst
      only return modified stacks, using a simpler representation of common
      instructions, and defining prefix/infix operators for SSA variables and
      registers in HOL.
      d4b31059
  4. 22 Feb, 2017 1 commit
  5. 16 Feb, 2017 1 commit
  6. 07 Feb, 2017 1 commit
    • Adam Nelson's avatar
      Support for spawning new threads · 4732dc3b
      Adam Nelson authored
      The NEWTHREAD instruction isn't parsed yet, but its associated memory message is
      now supported, and the scheduler has been modified to support multiple threads.
      
      thread_states are now generated on-demand when they are first executed, provided
      there is an associated DoNewThread memory action and its stack ID can be
      resolved. This required the 'tid' field of 'Message' to be changed to a
      'thread_id option', as there must be an initial DoNewThread action that is not
      generated by any thread ID.
      
      The THROW instruction and EXC resume_values have also been updated to have only
      one argument, to match the spec.
      4732dc3b
  7. 01 Feb, 2017 1 commit
    • Alexander Soen's avatar
      Change list translation method · 2d935438
      Alexander Soen authored
      Translation method now uses an intermediary type datastructure.
      It is similar to the previous method which was done in two stages.
      
      To do:
        - Clean up code base
        - Add abstractions
        - Fix the testing script
      2d935438
  8. 27 Jan, 2017 2 commits
    • Alexander Soen's avatar
      Add translate_interm tests · 99edb424
      Alexander Soen authored
      99edb424
    • Alexander Soen's avatar
      Change translation method · ed21b02d
      Alexander Soen authored
      The translation method has been changed into two phases. The first is to
      determine the final type of what the translated term would be. The
      second, is with this type information, to create the final translated
      term.
      
      To do:
        -- Implement abstractions for translation
      ed21b02d
  9. 24 Jan, 2017 1 commit
  10. 23 Jan, 2017 2 commits
  11. 19 Jan, 2017 2 commits
  12. 18 Jan, 2017 1 commit
    • Alexander Soen's avatar
      Translation of sets of sets now possible · 2e0a1c69
      Alexander Soen authored
      Currently the expected translation function works for constants. This
      needs to be extended for other term types.
      
      The robustness of the type inference can also be improved on.
      Currently the new type is generated by appending new elements to a list
      which has an implicit ordering.
      2e0a1c69
  13. 12 Jan, 2017 4 commits
  14. 11 Jan, 2017 1 commit
  15. 10 Jan, 2017 4 commits
  16. 05 Jan, 2017 1 commit
  17. 04 Jan, 2017 2 commits
    • Alexander Soen's avatar
      a4aa50a8
    • Alexander Soen's avatar
      Add S-expression parser script · 398a7c0d
      Alexander Soen authored
      Script added parses an s-expression into a statement in the defined
      lanugage. Translation is successful. (Note: do notation in function
      definitions will not translate)
      
      To do:
        - Create test cases for the s-expression parser
        - Create a parser for enviromental variables
        - Create framework for inputing s-expressions in sml
      398a7c0d
  18. 03 Jan, 2017 1 commit
  19. 19 Dec, 2016 4 commits
  20. 18 Dec, 2016 4 commits
  21. 14 Dec, 2016 3 commits
  22. 12 Dec, 2016 1 commit
    • Alexander Soen's avatar
      Scheduler translate complete · e908ce04
      Alexander Soen authored
      The "translate" function was called on the find_steps function and the
      eval_n_steps function. Holmake did not return an error so the
      compatibility of the HOL functions to cakeml is assumed to be good.
      
      Notes:
        -- When functions in HOL are being translated all functions within
      that function must be previously translated explicitly.
        -- It seems that CakeML does not translate lambda expressions well.
        -- Functions must be translated explicitly again when calling from
      another library/script
      
      Things To Do:
        -- Compile the HOL code using CakeML.
        -- Explore S-expressions.
        -- Fix the fibonacci test, it partially works but fib_n_def does not
      seem to evaluate down to a number, only some-kind of expression format.
        -- Prove some properties about the expression language.
      e908ce04