Skip to content
Snippets Groups Projects
  1. Feb 16, 2017
  2. Jan 30, 2017
  3. Jan 27, 2017
    • Damien George's avatar
      extmod: Add generic VFS sub-system. · dcb9ea72
      Damien George authored
      This provides mp_vfs_XXX functions (eg mount, open, listdir) which are
      agnostic to the underlying filesystem type, and just require an object with
      the relevant filesystem-like methods (eg .mount, .open, .listidr) which can
      then be mounted.
      
      These mp_vfs_XXX functions would typically be used by a port to implement
      the "uos" module, and mp_vfs_open would be the builtin open function.
      
      This feature is controlled by MICROPY_VFS, disabled by default.
      dcb9ea72
  4. Dec 21, 2016
  5. Nov 16, 2016
  6. Oct 12, 2016
    • Damien George's avatar
      py/lexer: Remove unnecessary code, and unreachable code. · 31101d91
      Damien George authored
      Setting emit_dent=0 is unnecessary because arriving in that part of the
      if-logic will guarantee that emit_dent is already zero.
      
      The block to check indent_top(lex)>0 is unreachable because a newline is
      always inserted an the end of the input stream, and hence dedents are
      always processed before EOF.
      31101d91
  7. Sep 19, 2016
    • Damien George's avatar
      py/vstr: Remove vstr.had_error flag and inline basic vstr functions. · 5da0d29d
      Damien George authored
      The vstr.had_error flag was a relic from the very early days which assumed
      that the malloc functions (eg m_new, m_renew) returned NULL if they failed
      to allocate.  But that's no longer the case: these functions will raise an
      exception if they fail.
      
      Since it was impossible for had_error to be set, this patch introduces no
      change in behaviour.
      
      An alternative option would be to change the malloc calls to the _maybe
      variants, which return NULL instead of raising, but then a lot of code
      will need to explicitly check if the vstr had an error and raise if it
      did.
      
      The code-size savings for this patch are, in bytes: bare-arm:188,
      minimal:456, unix(NDEBUG,x86-64):368, stmhal:228, esp8266:360.
      5da0d29d
  8. May 20, 2016
  9. Apr 13, 2016
    • pohmelie's avatar
      py: add async/await/async for/async with syntax · 81ebba7e
      pohmelie authored
      They are sugar for marking function as generator, "yield from"
      and pep492 python "semantically equivalents" respectively.
      
      @dpgeorge was the original author of this patch, but @pohmelie made
      changes to implement `async for` and `async with`.
      81ebba7e
  10. Feb 25, 2016
    • Damien George's avatar
      py: Add MICROPY_DYNAMIC_COMPILER option to config compiler at runtime. · ea235204
      Damien George authored
      This new compile-time option allows to make the bytecode compiler
      configurable at runtime by setting the fields in the mp_dynamic_compiler
      structure.  By using this feature, the compiler can generate bytecode
      that targets any MicroPython runtime/VM, regardless of the host and
      target compile-time settings.
      
      Options so far that fall under this dynamic setting are:
      - maximum number of bits that a small int can hold;
      - whether caching of lookups is used in the bytecode;
      - whether to use unicode strings or not (lexer behaviour differs, and
        therefore generated string constants differ).
      ea235204
  11. Dec 18, 2015
    • Damien George's avatar
      py: Add MICROPY_ENABLE_COMPILER and MICROPY_PY_BUILTINS_EVAL_EXEC opts. · dd5353a4
      Damien George authored
      MICROPY_ENABLE_COMPILER can be used to enable/disable the entire compiler,
      which is useful when only loading of pre-compiled bytecode is supported.
      It is enabled by default.
      
      MICROPY_PY_BUILTINS_EVAL_EXEC controls support of eval and exec builtin
      functions.  By default they are only included if MICROPY_ENABLE_COMPILER
      is enabled.
      
      Disabling both options saves about 40k of code size on 32-bit x86.
      dd5353a4
  12. Sep 07, 2015
  13. Jul 23, 2015
  14. Jun 22, 2015
  15. Jun 09, 2015
  16. May 20, 2015
  17. Mar 19, 2015
  18. Feb 08, 2015
    • Damien George's avatar
      py: Parse big-int/float/imag constants directly in parser. · 7d414a1b
      Damien George authored
      Previous to this patch, a big-int, float or imag constant was interned
      (made into a qstr) and then parsed at runtime to create an object each
      time it was needed.  This is wasteful in RAM and not efficient.  Now,
      these constants are parsed straight away in the parser and turned into
      objects.  This allows constants with large numbers of digits (so
      addresses issue #1103) and takes us a step closer to #722.
      7d414a1b
  19. Jan 30, 2015
  20. Jan 28, 2015
  21. Jan 16, 2015
  22. Jan 07, 2015
  23. Jan 01, 2015
  24. Dec 05, 2014
  25. Oct 09, 2014
  26. Jul 30, 2014
  27. Jul 03, 2014
  28. Jun 26, 2014
  29. Jun 21, 2014
  30. Jun 19, 2014
  31. Jun 14, 2014
Loading