1. 28 Sep, 2016 1 commit
  2. 19 Sep, 2016 2 commits
  3. 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.
  4. 12 Sep, 2016 1 commit
    • 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
  5. 31 Aug, 2016 2 commits
  6. 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.
  7. 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
  8. 11 Aug, 2016 2 commits
  9. 09 Aug, 2016 1 commit
  10. 05 Aug, 2016 1 commit
  11. 21 Jul, 2016 1 commit
  12. 20 Jul, 2016 1 commit
  13. 30 Jun, 2016 2 commits
  14. 24 Jun, 2016 1 commit
  15. 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
      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.
  16. 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.
  17. 14 Jun, 2016 1 commit
    • Kunshan Wang's avatar
      Sync with refimpl2, added muapiparser.py · 9820e33b
      Kunshan Wang authored
      Improved the annotations in muapi.h so that it is easier to generate
      language bindings automatically.
      The muapiparser.py is copied from refimpl2 for convenience.
  18. 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.
  19. 06 Jun, 2016 1 commit
  20. 03 Jun, 2016 1 commit
  21. 01 Jun, 2016 1 commit
  22. 31 May, 2016 1 commit
    • 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.
  23. 30 May, 2016 1 commit
  24. 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.
  25. 13 Apr, 2016 1 commit
    • Kunshan Wang's avatar
      Added abstract types in muapi.h · 4e1c3202
      Kunshan Wang authored
      Added MuSeqValue and MuGenRefValue in the muapi.h. Although all MuValue
      subtypes are just aliases of void* in the C API, having some annotation
      makes the API more readable for the programmer as well as language
      binding makers.
  26. 03 Dec, 2015 1 commit
  27. 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.
  28. 01 Dec, 2015 1 commit
  29. 26 Nov, 2015 1 commit
  30. 08 Nov, 2015 1 commit
  31. 21 Oct, 2015 2 commits
  32. 06 Oct, 2015 2 commits
  33. 30 Sep, 2015 1 commit