1. 16 Nov, 2016 1 commit
  2. 12 Oct, 2016 1 commit
  3. 04 Sep, 2016 1 commit
  4. 26 Aug, 2016 1 commit
  5. 12 May, 2016 1 commit
  6. 13 Apr, 2016 3 commits
  7. 07 Mar, 2016 1 commit
  8. 25 Feb, 2016 1 commit
    • 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
  9. 27 Jan, 2016 1 commit
  10. 13 Jan, 2016 1 commit
  11. 08 Jan, 2016 1 commit
  12. 18 Dec, 2015 1 commit
  13. 29 Nov, 2015 3 commits
  14. 23 Nov, 2015 2 commits
  15. 21 Nov, 2015 1 commit
  16. 20 Nov, 2015 2 commits
  17. 13 Nov, 2015 3 commits
  18. 07 Apr, 2015 1 commit
    • Damien George's avatar
      py: Implement full func arg passing for native emitter. · 9988618e
      Damien George authored
      This patch gets full function argument passing working with native
      emitter.  Includes named args, keyword args, default args, var args
      and var keyword args.  Fully Python compliant.
      
      It reuses the bytecode mp_setup_code_state function to do all the hard
      work.  This function is slightly adjusted to accommodate native calls,
      and the native emitter is forced a bit to emit similar prelude and
      code-info as bytecode.
      9988618e
  19. 24 Jan, 2015 1 commit
  20. 20 Jan, 2015 1 commit
  21. 14 Jan, 2015 1 commit
  22. 01 Jan, 2015 1 commit
  23. 26 Oct, 2014 1 commit
  24. 25 Oct, 2014 1 commit
    • Damien George's avatar
      py: Store bytecode arg names in bytecode (were in own array). · 1084b0f9
      Damien George authored
      This saves a lot of RAM for 2 reasons:
      
      1. For functions that don't have default values, var args or var kw
      args (which is a large number of functions in the general case), the
      mp_obj_fun_bc_t type now fits in 1 GC block (previously needed 2 because
      of the extra pointer to point to the arg_names array).  So this saves 16
      bytes per function (32 bytes on 64-bit machines).
      
      2. Combining separate memory regions generally saves RAM because the
      unused bytes at the end of the GC block are saved for 1 of the blocks
      (since that block doesn't exist on its own anymore).  So generally this
      saves 8 bytes per function.
      
      Tested by importing lots of modules:
      
      - 64-bit Linux gave about an 8% RAM saving for 86k of used RAM.
      - pyboard gave about a 6% RAM saving for 31k of used RAM.
      1084b0f9
  25. 24 Oct, 2014 1 commit
  26. 26 Aug, 2014 1 commit
    • Damien George's avatar
      py: Fix line number printing for file with 1 line. · b427d6ae
      Damien George authored
      With a file with 1 line (and an error on that line), used to show the
      line as number 0.  Now shows it correctly as line number 1.
      
      But, when line numbers are disabled, it now prints line number 1 for any
      line that has an error (instead of 0 as previously).  This might end up
      being confusing, but requires extra RAM and/or hack logic to make it
      print something special in the case of no line numbers.
      b427d6ae
  27. 24 Aug, 2014 1 commit
  28. 15 Aug, 2014 1 commit
  29. 03 Jul, 2014 1 commit
  30. 21 Jun, 2014 1 commit
  31. 07 Jun, 2014 2 commits