GitLab will be upgraded on 30 Jan 2023 from 2.00 pm (AEDT) to 3.00 pm (AEDT). During the update, GitLab and Mattermost services will not be available. If you have any concerns with this, please talk to us at N110 (b) CSIT building.

  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. 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
  3. 16 Feb, 2017 1 commit
  4. 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
  5. 19 Jan, 2017 1 commit
  6. 24 Nov, 2016 1 commit
    • Adam Nelson's avatar
      Redesign with symbolic values (incomplete) · 5fbca740
      Adam Nelson authored
      Thread and memory semantics are being overhauled to use lazy symbolic values,
      making the system similar to the one described in the Nienhuis paper.
      
      Everything up to uvmThreadSemantics compiles; uvmScheduler is still incomplete.
      Tests currently don't work.
      
      Changes include:
      
      - The "symbolic" monad defines lazy computations.
      
      - Thread semantics execute an entire block at a time.
      
      - Thread semantics is greatly simplified, with fewer record types, queues, and
        edge cases.
      
      - Thread semantics does not know anything about the actual values of its
        registers. Branching instructions must receive a "guess" value from the
        scheduler; this value may be a real register value or a branch prediction.
      
      - There are now only two scheduler step types: Commit (commits a memory message)
        and Proceed (moves a thread to the next block, optionally with a branch
        prediction).
      
      - Pluggable memory models are gone; concurrency semantics will be handled by an
        extra layer on top of the scheduler.
      
      - DefineUtils has some shortcuts for defining monads and num wrapper types.
      5fbca740
  7. 29 Sep, 2016 1 commit
  8. 21 Sep, 2016 2 commits