1. 20 Feb, 2018 1 commit
  2. 24 Oct, 2017 1 commit
  3. 04 Oct, 2017 1 commit
    • Damien George's avatar
      all: Remove inclusion of internal py header files. · a3dc1b19
      Damien George authored
      Header files that are considered internal to the py core and should not
      normally be included directly are:
          py/nlr.h - internal nlr configuration and declarations
          py/bc0.h - contains bytecode macro definitions
          py/runtime0.h - contains basic runtime enums
      Instead, the top-level header files to include are one of:
          py/obj.h - includes runtime0.h and defines everything to use the
              mp_obj_t type
          py/runtime.h - includes mpstate.h and hence nlr.h, obj.h, runtime0.h,
              and defines everything to use the general runtime support functions
      Additional, specific headers (eg py/objlist.h) can be included if needed.
  4. 06 Sep, 2017 1 commit
  5. 29 Aug, 2017 1 commit
  6. 13 Aug, 2017 1 commit
    • Javier Candeira's avatar
      all: Raise exceptions via mp_raise_XXX · 35a1fea9
      Javier Candeira authored
        - Changed: ValueError, TypeError, NotImplementedError
        - OSError invocations unchanged, because the corresponding utility
          function takes ints, not strings like the long form invocation.
        - OverflowError, IndexError and RuntimeError etc. not changed for now
          until we decide whether to add new utility functions.
  7. 11 Aug, 2017 1 commit
  8. 31 Jul, 2017 1 commit
  9. 14 Jul, 2017 1 commit
  10. 29 Mar, 2017 1 commit
    • Damien George's avatar
      py: Convert mp_uint_t to size_t for tuple/list accessors. · 6213ad7f
      Damien George authored
      This patch changes mp_uint_t to size_t for the len argument of the
      following public facing C functions:
      These functions take a pointer to the len argument (to be filled in by the
      function) and callers of these functions should update their code so the
      type of len is changed to size_t.  For ports that don't use nan-boxing
      there should be no change in generate code because the size of the type
      remains the same (word sized), and in a lot of cases there won't even be a
      compiler warning if the type remains as mp_uint_t.
      The reason for this change is to standardise on the use of size_t for
      variables that count memory (or memory related) sizes/lengths.  It helps
      builds that use nan-boxing.
  11. 23 Mar, 2017 1 commit
  12. 20 Feb, 2017 1 commit
  13. 16 Feb, 2017 3 commits
  14. 17 Oct, 2016 1 commit
  15. 12 Aug, 2016 1 commit
  16. 13 Jan, 2016 1 commit
  17. 11 Jan, 2016 3 commits
  18. 03 Jan, 2016 1 commit
  19. 29 Nov, 2015 2 commits
  20. 11 Oct, 2015 1 commit
  21. 02 Aug, 2015 1 commit
  22. 16 Apr, 2015 1 commit
    • Damien George's avatar
      py: Overhaul and simplify printf/pfenv mechanism. · 7f9d1d6a
      Damien George authored
      Previous to this patch the printing mechanism was a bit of a tangled
      mess.  This patch attempts to consolidate printing into one interface.
      All (non-debug) printing now uses the mp_print* family of functions,
      mainly mp_printf.  All these functions take an mp_print_t structure as
      their first argument, and this structure defines the printing backend
      through the "print_strn" function of said structure.
      Printing from the uPy core can reach the platform-defined print code via
      two paths: either through mp_sys_stdout_obj (defined pert port) in
      conjunction with mp_stream_write; or through the mp_plat_print structure
      which uses the MP_PLAT_PRINT_STRN macro to define how string are printed
      on the platform.  The former is only used when MICROPY_PY_IO is defined.
      With this new scheme printing is generally more efficient (less layers
      to go through, less arguments to pass), and, given an mp_print_t*
      structure, one can call mp_print_str for efficiency instead of
      mp_printf("%s", ...).  Code size is also reduced by around 200 bytes on
      Thumb2 archs.
  23. 25 Mar, 2015 1 commit
    • Paul Sokolovsky's avatar
      py: Cast mp_obj_t to concrete types explicitly. · 3d598256
      Paul Sokolovsky authored
      mp_obj_t internal representation doesn't have to be a pointer to object,
      it can be anything.
      There's also a support for back-conversion in the form of MP_OBJ_UNCAST.
      This is kind of optimization/status quo preserver to minimize patching the
      existing code and avoid doing potentially expensive MP_OBJ_CAST over and
      over. But then one may imagine implementations where MP_OBJ_UNCAST is very
      expensive. But such implementations are unlikely interesting in practice.
  24. 20 Mar, 2015 1 commit
  25. 27 Feb, 2015 2 commits
    • Paul Sokolovsky's avatar
      objarray: Implement array slice assignment. · cefcbb22
      Paul Sokolovsky authored
      This is rarely used feature which takes enough code to implement, so is
      controlled by MICROPY_PY_ARRAY_SLICE_ASSIGN config setting, default off.
      But otherwise it may be useful, as allows to update arbitrary-sized data
      buffers in-place.
      Slice is yet to implement, and actually, slice assignment implemented in
      such a way that RHS of assignment should be array of the exact same item
      typecode as LHS. CPython has it more relaxed, where RHS can be any sequence
      of compatible types (e.g. it's possible to assign list of int's to a
      bytearray slice).
      Overall, when all "slice write" features are implemented, it may cost ~1KB
      of code.
    • Damien George's avatar
      py: Fix adding of traceback so that it appends to existing info. · 4852e09c
      Damien George authored
      This makes exception traceback info self contained (ie doesn't rely on
      list object, which was a bit of a hack), reduces code size, and reduces
      RAM footprint of exception by eliminating the list object.
      Addresses part of issue #1126.
  26. 21 Feb, 2015 1 commit
  27. 15 Feb, 2015 1 commit
  28. 02 Feb, 2015 1 commit
  29. 20 Jan, 2015 1 commit
  30. 16 Jan, 2015 1 commit
  31. 01 Jan, 2015 1 commit
  32. 10 Dec, 2014 1 commit
  33. 03 Oct, 2014 1 commit
  34. 17 Sep, 2014 1 commit