1. 30 Aug, 2016 1 commit
    • Kunshan Wang's avatar
      Support for symbols, relocs and primordial threads. · 5fd41775
      Kunshan Wang authored
      - The make_boot_image method is moved to MuCtx because it needs to refer
        to memory locations using handles of IRef types.
      
      - Let global cells be always pinned, and added the get_addr API/CommInst
        to get their addresses.
      5fd41775
  2. 16 Aug, 2016 1 commit
  3. 11 Aug, 2016 1 commit
  4. 20 Jul, 2016 1 commit
  5. 23 Jun, 2016 1 commit
    • Kunshan Wang's avatar
      Fixed muapi.h and improved parser. · b77d8636
      Kunshan Wang authored
      Fixed a bug where the last param of new_thread_nor should be
      MuArraySize.
      
      Removed MuIRNodeRefValue to make MuIRNode unique.
      
      muapi.h also includes the common instruction names in the comment after
      the macro. Improved the API parser for this purpose.
      b77d8636
  6. 21 Jun, 2016 1 commit
  7. 14 Jun, 2016 1 commit
  8. 26 May, 2016 1 commit
    • Kunshan Wang's avatar
      Deprecate binary form in favor for the IRBuilder. · 9900b7d7
      Kunshan Wang authored
      As we discussed, the bundle loading interface between the client and the
      micro VM should be a functional interface. The binary form is still a
      parsed format. This commit removes the binary format in the type system
      and the instruction set.
      9900b7d7
  9. 29 Apr, 2016 1 commit
    • Kunshan Wang's avatar
      Added thread-local. · 94fe2b71
      Kunshan Wang authored
      The thread-local object reference gives each thread a reference to an
      arbitrary object, which can hold thread-local states. New API functions
      and new (common) instructions are added. It is also a thread states and
      a GC root.
      94fe2b71
  10. 03 Dec, 2015 1 commit
  11. 02 Dec, 2015 1 commit
    • Kunshan Wang's avatar
      Fixed trap handler and new_thread. · ce0b0d2e
      Kunshan Wang authored
      - Explicitly say in cmpxchg that "weak" is boolean.
      - The signature of the trap handler and the new_thread API are corrected
        so that input parameters are values and output parameters are pointers
        to values.
      - In trap handler, the "values" array is now a pointer to a
        client-allocated array. The client is also responsible for freeing it
        by providing a "freer". This is solely for working around the C
        programming language's limitation that "raw arrays (T*) do not know
        how to deallocate themselves". Garbage-collected languages (such as
        Haskell, Java, ...) and ownership-based languages (C++, rust) do not
        have such problems.
      ce0b0d2e
  12. 01 Dec, 2015 1 commit
  13. 13 Nov, 2015 1 commit
    • Kunshan Wang's avatar
      Use frame cursors in stack introspection. · 868f8fd4
      Kunshan Wang authored
      Introduced the framecursorref type. This is to solve performance problem
      when the stack is very deep. The API is still stateless, but a frame
      cursor is mutable. A frame cursor can only be created from a stack in
      the READY<Ts> state, may iterate downwards, and must be explicitly
      closed. Concurrent introspection that races with stack modification (pop
      frames/push frames/resuming a stack) has undefined behaviour.
      
      Also used "resumption point" to simplify the description of stack
      binding. The semantics is not changed. In the concrete syntax,
      resumption points are "beginning of function", "OSR point instruction"
      or "the appropriate place for native function". The Mu cases can be
      mapped to the resumption points in the formal model: entry of the %entry
      block, and the exit of the block where the OSR point instruction is in.
      868f8fd4
  14. 09 Nov, 2015 1 commit
  15. 01 Nov, 2015 1 commit
  16. 27 Oct, 2015 1 commit
  17. 21 Oct, 2015 2 commits
  18. 20 Oct, 2015 1 commit
  19. 09 Oct, 2015 1 commit
  20. 07 Oct, 2015 4 commits
  21. 01 Oct, 2015 1 commit
  22. 30 Sep, 2015 1 commit
  23. 28 Sep, 2015 1 commit
  24. 24 Sep, 2015 1 commit
  25. 18 Sep, 2015 1 commit
  26. 17 Sep, 2015 2 commits
  27. 14 Sep, 2015 1 commit
  28. 10 Sep, 2015 1 commit
  29. 31 Aug, 2015 1 commit
  30. 28 Aug, 2015 1 commit
  31. 19 Jun, 2015 1 commit
  32. 19 Mar, 2015 1 commit
  33. 02 Jan, 2015 1 commit
  34. 18 Dec, 2014 2 commits