1. 19 Feb, 2018 2 commits
  2. 13 Aug, 2017 1 commit
  3. 23 Jun, 2017 1 commit
  4. 04 Jun, 2017 2 commits
  5. 24 Apr, 2017 1 commit
  6. 28 Oct, 2016 1 commit
  7. 17 Oct, 2016 1 commit
  8. 28 Sep, 2016 1 commit
  9. 22 Sep, 2016 1 commit
  10. 19 Sep, 2016 3 commits
  11. 16 Sep, 2016 1 commit
    • Kunshan Wang's avatar
      Added status flags (NZCV) to binOp. · 39604478
      Kunshan Wang authored
      In the text form, the NZCV flags are optional, so existing programs
      are still valid. In the bundle building API, `new_binop` remain
      unchanged, but an additional function `new_binop_with_status` is added,
      so existing programs are still valid.
      scripts/*.py are modified to adapt the MuBinOpStatus enum type.
  12. 12 Sep, 2016 2 commits
    • Kunshan Wang's avatar
      Loosen requirement of "id_of" and "name_of". · 58d95aec
      Kunshan Wang authored
      So that the micro VM implementation does not have to record the IDs and
      names for many local things, such as instruction results and clauses.
      These things are numerous, but the API cannot do anything on them. Not
      forcing the micro VM to record their IDs/names can save much space.
    • Kunshan Wang's avatar
      Clarification. · 39b629ad
      Kunshan Wang authored
      Not changing semantics, but changed the wording to make it clearer.
      - Provided an object hierarchy of objects in a Mu IR bundle. This
        describes the "has many" and "refers to" relations between things in a
      - Clarify what are "top-level entities". Specifically, "functions" are,
        but "function versions" are not. Stopped using "top-level definitions"
        because "definition" is too text-oriented. The API functions create
      - Stopped using the term "declaring a function", but use "creating a
        function" and "creating a function version" instead. Now "undefined
        function" and "defined function" simply refers to functions with 0
        versions and functions with 1+ versions, respectively.
      - Explicitly state the "function version lookup" when a function is
  13. 01 Sep, 2016 2 commits
  14. 31 Aug, 2016 2 commits
  15. 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.
  16. 25 Aug, 2016 2 commits
  17. 22 Aug, 2016 1 commit
    • Kunshan Wang's avatar
      Fixed bugs in muapi.h · 8a7d96ba
      Kunshan Wang authored
      new_bb: parameter types must be explicit
      watchpoint: it has three destinations instead of just an ExcClause
      wpbranch: both destinations must be explicit
  18. 16 Aug, 2016 2 commits
  19. 11 Aug, 2016 2 commits
  20. 09 Aug, 2016 1 commit
  21. 05 Aug, 2016 1 commit
  22. 27 Jul, 2016 1 commit
    • Kunshan Wang's avatar
      Emphasise what "iref" is and what it can refer to. · 643ac0b3
      Kunshan Wang authored
      IRef refers to any memory location in any parts of the Mu memory,
      including both heap, stack and global. The common part about them is
      that Mu knows the types (at least the location of reference fields) of
      all of them. We use the term "conceptually boxed" and "conceptually
      unboxed" to describe the difference between the destination of "iref"
      and "uptr": irefs always refer into "conceptually boxed" things (boxed
      in the sense that Mu knows their field types (at least reference
      fields)). Heap objects are obviously boxed. We can consider each stack
      as a huge box, and the entire global space as a huge box. "iref" can
      only be obtained from the allocation operations in Mu. But uptrs may
      point outside the Mu memory, which can be literally anywhere. They can
      even be created by C functions, such as "malloc".
  23. 21 Jul, 2016 1 commit
  24. 20 Jul, 2016 1 commit
  25. 08 Jul, 2016 3 commits
    • Kunshan Wang's avatar
      Explain CCALL type params using SYSCALL exmple · c4b60612
      Kunshan Wang authored
      The CCALL instruction's design allows not only untraced function
      pointers as the callee, but also allow system calls and so on. The
      separation of "callee type" and "callee signature" -- where the callee
      type is usually just `ufunctpr<sig>` -- may cause some confusion.
    • Kunshan Wang's avatar
      DestClause is intra-function only. · 861882cb
      Kunshan Wang authored
      Now I explicitly stated that the destination clause is used only for
      designating intra-function destinations, that is, cannot have basic
      blocks in other function versions as destinations. This does not change
      the semantics, but just make it explicit.
    • Kunshan Wang's avatar
      More comments · 29d26bf5
      Kunshan Wang authored
  26. 30 Jun, 2016 3 commits