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. 20 Aug, 2017 1 commit
    • Adam Nelson's avatar
      Atomic memory cells and operations for WMM/RISC-V · 59737ac5
      Adam Nelson authored
      - Memory and registers are split up into typed atomic cells
      - Value type now contains only scalar values
      - Instructions are compiled down to WMM "operations", allowing stores
        and loads of composite values to be split up into atomic parts
      - Scheduler now executes one operation at a time, rather than one block
        at a time
      - New scheduler steps for WMM
      - Commands (formerly Thread Actions) such as allocation now executed at
        the global scheduler level. Action IDs no longer needed.
      - Threads and stacks changed completely; registers now stored in stack
        frames
      - Monads pretty-print properly again!
      - Patricia trees replaced with sptrees
      
      Lots of code is still commented out, and tests still don't work, but
      the main formalization code compiles.
      59737ac5
  2. 20 Jul, 2017 1 commit
  3. 25 Jun, 2017 1 commit
    • Adam Nelson's avatar
      More progress on RISC-V, change pop-frame process · b1d3c66c
      Adam Nelson authored
      - Free was changed from a store message to a thread_action message
      - Stack frames are now freed properly when returning from a function
      - Heap/stack addresses are tracked separately again
      - New stores are added to invalidation buffers, per the spec
      - Thread actions are executed now
      - Tests still don't work yet
      b1d3c66c
  4. 22 Jun, 2017 1 commit
  5. 06 Jun, 2017 1 commit
  6. 05 May, 2017 1 commit
    • Adam Nelson's avatar
      Prove local seq consistency for seq_cst_schedule · fb68640a
      Adam Nelson authored
      It's finally done! The first memory consistency proof in the formalization:
      a sequentially consistent schedule (one that always commits memory messages
      from the front of a thread's outbox queue) will always produce locally
      sequentially consistent semantics.
      
      Changes made in the process of this proof include:
      
      - Removed thread IDs and stack IDs from the thread and stack records;
        keeping up with invariants for them was pointless bookkeeping
      
      - Defined custom tactics multi_case_tac and rw_assums, which greatly
        reduced the size and complexity of some proofs
      
      - Added several new invariants to state_ok, including memory consistency
        invariants (committed messages are all distinct, no message can be in
        both the commit list and a thread's outbox, etc.)
      fb68640a
  7. 02 Apr, 2017 1 commit
  8. 31 Mar, 2017 1 commit
  9. 26 Mar, 2017 1 commit
  10. 15 Mar, 2017 1 commit
  11. 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