1. 20 Apr, 2015 1 commit
  2. 19 Apr, 2015 1 commit
  3. 16 Apr, 2015 3 commits
    • Damien George's avatar
    • Damien George's avatar
      py: Make mp_sys_stdout_print object, wrapping sys.stdout for mp_print*. · 5ae5ec98
      Damien George authored
      So now all printing should go via either mp_plat_print or
      mp_sys_stdout_print.
      5ae5ec98
    • 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.
      7f9d1d6a
  4. 09 Apr, 2015 1 commit
  5. 06 Apr, 2015 2 commits
  6. 30 Mar, 2015 1 commit
  7. 19 Mar, 2015 1 commit
  8. 14 Mar, 2015 1 commit
  9. 02 Mar, 2015 1 commit
  10. 23 Feb, 2015 1 commit
  11. 14 Feb, 2015 1 commit
  12. 28 Jan, 2015 2 commits
  13. 21 Jan, 2015 1 commit
  14. 12 Jan, 2015 1 commit
  15. 04 Jan, 2015 1 commit
  16. 03 Jan, 2015 1 commit
  17. 01 Jan, 2015 1 commit
  18. 27 Dec, 2014 1 commit
    • Damien George's avatar
      py: Allow to properly disable builtin "set" object. · e37dcaaf
      Damien George authored
      This patch makes MICROPY_PY_BUILTINS_SET compile-time option fully
      disable the builtin set object (when set to 0).  This includes removing
      set constructor/comprehension from the grammar, the compiler and the
      emitters.  Now, enabling set costs 8168 bytes on unix x64, and 3576
      bytes on stmhal.
      e37dcaaf
  19. 19 Dec, 2014 1 commit
  20. 09 Dec, 2014 1 commit
    • Damien George's avatar
      py: Allow builtins to be overridden. · 78d702c3
      Damien George authored
      This patch adds a configuration option (MICROPY_CAN_OVERRIDE_BUILTINS)
      which, when enabled, allows to override all names within the builtins
      module.  A builtins override dict is created the first time the user
      assigns to a name in the builtins model, and then that dict is searched
      first on subsequent lookups.  Note that this implementation doesn't
      allow deleting of names.
      
      This patch also does some refactoring of builtins code, creating the
      modbuiltins.c file.
      
      Addresses issue #959.
      78d702c3
  21. 27 Nov, 2014 1 commit
  22. 06 Nov, 2014 1 commit
  23. 31 Oct, 2014 1 commit
  24. 22 Oct, 2014 1 commit
  25. 03 Oct, 2014 1 commit
  26. 13 Sep, 2014 2 commits
  27. 07 Sep, 2014 1 commit
  28. 30 Aug, 2014 2 commits
  29. 24 Aug, 2014 1 commit
  30. 12 Aug, 2014 2 commits
  31. 31 Jul, 2014 1 commit
    • Damien George's avatar
      py: Improve handling of long-int overflow. · c9aa58e6
      Damien George authored
      This removes mpz_as_int, since that was a terrible function (it
      implemented saturating conversion).
      
      Use mpz_as_int_checked and mpz_as_uint_checked.  These now work
      correctly (they previously had wrong overflow checking, eg
      print(chr(10000000000000)) on 32-bit machine would incorrectly convert
      this large number to a small int).
      c9aa58e6
  32. 28 Jul, 2014 1 commit
    • Paul Sokolovsky's avatar
      py: Make id() return small int for the most common address space mapping. · 645582fe
      Paul Sokolovsky authored
      Many OSes/CPUs have affinity to put "user" data into lower half of address
      space. Take advantage of that and remap such addresses into full small int
      range (including negative part).
      
      If address is from upper half, long int will be used. Previously, small
      int was returned for lower quarter of address space, and upper quarter. For
      2 middle quarters, long int was used, which is clearly worse schedule than
      the above.
      645582fe
  33. 19 Jul, 2014 1 commit