1. 21 Sep, 2016 1 commit
  2. 20 Jul, 2016 1 commit
    • Paul Sokolovsky's avatar
      py/gc: Implement GC running by allocation threshold. · 93e353e3
      Paul Sokolovsky authored
      Currently, MicroPython runs GC when it could not allocate a block of memory,
      which happens when heap is exhausted. However, that policy can't work well
      with "inifinity" heaps, e.g. backed by a virtual memory - there will be a
      lot of swap thrashing long before VM will be exhausted. Instead, in such
      cases "allocation threshold" policy is used: a GC is run after some number of
      allocations have been made. Details vary, for example, number or total amount
      of allocations can be used, threshold may be self-adjusting based on GC
      outcome, etc.
      
      This change implements a simple variant of such policy for MicroPython. Amount
      of allocated memory so far is used for threshold, to make it useful to typical
      finite-size, and small, heaps as used with MicroPython ports. And such GC policy
      is indeed useful for such types of heaps too, as it allows to better control
      fragmentation. For example, if a threshold is set to half size of heap, then
      for an application which usually makes big number of small allocations, that
      will (try to) keep half of heap memory in a nice defragmented state for an
      occasional large allocation.
      
      For an application which doesn't exhibit such behavior, there won't be any
      visible effects, except for GC running more frequently, which however may
      affect performance. To address this, the GC threshold is configurable, and
      by default is off so far. It's configured with gc.threshold(amount_in_bytes)
      call (can be queries without an argument).
      93e353e3
  3. 17 Dec, 2015 1 commit
  4. 29 Nov, 2015 1 commit
  5. 11 Oct, 2015 1 commit
  6. 07 Feb, 2015 1 commit
  7. 07 Jan, 2015 1 commit
  8. 01 Jan, 2015 1 commit
  9. 29 Nov, 2014 1 commit
  10. 31 Oct, 2014 1 commit
  11. 10 Aug, 2014 1 commit
  12. 31 Jul, 2014 1 commit
  13. 03 Jul, 2014 1 commit
  14. 25 Jun, 2014 1 commit
  15. 21 Jun, 2014 1 commit
  16. 19 Jun, 2014 1 commit
  17. 06 Jun, 2014 1 commit
  18. 05 Jun, 2014 2 commits
  19. 24 May, 2014 1 commit
  20. 08 May, 2014 1 commit
  21. 05 May, 2014 1 commit
  22. 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
  23. 26 Apr, 2014 2 commits
  24. 05 Apr, 2014 1 commit
  25. 03 Apr, 2014 1 commit
    • Paul Sokolovsky's avatar
      py: Add "io" module. · 98a627dc
      Paul Sokolovsky authored
      So far just includes "open" function, which should be supplied by a port.
      
      TODO: Make the module #ifdef'ed.
      98a627dc