1. 06 Sep, 2014 1 commit
  2. 16 Aug, 2014 2 commits
  3. 15 Aug, 2014 2 commits
  4. 01 Jun, 2014 2 commits
  5. 28 May, 2014 1 commit
  6. 10 May, 2014 1 commit
  7. 07 May, 2014 1 commit
  8. 03 May, 2014 1 commit
    • Damien George's avatar
      Add license header to (almost) all files. · 04b9147e
      Damien George authored
      Blanket wide to all .c and .h files.  Some files originating from ST are
      difficult to deal with (license wise) so it was left out of those.
      
      Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
      04b9147e
  9. 17 Apr, 2014 1 commit
  10. 13 Apr, 2014 1 commit
    • Damien George's avatar
      py: Remove unique_codes from emitglue.c. Replace with pointers. · df8127a1
      Damien George authored
      Attempt to address issue #386.  unique_code_id's have been removed and
      replaced with a pointer to the "raw code" information.  This pointer is
      stored in the actual byte code (aligned, so the GC can trace it), so
      that raw code (ie byte code, native code and inline assembler) is kept
      only for as long as it is needed.  In memory it's now like a tree: the
      outer module's byte code points directly to its children's raw code.  So
      when the outer code gets freed, if there are no remaining functions that
      need the raw code, then the children's code gets freed as well.
      
      This is pretty much like CPython does it, except that CPython stores
      indexes in the byte code rather than machine pointers.  These indices
      index the per-function constant table in order to find the relevant
      code.
      df8127a1
  11. 09 Apr, 2014 1 commit
  12. 06 Apr, 2014 1 commit
  13. 30 Mar, 2014 1 commit
    • Damien George's avatar
      Rename rt_* to mp_*. · d17926db
      Damien George authored
      Mostly just a global search and replace.  Except rt_is_true which
      becomes mp_obj_is_true.
      
      Still would like to tidy up some of the names, but this will do for now.
      d17926db
  14. 27 Mar, 2014 1 commit
  15. 16 Feb, 2014 1 commit
  16. 15 Feb, 2014 1 commit
  17. 02 Feb, 2014 1 commit
  18. 01 Feb, 2014 1 commit
  19. 30 Jan, 2014 1 commit
  20. 29 Jan, 2014 1 commit
    • Damien George's avatar
      py: Simplify fastn in VM; reduce size of unique code struct. · d0691cca
      Damien George authored
      We still have FAST_[0,1,2] byte codes, but they now just access the
      fastn array (before they had special local variables).  It's now
      simpler, a bit faster, and uses a bit less stack space (on STM at least,
      which is most important).
      
      The only reason now to keep FAST_[0,1,2] byte codes is for compressed
      byte code size.
      d0691cca
  21. 28 Jan, 2014 1 commit
  22. 11 Jan, 2014 2 commits
  23. 06 Jan, 2014 2 commits
  24. 04 Jan, 2014 1 commit
    • Damien George's avatar
      Split qstr into pools, and put initial pool in ROM. · eb7bfcb2
      Damien George authored
      Qstr's are now split into a linked-list of qstr pools.  This has 2
      benefits: the first pool can be in ROM (huge benefit, since we no longer
      use RAM for the core qstrs), and subsequent pools use m_new for the next
      pool instead of m_renew (thus avoiding a huge single table for all the
      qstrs).
      
      Still would be better to use a hash table, but this scheme takes us part
      of the way (eventually convert the pools to hash tables).
      
      Also fixed bug with import.
      
      Also improved the way the module code is referenced (not magic number 1
      anymore).
      eb7bfcb2
  25. 30 Dec, 2013 1 commit
  26. 21 Dec, 2013 1 commit
    • Damien's avatar
      Change object representation from 1 big union to individual structs. · d99b0528
      Damien authored
      A big change.  Micro Python objects are allocated as individual structs
      with the first element being a pointer to the type information (which
      is itself an object).  This scheme follows CPython.  Much more flexible,
      not necessarily slower, uses same heap memory, and can allocate objects
      statically.
      
      Also change name prefix, from py_ to mp_ (mp for Micro Python).
      d99b0528