1. 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.
      4e1c3202
  2. 05 Apr, 2016 1 commit
  3. 24 Mar, 2016 1 commit
  4. 12 Jan, 2016 1 commit
  5. 05 Jan, 2016 1 commit
    • Kunshan Wang's avatar
      Explicitly allow forward and cyclic references. · b2d648df
      Kunshan Wang authored
      Top-level definitions may refer to things defined later, or refer to
      each other recursively. It has always been allowed, but someone may
      think the following is forbidden:
      
          .typedef @longptr = uptr<@long> // @long is defined after this line
          .typedef @long = int<64>
      b2d648df
  6. 14 Dec, 2015 1 commit
  7. 11 Dec, 2015 2 commits
  8. 09 Dec, 2015 1 commit
    • Kunshan Wang's avatar
      Note for C programmer · 8942ee5b
      Kunshan Wang authored
      In Mu, types, function signatures and constants cannot be written inline
      as in C, but must be defined at the top level. Global cells cannot be
      initialised like C, either.
      8942ee5b
  9. 03 Dec, 2015 1 commit
  10. 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
  11. 01 Dec, 2015 2 commits
  12. 26 Nov, 2015 1 commit
  13. 23 Nov, 2015 2 commits
  14. 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
  15. 11 Nov, 2015 1 commit
  16. 10 Nov, 2015 1 commit
  17. 09 Nov, 2015 1 commit
  18. 08 Nov, 2015 1 commit
    • Kunshan Wang's avatar
      Fixed typo. · d5a14f47
      Kunshan Wang authored
      Angular brackets should be surrounded by "'".
      d5a14f47
  19. 07 Nov, 2015 1 commit
    • Kunshan Wang's avatar
      Define HAIL more carefully. · 232129de
      Kunshan Wang authored
      - Allow Mu constants to be used whenever integers are expected, such as
        hybrid lengths.
      - Make a distinction between ref ($obj) and iref (&$obj, or &$obj[1][2]).
      232129de
  20. 01 Nov, 2015 1 commit
  21. 27 Oct, 2015 3 commits
  22. 21 Oct, 2015 2 commits
  23. 20 Oct, 2015 2 commits
  24. 09 Oct, 2015 3 commits
  25. 07 Oct, 2015 4 commits
  26. 01 Oct, 2015 1 commit
  27. 30 Sep, 2015 2 commits