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.
  2. 25 Aug, 2016 2 commits
  3. 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
  4. 16 Aug, 2016 2 commits
  5. 11 Aug, 2016 2 commits
  6. 09 Aug, 2016 1 commit
  7. 05 Aug, 2016 1 commit
  8. 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".
  9. 21 Jul, 2016 1 commit
  10. 20 Jul, 2016 1 commit
  11. 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
  12. 30 Jun, 2016 3 commits
  13. 24 Jun, 2016 1 commit
  14. 23 Jun, 2016 2 commits
  15. 22 Jun, 2016 1 commit
    • Kunshan Wang's avatar
      Map IR Builder functions to comminsts. · 8fb468bd
      Kunshan Wang authored
      Now the IR Builder API is also available as common instructions. We keep
      muapi.h as the canonical definition, and the semantics of common
      instructions maps to that of the API functions.
  16. 21 Jun, 2016 2 commits
  17. 17 Jun, 2016 1 commit
  18. 16 Jun, 2016 1 commit
  19. 14 Jun, 2016 2 commits
  20. 09 Jun, 2016 2 commits
    • Kunshan Wang's avatar
      Add cast to macros. · 831315bd
      Kunshan Wang authored
      Cast constant macros to their respective types so that they will have
      proper sizes and signedness.
      MuAtomicRMWOp is renamed to MuAtomicRMWOptr, in order not to confuse
      "operator" and "operand".
    • Kunshan Wang's avatar
      Modified new_thread API and annotated muapi.h · 7efae3f0
      Kunshan Wang authored
      The new_thread API call is split into two functions, one continues
      normally and the other throws exception. This interface will be more
      It will be convenient if there is a program that parses the muapi.h and
      generates language bindings (for Python, Scala, etc.). Some annotations
      are added in the muapi.h file to make this process easier. For example,
      when passing an array, C functions usually take two parameters: a
      pointer and a size. The param:array:sz annotation tells the parser that
      the "param" parameter points to an array whose size is determined by the
      "sz" parameter. "param:bool" tells the parser that the "int param"
      parameter holds a boolean value (non-zero or zero). "param:optional"
      tells the parser that the "T* param" parameter may be NULL.
  21. 06 Jun, 2016 1 commit
  22. 03 Jun, 2016 1 commit
  23. 01 Jun, 2016 1 commit
  24. 31 May, 2016 2 commits
    • Kunshan Wang's avatar
      Functions for building IR. · 725df50e
      Kunshan Wang authored
      The 'irbuilderref' type is no longer used. 'irnoderef' is the only newly
      introduced Mu type. A bundle node now works as a namespace. All other
      nodes are children of the bundle node. After a bundle node is loaded
      into Mu (or aborted), Mu may de-allocate the bundle node and all of its
      children for space efficiency.
    • Kunshan Wang's avatar
      Added irnoderef and some minor changes. · b22b04f4
      Kunshan Wang authored
      irnoderef refers to Mu IR nodes when constructing IR using the API.
      Pointer types should have been scalar types. Anything that is not
      composite types nor "void" should be scalar.
  25. 30 May, 2016 1 commit
  26. 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.
  27. 02 May, 2016 1 commit
    • Kunshan Wang's avatar
      THREADLOCAL clause in the NEWTHREAD inst. · 5422904a
      Kunshan Wang authored
      Like the `new_thread` API call, the NEWTHREAD instruction needs to take
      a thread-local objref as a parameter, too. This clause is optional. If
      omitted, it defaults to `NULL`.
  28. 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.